Restructured frontend, unified source of csses
Reviewed-on: R11/release11-tools-web#4
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -3,9 +3,10 @@
|
||||
<head>
|
||||
<title>R11 MockedServices</title>
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="css/fontello.css" type="text/css">
|
||||
<link rel="stylesheet" href="css/main.css" type="text/css">
|
||||
<link rel="stylesheet" href="css/common.css" type="text/css">
|
||||
<link rel="stylesheet" href="http://localhost:8086/assets/css/common/fontello.css" type="text/css">
|
||||
<link rel="stylesheet" href="http://localhost:8086/assets/css/mock-service/main.css" type="text/css">
|
||||
<!-- <link rel="stylesheet" href="css/common.css" type="text/css"> -->
|
||||
<link rel="stylesheet" href="http://localhost:8086/assets/css/mock-service/common.css" type="text/css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
@@ -246,4 +247,4 @@
|
||||
<script type="text/javascript" src="/js/historyloader.js"></script>
|
||||
<script type="text/javascript" src="/js/fiddle.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
11
Frontend/Dockerfile
Normal file
@@ -0,0 +1,11 @@
|
||||
FROM nginx:stable-alpine
|
||||
|
||||
COPY ./tools/ /usr/share/nginx/html/tools/
|
||||
COPY ./assets/ /usr/share/nginx/html/assets/
|
||||
COPY ./index.html /usr/share/nginx/html
|
||||
#COPY ./logo.png /usr/share/nginx/html
|
||||
#COPY ./styles.css /usr/share/nginx/html
|
||||
#COPY ./common.css /usr/share/nginx/html
|
||||
#COPY ./favicon.ico /usr/share/nginx/html
|
||||
|
||||
EXPOSE 80
|
||||
6
Frontend/assets/css/common/common.css
Normal file
@@ -0,0 +1,6 @@
|
||||
@import url('https://necolas.github.io/normalize.css/8.0.1/normalize.css');
|
||||
@import url('r11addons.css');
|
||||
@import url('r11tables.css');
|
||||
@import url('r11tool.css');
|
||||
@import url('r11tooltip.css');
|
||||
@import url('r11modal.css');
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
6
Frontend/assets/css/mock-service/common.css
Normal file
@@ -0,0 +1,6 @@
|
||||
@import url('https://necolas.github.io/normalize.css/8.0.1/normalize.css');
|
||||
@import url('r11addons.css');
|
||||
@import url('r11tables.css');
|
||||
@import url('r11tool.css');
|
||||
@import url('r11tooltip.css');
|
||||
@import url('r11modal.css');
|
||||
4
Frontend/assets/css/mock-service/main.css
Normal file
@@ -0,0 +1,4 @@
|
||||
.overflowedTableContent {
|
||||
max-height: 750px;
|
||||
overflow: scroll;
|
||||
}
|
||||
BIN
Frontend/assets/css/tools/font/fontello.eot
Normal file
14
Frontend/assets/css/tools/font/fontello.svg
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>Copyright (C) 2021 by original authors @ fontello.com</metadata>
|
||||
<defs>
|
||||
<font id="fontello" horiz-adv-x="1000" >
|
||||
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
|
||||
<missing-glyph horiz-adv-x="1000" />
|
||||
<glyph glyph-name="plus" unicode="" d="M786 439v-107q0-22-16-38t-38-15h-232v-233q0-22-16-37t-38-16h-107q-22 0-38 16t-15 37v233h-232q-23 0-38 15t-16 38v107q0 23 16 38t38 16h232v232q0 22 15 38t38 16h107q23 0 38-16t16-38v-232h232q23 0 38-16t16-38z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="cancel" unicode="" d="M724 112q0-22-15-38l-76-76q-16-15-38-15t-38 15l-164 165-164-165q-16-15-38-15t-38 15l-76 76q-16 16-16 38t16 38l164 164-164 164q-16 16-16 38t16 38l76 76q16 16 38 16t38-16l164-164 164 164q16 16 38 16t38-16l76-76q15-15 15-38t-15-38l-164-164 164-164q15-15 15-38z" horiz-adv-x="785.7" />
|
||||
</font>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
BIN
Frontend/assets/css/tools/font/fontello.ttf
Normal file
BIN
Frontend/assets/css/tools/font/fontello.woff
Normal file
BIN
Frontend/assets/css/tools/font/fontello.woff2
Normal file
59
Frontend/assets/css/tools/fontello.css
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('font/fontello.eot?49304387');
|
||||
src: url('font/fontello.eot?49304387#iefix') format('embedded-opentype'),
|
||||
url('font/fontello.woff2?49304387') format('woff2'),
|
||||
url('font/fontello.woff?49304387') format('woff'),
|
||||
url('font/fontello.ttf?49304387') format('truetype'),
|
||||
url('font/fontello.svg?49304387#fontello') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
|
||||
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
|
||||
/*
|
||||
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('../font/fontello.svg?49304387#fontello') format('svg');
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
[class^="icon-"]:before, [class*=" icon-"]:before {
|
||||
font-family: "fontello";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
speak: never;
|
||||
|
||||
display: inline-block;
|
||||
text-decoration: inherit;
|
||||
width: 1em;
|
||||
margin-right: .2em;
|
||||
text-align: center;
|
||||
/* opacity: .8; */
|
||||
|
||||
/* For safety - reset parent styles, that can break glyph codes*/
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
|
||||
/* fix buttons height, for twitter bootstrap */
|
||||
line-height: 1em;
|
||||
|
||||
/* Animation center compensation - margins should be symmetric */
|
||||
/* remove if not needed */
|
||||
margin-left: .2em;
|
||||
|
||||
/* you can be more comfortable with increased icons size */
|
||||
/* font-size: 120%; */
|
||||
|
||||
/* Font smoothing. That was taken from TWBS */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
/* Uncomment for 3D effect */
|
||||
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
|
||||
}
|
||||
|
||||
.icon-plus:before { content: '\e801'; } /* '' */
|
||||
.icon-cancel:before { content: '\e802'; } /* '' */
|
||||
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
31
Frontend/index.html
Normal file
@@ -0,0 +1,31 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="stylesheet" href="assets/css/frame.css">
|
||||
<!-- <link rel="stylesheet" href="common.css"> -->
|
||||
<link rel="shortcut icon" href="assets/images/favicon.ico" type="image/x-icon">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="header">
|
||||
<h1 id="logo"><a href="http://release11.com/"><img src="assets/images/logo.png" alt="Release11"></a></h1>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<div id="toolList">
|
||||
<ul id="toolList">
|
||||
<li id="toolListRow"><a href="http://localhost:8097/" target="iframe">REST Mock</a></li>
|
||||
<li id="toolListRow"><a href="./tools/xpath.html" target="iframe">XPath</a></li>
|
||||
<li id="toolListRow"><a href="./tools/xslt.html" target="iframe">XSLT</a></li>
|
||||
<li id="toolListRow"><a href="./tools/xsd.html" target="iframe">XSD</a></li>
|
||||
</ul>
|
||||
<div id="copyright">Copyright © 2023<br><a href="http://release11.com/">Release11 Sp. z. o. o.</a></div>
|
||||
</div>
|
||||
<iframe id="frame" name="iframe" src="http://localhost:8097/" frameborder="0"></iframe>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -4,9 +4,9 @@
|
||||
<head>
|
||||
<!-- <link rel="stylesheet" href="../common.css"> -->
|
||||
<!-- <link rel="stylesheet" href="styles.css"> -->
|
||||
<script src="jquery-3.6.0.slim.min.js"></script>
|
||||
<link rel="stylesheet" href="new_css/r11form.css">
|
||||
<script src="scripts.js"></script>
|
||||
<script src="../assets/scripts/tools/jquery-3.6.0.slim.min.js"></script>
|
||||
<link rel="stylesheet" href="../assets/css/tools/r11form.css">
|
||||
<script src="../assets/scripts/tools/scripts.js"></script>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
|
||||
@@ -3205,4 +3205,4 @@
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
<head>
|
||||
<!-- <link rel="stylesheet" href="styles.css"> -->
|
||||
<link rel="stylesheet" href="new_css/r11form.css">
|
||||
<script src="scripts.js"></script>
|
||||
<link rel="stylesheet" href="../assets/css/tools/r11form.css">
|
||||
<script src="../assets/scripts/tools/scripts.js"></script>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
|
||||
@@ -168,4 +168,4 @@
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
<head>
|
||||
<!-- <link rel="stylesheet" href="styles.css"> -->
|
||||
<link rel="stylesheet" href="new_css/r11form.css">
|
||||
<script src="scripts.js"></script>
|
||||
<link rel="stylesheet" href="../assets/css/tools/r11form.css">
|
||||
<script src="../assets/scripts/tools/scripts.js"></script>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
|
||||
@@ -1224,4 +1224,4 @@
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
@@ -1,10 +0,0 @@
|
||||
FROM nginx:stable-alpine
|
||||
|
||||
COPY ./Frontend/ /usr/share/nginx/html/Frontend/
|
||||
COPY ./index.html /usr/share/nginx/html
|
||||
COPY ./logo.png /usr/share/nginx/html
|
||||
COPY ./styles.css /usr/share/nginx/html
|
||||
COPY ./common.css /usr/share/nginx/html
|
||||
COPY ./favicon.ico /usr/share/nginx/html
|
||||
|
||||
EXPOSE 80
|
||||
@@ -1,25 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="r11form.css">
|
||||
<!-- <script src="scripts.js"></script> -->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
<div class="collapsibleList">
|
||||
<button class="section-button collapseTrigger">Node-Set</button>
|
||||
<div class="collapsibleContent">
|
||||
[1.0] <a href="#" onClick="return false;" class="collapseTrigger"><code>fn:last()</code></a>
|
||||
<div class="collapsibleContent">
|
||||
Returns the position of the last node in the context list <br>
|
||||
<code>Link do dokumentacji W3C: <a href="https://www.w3.org/TR/1999/REC-xpath-19991116/#section-Node-Set-Functions" target="_parent">Node-Set-Functions</code></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
@@ -1,3 +0,0 @@
|
||||
.container {
|
||||
|
||||
}
|
||||
@@ -1,100 +0,0 @@
|
||||
html, body {
|
||||
margin: 0px;
|
||||
height: 100%;
|
||||
min-height: 100%;
|
||||
font-family: 'Nunito', sans-serif;
|
||||
}
|
||||
|
||||
select {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
button#requestButton {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div#content {
|
||||
width: 100%;
|
||||
min-height: 100%;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
div#fields {
|
||||
float: left;
|
||||
width: 55%;
|
||||
margin-left: 8px;
|
||||
margin-right: 8px;
|
||||
height: 100%;
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 1
|
||||
}
|
||||
|
||||
label {
|
||||
font-size: 20px;
|
||||
color: rgb(44, 44, 44);
|
||||
}
|
||||
|
||||
textarea {
|
||||
width: 99.4%;
|
||||
resize: vertical;
|
||||
color: #6b6b6b;
|
||||
}
|
||||
|
||||
textarea#resultArea {
|
||||
width: 99.4%;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
span#procinfo {
|
||||
color: #30aa58;
|
||||
}
|
||||
|
||||
p#tooltipText {
|
||||
width: 200px;
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
div#tooltip {
|
||||
margin-top: 160px;
|
||||
float: right;
|
||||
width: 40%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.collapsible {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.collapsible.active {
|
||||
background-color: rgb(129, 129, 129) !important;
|
||||
}
|
||||
|
||||
.collapsibleData {
|
||||
transition: max-height .2s ease-out;
|
||||
max-height: 0px;
|
||||
}
|
||||
|
||||
.docTable td, .docTable th{
|
||||
border-spacing: 0px;
|
||||
padding: 0px 10px;
|
||||
}
|
||||
|
||||
.docTable td {
|
||||
background-color: rgba(155, 165, 160, 0.342);
|
||||
}
|
||||
|
||||
.docTable th {
|
||||
background-color: #3bc4f1;
|
||||
text-align: left;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.collapsibleDataMini{
|
||||
/* border-radius: 10px; */
|
||||
border: solid rgba(137, 146, 142, 0.267);
|
||||
border-width: 0px 0px 0px 3px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
@@ -1,540 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<!-- <link rel="stylesheet" href="styles.css"> -->
|
||||
<link rel="stylesheet" href="new_css/r11form.css">
|
||||
<script src="scripts.js"></script>
|
||||
</head>
|
||||
|
||||
<body onload="init();">
|
||||
<div class="container">
|
||||
<div id="tool" class="tool">
|
||||
<div class="tool-context">
|
||||
<div class="headline">
|
||||
<h1>Online XSLT tester <span class="versionInfo"><span class="version-span">v0.4</span></span></h1>
|
||||
</div>
|
||||
<label for="processors">Select XSLT processor:</label>
|
||||
<select name="processors" id="processors">
|
||||
<option value="saxon">Saxon</option>
|
||||
<option value="xalan">Xalan</option>
|
||||
</select>
|
||||
<span id="processorTooltipInfo">procInfo</span><br>
|
||||
<br>
|
||||
|
||||
<label for="xmlArea"><b>Insert your XML:</b></label>
|
||||
<textarea id="xmlArea" name="xmlArea" rows="15"
|
||||
class="textarea-300 bordered-field vertically-resizeable max-width"
|
||||
onblur="setDefaultContent(this, 'Insert XML here');"
|
||||
onfocus="clearDefaultContent(this, 'Insert XML here');"></textarea>
|
||||
<br><br>
|
||||
|
||||
<label for="transformArea"><b>Insert your XSLT:</b></label>
|
||||
<textarea id="transformArea" name="transformArea" rows="15"
|
||||
class="textarea-300 bordered-field vertically-resizeable max-width"
|
||||
onblur="setDefaultContent(this, 'Insert XSLT here');"
|
||||
onfocus="clearDefaultContent(this, 'Insert XSLT here');"></textarea>
|
||||
<br>
|
||||
<button id="requestButton" class="max-width block-label action-button active"
|
||||
onclick="performRequest('xsltpost', true, true)">Execute XSLT transform</button>
|
||||
<br><br>
|
||||
|
||||
<label for="resultArea"><b>Transform result:<span id="procinfo"></span></b></label>
|
||||
<textarea id="resultArea" name="resultArea" rows="10"
|
||||
class="textarea-300 bordered-field vertically-resizeable max-width"></textarea>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="tooltip tooltip-window">
|
||||
<h2>What is XSLT?</h2>
|
||||
<p>XSLT is a language for transforming XML documents into other documents such as XML, HTML and many
|
||||
other.<br></p>
|
||||
<span id="collapsible-lists">
|
||||
<div class="collapsible">
|
||||
<button class="section-button collapseTrigger" style="border: none" style="border: none">XSLT 1.0 vs
|
||||
2.0
|
||||
vs 3.0</button>
|
||||
<div class="content">
|
||||
<p><b>XSLT 2.0 introduced a host of new features:</b><br>
|
||||
- Strong typing and all XSD types<br>
|
||||
- The ability to define and write own functions<br>
|
||||
- node-set() - replaces XSLT's 1.0 Result Tree Fragment, creating fully functional tree<br>
|
||||
- New functions and operators:<br>
|
||||
- - XPath 2.0<br>
|
||||
- - String processing and regular expressions<br>
|
||||
- - Grouping (for-each-group function)
|
||||
- - String processing<br>
|
||||
- - Sequence type<br>
|
||||
</p>
|
||||
<p><b>XSLT 3.0 further improved the formula:</b><br>
|
||||
- Streaming tranformations (previously file had to be loaded to memory to be processed)<br>
|
||||
- Packages - improve the modularity of large stylesheets<br>
|
||||
- Improved error handling (for example <code><xsl:try></code>)<br>
|
||||
- Support for maps and arrays, enabling XSLT to handle JSON as well as XML<br>
|
||||
- Functions can now be arguments to other (higher-order) functions
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2><span id="tooltipFunctionInfo">XSLT 1.0, 2.0 & 3.0 functions</span></h2>
|
||||
<div class="collapsible">
|
||||
<button class="section-button collapseTrigger" style="border: none">Templates</button>
|
||||
<div class="content">
|
||||
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Defining-Template-Rules"
|
||||
target="_blank"><code><xsl:template></code></a> - defines a set of rules to be
|
||||
applied to
|
||||
specified node.<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Applying-Template-Rules"
|
||||
target="_blank"><code><xsl:apply-templates></code></a> - applies a template rule to
|
||||
the
|
||||
current element or to element's child nodes.<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#apply-imports"
|
||||
target="_blank"><code><xsl:apply-imports></code></a> - Applies a template rule from
|
||||
an
|
||||
imported style sheet<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Applying-Template-Rules"
|
||||
target="_blank"><code><xsl:apply-templates></code></a> - Applies a template rule to
|
||||
the
|
||||
current element or to the current element's child nodes<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#named-templates"
|
||||
target="_blank"><code><xsl:call-template></code></a> - Calls a named template
|
||||
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-next-match"
|
||||
target="_blank"><code><xsl:next-match></code></a> - overrides another template
|
||||
rule
|
||||
(considers all other template rules of lower import precedence/priority)<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-mode"
|
||||
target="_blank"><code><xsl:mode></code></a> - Allows properties of a mode to be
|
||||
defined<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-override"
|
||||
target="_blank"><code><xsl:override></code></a> - Allows using package to
|
||||
override
|
||||
selected components from a used package<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-package"
|
||||
target="_blank"><code><xsl:package></code></a> - Defines a set of stylesheet
|
||||
modules
|
||||
that can be compiled as a unit<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="https://www.w3.org/TR/xslt-30/#element-accept"
|
||||
target="_blank"><code><xsl:accept></code></a> - Allows a package to restrict the
|
||||
visibility of components exposed by a package<br></span>
|
||||
<span name="collapse2">[v3.0] <a
|
||||
href="http://www.w3.org/TR/xslt-30/#element-global-context-item"
|
||||
target="_blank"><code><xsl:global-context-item></code></a> - Declares whether a
|
||||
global context item is required, and if so, to declare its required type</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapsible">
|
||||
<button class="section-button collapseTrigger" style="border: none">Repetition and Conditional
|
||||
processing</button>
|
||||
<div class="content">
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#for-each"
|
||||
target="_blank"><code><xsl:for-each></code></a> - Loops through each node in a
|
||||
specified
|
||||
node set<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Conditional-Processing"
|
||||
target="_blank"><code><xsl:if></code></a> - Contains a template that will be applied
|
||||
only if a specified condition is true<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Conditional-Processing-with-xsl:choose"
|
||||
target="_blank"><code><xsl:choose></code></a> - Used in conjunction with <when>
|
||||
and
|
||||
<otherwise> to express multiple conditional tests<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Conditional-Processing-with-xsl:choose"
|
||||
target="_blank"><code><xsl:when></code></a> - Specifies an action for the
|
||||
<choose> element<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Conditional-Processing-with-xsl:choose"
|
||||
target="_blank"><code><xsl:otherwise></code></a> - Specifies a default
|
||||
action for the <choose> element<br>
|
||||
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-for-each-group"
|
||||
target="_blank"><code><xsl:for-each-group></code></a> - Groups
|
||||
elements and performs operations once for each group<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-iterate"
|
||||
target="_blank"><code><xsl:iterate></code></a> - Used to iterate
|
||||
over a sequence, with the option to set parameters for use in the next
|
||||
iteration<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-break"
|
||||
target="_blank"><code><xsl:break></code></a> - Causes premature
|
||||
completion before the entire input sequence has been processed<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-next-iteration"
|
||||
target="_blank"><code><xsl:next-iteration></code></a> - The
|
||||
contents
|
||||
are a set of xsl:with-param elements defining the values of the iteration
|
||||
parameters to be used on the next iteration<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-on-completion"
|
||||
target="_blank"><code><xsl:on-completion></code></a> - Defines
|
||||
processing to be carried out when the input sequence is exhausted<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-fork"
|
||||
target="_blank"><code><xsl:fork></code></a> - The result of the
|
||||
xsl:fork instruction is the sequence formed by concatenating the results of
|
||||
evaluating each of its contained instructions, in order<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-on-empty"
|
||||
target="_blank"><code><xsl:on-empty></code></a> - Outputs the
|
||||
enclosed content only if the containing sequence generates no "ordinary"
|
||||
content<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-on-non-empty"
|
||||
target="_blank"><code><xsl:on-non-empty></code></a> - Outputs the
|
||||
enclosed content only if the containing sequence also generates "ordinary"
|
||||
content<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-try"
|
||||
target="_blank"><code><xsl:try></code></a> - Allows recovery from
|
||||
dynamic errors occurring within the expression it wraps<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-catch"
|
||||
target="_blank"><code><xsl:catch></code></a> - In conjunction
|
||||
with
|
||||
xsl:try, handles dynamic errors<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-context-item"
|
||||
target="_blank"><code><xsl:context-item></code></a> - Used to
|
||||
declare
|
||||
the initial context item for a template<br></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapsible">
|
||||
<button class="section-button collapseTrigger" style="border: none">Creating result tree</button>
|
||||
<div class="content">
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#creating-attributes"
|
||||
target="_blank"><code><xsl:attribute></code></a> - Adds an attribute<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#attribute-sets"
|
||||
target="_blank"><code><xsl:attribute-set></code></a> - Defines a named set of
|
||||
attributes<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#copying"
|
||||
target="_blank"><code><xsl:copy></code></a> - Creates a copy of the current node
|
||||
(without
|
||||
child nodes and attributes)<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#number"
|
||||
target="_blank"><code><xsl:number></code></a> - Determines the integer position of
|
||||
the
|
||||
current node and formats a number<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#value-of"
|
||||
target="_blank"><code><xsl:value-of></code></a> - Extracts the value of a selected
|
||||
node<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Creating-Text"
|
||||
target="_blank"><code><xsl:text></code></a> - Writes literal text to the output<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Creating-Comments"
|
||||
target="_blank"><code><xsl:comment></code></a> - Creates a comment node in the result
|
||||
tree<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Creating-Processing-Instructions"
|
||||
target="_blank"><code><xsl:processing-instruction></code></a> - Writes a processing
|
||||
instruction to the output<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#key"
|
||||
target="_blank"><code><xsl:key></code></a> -
|
||||
Declares a named key that can be used in the
|
||||
style sheet with the key() function<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#format-number"
|
||||
target="_blank"><code><xsl:decimal-format></code></a> - Defines the characters and
|
||||
symbols to be used when converting numbers into strings, with the format-number() function<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#strip"
|
||||
target="_blank"><code><xsl:preserve-space></code></a> - Defines the elements for
|
||||
which
|
||||
white space should be preserved<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#strip"
|
||||
target="_blank"><code><xsl:strip-space></code></a> - Defines the elements for which
|
||||
white
|
||||
space should be removed<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#sorting"
|
||||
target="_blank"><code><xsl:sort></code></a> - Sorts the output<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#output"
|
||||
target="_blank"><code><xsl:output></code></a> - Defines the format of the output
|
||||
document<br>
|
||||
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-perform-sort"
|
||||
target="_blank"><code><xsl:for-each-group></code></a> - Sorts given
|
||||
sequence<br></span>
|
||||
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-result-document"
|
||||
target="_blank"><code><xsl:result-document></code></a> - Creates a final result
|
||||
tree<br></span>
|
||||
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-character-map"
|
||||
target="_blank"><code><xsl:character-map></code></a> - Allows a specific
|
||||
character
|
||||
appearing in the final result tree to be substituted by a specified string of
|
||||
characters<br></span>
|
||||
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-character-map"
|
||||
target="_blank"><code><xsl:output-character></code></a> - Defines characters and
|
||||
their replacements to be used by character-map<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-merge"
|
||||
target="_blank"><code><xsl:merge></code></a> - Merges two or more pre-sorted
|
||||
input
|
||||
files<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-merge-action"
|
||||
target="_blank"><code><xsl:merge-action></code></a> - Defines action to be
|
||||
carried
|
||||
out on each merged group<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-merge-key"
|
||||
target="_blank"><code><xsl:merge-key></code></a> - Used to define the merge keys
|
||||
on
|
||||
which the input sequences are sorted<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-merge-source"
|
||||
target="_blank"><code><xsl:merge-source></code></a> - Describes the input source
|
||||
for
|
||||
an xsl:merge instruction<br></span>
|
||||
<!-- <span name="collapse2">[v3.0] <a href=" " target="_blank"><code>< ></code></a> - <br></span>
|
||||
<span name="collapse2">[v3.0] <a href=" " target="_blank"><code>< ></code></a> - <br></span>
|
||||
<span name="collapse2">[v3.0] <a href=" " target="_blank"><code>< ></code></a> - <br></span> -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapsible">
|
||||
<button class="section-button collapseTrigger" style="border: none">Stylesheet structure</button>
|
||||
<div class="content">
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#stylesheet-element"
|
||||
target="_blank"><code><xsl:stylesheet></code></a> - Defines the root element of a
|
||||
style
|
||||
sheet<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#stylesheet-element"
|
||||
target="_blank"><code><xsl:transform></code></a> - Defines the root element of a
|
||||
style
|
||||
sheet<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#import"
|
||||
target="_blank"><code><xsl:import></code></a> - Imports the contents of one style
|
||||
sheet
|
||||
into another. Note: An imported style sheet has lower precedence than the importing style
|
||||
sheet<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#include"
|
||||
target="_blank"><code><xsl:include></code></a> - Includes the contents of one style
|
||||
sheet
|
||||
into another. Note: An included style sheet has the same precedence as the including style
|
||||
sheet<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#literal-result-element"
|
||||
target="_blank"><code><xsl:namespace-alias></code></a> - Replaces a namespace in the
|
||||
style sheet to a different namespace in the output<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Creating-Elements-with-xsl:element"
|
||||
target="_blank"><code><xsl:element></code></a> - Creates an element node in the
|
||||
output
|
||||
document<br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapsible">
|
||||
<button class="section-button collapseTrigger" style="border: none">Variables and
|
||||
Parameters</button>
|
||||
<div class="content">
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#variables"
|
||||
target="_blank"><code><xsl:param></code></a> - Declares a local or global
|
||||
parameter<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#variables"
|
||||
target="_blank"><code><xsl:variable></code></a> - Declares a local or global
|
||||
variable<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#section-Passing-Parameters-to-Templates"
|
||||
target="_blank"><code><xsl:with-param></code></a> - Defines the value of a parameter
|
||||
to
|
||||
be passed into a template<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#copy-of"
|
||||
target="_blank"><code><xsl:copy-of></code></a> - Creates a copy of the current node
|
||||
(with
|
||||
child nodes and attributes)<br>
|
||||
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-document"
|
||||
target="_blank"><code><xsl:document></code></a> - Creates a new document
|
||||
node<br></span>
|
||||
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-namespace"
|
||||
target="_blank"><code><xsl:namespace></code></a> - Creates a namespace
|
||||
node<br></span>
|
||||
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-namespace-alias"
|
||||
target="_blank"><code><xsl:namespace-alias></code></a> - Declares that a literal
|
||||
namespace URI is being used as an alias for a target namespace URI<br></span>
|
||||
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-sequence"
|
||||
target="_blank"><code><xsl:sequence></code></a> - Constructs a sequence of nodes
|
||||
and/or atomic values<br></span>
|
||||
</div>
|
||||
</div>
|
||||
<span name="collapse30">
|
||||
<div class="collapsible">
|
||||
<button class="section-button collapseTrigger" style="border: none" name="collapse2">[v2.0]
|
||||
Regular
|
||||
Expressions</button>
|
||||
<div class="content" name="collapse2data">
|
||||
[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-analyze-string"
|
||||
target="_blank"><code><xsl:analyze-string></code></a> - Identifies substrings
|
||||
that
|
||||
match
|
||||
given regex<br>
|
||||
[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-analyze-string"
|
||||
target="_blank"><code><xsl:matching-substring></code></a> - Used in conjunction
|
||||
with
|
||||
analize-string, returns matching substrings<br>
|
||||
[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-analyze-string"
|
||||
target="_blank"><code><xsl:non-matching-substring></code></a> - Used in
|
||||
conjunction
|
||||
with
|
||||
analize-string, returns substrings that didn't match the regex
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
<span name="collapse30">
|
||||
<div class="collapsible">
|
||||
<button class="section-button collapseTrigger" style="border: none" name="collapse2">[v2.0 -
|
||||
3.0]
|
||||
Callable</button>
|
||||
<div class="content" name="collapse2data">
|
||||
<span name="collapse2">[v2.0] <a href="https://www.w3.org/TR/xslt20/#element-function"
|
||||
target="_blank"><code><xsl:function></code></a> - Declares a function that
|
||||
can be
|
||||
called from any XPath expression in the stylesheet<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-evaluate"
|
||||
target="_blank"><code><xsl:evaluate></code></a> - Allows dynamic evaluation
|
||||
of
|
||||
XPath
|
||||
expressions from a string<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-assert"
|
||||
target="_blank"><code><xsl:assert></code></a> - Asserts a XPath expression,
|
||||
optionally throwing a dynamic error<br></span>
|
||||
<!-- <span name="collapse2">[v3.0] <a href=" " target="_blank"><code>< ></code></a> - <br></span> -->
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
<div class="collapsible">
|
||||
<button class="section-button collapseTrigger" style="border: none" style="border: none">Other
|
||||
elements</button>
|
||||
<div class="content">
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#message"
|
||||
target="_blank"><code><xsl:message></code></a> - Writes a message to the output (used
|
||||
to
|
||||
report errors)<br>
|
||||
[v1.0] <a href="https://www.w3.org/TR/xslt-10/#fallback"
|
||||
target="_blank"><code><xsl:fallback></code></a> - Specifies an alternate code to run
|
||||
if
|
||||
the processor does not support an XSLT element<br>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-map"
|
||||
target="_blank"><code><xsl:map></code></a> - Used to construct a new
|
||||
map<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-map-entry"
|
||||
target="_blank"><code><xsl:map-entry></code></a> - Used to construct a singleton
|
||||
map
|
||||
(one key and one value)<br></span>
|
||||
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-expose"
|
||||
target="_blank"><code><xsl:expose></code></a> - Used to modify the visibility of
|
||||
selected components within a package<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-accumulator"
|
||||
target="_blank"><code><xsl:accumulator></code></a> - Defines a rule that is to be
|
||||
applied while the document is being sequentially processed<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-accumulator-rule"
|
||||
target="_blank"><code><xsl:accumulator-rule></code></a> - Defines a rule for an
|
||||
xsl:accumulator<br></span>
|
||||
<span name="collapse2"><b>Streaming: (not usable on this website!)</b></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-source-document"
|
||||
target="_blank"><code><xsl:source-document></code></a> - Initiates streamed or
|
||||
unstreamed processing of a source document<br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-use-package"
|
||||
target="_blank"><code><xsl:use-package></code></a> - <br></span>
|
||||
<span name="collapse2">[v3.0] <a href="http://www.w3.org/TR/xslt-30/#element-where-populated"
|
||||
target="_blank"><code><xsl:where-populated></code></a> - Allows conditional
|
||||
content
|
||||
construction to be made streamable<br></span>
|
||||
<span name="collapse2"><b>Packages: (not usable on this website!)</b></span>
|
||||
<span name="collapse2">[v3.0] <a href="https://www.w3.org/TR/xslt-30/#element-accept"
|
||||
target="_blank"><code><xsl:accept></code></a> - Allows a package to restrict the
|
||||
visibility of components exposed by a package that it uses<br></span>
|
||||
<!-- <span name="collapse2">[v3.0] <a href=" " target="_blank"><code>< ></code></a> - <br></span> -->
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- <script>
|
||||
function getVersion() {
|
||||
return document.getElementById("versions").value;
|
||||
}
|
||||
</script> -->
|
||||
<script>
|
||||
function processTooltip() {
|
||||
console.log("processTooltip");
|
||||
|
||||
|
||||
if (getProcInfo() == "xalan") {
|
||||
document.getElementById("tooltipFunctionInfo").innerText = "XSLT 1.0 functions";
|
||||
document.getElementById("processorTooltipInfo").innerText = "Supports XSLT 1.0";
|
||||
hideList(document.getElementsByName("collapse30"));
|
||||
} else {
|
||||
document.getElementById("tooltipFunctionInfo").innerText = "XSLT 1.0, 2.0 & 3.0 functions";
|
||||
document.getElementById("processorTooltipInfo").innerText = "Supports XSLT up to 3.0";
|
||||
showList(document.getElementsByName("collapse30"));
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
function getProcessor() {
|
||||
return document.getElementById("processors").value;
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
function getVersion() {
|
||||
if (getProcInfo() == "xalan") {
|
||||
return "1.0";
|
||||
} else {
|
||||
return "3.0";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
function getProcInfo() {
|
||||
var processVariables = document.getElementById("processors").value;// + "&version=" + document.getElementById("versions").value;
|
||||
return processVariables;
|
||||
}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var triggerList = document.getElementsByClassName("collapseTrigger");
|
||||
for (i = 0; i < triggerList.length; i++) {
|
||||
console.log("trigger connected");
|
||||
triggerList[i].addEventListener("click", function () {
|
||||
console.log("click");
|
||||
var collapsible = this.parentElement;
|
||||
var collapsibleData = this.nextElementSibling;
|
||||
if (collapsibleData.style.maxHeight > "0px") {
|
||||
collapsibleData.style.maxHeight = "0px";
|
||||
|
||||
this.classList.toggle("active", false);
|
||||
if (!this.classList.contains("collapsibleMini")) {
|
||||
collapsible.classList.toggle("active", false);
|
||||
}
|
||||
|
||||
var subLists1 = collapsibleData.getElementsByClassName("content");
|
||||
var subLists2 = collapsibleData.getElementsByClassName("active");
|
||||
for (j = 0; j < subLists1.length; j++) {
|
||||
subLists1[j].style.maxHeight = "0px";
|
||||
}
|
||||
for (j = 0; j < subLists2.length; j++) {
|
||||
subLists2[j].classList.toggle("active", false);
|
||||
}
|
||||
} else {
|
||||
collapsibleData.style.maxHeight = (collapsibleData.scrollHeight) + "px";
|
||||
|
||||
this.classList.toggle("active", true);
|
||||
if (!this.classList.contains("collapsibleMini")) {
|
||||
collapsible.classList.toggle("active", true);
|
||||
} else {
|
||||
var parentContent = this.closest(".content");
|
||||
parentContent.style.maxHeight = (parentContent.scrollHeight + collapsibleData.scrollHeight) + "px";
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
function init() {
|
||||
//Handle clicks in whole form and set info in tooltip
|
||||
setDefaultContent(document.getElementById("xmlArea"), 'Insert XML here');
|
||||
setDefaultContent(document.getElementById("transformArea"), 'Insert XSLT here');
|
||||
console.log("init");
|
||||
// refreshTooltip();
|
||||
processTooltip();
|
||||
tool.addEventListener('click', event => {
|
||||
//Check if script was called from textarea or selector
|
||||
var targetID = event.target.getAttribute('id');
|
||||
if (targetID !== "processors" && targetID !== "xmlArea" && targetID !== "transformArea" && targetID !== "versions") {
|
||||
return;
|
||||
}
|
||||
|
||||
processTooltip();
|
||||
// console.log("clock");
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,31 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
<!-- <link rel="stylesheet" href="common.css"> -->
|
||||
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="header">
|
||||
<h1 id="logo"><a href="http://release11.com/"><img src="./logo.png" alt="Release11"></a></h1>
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
<div id="toolList">
|
||||
<ul id="toolList">
|
||||
<li id="toolListRow"><a href="http://localhost:8097/" target="iframe">REST Mock</a></li>
|
||||
<li id="toolListRow"><a href="./Frontend/xpath.html" target="iframe">XPath</a></li>
|
||||
<li id="toolListRow"><a href="./Frontend/xslt.html" target="iframe">XSLT</a></li>
|
||||
<li id="toolListRow"><a href="./Frontend/xsd.html" target="iframe">XSD</a></li>
|
||||
</ul>
|
||||
<div id="copyright">Copyright © 2021<br><a href="http://release11.com/">release11 Sp. z o. o.</a></div>
|
||||
</div>
|
||||
<iframe id="frame" name="iframe" src="http://localhost:8097/" frameborder="0"></iframe>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||