This commit is contained in:
Jane 2024-07-16 15:55:31 +08:00
parent 8f4ec86367
commit 29bc31ade5
12411 changed files with 8139339 additions and 0 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,117 @@
Portions of LibreOffice may include work under the Apache License v2.0
requiring this NOTICE file to be provided.
For a more complete license statement please see the associated
documentation
____
Apache OpenOffice (http://www.openoffice.org)
Copyright 2011, 2014 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
____
Portions of this software copyright (c) 2000-2011, Oracle and/or its affiliates <http://www.oracle.com/>.
Portions of this software (C) Copyright IBM Corporation 2003, 2012. All Rights Reserved.
____
As part of the base system this product also includes code from the following
Apache projects:
- Apache Lucene
- Apache Portable Runtime
- Apache Portable Runtime Utility Library
- Apache Jakarta HttpClient - used by MediaWiki Publisher extension
- Apache Tomcat - used by MediaWiki Publisher extension
The notices from these projects are following:
Apache Lucene
Copyright 2006 The Apache Software Foundation
This product includes software developed by
The Apache Software Foundation (http://www.apache.org/).
The snowball stemmers in
contrib/snowball/src/java/net/sf/snowball
were developed by Martin Porter and Richard Boulton.
The full snowball package is available from
http://snowball.tartarus.org/
Apache Portable Runtime
Copyright (c) 2011 The Apache Software Foundation.
This product includes software developed by
The Apache Software Foundation (http://www.apache.org/).
Portions of this software were developed at the National Center
for Supercomputing Applications (NCSA) at the University of
Illinois at Urbana-Champaign.
This software contains code derived from the RSA Data Security
Inc. MD5 Message-Digest Algorithm.
This software contains code derived from UNIX V7, Copyright(C)
Caldera International Inc.
Apache Portable Runtime Utility Library
Copyright (c) 2011 The Apache Software Foundation.
This product includes software developed by
The Apache Software Foundation (http://www.apache.org/).
Portions of this software were developed at the National Center
for Supercomputing Applications (NCSA) at the University of
Illinois at Urbana-Champaign.
This software contains code derived from the RSA Data Security
Inc. MD5 Message-Digest Algorithm, including various
modifications by Spyglass Inc., Carnegie Mellon University, and
Bell Communications Research, Inc (Bellcore).
Apache Tomcat
Copyright 1999-2012 The Apache Software Foundation
This product includes software developed by
The Apache Software Foundation (http://www.apache.org/).
Java Management Extensions (JMX) support is provided by
the MX4J package, which is open source software. The
original software and related information is available
at http://mx4j.sourceforge.net/.
Java compilation software for JSP pages is provided by Eclipse,
which is open source software. The original software and
related information is available at
http://www.eclipse.org/.
____
As part of the base system this product may also includes code from the following
projects which are licensed under the Apache license:
- redland
- Apache BeanShell Scripting for Java
The notices from these projects are following:
redland
This product includes Redland software (http://librdf.org/)
developed at the Institute for Learning and Research Technology,
University of Bristol, UK (http://www.bristol.ac.uk/).
Apache BeanShell Scripting for Java
Copyright 1997-2012 Patrick Niemeyer
Granted to the Apache Software Foundation 2012
Licensed under the Apache License, Version 2.0.
____
This product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit. (http://www.openssl.org/)

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) Microsoft Corporation. All rights reserved. -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<noInheritable/>
<assemblyIdentity
type="win32"
name="Microsoft.VC90.CRT"
version="9.0.21022.8"
processorArchitecture="x86"
publicKeyToken="1fc8b3b9a1e18e3b"
/>
<file name="msvcr90.dll" /> <file name="msvcp90.dll" /> <file name="msvcm90.dll" />
</assembly>

View File

@ -0,0 +1,100 @@
/*
MIT License
Copyright (c) 2016 Edenspiekermann
*/
(function () {
'use strict';
var internalId = 0;
var togglesMap = {};
var targetsMap = {};
function $ (selector, context) {
return Array.prototype.slice.call(
(context || document).querySelectorAll(selector)
);
}
function getClosestToggle (element) {
if (element.closest) {
return element.closest('[data-a11y-toggle]');
}
while (element) {
if (element.nodeType === 1 && element.hasAttribute('data-a11y-toggle')) {
return element;
}
element = element.parentNode;
}
return null;
}
function handleToggle (toggle) {
var target = toggle && targetsMap[toggle.getAttribute('aria-controls')];
if (!target) {
return false;
}
var toggles = togglesMap['#' + target.id];
var isExpanded = target.getAttribute('aria-hidden') === 'false';
target.setAttribute('aria-hidden', isExpanded);
toggles.forEach(function (toggle) {
toggle.setAttribute('aria-expanded', !isExpanded);
});
}
var initA11yToggle = function (context) {
togglesMap = $('[data-a11y-toggle]', context).reduce(function (acc, toggle) {
var selector = '#' + toggle.getAttribute('data-a11y-toggle');
acc[selector] = acc[selector] || [];
acc[selector].push(toggle);
return acc;
}, togglesMap);
var targets = Object.keys(togglesMap);
targets.length && $(targets).forEach(function (target) {
var toggles = togglesMap['#' + target.id];
var isExpanded = target.hasAttribute('data-a11y-toggle-open');
var labelledby = [];
toggles.forEach(function (toggle) {
toggle.id || toggle.setAttribute('id', 'a11y-toggle-' + internalId++);
toggle.setAttribute('aria-controls', target.id);
toggle.setAttribute('aria-expanded', isExpanded);
labelledby.push(toggle.id);
});
target.setAttribute('aria-hidden', !isExpanded);
target.hasAttribute('aria-labelledby') || target.setAttribute('aria-labelledby', labelledby.join(' '));
targetsMap[target.id] = target;
});
};
document.addEventListener('DOMContentLoaded', function () {
initA11yToggle();
});
document.addEventListener('click', function (event) {
var toggle = getClosestToggle(event.target);
handleToggle(toggle);
});
document.addEventListener('keyup', function (event) {
if (event.which === 13 || event.which === 32) {
var toggle = getClosestToggle(event.target);
if (toggle && toggle.getAttribute('role') === 'button') {
handleToggle(toggle);
}
}
});
window && (window.a11yToggle = initA11yToggle);
})();

View File

@ -0,0 +1,994 @@
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
/*
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ LIBREOFFICE HELP IN BROWSER +
+ DEFAULT STYLESHEET +
+ WESTERN LANGUAGES +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
We use px as the unit for navigation elements and fonts because we do
not want them to scale with browser-set font size.
We use rem as the unit for article and footer contents because they
do not break anything related to layout by scaling.
*/
:root {
--font_mono: Menlo, "Cascadia Mono", "Cascadia Code", Consolas, "DejaVu Sans Mono", monospace;
--font_body: Ubuntu, Cantarell, "Segoe UI Variable", "Segoe UI", "Noto Sans", "DejaVu Sans", "Lucida Grande", sans-serif, FreeSerif, NanumGothic, "Noto Sans Tibetan", Taprom;
}
body,
p,
h1,
h2,
h3,
h4,
h5,
h6,
.listitem,
.listitemintable,
.tablecontent {
font-family: var(--font_body);
}
.input {
background-color: rgba(0,0,0,0.04);
transition-property: background-color;
transition-duration: 150ms;
border-bottom: 1px dashed rgba(0,0,0,0.1);
font-family: var(--font_mono);
}
[data-tooltip]{
position:relative;
}
[data-tooltip]::before {
content: "";
position: absolute;
top:-6px;
left:50%;
transform: translateX(-50%);
border-width: 4px 6px 0 6px;
border-style: solid;
border-color: rgba(0,0,0,0.7) transparent transparent transparent;
z-index: 100;
opacity: 0;
pointer-events: none;
}
[data-tooltip]::after {
content: attr(data-tooltip);
position: absolute;
left:50%;
top:-6px;
transform: translateX(-50%) translateY(-100%);
background: rgba(0,0,0,0.7);
text-align: center;
color: #fff;
padding:4px 2px;
font-size: 12px;
min-width: 80px;
border-radius: 5px;
opacity: 0;
pointer-events: none;
}
[data-tooltip]:hover:before, [data-tooltip]:hover:after {
opacity: 1;
pointer-events: auto;
}
body {
background-color: #F7F8F7;
margin: 0;
line-height: normal;
}
::selection {
background: #FFEB9F;
}
a {
text-decoration-color: rgba(0,0,0,0.15);
color: #0461e0;
}
a:hover {
text-decoration: underline;
color: #023a86;
}
a:visited {
color: #633363;
}
pre,
.code,
.codeintable,
.example,
.exampleintable,
.literal,
.literalintable,
.path,
.pathintable {
background-color: rgba(0,0,0,0.04);
border-radius: 2px;
display: inline;
padding: 1px 3px;
font-family: var(--font_mono);
word-wrap: anywhere;
}
.smathcode {
border-radius: 2px;
padding: 1px 3px;
font-family: var(--font_mono);
}
.acronym {
font-weight: bold;
}
.related {
font-weight: bold;
margin-top: 1.67rem;
border-top: 1px solid black;
}
.emph,
.menuitem {
font-weight: bold;
}
.keycode {
font-family: var(--font_mono);
}
.widget{
padding: 1px 10px;
background: #f0f0f0;
background: linear-gradient(to bottom,#f0f0f0,#fcfcfc);
border-radius: 3px;
color: #303030;
border: 1px solid #a0a0a0;
border-bottom-width: 2px;
white-space: nowrap;
}
/* div's for warning, tip and note */
.note,
.tip,
.warning {
display:flex;
align-items: center;
border-radius: 2px;
box-shadow: 0 2px 5px -3px rgb(0 0 0 / 10%);
padding: 0.2em;
margin-top: 15px;
}
.note {
border-left: 2px solid #309048;
background-color: #d9f1dd;
}
.tip {
border-left: 2px solid #0063b1;
background-color: #cde5f7;
}
.warning {
border-left: 2px solid #ed8733;
background-color: #f6f1d2;
}
.noteicon, .notetext {
padding:0.3em;
}
/* Override some Prism.js styles */
code[class*="language-"], pre[class*="language-"] {
white-space: pre-wrap;
}
/* Table related classes */
/* Special case of table with one cell*/
.onecell{
box-shadow: rgba(0,0,0,0.1) 0px 1px 3px 0px;
border-bottom: 1px solid #E8E8E8;
}
/* Special case of icon table*/
.icontable {
display:flex;
align-items:center;
}
.iconcell {
padding:0.3em;
}
table {
background: #FEFEFE;
box-shadow: rgba(0,0,0,0.08) 0 1px 5px 0;
border-collapse: collapse;
}
table, th, td {
border-top: 0;
border-bottom: 1px solid #E8E8E8;
border-left: 0;
border-right: 0;
padding: 0.3em;
}
html[dir=ltr] th {
text-align: left;
}
.tablehead,
.tableheadintable {
font-weight: bold;
margin-top: 0px;
}
.tableheadcell {
color: white;
vertical-align:top;
}
.table_font_small {
font-size: 0.98rem;
}
/* ScriptForge service tables */
.sf_table {
min-width: 100%;
}
.sf_table thead {
display: none;
}
.sf_table tr, .sf_table td {
display: block;
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin-bottom: 0.67rem;
color: #148603;
}
p,
ol,
td {
font-size: 1.15rem;
margin: 2px 0 10px 0;
}
h1 {
font-size: 1.83rem;
font-weight: 300;
border-bottom: 2px solid #148603;
margin-bottom: 1.67rem;
}
h1 a {
text-decoration: none;
}
h2 {
font-size: 1.55rem;
}
h3 {
font-size: 1.33rem;
}
h4,
h5,
h6 {
font-size: 1.17rem;
}
.relatedtopics {
font-weight: normal;
}
.howtoget {
background: #EBE7E9;
border-left: 2px solid #4E4B55;
border-radius: 2px;
box-shadow: 0 2px 5px -3px rgb(0 0 0 / 10%);
padding: 0.2em;
display: flex;
flex-direction: column;
}
.howtogetheader {
background: #FFF;
border-radius: 2px;
box-shadow: 0 2px 2px -2px rgba(0,0,0,0.2);
display: inline-block;
font-weight: bold;
padding: 0.1em 0.3em;
}
.howtogetbody {
padding: 0 0.3em;
}
.samplefilesection{
}
.wide {
width: 100%;
}
.bug {
color: red;
}
.debug {
border: 1px solid black;
padding: 3px;
display: none;
background-color: #222;
color: red;
text-align: left;
}
.sqlcode,
.pycode,
.bascode {
border: solid 5px transparent;
margin-top: 15px;
margin-bottom: 15px;
}
#DisplayArea {
background-color: #FCFCFC;
overflow: auto;
padding: 10px 10px 40px 10px;
grid-area: main;
}
.mediabutton {
background-color: cyan;
}
.mediadiv{
padding-bottom:5%;
height:0;
display:inline-block;
border:none;
}
.screenshot, .genericimage {
border: .5px solid rgba(0,0,0,.1);
border-radius: 3px;
margin-left: auto;
margin-right: auto;
margin-top: 2em;
margin-bottom: 2em;
display:block;
box-shadow: rgba(0,0,0,0.08) 0 1px 5px 0;
}
.iconimage {}
.switch,
.switchinline {}
.embedded {}
#TopLeftHeader {
grid-area: header;
position: sticky;
top: 0px;
color: #fff;
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
z-index: 100;
}
.dropdowns {
/* allow for scrolling */
overflow-x: auto;
overflow-y: hidden;
/* make it smooth on iOS */
-webkit-overflow-scrolling: touch;
grid-area: dropdowns;
display: flex;
justify-content: space-between;
flex-direction: column;
}
.symbol, .logo, .logo:hover, .logo:visited {
color: #fff;
text-decoration: none;
}
.logo p {
font-size: 24px;
}
.symbol {
grid-area: symbol;
padding: 8px 8px 8px 20px;
}
.symbol div {
background-image: url(media/navigation/libo-symbol-white.svg);
background-repeat: no-repeat;
background-size: contain;
width: 52px;
height: 60px;
}
[data-a11y-toggle]:not([aria-controls]) {
display: none;
}
/* You Tube matters */
.youtube_placeholder{
border: 1px solid #eee;
max-width:700px;
padding: 10px;
background-color: #eee;
text-align: center;
}
.youtube_button {
appearance: none;
backface-visibility: hidden;
background-color: #27ae60;
border-radius: 8px;
border-style: none;
box-shadow: rgba(39, 174, 96, .15) 0 4px 9px;
box-sizing: border-box;
color: #fff;
cursor: pointer;
display: inline-block;
font-size: 16px;
font-weight: 600;
letter-spacing: normal;
line-height: 1.5;
outline: none;
overflow: hidden;
padding: 13px 20px;
position: relative;
text-align: center;
text-decoration: none;
transform: translate3d(0, 0, 0);
transition: all .3s;
user-select: none;
-webkit-user-select: none;
touch-action: manipulation;
vertical-align: top;
white-space: nowrap;
}
.youtube_button:hover {
background-color: #1e8449;
opacity: 1;
transform: translateY(0);
transition-duration: .35s;
box-shadow: rgba(39, 174, 96, .2) 0 6px 12px;
}
.youtube_button:active {
transform: translateY(2px);
transition-duration: .35s;
}
#langs-nav:not([aria-hidden='true']), #modules-nav:not([aria-hidden='true']) {
z-index: 100;
/* line them up horizontally */
display: flex;
flex-direction: row;
/* allow for scrolling */
overflow-x: auto;
overflow-y: hidden;
/* make it smooth on iOS */
-webkit-overflow-scrolling: touch;
}
#langs-nav a, #modules-nav a {
color: #fff;
background-color: #233336;
display: block;
line-height: 1.5;
padding: 3px 6px;
text-decoration: none;
font-size: 24px;
flex-shrink: 0;
z-index: 100;
white-space: nowrap;
}
footer {
padding: 30px 20px;
}
footer p {
font-size: 0.98rem;
}
.contents-treeview input[type=checkbox], aside input[type=checkbox] {
/* from .visuallyhidden class of html5-boilerplate */
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
white-space: nowrap;
}
label[for=accordion-1] {
color: #233336;
display: block;
padding: 10px 0 10px 20px;
font-size: 22px;
line-height: .6;
}
label[for=accordion-1]:after {
font-size: 44px;
content:"⌄";
}
aside input[type=checkbox] ~ .contents-treeview {
display: none;
}
aside input[type=checkbox]:checked ~ .contents-treeview {
color: #333;
z-index: 6;
display: block;
margin: 0 20px 0 20px;
}
.index-label {
font-size: 22px;
color: #233336;
padding-left: 20px;
margin: 20px 0 0 0;
}
#Index, .index {
margin-top: 10px;
}
.index {
padding-left: 15px;
}
.index a {
font-size: 15px;
display: block;
}
.index .hidden {
display: none;
}
#Bookmarks {
padding: 0 20px;
}
#Bookmarks p {
font-size: 22px;
font-weight: bold;
color: #148603;
}
#WRITER::before {
content: "Writer";
display: block;
font-size: 22px;
font-weight: bold;
color: #083fa6;
}
#CALC::before {
content: "Calc";
display: block;
font-size: 22px;
font-weight: bold;
color: #007c3c;
}
#IMPRESS::before {
content: "Impress";
display: block;
font-size: 22px;
font-weight: bold;
color: #d0120d;
}
#DRAW::before {
content: "Draw";
display: block;
font-size: 22px;
font-weight: bold;
color: #cb6d30;
}
#BASE::before {
content: "Base";
display: block;
font-size: 22px;
font-weight: bold;
color: #7324a9;
}
#MATH::before {
content: "Math";
display: block;
font-size: 22px;
font-weight: bold;
color: #c10018;
}
#CHART::before {
content: "Chart";
display: block;
font-size: 22px;
font-weight: bold;
color: darkcyan;
}
#BASIC::before {
content: "Basic";
display: block;
font-size: 22px;
font-weight: bold;
color: black;
}
#SHARED::before {
content: "LibreOffice";
display: block;
font-size: 22px;
font-weight: bold;
color: darkslategray;
}
.pagination-container {
text-align: center;
margin-left: -40px; /* The normalizer fails to account for this */
}
.pagination li {
display: inline-block;
padding: 0 5px;
}
.pagination a {
text-decoration: none;
}
li.active {
background-color: #023a86;
}
li.active a {
color: #fff;
}
li.disabled a {
opacity: 0.4;
pointer-events: none;
}
#search-bar, input {
border: 1px solid #CCC;
box-shadow: inset 0 1px 1px rgba(0,0,0,0.1);
box-sizing: border-box;
line-height: 1.5em;
margin-top: 10px;
outline: none;
padding: 0 .25em;
transition: all 0.30s ease-in-out;
}
#search-bar:focus, input:focus {
border: 1px solid #0EA5FB;
}
#search-bar {
width: 100%;
}
#search-bar::placeholder {
font-style: italic;
}
.xapian-donation {
border-top: 2px solid #148603;
background-color: #FCFCFC;
box-shadow: 0 2px 8px 0 rgba(0,0,0,.05);
}
#DonationFrame {
background: #18A303;
position: sticky;
top: 0px;
}
.donation{
border: 1px solid #f1c62a;
border-radius: 2px;
padding: 5px 10px;
margin: auto;
max-width: 200px;
color: #ffffff;
}
.donation:hover {
background: linear-gradient(90deg, #1c71d8 0%, #30c877 100%);
}
.donation a {
color: white;
text-decoration: none;
}
.donation p {
font-size:1rem;
text-align: center;
}
#SearchFrame {
background: #18A303;
top: 0px;
position: sticky;
z-index: 100;
}
.xapian-omega-search {
margin: auto;
}
.modules {
border-bottom: 2px solid #f3f3f3;
background-color: #233336;
z-index: 100;
}
#modules:after, #langs:after {
font-size: 30px;
color: #fff;
content:"⌄";
}
.lang {
background-color: #233336;
}
#langs, #modules {
display: none;
}
#modules-nav div {
background-repeat: no-repeat;
background-size: contain;
float: left;
display: none;
}
.office-icon,
.calc-icon,
.chart-icon,
.writer-icon,
.impress-icon,
.draw-icon,
.math-icon,
.basic-icon,
.base-icon {
width: 21.5px;
height: 26px;
position: relative;
margin-right: 5px;
}
.office-icon {
background-image: url(media/navigation/libo-symbol-black.svg);
}
.calc-icon {
background-image: url(media/navigation/libo-calc.svg);
}
.writer-icon {
background-image: url(media/navigation/libo-writer.svg);
}
.impress-icon {
background-image: url(media/navigation/libo-impress.svg);
}
.draw-icon {
background-image: url(media/navigation/libo-draw.svg);
}
.math-icon {
background-image: url(media/navigation/libo-math.svg);
}
.base-icon {
background-image: url(media/navigation/libo-base.svg);
}
.chart-icon {
background-image: url(media/navigation/libo-chart.svg);
}
.basic-icon {
background-image: url(media/navigation/libo-basic.svg);
}
/* tree view */
.contents-treeview ul,
.contents-treeview li {
padding: 0;
margin: 0;
list-style: none;
font-size: 15px;
}
.contents-treeview {
-moz-user-select: none;
-webkit-user-select: none;
user-select: none;
}
.contents-treeview a, .index a {
text-decoration: none;
line-height: 1.4;
}
.contents-treeview a:hover, .index a:hover {
border-left: 2px solid rgba(0,0,0,0.05);
margin-left: -12px;
padding-left: 10px;
}
.contents-treeview input + label + ul {
margin: 0 0 0 22px;
}
.contents-treeview input ~ ul {
display: none;
}
.contents-treeview label,
.contents-treeview label:before {
cursor: pointer;
color: #111;
}
.contents-treeview input:disabled + label {
cursor: default;
opacity: .6;
}
.contents-treeview input:checked:not(:disabled) ~ ul {
display: block;
}
.contents-treeview label,
.contents-treeview a,
.contents-treeview label::before {
display: block;
vertical-align: middle;
}
.contents-treeview label:before {
content: "⊞";
color: #0461e0;
width: 16px;
margin: 0 5px 0 0;
display: inline-block;
}
.contents-treeview input:checked + label::before {
content: "⊟";
}
.contents-current {
background: rgba(0,0,0,0.1);
border-left: 2px solid #6E7487;
margin-left: -12px;
padding-left: 10px;
}
/* webkit adjacent element selector bugfix */
@media screen and (-webkit-min-device-pixel-ratio: 0) {
.contents-treeview {
-webkit-animation: webkit-adjacent-element-selector-bugfix infinite 1s;
}
@-webkit-keyframes webkit-adjacent-element-selector-bugfix {
from {
padding: 0;
}
to {
padding: 0;
}
}
}
@media screen and (min-width: 960px) {
.dropdowns {
flex-direction: row;
overflow-y: auto;
overflow-x: hidden;
}
#langs-nav, #modules-nav {
display: none;
}
#langs-nav a {
font-size: 19px;
white-space: normal;
}
/* these are buttons, so also reset some default stylings */
#langs, #modules {
cursor: pointer;
color: #fff;
font-size: 19px;
display: block;
background: transparent;
border: none;
text-transform: none;
padding: 0;
line-height: normal;
}
/* change the menu direction to stacked */
#langs-nav:not([aria-hidden='true']), #modules-nav:not([aria-hidden='true']) {
display: flex;
flex-direction: column;
overflow-y: auto;
max-height: 480px;
position: absolute;
}
#modules-nav {
background-color: #101820;
text-align: left;
}
#modules-nav div {
display: block;
}
#modules-nav a {
font-size: 19px;
}
aside {
float: left;
width: 320px;
}
.leftside {
grid-area: leftside;
}
.rightside {
grid-area: rightside;
}
#DonationFrame {
grid-area: donation;
}
#SearchFrame {
grid-area: search;
}
footer {
grid-area: footer;
}
.lang {
background-color: transparent;
}
.modules {
border: none;
background-color: transparent;
}
#DisplayArea {
box-shadow: 0 2px 8px 0 rgba(0,0,0,.05);
padding: 10px 50px 40px 50px;
}
.xapian-omega-search {
width: 100%;
}
.xapian-omega-search form {
display: flex;
justify-content: center;
}
.omega-autofocus {
max-width: 200px;
width: 100%
}
/* ScriptForge service tables */
.sf_table {
min-width: auto;
}
.sf_table thead {
display: table-header-group;
}
.sf_table tr {
display: table-row;
}
.sf_table td {
display: table-cell;
}
}
@media screen and (min-width: 1440px) {
#Contents {
color: #333;
z-index: 6;
display: block;
margin: 0 20px 0 20px;
}
label[for=accordion-1] {
background-color: transparent;
text-decoration: none;
}
label[for=accordion-1]:hover {
background-color: transparent;
}
label[for=accordion-1]:after {
content: "";
}
.omega-autofocus {
max-width: 400px;
}
}
/* Use @supports to sneak these rules past IE */
@supports (grid-area: auto) {
@media screen and (min-width: 960px) {
#TopLeftHeader {
display: grid;
align-items: end;
grid-template-columns: auto auto;
grid-template-rows: auto auto;
grid-template-areas: "symbol logo"
"symbol dropdowns"
}
#SearchFrame {
grid-area: search;
display: flex;
justify-content: space-between;
align-items: center;
}
#DonationFrame {
grid-area: donation;
display: flex;
justify-content: space-between;
align-items: center;
}
body {
display: grid;
grid-template-columns: 320px 100px 300px 1fr;
grid-template-rows: minmax(1em, auto) minmax(1em, auto) 1fr minmax(1em, auto);
grid-template-areas: "header header search donation"
"rightside main main main"
"leftside main main main"
". footer footer footer"
}
html {
scroll-padding-top: 64px;
}
}
@media screen and (min-width: 1440px) {
body {
display: grid;
grid-template-columns: 360px 100px 400px 400px 1fr;
grid-template-rows: 1fr minmax(1em, auto) minmax(1em, auto);
grid-template-areas: "header header search search donation"
"leftside main main main rightside"
". footer footer footer ."
}
.donation {
max-width: 300px;
}
.rightside {
width: auto;
border-right: none;
}
}
}

View File

@ -0,0 +1,963 @@
/**!
* FlexSearch.js v0.7.2 (Debug)
* Copyright 2018-2021 Nextapps GmbH
* Author: Thomas Wilkerling
* Licence: Apache-2.0
* https://github.com/nextapps-de/flexsearch
*/
(function(self){'use strict';
function r(a, b) {
return "undefined" !== typeof a ? a : b;
}
function v(a) {
const b = Array(a);
for (let c = 0; c < a; c++) {
b[c] = w();
}
return b;
}
function w() {
return Object.create(null);
}
function aa(a, b) {
return b.length - a.length;
}
function x(a) {
return "string" === typeof a;
}
function z(a) {
return "object" === typeof a;
}
function D(a) {
return "function" === typeof a;
}
;function ba(a, b, c, d) {
if (a && (b && (a = E(a, b)), this.matcher && (a = E(a, this.matcher)), this.stemmer && 1 < a.length && (a = E(a, this.stemmer)), d && 1 < a.length && (a = F(a)), c || "" === c)) {
a = a.split(c);
if (this.filter) {
b = this.filter;
c = a.length;
d = [];
for (let e = 0, f = 0; e < c; e++) {
const g = a[e];
g && !b[g] && (d[f++] = g);
}
a = d;
}
return a;
}
return a;
}
const ca = /[\p{Z}\p{S}\p{P}\p{C}]+/u, da = /[\u0300-\u036f]/g;
function ea(a, b) {
const c = Object.keys(a), d = c.length, e = [];
let f = "", g = 0;
for (let h = 0, k, m; h < d; h++) {
k = c[h], (m = a[k]) ? (e[g++] = G(b ? "(?!\\b)" + k + "(\\b|_)" : k), e[g++] = m) : f += (f ? "|" : "") + k;
}
f && (e[g++] = G(b ? "(?!\\b)(" + f + ")(\\b|_)" : "(" + f + ")"), e[g] = "");
return e;
}
function E(a, b) {
for (let c = 0, d = b.length; c < d && (a = a.replace(b[c], b[c + 1]), a); c += 2) {
}
return a;
}
function G(a) {
return new RegExp(a, "g");
}
function F(a) {
let b = "", c = "";
for (let d = 0, e = a.length, f; d < e; d++) {
(f = a[d]) !== c && (b += c = f);
}
return b;
}
;var ha = {encode:fa, rtl:!1, tokenize:""};
function fa(a) {
return ba.call(this, a.toLowerCase(), !1, ca, !1);
}
;const ia = {}, I = {};
function ja(a) {
J(a, "add");
J(a, "append");
J(a, "search");
J(a, "update");
J(a, "remove");
}
function J(a, b) {
a[b + "Async"] = function() {
const c = this, d = arguments;
var e = d[d.length - 1];
let f;
D(e) && (f = e, delete d[d.length - 1]);
e = new Promise(function(g) {
setTimeout(function() {
c.async = !0;
const h = c[b].apply(c, d);
c.async = !1;
g(h);
});
});
return f ? (e.then(f), this) : e;
};
}
;function ka(a, b, c, d) {
const e = a.length;
let f = [], g, h, k = 0;
d && (d = []);
for (let m = e - 1; 0 <= m; m--) {
const p = a[m], u = p.length, q = w();
let n = !g;
for (let l = 0; l < u; l++) {
const t = p[l], y = t.length;
if (y) {
for (let C = 0, B, A; C < y; C++) {
if (A = t[C], g) {
if (g[A]) {
if (!m) {
if (c) {
c--;
} else {
if (f[k++] = A, k === b) {
return f;
}
}
}
if (m || d) {
q[A] = 1;
}
n = !0;
}
if (d && (h[A] = (B = h[A]) ? ++B : B = 1, B < e)) {
const H = d[B - 2] || (d[B - 2] = []);
H[H.length] = A;
}
} else {
q[A] = 1;
}
}
}
}
if (d) {
g || (h = q);
} else {
if (!n) {
return [];
}
}
g = q;
}
if (d) {
for (let m = d.length - 1, p, u; 0 <= m; m--) {
p = d[m];
u = p.length;
for (let q = 0, n; q < u; q++) {
if (n = p[q], !g[n]) {
if (c) {
c--;
} else {
if (f[k++] = n, k === b) {
return f;
}
}
g[n] = 1;
}
}
}
}
return f;
}
function la(a, b) {
const c = w(), d = w(), e = [];
for (let f = 0; f < a.length; f++) {
c[a[f]] = 1;
}
for (let f = 0, g; f < b.length; f++) {
g = b[f];
for (let h = 0, k; h < g.length; h++) {
k = g[h], c[k] && !d[k] && (d[k] = 1, e[e.length] = k);
}
}
return e;
}
;function K(a) {
this.limit = !0 !== a && a;
this.cache = w();
this.queue = [];
}
function ma(a, b, c) {
z(a) && (a = a.query);
let d = this.cache.get(a);
d || (d = this.search(a, b, c), this.cache.set(a, d));
return d;
}
K.prototype.set = function(a, b) {
if (!this.cache[a]) {
var c = this.queue.length;
c === this.limit ? delete this.cache[this.queue[c - 1]] : c++;
for (--c; 0 < c; c--) {
this.queue[c] = this.queue[c - 1];
}
this.queue[0] = a;
}
this.cache[a] = b;
};
K.prototype.get = function(a) {
const b = this.cache[a];
if (this.limit && b && (a = this.queue.indexOf(a))) {
const c = this.queue[a - 1];
this.queue[a - 1] = this.queue[a];
this.queue[a] = c;
}
return b;
};
K.prototype.del = function(a) {
for (let b = 0, c, d; b < this.queue.length; b++) {
d = this.queue[b], c = this.cache[d], -1 !== c.indexOf(a) && (this.queue.splice(b--, 1), delete this.cache[d]);
}
};
const na = {memory:{charset:"latin:extra", resolution:3, minlength:4, fastupdate:!1}, performance:{resolution:3, minlength:3, optimize:!1, context:{depth:2, resolution:1}}, match:{charset:"latin:extra", tokenize:"reverse", }, score:{charset:"latin:advanced", resolution:20, minlength:3, context:{depth:3, resolution:9, }}, "default":{}, };
function pa(a, b, c, d, e, f) {
setTimeout(function() {
const g = a(c, JSON.stringify(f));
g && g.then ? g.then(function() {
b.export(a, b, c, d, e + 1);
}) : b.export(a, b, c, d, e + 1);
});
}
;function L(a, b) {
if (!(this instanceof L)) {
return new L(a);
}
var c;
if (a) {
if (x(a)) {
na[a] || console.warn("Preset not found: " + a), a = na[a];
} else {
if (c = a.preset) {
c[c] || console.warn("Preset not found: " + c), a = Object.assign({}, c[c], a);
}
}
c = a.charset;
var d = a.lang;
x(c) && (-1 === c.indexOf(":") && (c += ":default"), c = I[c]);
x(d) && (d = ia[d]);
} else {
a = {};
}
let e, f, g = a.context || {};
this.encode = a.encode || c && c.encode || fa;
this.register = b || w();
this.resolution = e = a.resolution || 9;
this.tokenize = b = c && c.tokenize || a.tokenize || "strict";
this.depth = "strict" === b && g.depth;
this.bidirectional = r(g.bidirectional, !0);
this.optimize = f = r(a.optimize, !0);
this.fastupdate = r(a.fastupdate, !0);
this.minlength = a.minlength || 1;
this.boost = a.boost;
this.map = f ? v(e) : w();
this.resolution_ctx = e = g.resolution || 1;
this.ctx = f ? v(e) : w();
this.rtl = c && c.rtl || a.rtl;
this.matcher = (b = a.matcher || d && d.matcher) && ea(b, !1);
this.stemmer = (b = a.stemmer || d && d.stemmer) && ea(b, !0);
if (c = b = a.filter || d && d.filter) {
c = b;
d = w();
for (let h = 0, k = c.length; h < k; h++) {
d[c[h]] = 1;
}
c = d;
}
this.filter = c;
this.cache = (b = a.cache) && new K(b);
}
L.prototype.append = function(a, b) {
return this.add(a, b, !0);
};
L.prototype.add = function(a, b, c, d) {
if (b && (a || 0 === a)) {
if (!d && !c && this.register[a]) {
return this.update(a, b);
}
b = this.encode(b);
if (d = b.length) {
const m = w(), p = w(), u = this.depth, q = this.resolution;
for (let n = 0; n < d; n++) {
let l = b[this.rtl ? d - 1 - n : n];
var e = l.length;
if (l && e >= this.minlength && (u || !p[l])) {
var f = M(q, d, n), g = "";
switch(this.tokenize) {
case "full":
if (3 < e) {
for (f = 0; f < e; f++) {
for (var h = e; h > f; h--) {
if (h - f >= this.minlength) {
var k = M(q, d, n, e, f);
g = l.substring(f, h);
this.push_index(p, g, k, a, c);
}
}
}
break;
}
case "reverse":
if (2 < e) {
for (h = e - 1; 0 < h; h--) {
g = l[h] + g, g.length >= this.minlength && (k = M(q, d, n, e, h), this.push_index(p, g, k, a, c));
}
g = "";
}
case "forward":
if (1 < e) {
for (h = 0; h < e; h++) {
g += l[h], g.length >= this.minlength && this.push_index(p, g, f, a, c);
}
break;
}
default:
if (this.boost && (f = Math.min(f / this.boost(b, l, n) | 0, q - 1)), this.push_index(p, l, f, a, c), u && 1 < d && n < d - 1) {
for (e = w(), g = this.resolution_ctx, f = l, h = Math.min(u + 1, d - n), e[f] = 1, k = 1; k < h; k++) {
if ((l = b[this.rtl ? d - 1 - n - k : n + k]) && l.length >= this.minlength && !e[l]) {
e[l] = 1;
const t = M(g + (d / 2 > g ? 0 : 1), d, n, h - 1, k - 1), y = this.bidirectional && l > f;
this.push_index(m, y ? f : l, t, a, c, y ? l : f);
}
}
}
}
}
}
this.fastupdate || (this.register[a] = 1);
}
}
return this;
};
function M(a, b, c, d, e) {
return c && 1 < a ? b + (d || 0) <= a ? c + (e || 0) : (a - 1) / (b + (d || 0)) * (c + (e || 0)) + 1 | 0 : 0;
}
L.prototype.push_index = function(a, b, c, d, e, f) {
let g = f ? this.ctx : this.map;
if (!a[b] || f && !a[b][f]) {
this.optimize && (g = g[c]), f ? (a = a[b] || (a[b] = w()), a[f] = 1, g = g[f] || (g[f] = w())) : a[b] = 1, g = g[b] || (g[b] = []), this.optimize || (g = g[c] || (g[c] = [])), e && -1 !== g.indexOf(d) || (g[g.length] = d, this.fastupdate && (a = this.register[d] || (this.register[d] = []), a[a.length] = g));
}
};
L.prototype.search = function(a, b, c) {
c || (!b && z(a) ? (c = a, a = c.query) : z(b) && (c = b));
let d = [], e;
let f, g = 0;
if (c) {
b = c.limit;
g = c.offset || 0;
var h = c.context;
f = c.suggest;
}
if (a && (a = this.encode(a), e = a.length, 1 < e)) {
c = w();
var k = [];
for (let p = 0, u = 0, q; p < e; p++) {
if ((q = a[p]) && q.length >= this.minlength && !c[q]) {
if (this.optimize || f || this.map[q]) {
k[u++] = q, c[q] = 1;
} else {
return d;
}
}
}
a = k;
e = a.length;
}
if (!e) {
return d;
}
b || (b = 100);
h = this.depth && 1 < e && !1 !== h;
c = 0;
let m;
h ? (m = a[0], c = 1) : 1 < e && a.sort(aa);
for (let p, u; c < e; c++) {
u = a[c];
h ? (p = this.add_result(d, f, b, g, 2 === e, u, m), f && !1 === p && d.length || (m = u)) : p = this.add_result(d, f, b, g, 1 === e, u);
if (p) {
return p;
}
if (f && c === e - 1) {
k = d.length;
if (!k) {
if (h) {
h = 0;
c = -1;
continue;
}
return d;
}
if (1 === k) {
return qa(d[0], b, g);
}
}
}
return ka(d, b, g, f);
};
L.prototype.add_result = function(a, b, c, d, e, f, g) {
let h = [], k = g ? this.ctx : this.map;
this.optimize || (k = ra(k, f, g, this.bidirectional));
if (k) {
let m = 0;
const p = Math.min(k.length, g ? this.resolution_ctx : this.resolution);
for (let u = 0, q = 0, n, l; u < p; u++) {
if (n = k[u]) {
if (this.optimize && (n = ra(n, f, g, this.bidirectional)), d && n && e && (l = n.length, l <= d ? (d -= l, n = null) : (n = n.slice(d), d = 0)), n && (h[m++] = n, e && (q += n.length, q >= c))) {
break;
}
}
}
if (m) {
if (e) {
return qa(h, c, 0);
}
a[a.length] = h;
return;
}
}
return !b && h;
};
function qa(a, b, c) {
a = 1 === a.length ? a[0] : [].concat.apply([], a);
return c || a.length > b ? a.slice(c, c + b) : a;
}
function ra(a, b, c, d) {
c ? (d = d && b > c, a = (a = a[d ? b : c]) && a[d ? c : b]) : a = a[b];
return a;
}
L.prototype.contain = function(a) {
return !!this.register[a];
};
L.prototype.update = function(a, b) {
return this.remove(a).add(a, b);
};
L.prototype.remove = function(a, b) {
const c = this.register[a];
if (c) {
if (this.fastupdate) {
for (let d = 0, e; d < c.length; d++) {
e = c[d], e.splice(e.indexOf(a), 1);
}
} else {
N(this.map, a, this.resolution, this.optimize), this.depth && N(this.ctx, a, this.resolution_ctx, this.optimize);
}
b || delete this.register[a];
this.cache && this.cache.del(a);
}
return this;
};
function N(a, b, c, d, e) {
let f = 0;
if (a.constructor === Array) {
if (e) {
b = a.indexOf(b), -1 !== b ? 1 < a.length && (a.splice(b, 1), f++) : f++;
} else {
e = Math.min(a.length, c);
for (let g = 0, h; g < e; g++) {
if (h = a[g]) {
f = N(h, b, c, d, e), d || f || delete a[g];
}
}
}
} else {
for (let g in a) {
(f = N(a[g], b, c, d, e)) || delete a[g];
}
}
return f;
}
L.prototype.searchCache = ma;
L.prototype.export = function(a, b, c, d, e) {
let f, g;
switch(e || (e = 0)) {
case 0:
f = "reg";
if (this.fastupdate) {
g = w();
for (let h in this.register) {
g[h] = 1;
}
} else {
g = this.register;
}
break;
case 1:
f = "cfg";
g = {doc:0, opt:this.optimize ? 1 : 0};
break;
case 2:
f = "map";
g = this.map;
break;
case 3:
f = "ctx";
g = this.ctx;
break;
default:
return;
}
pa(a, b || this, c ? c + "." + f : f, d, e, g);
return !0;
};
L.prototype.import = function(a, b) {
if (b) {
switch(x(b) && (b = JSON.parse(b)), a) {
case "cfg":
this.optimize = !!b.opt;
break;
case "reg":
this.fastupdate = !1;
this.register = b;
break;
case "map":
this.map = b;
break;
case "ctx":
this.ctx = b;
}
}
};
ja(L.prototype);
function sa(a) {
a = a.data;
var b = self._index;
const c = a.args;
var d = a.task;
switch(d) {
case "init":
d = a.options || {};
a = a.factory;
b = d.encode;
d.cache = !1;
b && 0 === b.indexOf("function") && (d.encode = Function("return " + b)());
a ? (Function("return " + a)()(self), self._index = new self.FlexSearch.Index(d), delete self.FlexSearch) : self._index = new L(d);
break;
default:
a = a.id, b = b[d].apply(b, c), postMessage("search" === d ? {id:a, msg:b} : {id:a});
}
}
;let ta = 0;
function O(a) {
if (!(this instanceof O)) {
return new O(a);
}
var b;
a ? D(b = a.encode) && (a.encode = b.toString()) : a = {};
(b = (self || window)._factory) && (b = b.toString());
const c = self.exports, d = this;
this.worker = ua(b, c, a.worker);
this.resolver = w();
if (this.worker) {
if (c) {
this.worker.on("message", function(e) {
d.resolver[e.id](e.msg);
delete d.resolver[e.id];
});
} else {
this.worker.onmessage = function(e) {
e = e.data;
d.resolver[e.id](e.msg);
delete d.resolver[e.id];
};
}
this.worker.postMessage({task:"init", factory:b, options:a});
}
}
Q("add");
Q("append");
Q("search");
Q("update");
Q("remove");
function Q(a) {
O.prototype[a] = O.prototype[a + "Async"] = function() {
const b = this, c = [].slice.call(arguments);
var d = c[c.length - 1];
let e;
D(d) && (e = d, c.splice(c.length - 1, 1));
d = new Promise(function(f) {
setTimeout(function() {
b.resolver[++ta] = f;
b.worker.postMessage({task:a, id:ta, args:c});
});
});
return e ? (d.then(e), this) : d;
};
}
function ua(a, b, c) {
let d;
try {
d = b ? eval('new (require("worker_threads")["Worker"])("../dist/node/node.js")') : a ? new Worker(URL.createObjectURL(new Blob(["onmessage=" + sa.toString()], {type:"text/javascript"}))) : new Worker(x(c) ? c : "worker/worker.js", {type:"module"});
} catch (e) {
}
return d;
}
;function R(a) {
if (!(this instanceof R)) {
return new R(a);
}
var b = a.document || a.doc || a, c;
this.tree = [];
this.field = [];
this.marker = [];
this.register = w();
this.key = (c = b.key || b.id) && S(c, this.marker) || "id";
this.fastupdate = r(a.fastupdate, !0);
this.storetree = (c = b.store) && !0 !== c && [];
this.store = c && w();
this.tag = (c = b.tag) && S(c, this.marker);
this.tagindex = c && w();
this.cache = (c = a.cache) && new K(c);
a.cache = !1;
this.worker = a.worker;
this.async = !1;
c = w();
let d = b.index || b.field || b;
x(d) && (d = [d]);
for (let e = 0, f, g; e < d.length; e++) {
f = d[e], x(f) || (g = f, f = f.field), g = z(g) ? Object.assign({}, a, g) : a, this.worker && (c[f] = new O(g), c[f].worker || (this.worker = !1)), this.worker || (c[f] = new L(g, this.register)), this.tree[e] = S(f, this.marker), this.field[e] = f;
}
if (this.storetree) {
for (a = b.store, x(a) && (a = [a]), b = 0; b < a.length; b++) {
this.storetree[b] = S(a[b], this.marker);
}
}
this.index = c;
}
function S(a, b) {
const c = a.split(":");
let d = 0;
for (let e = 0; e < c.length; e++) {
a = c[e], 0 <= a.indexOf("[]") && (a = a.substring(0, a.length - 2)) && (b[d] = !0), a && (c[d++] = a);
}
d < c.length && (c.length = d);
return 1 < d ? c : c[0];
}
function T(a, b) {
if (x(b)) {
a = a[b];
} else {
for (let c = 0; a && c < b.length; c++) {
a = a[b[c]];
}
}
return a;
}
function U(a, b, c, d, e) {
a = a[e];
if (d === c.length - 1) {
b[e] = a;
} else {
if (a) {
if (a.constructor === Array) {
for (b = b[e] = Array(a.length), e = 0; e < a.length; e++) {
U(a, b, c, d, e);
}
} else {
b = b[e] || (b[e] = w()), e = c[++d], U(a, b, c, d, e);
}
}
}
}
function V(a, b, c, d, e, f, g, h) {
if (a = a[g]) {
if (d === b.length - 1) {
if (a.constructor === Array) {
if (c[d]) {
for (b = 0; b < a.length; b++) {
e.add(f, a[b], !0, !0);
}
return;
}
a = a.join(" ");
}
e.add(f, a, h, !0);
} else {
if (a.constructor === Array) {
for (g = 0; g < a.length; g++) {
V(a, b, c, d, e, f, g, h);
}
} else {
g = b[++d], V(a, b, c, d, e, f, g, h);
}
}
}
}
R.prototype.add = function(a, b, c) {
z(a) && (b = a, a = T(b, this.key));
if (b && (a || 0 === a)) {
if (!c && this.register[a]) {
return this.update(a, b);
}
for (let d = 0, e, f; d < this.field.length; d++) {
f = this.field[d], e = this.tree[d], x(e) && (e = [e]), V(b, e, this.marker, 0, this.index[f], a, e[0], c);
}
if (this.tag) {
let d = T(b, this.tag), e = w();
x(d) && (d = [d]);
for (let f = 0, g, h; f < d.length; f++) {
if (g = d[f], !e[g] && (e[g] = 1, h = this.tagindex[g] || (this.tagindex[g] = []), !c || -1 === h.indexOf(a))) {
if (h[h.length] = a, this.fastupdate) {
const k = this.register[a] || (this.register[a] = []);
k[k.length] = h;
}
}
}
}
if (this.store && (!c || !this.store[a])) {
let d;
if (this.storetree) {
d = w();
for (let e = 0, f; e < this.storetree.length; e++) {
f = this.storetree[e], x(f) ? d[f] = b[f] : U(b, d, f, 0, f[0]);
}
}
this.store[a] = d || b;
}
}
return this;
};
R.prototype.append = function(a, b) {
return this.add(a, b, !0);
};
R.prototype.update = function(a, b) {
return this.remove(a).add(a, b);
};
R.prototype.remove = function(a) {
z(a) && (a = T(a, this.key));
if (this.register[a]) {
for (var b = 0; b < this.field.length && (this.index[this.field[b]].remove(a, !this.worker), !this.fastupdate); b++) {
}
if (this.tag && !this.fastupdate) {
for (let c in this.tagindex) {
b = this.tagindex[c];
const d = b.indexOf(a);
-1 !== d && (1 < b.length ? b.splice(d, 1) : delete this.tagindex[c]);
}
}
this.store && delete this.store[a];
delete this.register[a];
}
return this;
};
R.prototype.search = function(a, b, c, d) {
c || (!b && z(a) ? (c = a, a = c.query) : z(b) && (c = b, b = 0));
let e = [], f = [], g, h, k, m, p, u, q = 0;
if (c) {
if (c.constructor === Array) {
k = c, c = null;
} else {
k = (g = c.pluck) || c.index || c.field;
m = c.tag;
h = this.store && c.enrich;
p = "and" === c.bool;
b = c.limit || 100;
u = c.offset || 0;
if (m && (x(m) && (m = [m]), !a)) {
for (let l = 0, t; l < m.length; l++) {
if (t = va.call(this, m[l], b, u, h)) {
e[e.length] = t, q++;
}
}
return q ? e : [];
}
x(k) && (k = [k]);
}
}
k || (k = this.field);
p = p && (1 < k.length || m && 1 < m.length);
const n = !d && (this.worker || this.async) && [];
for (let l = 0, t, y, C; l < k.length; l++) {
let B;
y = k[l];
x(y) || (B = y, y = y.field);
if (n) {
n[l] = this.index[y].searchAsync(a, b, B || c);
} else {
C = (t = d ? d[l] : this.index[y].search(a, b, B || c)) && t.length;
if (m && C) {
const A = [];
let H = 0;
p && (A[0] = [t]);
for (let W = 0, oa, P; W < m.length; W++) {
if (oa = m[W], C = (P = this.tagindex[oa]) && P.length) {
H++, A[A.length] = p ? [P] : P;
}
}
H && (t = p ? ka(A, b || 100, u || 0) : la(t, A), C = t.length);
}
if (C) {
f[q] = y, e[q++] = t;
} else {
if (p) {
return [];
}
}
}
}
if (n) {
const l = this;
return new Promise(function(t) {
Promise.all(n).then(function(y) {
t(l.search(a, b, c, y));
});
});
}
if (!q) {
return [];
}
if (g && (!h || !this.store)) {
return e[0];
}
for (let l = 0, t; l < f.length; l++) {
t = e[l];
t.length && h && (t = wa.call(this, t));
if (g) {
return t;
}
e[l] = {field:f[l], result:t};
}
return e;
};
function va(a, b, c, d) {
let e = this.tagindex[a], f = e && e.length - c;
if (f && 0 < f) {
if (f > b || c) {
e = e.slice(c, c + b);
}
d && (e = wa.call(this, e));
return {tag:a, result:e};
}
}
function wa(a) {
const b = Array(a.length);
for (let c = 0, d; c < a.length; c++) {
d = a[c], b[c] = {id:d, doc:this.store[d]};
}
return b;
}
R.prototype.contain = function(a) {
return !!this.register[a];
};
R.prototype.get = function(a) {
return this.store[a];
};
R.prototype.set = function(a, b) {
this.store[a] = b;
return this;
};
R.prototype.searchCache = ma;
R.prototype.export = function(a, b, c, d, e) {
e || (e = 0);
d || (d = 0);
if (d < this.field.length) {
const f = this.field[d], g = this.index[f];
b = this;
setTimeout(function() {
g.export(a, b, e ? f.replace(":", "-") : "", d, e++) || (d++, e = 1, b.export(a, b, f, d, e));
});
} else {
let f;
switch(e) {
case 1:
c = "tag";
f = this.tagindex;
break;
case 2:
c = "store";
f = this.store;
break;
default:
return;
}
pa(a, this, c, d, e, f);
}
};
R.prototype.import = function(a, b) {
if (b) {
switch(x(b) && (b = JSON.parse(b)), a) {
case "tag":
this.tagindex = b;
break;
case "reg":
this.fastupdate = !1;
this.register = b;
for (let d = 0, e; d < this.field.length; d++) {
e = this.index[this.field[d]], e.register = b, e.fastupdate = !1;
}
break;
case "store":
this.store = b;
break;
default:
a = a.split(".");
const c = a[0];
a = a[1];
c && a && this.index[c].import(a, b);
}
}
};
ja(R.prototype);
var ya = {encode:xa, rtl:!1, tokenize:""};
const za = G("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"), Aa = G("[\u00e8\u00e9\u00ea\u00eb]"), Ba = G("[\u00ec\u00ed\u00ee\u00ef]"), Ca = G("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"), Da = G("[\u00f9\u00fa\u00fb\u00fc\u0171]"), Ea = G("[\u00fd\u0177\u00ff]"), Fa = G("\u00f1"), Ga = G("[\u00e7c]"), Ha = G("\u00df"), Ia = G(" & "), Ja = [za, "a", Aa, "e", Ba, "i", Ca, "o", Da, "u", Ea, "y", Fa, "n", Ga, "k", Ha, "s", Ia, " and "];
function xa(a) {
var b = a = "" + a;
b.normalize && (b = b.normalize("NFD").replace(da, ""));
return ba.call(this, b.toLowerCase(), !a.normalize && Ja, ca, !1);
}
;var La = {encode:Ka, rtl:!1, tokenize:"strict"};
const Ma = /[^a-z0-9]+/, Na = {b:"p", v:"f", w:"f", z:"s", x:"s", "\u00df":"s", d:"t", n:"m", c:"k", g:"k", j:"k", q:"k", i:"e", y:"e", u:"o"};
function Ka(a) {
a = xa.call(this, a).join(" ");
const b = [];
if (a) {
const c = a.split(Ma), d = c.length;
for (let e = 0, f, g = 0; e < d; e++) {
if ((a = c[e]) && (!this.filter || !this.filter[a])) {
f = a[0];
let h = Na[f] || f, k = h;
for (let m = 1; m < a.length; m++) {
f = a[m];
const p = Na[f] || f;
p && p !== k && (h += p, k = p);
}
b[g++] = h;
}
}
}
return b;
}
;var Pa = {encode:Oa, rtl:!1, tokenize:""};
const Qa = G("ae"), Ra = G("oe"), Sa = G("sh"), Ta = G("th"), Ua = G("ph"), Va = G("pf"), Wa = [Qa, "a", Ra, "o", Sa, "s", Ta, "t", Ua, "f", Va, "f", G("(?![aeo])h(?![aeo])"), "", G("(?!^[aeo])h(?!^[aeo])"), ""];
function Oa(a, b) {
a && (a = Ka.call(this, a).join(" "), 2 < a.length && (a = E(a, Wa)), b || (1 < a.length && (a = F(a)), a && (a = a.split(" "))));
return a;
}
;var Ya = {encode:Xa, rtl:!1, tokenize:""};
const Za = G("(?!\\b)[aeo]");
function Xa(a) {
a && (a = Oa.call(this, a, !0), 1 < a.length && (a = a.replace(Za, "")), 1 < a.length && (a = F(a)), a && (a = a.split(" ")));
return a;
}
;I["latin:default"] = ha;
I["latin:simple"] = ya;
I["latin:balance"] = La;
I["latin:advanced"] = Pa;
I["latin:extra"] = Ya;
const X = self;
let Y;
const Z = {Index:L, Document:R, Worker:O, registerCharset:function(a, b) {
I[a] = b;
}, registerLanguage:function(a, b) {
ia[a] = b;
}};
(Y = X.define) && Y.amd ? Y([], function() {
return Z;
}) : X.exports ? X.exports = Z : X.FlexSearch = Z;
}(this));

View File

@ -0,0 +1,46 @@
<!DOCTYPE html>
<!--
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' 'unsafe-eval' piwik.documentfoundation.org"/>
</head>
<body>
<script type="text/javascript">
function getParameterByName(name, url) {
if (!url) {
url = window.location.href;
}
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)");
var results = regex.exec(url);
if (!results) {
return null;
}
if (!results[2]) {
return '';
}
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
var url = window.location.href;
var n = url.indexOf('?');
if (n != -1) {
// the URL came from LibreOffice help (F1)
var version = getParameterByName("Version", url);
var query = url.substr(n + 1, url.length);
var newURL = version + '/index.html?' + query;
window.location.replace(newURL);
} else {
window.location.replace('latest/index.html');
}
</script>
</body>
</html>

View File

@ -0,0 +1,261 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
// Pagination and bookmark search
var url = window.location.pathname;
var moduleRegex = new RegExp('text\\/(\\w+)\\/');
var regexArray = moduleRegex.exec(url);
var userModule = currentModule();
var modules = ['CALC', 'WRITER', 'IMPRESS', 'DRAW', 'BASE', 'MATH', 'CHART', 'BASIC', 'SHARED'];
var indexEl = document.getElementsByClassName("index")[0];
var fullLinks = fullLinkify(indexEl, bookmarks, modules, userModule);
var search = document.getElementById('search-bar');
search.addEventListener('keyup', debounce(filter, 100, indexEl));
var flexIndex = new FlexSearch.Document({ document: {
// Only the text content gets indexed, the others get stored as-is
index: [{
field: 'text',
tokenize: 'full'
}],
store: ['url','app','text']
}
});
// Populate FlexSearch index
loadSearch();
// Render the unfiltered index list on page load
fillIndex(indexEl, fullLinks, modules);
// Preserve search input value during the session
search.value = sessionStorage.getItem('searchsave');
if (search.value !== undefined) {
filter(indexEl);
}
window.addEventListener('unload', function(event) {
sessionStorage.setItem('searchsave', search.value);
});
function getQuery(q) {
var pattern = new RegExp('[?&]' + q + '=([^&]+)');
var param = window.location.search.match(pattern);
if (param) {
return param[1];
}
return null;
}
function currentModule() {
// We need to know the module that the user is using when they call for help
let module = getQuery('DbPAR');
let moduleFromURL = regexArray[1].toUpperCase();
if (module == null) {
// first deal with snowflake Base
if(url.indexOf('/sdatabase/') !== -1) {
module = 'BASE';
} else {
if (null === regexArray || moduleFromURL === 'SHARED') {
// comes from search or elsewhere, no defined module in URL
module = 'SHARED'
} else {
// drop the 's' from the start
module = moduleFromURL.substring(1);
}
}
}
return module;
};
function fullLinkify(indexEl, bookmarks, modules, currentModule) {
var fullLinkified = '';
// if user is not on a shared category page, limit the index to the current module + shared
if(currentModule !== 'SHARED') {
bookmarks = bookmarks.filter(function(obj) {
return obj['app'] === currentModule || obj['app'] === 'SHARED';
});
}
bookmarks.forEach(function(obj) {
fullLinkified += '<a href="' + obj['url'] + '" class="' + obj['app'] + '" dir="auto">' + obj['text'] + '</a>';
});
return fullLinkified;
}
function loadSearch() {
bookmarks.forEach((el, i) => {
flexIndex.add(i, el);
});
}
function fillIndex(indexEl, content, modules) {
indexEl.innerHTML = content;
var indexKids = indexEl.children;
for (var i = 0, len = indexKids.length; i < len; i++) {
indexKids[i].removeAttribute("id");
}
modules.forEach(function(module) {
var moduleHeader = indexEl.getElementsByClassName(module)[0];
if (typeof moduleHeader !== 'undefined') {
// let's wrap the header in a span, so the ::before element will not become a link
moduleHeader.outerHTML = '<span id="' + module + '" class="' + module + '">' + moduleHeader.outerHTML + '</span>';
}
});
Paginator(indexEl);
}
// filter the index list based on search field input
function filter(indexList) {
let group = [];
let target = search.value.trim();
let filtered = '';
if (target.length < 1) {
fillIndex(indexEl, fullLinks, modules);
return;
}
// Regex for highlighting the match
let regex = new RegExp(target.split(/\s+/).filter((i) => i?.length).join("|"), 'gi');
let results = flexIndex.search(target, { pluck: "text", enrich: true, limit: 1000 });
// Similarly to fullLinkify(), limit search results to the user's current module + shared
// unless they're somehow not coming from a module.
if(userModule !== 'SHARED') {
resultModules = [userModule, 'SHARED'];
} else {
resultModules = modules;
}
// tdf#123506 - Group the filtered list into module groups, keeping the ordering
modules.forEach(function(module) {
group[module] = '';
});
results.forEach(function(result) {
group[result.doc.app] += '<a href="' + result.doc.url + '" class="' + result.doc.app + '">' + result.doc.text.replace(regex, (match) => `<strong>${match}</strong>`) + '</a>';
});
resultModules.forEach(function(module) {
if (group[module].length > 0) {
filtered += group[module];
}
});
fillIndex(indexList, filtered, modules);
};
// delay the rendering of the filtered results while user is typing
function debounce(fn, wait, indexList) {
var timeout;
return function() {
clearTimeout(timeout);
timeout = setTimeout(function() {
fn.call(this, indexList);
}, (wait || 150));
};
}
// copy pycode, sqlcode and bascode to clipboard on mouse click
// Show border when copy is done
divcopyable(document.getElementsByClassName("bascode"));
divcopyable(document.getElementsByClassName("pycode"));
divcopyable(document.getElementsByClassName("sqlcode"));
function divcopyable(itemcopyable){
for (var i = 0, len = itemcopyable.length; i < len; i++) {
(function() {
var item = itemcopyable[i];
function changeBorder(item, color) {
var saveBorder = item.style.border;
item.style.borderColor = color;
setTimeout(function() {
item.style.border = saveBorder;
}, 150);
}
item.onclick = function() {
document.execCommand("copy");
changeBorder(item, "#18A303");
};
item.addEventListener("copy", function(event) {
event.preventDefault();
if (event.clipboardData) {
event.clipboardData.setData("text/plain", item.textContent);
}
});
}());
}
}
// copy useful content to clipboard on mouse click
var copyable = document.getElementsByClassName("input");
for (var i = 0, len = copyable.length; i < len; i++) {
(function() {
var item = copyable[i];
function changeColor(item, color, colorToChangeBackTo) {
item.style.backgroundColor = color;
setTimeout(function() {
item.style.backgroundColor = colorToChangeBackTo;
}, 150);
}
item.onclick = function() {
document.execCommand("copy");
changeColor(item, "#18A303", "transparent");
};
item.addEventListener("copy", function(event) {
event.preventDefault();
if (event.clipboardData) {
event.clipboardData.setData("text/plain", item.textContent);
}
});
}());
}
// auto-expand contents per subitem
var pathname = window.location.pathname;
var pathRegex = /text\/.*\.html$/;
var linkIndex = 0;
var contentMatch = pathname.match(pathRegex);
function linksMatch(content) {
var linkMatch = new RegExp(content);
var links = document.getElementById("Contents").getElementsByTagName("a");
for (var i = 0, len = links.length; i < len; i++) {
if (links[i].href.match(linkMatch)) {
return i;
}
}
}
linkIndex = linksMatch(contentMatch);
if (typeof linkIndex !== "undefined") {
var current = document.getElementById("Contents").getElementsByTagName("a")[linkIndex];
var cItem = current.parentElement;
var parents = [];
while (cItem.parentElement && !cItem.parentElement.matches("#Contents") && parents.indexOf(cItem.parentElement) == -1) {
parents.push(cItem = cItem.parentElement);
}
var liParents = [].filter.call(parents, function(item) {
return item.matches("li");
});
for (var i = 0, len = liParents.length; i < len; i++) {
var input = liParents[i].querySelectorAll(':scope > input');
document.getElementById(input[0].id).checked = true;
}
current.classList.add('contents-current');
}
// close navigation menus when clicking anywhere on the page
// (ignoring menu button clicks and mobile browsing)
document.addEventListener('click', function(event) {
let a11yButton = event.target.getAttribute("data-a11y-toggle");
let vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);
if (!a11yButton && vw >= 960) {
document.querySelectorAll("[data-a11y-toggle] + nav").forEach((el) => {
el.setAttribute("aria-hidden", true);
});
}
});
// YouTube consent click. This only works for a single video.
let youtubePlaceholder = document.querySelector(".youtube_placeholder");
if (youtubePlaceholder) {
youtubePlaceholder.prepend(...document.querySelectorAll(".youtube_consent"));
}
function youtubeLoader(ytId, width, height) {
let iframeMarkup = `<iframe width="${width}" height="${height}" src="https://www.youtube-nocookie.com/embed/${ytId}?version=3" allowfullscreen="true" frameborder="0"></iframe>`;
let placeholder = document.getElementById(ytId);
placeholder.innerHTML = iframeMarkup;
placeholder.removeAttribute("style");
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */

View File

@ -0,0 +1,267 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
// Used to set Application in caseinline=APP
function setApplSpan(spanZ) {
var module = getParameterByName("DbPAR");
if (module === null) {
module = "WRITER";
}
var y = spanZ.getElementsByTagName("SPAN");
var n = y.length;
var foundAppl = false;
for (i = 0; i < n; i++) {
if (y[i].getAttribute("id") === null){
continue;
}
else if( y[i].getAttribute("id").startsWith(module)){
y[i].removeAttribute("hidden");
foundAppl=true;
}
}
for (i = 0; i < n; i++) {
if (y[i].getAttribute("id") === null){
continue;
}
else if( y[i].getAttribute("id").startsWith("default")){
if(!foundAppl){
y[i].removeAttribute("hidden");
}
}
}
}
// Used to set system in case, caseinline=SYSTEM
function setSystemSpan(spanZ) {
// if no System in URL, get browser system
var system = getParameterByName("System");
if (system === null) {
system = getSystem();
}
var y = spanZ.getElementsByTagName("SPAN");
var n = y.length;
var foundSystem = false;
for (i = 0; i < n; i++) {
if (y[i].getAttribute("id") === null){
continue;
}
else if( y[i].getAttribute("id").startsWith(system)){
y[i].removeAttribute("hidden");
foundSystem=true;
}
}
for (i = 0; i < n; i++) {
if (y[i].getAttribute("id") === null){
continue;
}
else if( y[i].getAttribute("id").startsWith("default")){
if(!foundSystem){
y[i].removeAttribute("hidden");
}
}
}
}
// paint headers and headings with appl color
function moduleColor (module) {
switch (module){
case "WRITER" : {color="#083fa6"; break;}
case "CALC" : {color="#007c3c"; break;}
case "CHART" : {color="darkcyan"; break;}
case "IMPRESS": {color="#d0120d"; break;}
case "DRAW" : {color="#cb6d30"; break;}
case "BASE" : {color="#7324a9"; break;}
case "BASIC" : {color="black"; break;}
case "MATH" : {color="#c10018"; break;}
case "SHARED" : {color="darkslategray"; break;}
default : {color="#18A303"; break;}
}
document.getElementById("TopLeftHeader").style.background = color;
document.getElementById("SearchFrame").style.background = color;
document.getElementById("DonationFrame").style.background = color;
var cols = document.getElementsByClassName('tableheadcell');
for(i = 0; i < cols.length; i++) {cols[i].style.backgroundColor = color;};
for (j of [1,2,3,4,5,6]) {
var hh = document.getElementsByTagName("H" + j);
for(i = 0; i < hh.length; i++) {
hh[i].style.color = color;
hh[i].style.borderBottomColor = color;
}
}
}
// Find spans that need the switch treatment and give it to them
var spans = document.querySelectorAll("[class^=switch]");
var n = spans.length;
for (z = 0; z < n; z++) {
var id = spans[z].getAttribute("id");
if (id === null) {
continue;
}
else if (id.startsWith("swlnsys")) {
setSystemSpan(spans[z]);
} else {
setApplSpan(spans[z]);
}
}
/* add &DbPAR= and &System= to the links in DisplayArea div */
/* skip for object files */
function fixURL(module, system) {
if ((DisplayArea = document.getElementById("DisplayArea")) === null) return;
var itemlink = DisplayArea.getElementsByTagName("a");
var pSystem = (system === null) ? getSystem() : system;
var pAppl = (module === null) ? "SHARED" : module;
var n = itemlink.length;
for (var i = 0; i < n; i++) {
if (itemlink[i].getAttribute("class") != "objectfiles") {
setURLParam(itemlink[i], pSystem, pAppl);
}
}
}
//Set the params inside URL
function setURLParam(itemlink, pSystem, pAppl) {
var href = itemlink.getAttribute("href");
if (href !== null) {
// skip external links
if (!href.startsWith("http")) {
// handle bookmark.
if (href.lastIndexOf('#') != -1) {
var postf = href.substring(href.lastIndexOf('#'), href.length);
var pref = href.substring(0, href.lastIndexOf('#'));
itemlink.setAttribute("href", pref + "?" + '&DbPAR=' + pAppl + '&System=' + pSystem + postf);
} else {
itemlink.setAttribute("href", href + "?" + '&DbPAR=' + pAppl + '&System=' + pSystem);
}
}
}
}
function getSystem() {
var system = "Unknown OS";
if (navigator.appVersion.indexOf("Win") != -1) system = "WIN";
if (navigator.appVersion.indexOf("Mac") != -1) system = "MAC";
if (navigator.appVersion.indexOf("X11") != -1) system = "UNIX";
if (navigator.appVersion.indexOf("Linux") != -1) system = "UNIX";
return system;
}
function getParameterByName(name, url) {
if (!url) {
url = window.location.href;
}
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)");
var results = regex.exec(url);
if (!results) {
return null;
}
if (!results[2]) {
return '';
}
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
function existingLang(lang) {
if (lang === undefined) {
return 'en-US';
}
if (languagesSet.has(lang)) {
return lang;
}
lang = lang.replace(/[-_].*/, '');
if (languagesSet.has(lang)) {
return lang;
}
return 'en-US';
}
function setupModules(lang) {
var modulesNav = document.getElementById('modules-nav');
if (!modulesNav.classList.contains('loaded')) {
var html =
'<a href="' + lang + '/text/shared/05/new_help.html?DbPAR=SHARED"><div class="office-icon"></div>LibreOffice</a>' +
'<a href="' + lang + '/text/swriter/main0000.html?DbPAR=WRITER"><div class="writer-icon"></div>Writer</a>' +
'<a href="' + lang + '/text/scalc/main0000.html?DbPAR=CALC"><div class="calc-icon"></div>Calc</a>' +
'<a href="' + lang + '/text/simpress/main0000.html?DbPAR=IMPRESS"><div class="impress-icon"></div>Impress</a>' +
'<a href="' + lang + '/text/sdraw/main0000.html?DbPAR=DRAW"><div class="draw-icon"></div>Draw</a>' +
'<a href="' + lang + '/text/sdatabase/main.html?DbPAR=BASE"><div class="base-icon"></div>Base</a>' +
'<a href="' + lang + '/text/smath/main0000.html?DbPAR=MATH"><div class="math-icon"></div>Math</a>' +
'<a href="' + lang + '/text/schart/main0000.html?DbPAR=CHART"><div class="chart-icon"></div>Chart</a>' +
'<a href="' + lang + '/text/sbasic/shared/main0601.html?DbPAR=BASIC"><div class="basic-icon"></div>Basic</a>';
modulesNav.innerHTML = html;
modulesNav.classList.add('loaded');
}
}
function setupLanguages(page) {
var langNav = document.getElementById('langs-nav');
if (!langNav.classList.contains('loaded')) {
var html = '';
languagesSet.forEach(function(lang) {
html += '<a href="' + lang + page + '">' + ((lang in languageNames)? languageNames[lang]: lang) + '</a>';
});
langNav.innerHTML = html;
langNav.classList.add('loaded');
}
}
// Test, if we are online
if (document.body.getElementsByTagName('meta')) {
var _paq = _paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//piwik.documentfoundation.org/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', '68']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
var system = getParameterByName("System");
} else {
var system = getSystem();
}
var module = getParameterByName("DbPAR");
fixURL(module,system);
moduleColor(module);
var helpID = getParameterByName("HID");
// only used in xhp pages with <help-id-missing/> tags
var missingElement = document.getElementById("bm_HID2");
if(missingElement != null){missingElement.innerHTML = helpID;}
function debugInfo(dbg) {
if (dbg == null) return;
document.getElementById("DEBUG").style.display = "block";
document.getElementById("bm_module").innerHTML = "Module is: "+module;
document.getElementById("bm_system").innerHTML = "System is: "+system;
document.getElementById("bm_HID").innerHTML = "HID is: "+helpID;
}
debugInfo(getParameterByName("Debug"));
// Mobile devices need the modules and langs on page load
if (Math.max(document.documentElement.clientWidth, window.innerWidth || 0) < 960) {
var e = new Event('click');
var modulesBtn = document.getElementById('modules');
var langsBtn = document.getElementById('langs');
var modules = document.getElementById('modules-nav');
var langs = document.getElementById('langs-nav');
modules.setAttribute('data-a11y-toggle-open', '');
modulesBtn.dispatchEvent(e);
if (langs) {
langs.setAttribute('data-a11y-toggle-open', '');
langsBtn.dispatchEvent(e);
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,51 @@
<!--
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
-->
<xsl:stylesheet version="1.0" encoding="UTF-8"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:office="http://openoffice.org/2000/office"
xmlns:style="http://openoffice.org/2000/style"
xmlns:table="http://openoffice.org/2000/table"
xmlns:draw="http://openoffice.org/2000/drawing"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="http://openoffice.org/2000/meta"
xmlns:number="http://openoffice.org/2000/datastyle"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:chart="http://openoffice.org/2000/chart"
xmlns:help="http://openoffice.org/2000/help"
xmlns:index="http://sun.com/2000/XMLSearch"
xmlns:text="http://openoffice.org/2000/text">
<xsl:param name="Language" select="'en-US'"/>
<xsl:output method="text" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:apply-templates select="//title" mode="include"/>
<xsl:apply-templates select="//paragraph[@role='heading']" mode="include"/>
</xsl:template>
<xsl:template match="*" mode="include">
<xsl:value-of select="."/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="*"/>
</xsl:stylesheet>

View File

@ -0,0 +1,131 @@
<!--
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
-->
<xsl:stylesheet version="1.0" encoding="UTF-8"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:office="http://openoffice.org/2000/office"
xmlns:style="http://openoffice.org/2000/style"
xmlns:table="http://openoffice.org/2000/table"
xmlns:draw="http://openoffice.org/2000/drawing"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="http://openoffice.org/2000/meta"
xmlns:number="http://openoffice.org/2000/datastyle"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:chart="http://openoffice.org/2000/chart"
xmlns:help="http://openoffice.org/2000/help"
xmlns:index="http://sun.com/2000/XMLSearch"
xmlns:text="http://openoffice.org/2000/text">
<xsl:param name="Language" select="'en-US'"/>
<xsl:output method="text" encoding="UTF-8"/>
<xsl:template match="helpdocument|body">
<xsl:choose>
<xsl:when test="meta/topic[@indexer='exclude']"/>
<xsl:otherwise>
<xsl:apply-templates/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="title">
<xsl:value-of select="."/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="table">
<xsl:apply-templates/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="tablecell">
<xsl:apply-templates/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="tablerow">
<xsl:apply-templates/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="list">
<xsl:apply-templates/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="listitem">
<xsl:apply-templates/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="item">
<xsl:apply-templates/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="emph">
<xsl:apply-templates/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="sub">
<xsl:apply-templates/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="sup">
<xsl:apply-templates/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="paragraph">
<xsl:value-of select="."/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="section">
<xsl:apply-templates/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="bookmark">
<xsl:apply-templates/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="bookmark_value">
<xsl:apply-templates/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="link">
<xsl:apply-templates/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="ahelp[@visibility='visible']">
<xsl:value-of select="."/>
<xsl:text>&#xA;</xsl:text>
</xsl:template>
<xsl:template match="*"/>
</xsl:stylesheet>

View File

@ -0,0 +1,74 @@
<!DOCTYPE html>
<!--
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' 'unsafe-eval' piwik.documentfoundation.org"/>
<script type="text/javascript" src="polyfills.js"></script>
<script type="text/javascript" src="hid2file.js"></script>
<script type="text/javascript" src="languages.js"></script>
<script type="text/javascript" src="help2.js" defer></script>
</head>
<body>
<script type="text/javascript">
// We have to wait until both the deferred help2.js and the document have loaded
window.addEventListener('DOMContentLoaded', function() {
var url = window.location.href;
var n = url.indexOf('index.html?');
if (n != -1) {
// the URL came from LibreOffice help (F1)
var target = getParameterByName("Target",url);
var lang = existingLang(getParameterByName("Language", url));
var system = getParameterByName("System", url);
var module;
var defaultFile;
var smodule = target.substr(0, target.indexOf('/'));
switch (smodule) {
case "swriter": {defaultFile='text/swriter/main0000.html';module="WRITER";break;}
case "scalc": {defaultFile='text/scalc/main0000.html';module="CALC";break;}
case "schart": {defaultFile='text/schart/main0000.html';module="CHART";break;}
case "simpress": {defaultFile='text/simpress/main0000.html';module="IMPRESS";break;}
case "sdraw": {defaultFile='text/sdraw/main0000.html';module="DRAW";break;}
case "smath": {defaultFile='text/smath/main0000.html';module="MATH";break;}
case "sdatabase": {defaultFile='text/sdatabase/main.html';module="BASE";break;}
case "sbasic": {defaultFile='text/sbasic/shared/main0601.html';module="BASIC";break;}
default: {defaultFile='text/shared/05/new_help.html';module="SHARED";break;}
}
//Special case of application F1 or menu Help -> LibreOffice Help
if (target.indexOf('.uno:HelpIndex') != -1) {
window.location.replace(lang + '/' + defaultFile + '?System=' + system + '&DbPAR=' + module);
}
var bookmark = target.slice(target.indexOf('/') + 1, target.length);
var file = hid2fileMap[bookmark];
// check first if a root bookmark @@nowidget@@ can be used
if (file === undefined) {
var b2 = bookmark.substring(0, bookmark.lastIndexOf("/")) + '/@@nowidget@@';
file = hid2fileMap[b2];
}
// rebuild URL
if (file === undefined) {
var newURL = lang + '/text/shared/05/err_html.html?System=' + system + '&DbPAR=' + module + '&HID=' + bookmark ;
} else {
var indx = file.indexOf('#');
var bm = file.substr(indx,file.length);
file = file.substr(0,indx);
var newURL = lang + '/' + file + '?System=' + system + '&DbPAR=' + module + '&HID=' + bookmark + bm;
}
window.location.replace(newURL);
} else {
// URL came from elsewhere, direct access to webroot, we redirect to main Help page
var system = 'WIN';
if (navigator.userAgent.indexOf("Mac") != -1) system = 'MAC';
if (navigator.userAgent.indexOf("Linux") != -1) system = 'UNIX';
window.location.replace(existingLang(navigator.language) + '/text/shared/05/new_help.html?&DbPAR=SHARED&System=' + system);
}
});
</script>
</body>
</html>

View File

@ -0,0 +1 @@
var languagesSet = new Set(['en-US', 'am', 'ar', 'ast', 'bg', 'bn', 'bn-IN', 'bo', 'bs', 'ca', 'ca-valencia', 'cs', 'da', 'de', 'dsb', 'dz', 'el', 'en-GB', 'en-ZA', 'eo', 'es', 'et', 'eu', 'fi', 'fr', 'gl', 'gu', 'he', 'hsb', 'hi', 'hr', 'hu', 'id', 'is', 'it', 'ja', 'ka', 'km', 'ko', 'lo', 'lt', 'lv', 'mk', 'nb', 'ne', 'nl', 'nn', 'om', 'pl', 'pt', 'pt-BR', 'ro', 'ru', 'si', 'sid', 'sk', 'sl', 'sq', 'sv', 'ta', 'tg', 'tr', 'ug', 'uk', 'vi', 'zh-CN', 'zh-TW']);

View File

@ -0,0 +1,933 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--***********************************************************************
This is the main transformation style sheet for transforming.
For use with LibreOffice 4.0+
=========================================================================
Changes Log
May 24 2004 Created
Aug 24 2004 Fixed for help2 CWS
Aug 27 2004 Added css link, fixed missing embed-mode for variable
Removed width/height for images
Sep 03 2004 Modularized xsl, added some embedded modes
Oct 08 2004 Fixed bug wrong mode "embedded" for links
Added embedded modes for embed and embedvar (for cascaded embeds)
Added <p> tags around falsely embedded pars and vars
Dec 08 2004 #i38483#, fixed wrong handling of web links
#i37377#, fixed missing usage of Database parameter for switching
Jan 04 2005 #i38905#, fixed buggy branding replacement template
Mar 17 2005 #i43972#, added language info to image URL, evaluate Language parameter
evaluate new localize attribute in images
May 10 2005 #i48785#, fixed wrong setting of distrib variable
Aug 16 2005 workaround for #i53365#
Aug 19 2005 fixed missing list processing in embedded sections
Aug 19 2005 #i53535#, fixed wrong handling of Database parameter
Oct 17 2006 #i70462#, disabled sorting to avoid output of error messages to console
Jun 15 2009 #i101799#, fixed wrong handling of http URLs with anchors
***********************************************************************//-->
<!--
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="html"/>
<!--
############################
# Variables and Parameters #
############################
//-->
<!-- General Usage -->
<xsl:variable name="am" select="'&amp;'"/>
<xsl:variable name="sl" select="'/'"/>
<xsl:variable name="qt" select="'&quot;'"/>
<!-- generic Icon alt text -->
<xsl:variable name="alttext" select="'text/shared/00/icon_alt.xhp'"/>
<!-- For calculating pixel sizes -->
<xsl:variable name="dpi" select="'96'"/>
<xsl:variable name="dpcm" select="'38'"/>
<!-- Product brand variables used in the help files -->
<xsl:variable name="brand1" select="'$[officename]'"/>
<xsl:variable name="brand2" select="'$[officeversion]'"/>
<xsl:variable name="brand3" select="'%PRODUCTNAME'"/>
<xsl:variable name="brand4" select="'%PRODUCTVERSION'"/>
<!-- meta data variables from the help file -->
<xsl:variable name="filename" select="/helpdocument/meta/topic/filename"/>
<xsl:variable name="title" select="/helpdocument/meta/topic/title"/>
<!-- Module and the corresponding switching values-->
<xsl:param name="Database" select="'swriter'"/>
<xsl:variable name="module" select="$Database"/>
<xsl:variable name="appl">
<xsl:choose>
<xsl:when test="$module = 'swriter'"><xsl:value-of select="'WRITER'"/></xsl:when>
<xsl:when test="$module = 'scalc'"><xsl:value-of select="'CALC'"/></xsl:when>
<xsl:when test="$module = 'sdraw'"><xsl:value-of select="'DRAW'"/></xsl:when>
<xsl:when test="$module = 'simpress'"><xsl:value-of select="'IMPRESS'"/></xsl:when>
<xsl:when test="$module = 'schart'"><xsl:value-of select="'CHART'"/></xsl:when>
<xsl:when test="$module = 'sbasic'"><xsl:value-of select="'BASIC'"/></xsl:when>
<xsl:when test="$module = 'smath'"><xsl:value-of select="'MATH'"/></xsl:when>
</xsl:choose>
</xsl:variable>
<!-- the other parameters given by the help caller -->
<xsl:param name="System" select="'WIN'"/>
<xsl:param name="productname" select="'Office'"/>
<xsl:param name="productversion" select="''"/>
<xsl:variable name="pversion">
<xsl:value-of select="translate($productversion,' ','')"/>
</xsl:variable>
<!-- this is were the images are -->
<xsl:param name="imgtheme" select="''"/>
<xsl:param name="Id" />
<xsl:param name="Language" select="'en-US'"/>
<xsl:variable name="lang" select="$Language"/>
<xsl:param name="ExtensionId" select="''"/>
<xsl:param name="ExtensionPath" select="''"/>
<!-- parts of help and image urls -->
<xsl:variable name="help_url_prefix" select="'vnd.sun.star.help://'"/>
<xsl:variable name="img_url_prefix" select="concat('vnd.libreoffice.image://',$imgtheme,'/')"/>
<xsl:variable name="img_url_internal" select="'vnd.libreoffice.image://helpimg/'"/>
<xsl:variable name="urlpost" select="concat('?Language=',$lang,$am,'System=',$System,$am,'UseDB=no')"/>
<xsl:variable name="urlpre" select="$help_url_prefix" />
<xsl:variable name="linkprefix" select="$urlpre"/>
<xsl:variable name="linkpostfix" select="$urlpost"/>
<xsl:variable name="css" select="'default.css'"/>
<!-- images for notes, tips and warnings -->
<xsl:variable name="note_img" select="concat($img_url_internal,'media/helpimg/note.png')"/>
<xsl:variable name="tip_img" select="concat($img_url_internal,'media/helpimg/tip.png')"/>
<xsl:variable name="warning_img" select="concat($img_url_internal,'media/helpimg/warning.png')"/>
<!--
#############
# Templates #
#############
//-->
<!-- Create the document skeleton -->
<xsl:template match="/">
<xsl:variable name="csslink" select="concat($urlpre,'/',$urlpost)"/>
<html>
<head>
<title><xsl:value-of select="$title"/></title>
<link href="{$csslink}" rel="Stylesheet" type="text/css" /> <!-- stylesheet link -->
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
</head>
<body lang="{$lang}">
<xsl:apply-templates select="/helpdocument/body"/>
</body>
</html>
</xsl:template>
<!-- AHELP -->
<xsl:template match="ahelp">
<xsl:if test="not(@visibility='hidden')"><span class="avis"><xsl:apply-templates /></span></xsl:if>
</xsl:template>
<!-- ALT -->
<xsl:template match="alt"/>
<!-- BOOKMARK -->
<xsl:template match="bookmark">
<a name="{@id}"></a>
<xsl:choose>
<xsl:when test="starts-with(@branch,'hid')" />
<xsl:otherwise><xsl:apply-templates /></xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="bookmark" mode="embedded" />
<!-- BOOKMARK_VALUE -->
<xsl:template match="bookmark_value" />
<!-- BR -->
<xsl:template match="br"><br /></xsl:template>
<!-- CAPTION -->
<xsl:template match="caption" />
<!-- CASE -->
<xsl:template match="case"><xsl:call-template name="insertcase" /></xsl:template>
<xsl:template match="case" mode="embedded">
<xsl:call-template name="insertcase">
<xsl:with-param name="embedded" select="'yes'"/>
</xsl:call-template>
</xsl:template>
<!-- CASEINLINE -->
<xsl:template match="caseinline"><xsl:call-template name="insertcase" /></xsl:template>
<xsl:template match="caseinline" mode="embedded">
<xsl:call-template name="insertcase">
<xsl:with-param name="embedded" select="'yes'"/>
</xsl:call-template>
</xsl:template>
<!-- COMMENT -->
<xsl:template match="comment" />
<xsl:template match="comment" mode="embedded"/>
<!-- CREATED -->
<xsl:template match="created" />
<!-- DEFAULT -->
<xsl:template match="default"><xsl:call-template name="insertdefault" /></xsl:template>
<xsl:template match="default" mode="embedded">
<xsl:call-template name="insertdefault">
<xsl:with-param name="embedded" select="'yes'"/>
</xsl:call-template>
</xsl:template>
<!-- DEFAULTINLINE -->
<xsl:template match="defaultinline"><xsl:call-template name="insertdefault" /></xsl:template>
<xsl:template match="defaultinline" mode="embedded">
<xsl:call-template name="insertdefault">
<xsl:with-param name="embedded" select="'yes'"/>
</xsl:call-template>
</xsl:template>
<!-- EMBED -->
<xsl:template match="embed"><xsl:call-template name="resolveembed"/></xsl:template>
<xsl:template match="embed" mode="embedded"><xsl:call-template name="resolveembed"/></xsl:template>
<!-- EMBEDVAR -->
<xsl:template match="embedvar"><xsl:call-template name="resolveembedvar"/></xsl:template>
<xsl:template match="embedvar" mode="embedded"><xsl:call-template name="resolveembedvar"/></xsl:template>
<!-- EMPH -->
<xsl:template match="emph">
<span class="emph"><xsl:apply-templates /></span>
</xsl:template>
<xsl:template match="emph" mode="embedded">
<span class="emph"><xsl:apply-templates /></span>
</xsl:template>
<!-- SUB -->
<xsl:template match="sub">
<sub><xsl:apply-templates /></sub>
</xsl:template>
<xsl:template match="sub" mode="embedded">
<sub><xsl:apply-templates /></sub>
</xsl:template>
<!-- SUP -->
<xsl:template match="sup">
<sup><xsl:apply-templates /></sup>
</xsl:template>
<xsl:template match="sup" mode="embedded">
<sup><xsl:apply-templates /></sup>
</xsl:template>
<!-- FILENAME -->
<xsl:template match="filename" />
<!-- HISTORY -->
<xsl:template match="history" />
<!-- IMAGE -->
<xsl:template match="image"><xsl:call-template name="insertimage"/></xsl:template>
<xsl:template match="image" mode="embedded"><xsl:call-template name="insertimage"/></xsl:template>
<!-- ITEM -->
<xsl:template match="item"><span class="{@type}"><xsl:apply-templates /></span></xsl:template>
<xsl:template match="item" mode="embedded"><span class="{@type}"><xsl:apply-templates /></span></xsl:template>
<!-- LINK -->
<xsl:template match="link">
<xsl:choose> <!-- don't insert the heading link to itself -->
<xsl:when test="(concat('/',@href) = /helpdocument/meta/topic/filename) or (@href = /helpdocument/meta/topic/filename)">
<xsl:apply-templates />
</xsl:when>
<xsl:when test="contains(child::embedvar/@href,'/00/00000004.xhp#wie')"> <!-- special treatment of howtoget links -->
<xsl:call-template name="insert_howtoget">
<xsl:with-param name="linkhref" select="@href"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="createlink" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="link" mode="embedded">
<xsl:call-template name="createlink"/>
</xsl:template>
<!-- LIST -->
<xsl:template match="list">
<xsl:choose>
<xsl:when test="@type='ordered'">
<ol>
<xsl:if test="@startwith">
<xsl:attribute name="start"><xsl:value-of select="@startwith"/></xsl:attribute>
</xsl:if>
<xsl:apply-templates />
</ol>
</xsl:when>
<xsl:otherwise>
<ul><xsl:apply-templates /></ul>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="list" mode="embedded">
<xsl:choose>
<xsl:when test="@type='ordered'">
<ol>
<xsl:if test="@startwith">
<xsl:attribute name="start"><xsl:value-of select="@startwith"/></xsl:attribute>
</xsl:if>
<xsl:apply-templates mode="embedded"/>
</ol>
</xsl:when>
<xsl:otherwise>
<ul><xsl:apply-templates mode="embedded"/></ul>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- LISTITEM -->
<xsl:template match="listitem">
<li><xsl:apply-templates /></li>
</xsl:template>
<xsl:template match="listitem" mode="embedded">
<li><xsl:apply-templates mode="embedded"/></li>
</xsl:template>
<!-- META, SEE HEADER -->
<xsl:template match="meta" />
<!-- OBJECT (UNUSED) -->
<xsl:template match="object" />
<!-- PARAGRAPH -->
<xsl:template match="paragraph">
<xsl:choose>
<xsl:when test="@role='heading'">
<xsl:call-template name="insertheading">
<xsl:with-param name="level" select="@level"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains(' note warning tip ',@role)">
<xsl:call-template name="insertnote">
<xsl:with-param name="type" select="@role" />
</xsl:call-template>
</xsl:when>
<xsl:when test="contains(descendant::embedvar/@href,'/00/00000004.xhp#wie')"> <!-- special treatment of howtoget links -->
<xsl:apply-templates />
</xsl:when>
<xsl:when test="@role='bascode'">
<xsl:call-template name="insertbascode" />
</xsl:when>
<xsl:when test="@role='logocode'">
<xsl:call-template name="insertlogocode" />
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="insertpara" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="paragraph" mode="embedded">
<xsl:choose>
<xsl:when test="@role='heading'"> <!-- increase the level of headings that are embedded -->
<!--
The internal sablotron processor does not seem to support the number function.
Therefore, we need a workaround for
<xsl:variable name="level"><xsl:value-of select="number(@level)+1"/></xsl:variable>
-->
<xsl:variable name="newlevel">
<xsl:choose>
<xsl:when test="@level='1'"><xsl:value-of select="'2'"/></xsl:when>
<xsl:when test="@level='2'"><xsl:value-of select="'2'"/></xsl:when>
<xsl:when test="@level='3'"><xsl:value-of select="'3'"/></xsl:when>
<xsl:when test="@level='4'"><xsl:value-of select="'4'"/></xsl:when>
<xsl:when test="@level='5'"><xsl:value-of select="'5'"/></xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:call-template name="insertheading">
<xsl:with-param name="level" select="$newlevel"/>
<xsl:with-param name="embedded" select="'yes'"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains(' note warning tip ',@role)">
<xsl:call-template name="insertnote">
<xsl:with-param name="type" select="@role" />
</xsl:call-template>
</xsl:when>
<xsl:when test="contains(descendant::embedvar/@href,'/00/00000004.xhp#wie')"> <!-- special treatment of howtoget links -->
<xsl:apply-templates />
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="insertpara" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- SECTION -->
<xsl:template match="section">
<a name="{@id}"></a>
<xsl:choose>
<xsl:when test="@id='relatedtopics'">
<div class="relatedtopics">
<xsl:variable name="href"><xsl:value-of select="concat($urlpre,'shared/text/shared/00/00000004.xhp',$urlpost)"/></xsl:variable>
<xsl:variable name="anchor"><xsl:value-of select="'related'"/></xsl:variable>
<xsl:variable name="doc" select="document($href)"/>
<p class="related">
<xsl:apply-templates select="$doc//variable[@id=$anchor]"/>
</p>
<div class="relatedbody">
<xsl:apply-templates />
</div>
</div>
</xsl:when>
<xsl:when test="@id='howtoget'">
<xsl:call-template name="insert_howtoget" />
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- SECTION -->
<xsl:template match="section" mode="embedded">
<a name="{@id}"></a>
<xsl:apply-templates mode="embedded"/>
</xsl:template>
<!-- SORT -->
<xsl:template match="sort" >
<xsl:apply-templates><xsl:sort select="descendant::paragraph"/></xsl:apply-templates>
</xsl:template>
<xsl:template match="sort" mode="embedded">
<xsl:apply-templates><xsl:sort select="descendant::paragraph"/></xsl:apply-templates>
</xsl:template>
<!-- SWITCH -->
<xsl:template match="switch"><xsl:apply-templates /></xsl:template>
<xsl:template match="switch" mode="embedded"><xsl:apply-templates /></xsl:template>
<!-- SWITCHINLINE -->
<xsl:template match="switchinline"><xsl:apply-templates /></xsl:template>
<xsl:template match="switchinline" mode="embedded"><xsl:apply-templates mode="embedded"/></xsl:template>
<!-- TABLE -->
<xsl:template match="table"><xsl:call-template name="inserttable"/></xsl:template>
<xsl:template match="table" mode="embedded"><xsl:call-template name="inserttable"/></xsl:template>
<!-- TABLECELL -->
<xsl:template match="tablecell"><td valign="top"><xsl:apply-templates /></td></xsl:template>
<xsl:template match="tablecell" mode="icontable"><td valign="top"><xsl:apply-templates/></td></xsl:template>
<xsl:template match="tablecell" mode="embedded"><td valign="top"><xsl:apply-templates mode="embedded"/></td></xsl:template>
<!-- TABLEROW -->
<xsl:template match="tablerow"><tr><xsl:apply-templates /></tr></xsl:template>
<xsl:template match="tablerow" mode="icontable"><tr><xsl:apply-templates mode="icontable"/></tr></xsl:template>
<xsl:template match="tablerow" mode="embedded"><tr><xsl:apply-templates mode="embedded"/></tr></xsl:template>
<!-- TITLE -->
<xsl:template match="title"/>
<!-- TOPIC -->
<xsl:template match="topic"/>
<!-- VARIABLE -->
<xsl:template match="variable"><a name="{@id}"></a><xsl:apply-templates /></xsl:template>
<xsl:template match="variable" mode="embedded"><a name="{@id}"></a><xsl:apply-templates mode="embedded"/></xsl:template>
<xsl:template match="text()">
<xsl:call-template name="brand">
<xsl:with-param name="string"><xsl:value-of select="."/></xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template match="text()" mode="embedded">
<xsl:call-template name="brand">
<xsl:with-param name="string"><xsl:value-of select="."/></xsl:with-param>
</xsl:call-template>
</xsl:template>
<!-- In case of missing help files -->
<xsl:template match="help-id-missing"><xsl:value-of select="$Id"/></xsl:template>
<!--
###################
# NAMED TEMPLATES #
###################
//-->
<!-- Branding -->
<xsl:template name="brand" >
<xsl:param name="string"/>
<xsl:choose>
<xsl:when test="contains($string,$brand1)">
<xsl:variable name="newstr">
<xsl:value-of select="substring-before($string,$brand1)"/>
<xsl:value-of select="$productname"/>
<xsl:value-of select="substring-after($string,$brand1)"/>
</xsl:variable>
<xsl:call-template name="brand">
<xsl:with-param name="string" select="$newstr"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains($string,$brand2)">
<xsl:variable name="newstr">
<xsl:value-of select="substring-before($string,$brand2)"/>
<xsl:value-of select="$pversion"/>
<xsl:value-of select="substring-after($string,$brand2)"/>
</xsl:variable>
<xsl:call-template name="brand">
<xsl:with-param name="string" select="$newstr"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains($string,$brand3)">
<xsl:variable name="newstr">
<xsl:value-of select="substring-before($string,$brand3)"/>
<xsl:value-of select="$productname"/>
<xsl:value-of select="substring-after($string,$brand3)"/>
</xsl:variable>
<xsl:call-template name="brand">
<xsl:with-param name="string" select="$newstr"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains($string,$brand4)">
<xsl:variable name="newstr">
<xsl:value-of select="substring-before($string,$brand4)"/>
<xsl:value-of select="$pversion"/>
<xsl:value-of select="substring-after($string,$brand4)"/>
</xsl:variable>
<xsl:call-template name="brand">
<xsl:with-param name="string" select="$newstr"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$string"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Insert Paragraph -->
<xsl:template name="insertpara">
<xsl:variable name="role">
<xsl:choose>
<xsl:when test="ancestor::table">
<xsl:value-of select="concat(@role,'intable')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@role"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<p class="{$role}"><xsl:apply-templates /></p>
</xsl:template>
<!-- Insert Basic code snippet -->
<xsl:template name="insertbascode">
<pre><xsl:apply-templates /></pre>
</xsl:template>
<!-- Insert Logo code snippet -->
<xsl:template name="insertlogocode">
<pre><xsl:apply-templates /></pre>
</xsl:template>
<!-- Insert "How to get Link" -->
<xsl:template name="insert_howtoget">
<xsl:param name="linkhref" />
<xsl:variable name="archive" select="'shared'"/>
<xsl:variable name="tmp_href"><xsl:value-of select="concat($urlpre,'shared/text/shared/00/00000004.xhp',$urlpost)"/></xsl:variable>
<xsl:variable name="tmp_doc" select="document($tmp_href)"/>
<table class="howtoget" width="100%" border="1" cellpadding="3" cellspacing="0">
<tr>
<td>
<p class="howtogetheader"><xsl:apply-templates select="$tmp_doc//variable[@id='wie']"/></p>
<div class="howtogetbody">
<xsl:choose>
<xsl:when test="$linkhref = ''"> <!-- new style -->
<xsl:apply-templates/>
</xsl:when>
<xsl:otherwise> <!-- old style -->
<xsl:variable name="archive1"><xsl:value-of select="concat(substring-before(substring-after($linkhref,'text/'),'/'),'/')"/></xsl:variable>
<xsl:variable name="href"><xsl:value-of select="concat($urlpre,$archive1,substring-before($linkhref,'#'),$urlpost)"/></xsl:variable>
<xsl:variable name="anc"><xsl:value-of select="substring-after($linkhref,'#')"/></xsl:variable>
<xsl:variable name="docum" select="document($href)"/>
<xsl:call-template name="insertembed">
<xsl:with-param name="doc" select="$docum" />
<xsl:with-param name="anchor" select="$anc" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</div>
</td>
</tr>
</table>
<br/>
</xsl:template>
<!-- Create a link -->
<xsl:template name="createlink">
<xsl:variable name="archive"><xsl:value-of select="concat(substring-before(substring-after(@href,'text/'),'/'),'/')"/></xsl:variable>
<xsl:variable name="dbpostfix"><xsl:call-template name="createDBpostfix"><xsl:with-param name="archive" select="$archive"/></xsl:call-template></xsl:variable>
<xsl:choose>
<xsl:when test="starts-with(@href,'http://') or starts-with(@href,'https://')"> <!-- web links -->
<a href="{@href}"><xsl:apply-templates /></a>
</xsl:when>
<xsl:when test="contains(@href,'#')">
<xsl:variable name="anchor"><xsl:value-of select="concat('#',substring-after(@href,'#'))"/></xsl:variable>
<xsl:variable name="href"><xsl:value-of select="concat($linkprefix,$archive,substring-before(@href,'#'),$linkpostfix,$dbpostfix,$anchor)"/></xsl:variable>
<a href="{$href}"><xsl:apply-templates /></a>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="href"><xsl:value-of select="concat($linkprefix,$archive,@href,$linkpostfix,$dbpostfix)"/></xsl:variable>
<a href="{$href}"><xsl:apply-templates /></a>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Insert Note, Warning, or Tip -->
<xsl:template name="insertnote">
<xsl:param name="type" /> <!-- note, tip, or warning -->
<xsl:variable name="imgsrc">
<xsl:choose>
<xsl:when test="$type='note'"><xsl:value-of select="$note_img"/></xsl:when>
<xsl:when test="$type='tip'"><xsl:value-of select="$tip_img"/></xsl:when>
<xsl:when test="$type='warning'"><xsl:value-of select="$warning_img"/></xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:variable name="dbpostfix"><xsl:call-template name="createDBpostfix"><xsl:with-param name="archive" select="'shared'"/></xsl:call-template></xsl:variable>
<xsl:variable name="alt">
<xsl:variable name="href"><xsl:value-of select="concat($urlpre,'shared/',$alttext,$urlpost,$dbpostfix)"/></xsl:variable>
<xsl:variable name="anchor"><xsl:value-of select="concat('alt_',$type)"/></xsl:variable>
<xsl:variable name="doc" select="document($href)"/>
<xsl:apply-templates select="$doc//variable[@id=$anchor]" mode="embedded"/>
</xsl:variable>
<div class="{$type}">
<table border="0" class="{$type}" cellspacing="0" cellpadding="5">
<tr>
<td><img src="{$imgsrc}" alt="{$alt}" title="{$alt}"/></td>
<td><xsl:apply-templates /></td>
</tr>
</table>
</div>
<br/>
</xsl:template>
<!-- Insert a heading -->
<xsl:template name="insertheading">
<xsl:param name="level" />
<xsl:param name="embedded" />
<xsl:text disable-output-escaping="yes">&lt;h</xsl:text><xsl:value-of select="$level"/><xsl:text disable-output-escaping="yes">&gt;</xsl:text>
<xsl:choose>
<xsl:when test="$embedded = 'yes'">
<xsl:apply-templates mode="embedded"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates />
</xsl:otherwise>
</xsl:choose>
<xsl:text disable-output-escaping="yes">&lt;/h</xsl:text><xsl:value-of select="$level"/><xsl:text disable-output-escaping="yes">&gt;</xsl:text>
</xsl:template>
<!-- Evaluate a case or caseinline switch -->
<xsl:template name="insertcase">
<xsl:param name="embedded" />
<xsl:choose>
<xsl:when test="parent::switch[@select='sys'] or parent::switchinline[@select='sys']">
<xsl:if test="@select = $System">
<xsl:choose>
<xsl:when test="$embedded = 'yes'">
<xsl:apply-templates mode="embedded"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates />
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:when>
<xsl:when test="parent::switch[@select='appl'] or parent::switchinline[@select='appl']">
<xsl:if test="@select = $appl">
<xsl:choose>
<xsl:when test="$embedded = 'yes'">
<xsl:apply-templates mode="embedded"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates />
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:when>
<xsl:when test="parent::switch[@select='distrib'] or parent::switchinline[@select='distrib']">
<xsl:if test="@select = $distrib">
<xsl:choose>
<xsl:when test="$embedded = 'yes'">
<xsl:apply-templates mode="embedded"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates />
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:when>
</xsl:choose>
</xsl:template>
<!-- Evaluate a default or defaultinline switch -->
<xsl:template name="insertdefault">
<xsl:param name="embedded" />
<xsl:choose>
<xsl:when test="parent::switch[@select='sys'] or parent::switchinline[@select='sys']">
<xsl:if test="not(../child::case[@select=$System]) and not(../child::caseinline[@select=$System])">
<xsl:choose>
<xsl:when test="$embedded = 'yes'">
<xsl:apply-templates mode="embedded"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates />
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:when>
<xsl:when test="parent::switch[@select='appl'] or parent::switchinline[@select='appl']">
<xsl:if test="not(../child::case[@select=$appl]) and not(../child::caseinline[@select=$appl])">
<xsl:choose>
<xsl:when test="$embedded = 'yes'">
<xsl:apply-templates mode="embedded"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates />
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:when>
<xsl:when test="parent::switch[@select='distrib'] or parent::switchinline[@select='distrib']">
<xsl:if test="not(../child::case[@select=$distrib]) and not(../child::caseinline[@select=$distrib])">
<xsl:choose>
<xsl:when test="$embedded = 'yes'">
<xsl:apply-templates mode="embedded"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates />
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:when>
</xsl:choose>
</xsl:template>
<!-- evaluate embeds -->
<xsl:template name="insertembed">
<xsl:param name="doc" />
<xsl:param name="anchor" />
<!-- different embed targets (also falsely used embed instead embedvar) -->
<xsl:choose>
<xsl:when test="$doc//section[@id=$anchor]"> <!-- first test for a section of that name -->
<xsl:apply-templates select="$doc//section[@id=$anchor]" mode="embedded"/>
</xsl:when>
<xsl:when test="$doc//paragraph[@id=$anchor]"> <!-- then test for a para of that name -->
<p class="embedded">
<xsl:apply-templates select="$doc//paragraph[@id=$anchor]" mode="embedded"/>
</p>
</xsl:when>
<xsl:when test="$doc//variable[@id=$anchor]"> <!-- then test for a variable of that name -->
<p class="embedded">
<xsl:apply-templates select="$doc//variable[@id=$anchor]" mode="embedded"/>
</p>
</xsl:when>
<xsl:otherwise> <!-- then give up -->
<p class="bug">D'oh! You found a bug (<xsl:value-of select="@href"/> not found).</p>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Insert an image -->
<xsl:template name="insertimage">
<xsl:variable name="src">
<xsl:choose>
<xsl:when test="starts-with(@src,'media/')">
<xsl:value-of select="concat($img_url_internal,@src)"/>
</xsl:when>
<xsl:when test="not($ExtensionId='') and starts-with(@src,$ExtensionId)">
<xsl:value-of select="concat($ExtensionPath,'/',@src)"/>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="@localize='true'">
<xsl:value-of select="concat($img_url_prefix,@src,'?lang=',$lang)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat($img_url_prefix,@src)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!--<xsl:variable name="src"><xsl:value-of select="concat($img_url_prefix,@src)"/></xsl:variable>-->
<xsl:variable name="alt"><xsl:value-of select="./alt"/></xsl:variable>
<xsl:variable name="width" select="''"/> <!-- Images don't all have the correct size -->
<xsl:variable name="height" select="''"/><!-- Image don't all have the correct size -->
<img src="{$src}" alt="{$alt}" title="{$alt}">
<xsl:if test="not($width='')"><xsl:attribute name="width"><xsl:value-of select="$width"/></xsl:attribute></xsl:if>
<xsl:if test="not($height='')"><xsl:attribute name="height"><xsl:value-of select="$height"/></xsl:attribute></xsl:if>
</img>
</xsl:template>
<!-- Insert a Table -->
<xsl:template name="inserttable">
<xsl:variable name="imgsrc"> <!-- see if we are in an image table -->
<xsl:value-of select="tablerow/tablecell[1]/paragraph[1]/image/@src"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="count(descendant::tablecell)=1">
<table border="0" class="onecell" cellpadding="0" cellspacing="0">
<xsl:apply-templates />
</table>
</xsl:when>
<xsl:when test="descendant::tablecell[1]/descendant::image">
<table border="0" class="icontable" cellpadding="5" cellspacing="0">
<xsl:apply-templates mode="icontable"/>
</table>
</xsl:when>
<xsl:when test="@class='wide'">
<table border="1" class="{@class}" cellpadding="0" cellspacing="0" width="100%" >
<xsl:apply-templates />
</table>
</xsl:when>
<xsl:when test="not(@class='')">
<table border="1" class="{@class}" cellpadding="0" cellspacing="0" >
<xsl:apply-templates />
</table>
</xsl:when>
<xsl:otherwise>
<table border="1" class="border" cellpadding="0" cellspacing="0" >
<xsl:apply-templates />
</table>
</xsl:otherwise>
</xsl:choose>
<br/>
</xsl:template>
<xsl:template name="resolveembed">
<div class="embedded">
<xsl:variable name="archive"><xsl:value-of select="concat(substring-before(substring-after(@href,'text/'),'/'),'/')"/></xsl:variable>
<xsl:variable name="dbpostfix"><xsl:call-template name="createDBpostfix"><xsl:with-param name="archive" select="$archive"/></xsl:call-template></xsl:variable>
<xsl:variable name="href"><xsl:value-of select="concat($urlpre,$archive,substring-before(@href,'#'),$urlpost,$dbpostfix)"/></xsl:variable>
<xsl:variable name="anc"><xsl:value-of select="substring-after(@href,'#')"/></xsl:variable>
<xsl:variable name="docum" select="document($href)"/>
<xsl:call-template name="insertembed">
<xsl:with-param name="doc" select="$docum" />
<xsl:with-param name="anchor" select="$anc" />
</xsl:call-template>
</div>
</xsl:template>
<xsl:template name="resolveembedvar">
<xsl:if test="not(@href='text/shared/00/00000004.xhp#wie')"> <!-- special treatment if howtoget links -->
<xsl:variable name="archive"><xsl:value-of select="concat(substring-before(substring-after(@href,'text/'),'/'),'/')"/></xsl:variable>
<xsl:variable name="dbpostfix"><xsl:call-template name="createDBpostfix"><xsl:with-param name="archive" select="$archive"/></xsl:call-template></xsl:variable>
<xsl:variable name="href"><xsl:value-of select="concat($urlpre,$archive,substring-before(@href,'#'),$urlpost,$dbpostfix)"/></xsl:variable>
<xsl:variable name="anchor"><xsl:value-of select="substring-after(@href,'#')"/></xsl:variable>
<xsl:variable name="doc" select="document($href)"/>
<xsl:choose>
<xsl:when test="$doc//variable[@id=$anchor]"> <!-- test for a variable of that name -->
<xsl:apply-templates select="$doc//variable[@id=$anchor]" mode="embedded"/>
</xsl:when>
<xsl:otherwise> <!-- or give up -->
<span class="bug">[<xsl:value-of select="@href"/> not found].</span>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
<!-- Apply -->
<xsl:template name="apply">
<xsl:param name="embedded" />
<xsl:choose>
<xsl:when test="$embedded = 'yes'">
<xsl:apply-templates mode="embedded"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="createDBpostfix">
<xsl:param name="archive"/>
<xsl:variable name="newDB">
<xsl:choose>
<xsl:when test="(substring($archive,1,6) = 'shared')"><xsl:value-of select="$Database"/></xsl:when>
<xsl:otherwise><xsl:value-of select="substring-before($archive,'/')"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:value-of select="concat($am,'DbPAR=',$newDB)"/>
</xsl:template>
</xsl:stylesheet>

View File

@ -0,0 +1,893 @@
Group By Columns
TRUE
Polar
FALSE
{=FOURIER(B6:C40,B1,B2,B3,0)}
Inverse
FALSE
Source Array
Transformed Array
X
Real
Imaginary
Real
Imaginary
1
0.392555411592569
0
17.1775578743134
3.88635177703826E-15
2
1.20843701681219
0
3.428868795359
2.37164790000189
3
0.851477676762644
0
-6.80271615433369
-15.1345439297576
4
1.78534651907738
0
-1.605447356601
-5.08653060378972
5
1.77946506138316
0
0.395847917447356
-2.41926785527625
6
1.51890060220168
0
-1.49410383304833
-2.39148041275
7
1.04694666137238
0
0.87223579298981
-1.14394086206797
8
0.83110083951399
0
1.5332458505929
0.678159168870983
9
1.23006228455127
0
0.450563708411459
0.22911248792634
10
0.133409796396031
0
0.545106616940358
0.411028927740438
11
0.130471655802496
0
2.22685996425193
-2.43092236748302
12
0.386478761838145
0
-1.61522859107175
-2.41682657284899
13
-0.703398287742919
0
1.30245078290168
1.45443785733126
14
-0.899115309693977
0
1.57930628561185
-1.33862736591677
15
-0.124045510064504
0
-1.07572227365276
-0.921557968003809
16
-0.513553513012611
0
-0.055782417923803
-1.81336029451831
17
-0.613559196487517
0
-0.577666040004067
1.38887243891951
18
0.32607259491689
0
-0.826878282157686
-0.186591000796403
19
0.031629781462593
0
-0.826878282157715
0.186591000796416
20
0.52298725899815
0
-0.577666040004051
-1.38887243891954
21
0.436798031445888
0
-0.055782417923785
1.81336029451832
22
0.846212627320418
0
-1.07572227365276
0.921557968003802
23
0.913061096906024
0
1.57930628561187
1.33862736591678
24
1.2666287534781
0
1.3024507829017
-1.45443785733125
25
1.6653650481107
0
-1.61522859107176
2.416826572849
26
1.36582636202864
0
2.22685996425191
2.43092236748304
27
1.46722190894756
0
0.545106616940365
-0.411028927740441
28
0.66120489728397
0
0.450563708411458
-0.229112487926344
29
0.701534531762234
0
1.53324585059292
-0.678159168870965
30
0.65869368245062
0
0.872235792989797
1.14394086206799
31
0.287522455580069
0
-1.49410383304834
2.39148041275001
32
-0.409911360506096
0
0.395847917447327
2.41926785527626
33
-0.583168875679498
0
-1.60544735660102
5.08653060378972
34
-0.799684083650078
0
-6.80271615433379
15.1345439297575
35
-0.621417306845244
0
3.42886879535907
-2.37164790000194
Fourier Transform
Fourier Transform
Source Array
Input data range : $B$6:$C$40
Input data range : $B$6:$C$40
X
Real
Imaginary
Real
Imaginary
Magnitude
Phase
1
0.392555411592569
0
17.1775578743134
3.88635177703826E-15
17.1775578743134
2.26245884628906E-16
2
1.20843701681219
0
3.428868795359
2.37164790000189
4.16915518748944
0.605113892937279
3
0.851477676762644
0
-6.80271615433369
-15.1345439297576
16.5931120359682
-1.99322000923881
4
1.78534651907738
0
-1.605447356601
-5.08653060378972
5.33387802617444
-1.87652762269615
5
1.77946506138316
0
0.395847917447356
-2.41926785527625
2.45143886917874
-1.40861048708919
6
1.51890060220168
0
-1.49410383304833
-2.39148041275
2.81984482347817
-2.12922380028329
7
1.04694666137238
0
0.87223579298981
-1.14394086206797
1.43853952829993
-0.919353665468368
8
0.83110083951399
0
1.5332458505929
0.678159168870983
1.6765269746366
0.416434654153369
9
1.23006228455127
0
0.450563708411459
0.22911248792634
0.505470263676592
0.470425948779898
10
0.133409796396031
0
0.545106616940358
0.411028927740438
0.682704916689207
0.646077879418302
11
0.130471655802496
0
2.22685996425193
-2.43092236748302
3.29670879167654
-0.829181229907427
12
0.386478761838145
0
-1.61522859107175
-2.41682657284899
2.90689079338124
-2.15994697868441
13
-0.703398287742919
0
1.30245078290168
1.45443785733126
1.95237484175544
0.840472341525344
14
-0.899115309693977
0
1.57930628561185
-1.33862736591677
2.07029745895472
-0.70310180067089
15
-0.124045510064504
0
-1.07572227365276
-0.921557968003809
1.41649126309482
-2.43322886402899
16
-0.513553513012611
0
-0.055782417923803
-1.81336029451831
1.81421807837012
-1.60154853447151
17
-0.613559196487517
0
-0.577666040004067
1.38887243891951
1.50421564456836
1.96495487990047
18
0.32607259491689
0
-0.826878282157686
-0.186591000796403
0.847669685126376
-2.91965280961949
19
0.031629781462593
0
-0.826878282157715
0.186591000796416
0.847669685126408
2.91965280961948
20
0.52298725899815
0
-0.577666040004051
-1.38887243891954
1.50421564456838
-1.96495487990045
21
0.436798031445888
0
-0.055782417923785
1.81336029451832
1.81421807837012
1.6015485344715
22
0.846212627320418
0
-1.07572227365276
0.921557968003802
1.41649126309482
2.433228864029
23
0.913061096906024
0
1.57930628561187
1.33862736591678
2.07029745895474
0.703101800670888
24
1.2666287534781
0
1.3024507829017
-1.45443785733125
1.95237484175543
-0.840472341525331
25
1.6653650481107
0
-1.61522859107176
2.416826572849
2.90689079338125
2.15994697868441
26
1.36582636202864
0
2.22685996425191
2.43092236748304
3.29670879167653
0.829181229907435
27
1.46722190894756
0
0.545106616940365
-0.411028927740441
0.682704916689214
-0.646077879418299
28
0.66120489728397
0
0.450563708411458
-0.229112487926344
0.505470263676594
-0.470425948779905
29
0.701534531762234
0
1.53324585059292
-0.678159168870965
1.6765269746366
-0.416434654153355
30
0.65869368245062
0
0.872235792989797
1.14394086206799
1.43853952829994
0.919353665468386
31
0.287522455580069
0
-1.49410383304834
2.39148041275001
2.81984482347818
2.12922380028329
32
-0.409911360506096
0
0.395847917447327
2.41926785527626
2.45143886917875
1.4086104870892
33
-0.583168875679498
0
-1.60544735660102
5.08653060378972
5.33387802617445
1.87652762269616
34
-0.799684083650078
0
-6.80271615433379
15.1345439297575
16.5931120359682
1.99322000923882
35
-0.621417306845244
0
3.42886879535907
-2.37164790000194
4.16915518748952
-0.605113892937279

View File

@ -0,0 +1,353 @@
Car Inventory
Branch
Car model
Show Room
Used
Repair Shop
52
=SUMIFS(Show_Room,Car_model,"Model 01")
City AA
Model 01
2
14
12
52
=SUMIFS(C3:C30,B3:B30,"Model 01")
City BB
Model 02
20
13
10
Sum all Model 01 cars in Show rooms
City CC
Model 03
5
12
36
=SUMIFS(Show_Room,Car_model,"Model 02",Branch,"City BB")
City AA
Model 04
20
10
20
36
=SUMIFS(C3:C30,B3:B30,"Model 02",A3:A30,"City BB")
City BB
Model 05
15
12
8
Sum all Model 01 cars in Show rooms in city BB
City CC
Model 06
4
17
8
City AA
Model 07
6
10
15
4
=COUNTIFS(Car_model,"Model 04")
City BB
Model 01
17
1
3
Count all entries of Model 04 in list
City CC
Model 02
8
19
14
1
=COUNTIFS(Car_model,"Model 04",Branch,"City BB")
City AA
Model 03
9
17
Count all occurences of Model 04 in City BB in list
City BB
Model 04
17
8
5
City CC
Model 05
3
13
2
13
=AVERAGEIFS(Show_Room,Car_model,"Model 01")
City AA
Model 06
9
6
Average of all Model 01 cars in Show rooms
City BB
Model 07
9
8
18
=AVERAGEIFS(Show_Room,Car_model,"Model 02",Branch,"City BB")
City CC
Model 01
18
7
1
Average all Model 01 cars in Show rooms in city BB
City AA
Model 02
16
8
14
City BB
Model 03
1
14
18
18
=MAXIFS(Show_Room,Car_model,"Model 01")
City CC
Model 04
15
9
17
Maximum of Model 01 cars in Show rooms
City AA
Model 05
19
7
3
20
=MAXIFS(Show_Room,Car_model,"Model 02",Branch,"City BB")
City BB
Model 06
10
13
10
Maximum of Model 01 cars in Show rooms in city BB
City CC
Model 07
9
19
6
City AA
Model 01
15
14
2
2
=MINIFS(Show_Room,Car_model,"Model 01")
City BB
Model 02
16
1
11
Minimum of Model 01 cars in Show rooms
City CC
Model 03
6
12
3
16
=MINIFS(Show_Room,Car_model,"Model 02",Branch,"City BB")
City AA
Model 04
3
7
18
Minimum of Model 01 cars in Show rooms in city BB
City BB
Model 05
1
11
5
City CC
Model 06
13
9
18
City AA
Model 07
5
17
2

View File

@ -0,0 +1,241 @@
Z
IMSIN(Z)
IMREAL()
IMAGINARY()
4-3i
-7,61923172032141+6,548120040911i
-7.61923172032141
6.548120040911
2
0,909297426825682
0.909297426825682
0
Z
IMCOS(Z)
IMREAL()
IMAGINARY()
4-3i
-6,58066304055116-7,58155274274654i
-6.58066304055116
-7.58155274274654
2
-0,416146836547142
-0.416146836547142
0
Z
IMTAN(Z)
IMREAL()
IMAGINARY()
4-3i
0,00490825806749606-1,00070953606723i
0.004908258067496
-1.00070953606723
2
-2,18503986326152
-2.18503986326152
0
Z
IMSEC(Z)
IMREAL()
IMAGINARY()
4-3i
-0,0652940278579471+0,0752249603027732i
-0.065294027857947
0.075224960302773
2
-2,40299796172238
-2.40299796172238
0
Z
IMCSC(Z)
IMREAL()
IMAGINARY()
4-3i
-0,0754898329158637-0,0648774713706355i
-0.075489832915864
-0.064877471370636
2
1,09975017029462
1.09975017029462
0
Z
IMCOT(Z)
IMREAL()
IMAGINARY()
4-3i
0,00490118239430447+0,999266927805902i
0.004901182394304
0.999266927805902
2
-0,457657554360286
-0.457657554360286
0
Z
IMSINH(Z)
IMREAL()
IMAGINARY()
4-3i
-27,0168132580039-3,85373803791938i
-27.0168132580039
-3.85373803791938
2
3,62686040784702
3.62686040784702
0
Z
IMCOSH(Z)
IMREAL()
IMAGINARY()
4-3i
-27,0349456030742-3,85115333481178i
-27.0349456030742
-3.85115333481178
2
3,76219569108363
3.76219569108363
0
Z
IMCSCH(Z)
IMREAL()
IMAGINARY()
4-3i
-0,036275889628626+0,0051744731840194i
-0.036275889628626
0.005174473184019
2
0,275720564771783
0.275720564771783
0
Z
IMSECH(Z)
IMREAL()
IMAGINARY()
4-3i
-0,0362534969158689+0,00516434460775318i
-0.036253496915869
0.005164344607753
2
0,26580222883408
0.26580222883408
0

View File

@ -0,0 +1,383 @@
Car Inventory
Pivot Table
Branch
Car model
Show Room
Used
Repair Shop
City AA
Model 01
2
14
12
City BB
Model 02
20
13
10
City CC
Model 03
5
12
City AA
Model 04
20
10
20
Filter
City BB
Model 05
15
12
8
Branch
- all -
City CC
Model 06
4
17
8
City AA
Model 07
6
10
15
Data
City BB
Model 01
17
1
3
Car model
Sum - Show Room
Sum - Used
Sum - Repair Shop
City CC
Model 02
8
19
14
Model 01
52
36
18
City AA
Model 03
9
17
Model 02
60
41
49
City BB
Model 04
17
8
5
Model 03
21
47
50
City CC
Model 05
3
13
2
Model 04
55
34
60
City AA
Model 06
9
6
Model 05
38
43
18
City BB
Model 07
9
8
Model 06
36
48
42
City CC
Model 01
18
7
1
Model 07
29
55
31
City AA
Model 02
16
8
14
Total Result
291
304
268
City BB
Model 03
1
14
18
City CC
Model 04
15
9
17
City AA
Model 05
19
7
3
Pivot Chart
City BB
Model 06
10
13
10
City CC
Model 07
9
19
6
City AA
Model 01
15
14
2
City BB
Model 02
16
1
11
City CC
Model 03
6
12
3
City AA
Model 04
3
7
18
City BB
Model 05
1
11
5
City CC
Model 06
13
9
18
City AA
Model 07
5
17
2
Pivot Table Cell Styles:
Pivot Table Categories
Pivot Table Corner
Pivot Table Field
Pivot Table Result
Pivot Table Value
Pivot Table Title

View File

@ -0,0 +1,173 @@
X
SIN(X)
X
SINH(X)
1
0.841470984807896
1
1.1752011936438
X
COS(X)
X
COSH(X)
1
0.54030230586814
1
1.54308063481524
X
TAN(X)
X
TANH(X)
1
1.5574077246549
1
0.761594155955765
X
SEC(X)
X
SECH(X)
1
1.85081571768093
1
0.648054273663885
X
CSC(X)
X
CSCH(X)
1
1.18839510577812
1
0.850918128239321
X
COT(X)
X
COTH(X)
1
0.642092615934331
1
1.31303528549933
X
ACOS(X)
X
ACOSH(X)
0.5
1.0471975511966
1.5
0.962423650119207
X
ASIN(X)
X
ASINH(X)
0.5
0.523598775598299
0.5
0.481211825059603
X
ATAN(X)
X
ATANH(X)
0.5
0.463647609000806
0.5
0.549306144334055
X
ACOT(X)
X
ACOTH(X)
0.5
1.10714871779409
1.5
0.80471895621705
X
ATAN2(X;Y)
0.5
Y
0.5
0.785398163397448

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 937 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 858 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 894 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 776 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 956 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 748 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 742 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 941 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 983 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 656 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 678 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 867 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 895 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 645 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 765 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 756 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!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" version="1.1" viewBox="0 0 35 35" stroke="none">
<rect width="100%" height="100%" fill="#FFFFFF"/>
<path d="M5,5h1v1h-1z M6,5h1v1h-1z M7,5h1v1h-1z M8,5h1v1h-1z M9,5h1v1h-1z M10,5h1v1h-1z M11,5h1v1h-1z M15,5h1v1h-1z M17,5h1v1h-1z M18,5h1v1h-1z M20,5h1v1h-1z M21,5h1v1h-1z M23,5h1v1h-1z M24,5h1v1h-1z M25,5h1v1h-1z M26,5h1v1h-1z M27,5h1v1h-1z M28,5h1v1h-1z M29,5h1v1h-1z M5,6h1v1h-1z M11,6h1v1h-1z M14,6h1v1h-1z M15,6h1v1h-1z M16,6h1v1h-1z M19,6h1v1h-1z M21,6h1v1h-1z M23,6h1v1h-1z M29,6h1v1h-1z M5,7h1v1h-1z M7,7h1v1h-1z M8,7h1v1h-1z M9,7h1v1h-1z M11,7h1v1h-1z M13,7h1v1h-1z M15,7h1v1h-1z M17,7h1v1h-1z M23,7h1v1h-1z M25,7h1v1h-1z M26,7h1v1h-1z M27,7h1v1h-1z M29,7h1v1h-1z M5,8h1v1h-1z M7,8h1v1h-1z M8,8h1v1h-1z M9,8h1v1h-1z M11,8h1v1h-1z M14,8h1v1h-1z M17,8h1v1h-1z M18,8h1v1h-1z M19,8h1v1h-1z M21,8h1v1h-1z M23,8h1v1h-1z M25,8h1v1h-1z M26,8h1v1h-1z M27,8h1v1h-1z M29,8h1v1h-1z M5,9h1v1h-1z M7,9h1v1h-1z M8,9h1v1h-1z M9,9h1v1h-1z M11,9h1v1h-1z M13,9h1v1h-1z M18,9h1v1h-1z M19,9h1v1h-1z M20,9h1v1h-1z M21,9h1v1h-1z M23,9h1v1h-1z M25,9h1v1h-1z M26,9h1v1h-1z M27,9h1v1h-1z M29,9h1v1h-1z M5,10h1v1h-1z M11,10h1v1h-1z M13,10h1v1h-1z M17,10h1v1h-1z M23,10h1v1h-1z M29,10h1v1h-1z M5,11h1v1h-1z M6,11h1v1h-1z M7,11h1v1h-1z M8,11h1v1h-1z M9,11h1v1h-1z M10,11h1v1h-1z M11,11h1v1h-1z M13,11h1v1h-1z M15,11h1v1h-1z M17,11h1v1h-1z M19,11h1v1h-1z M21,11h1v1h-1z M23,11h1v1h-1z M24,11h1v1h-1z M25,11h1v1h-1z M26,11h1v1h-1z M27,11h1v1h-1z M28,11h1v1h-1z M29,11h1v1h-1z M14,12h1v1h-1z M15,12h1v1h-1z M16,12h1v1h-1z M17,12h1v1h-1z M19,12h1v1h-1z M6,13h1v1h-1z M9,13h1v1h-1z M11,13h1v1h-1z M13,13h1v1h-1z M15,13h1v1h-1z M17,13h1v1h-1z M18,13h1v1h-1z M19,13h1v1h-1z M20,13h1v1h-1z M22,13h1v1h-1z M24,13h1v1h-1z M25,13h1v1h-1z M27,13h1v1h-1z M7,14h1v1h-1z M8,14h1v1h-1z M10,14h1v1h-1z M14,14h1v1h-1z M19,14h1v1h-1z M20,14h1v1h-1z M25,14h1v1h-1z M26,14h1v1h-1z M28,14h1v1h-1z M6,15h1v1h-1z M9,15h1v1h-1z M11,15h1v1h-1z M13,15h1v1h-1z M14,15h1v1h-1z M15,15h1v1h-1z M18,15h1v1h-1z M19,15h1v1h-1z M20,15h1v1h-1z M23,15h1v1h-1z M24,15h1v1h-1z M14,16h1v1h-1z M15,16h1v1h-1z M16,16h1v1h-1z M17,16h1v1h-1z M18,16h1v1h-1z M20,16h1v1h-1z M23,16h1v1h-1z M24,16h1v1h-1z M26,16h1v1h-1z M27,16h1v1h-1z M29,16h1v1h-1z M6,17h1v1h-1z M9,17h1v1h-1z M11,17h1v1h-1z M12,17h1v1h-1z M13,17h1v1h-1z M14,17h1v1h-1z M18,17h1v1h-1z M22,17h1v1h-1z M23,17h1v1h-1z M24,17h1v1h-1z M27,17h1v1h-1z M28,17h1v1h-1z M29,17h1v1h-1z M5,18h1v1h-1z M6,18h1v1h-1z M8,18h1v1h-1z M9,18h1v1h-1z M15,18h1v1h-1z M17,18h1v1h-1z M18,18h1v1h-1z M19,18h1v1h-1z M20,18h1v1h-1z M21,18h1v1h-1z M25,18h1v1h-1z M26,18h1v1h-1z M27,18h1v1h-1z M28,18h1v1h-1z M9,19h1v1h-1z M10,19h1v1h-1z M11,19h1v1h-1z M13,19h1v1h-1z M14,19h1v1h-1z M15,19h1v1h-1z M16,19h1v1h-1z M18,19h1v1h-1z M20,19h1v1h-1z M25,19h1v1h-1z M26,19h1v1h-1z M7,20h1v1h-1z M8,20h1v1h-1z M9,20h1v1h-1z M21,20h1v1h-1z M22,20h1v1h-1z M23,20h1v1h-1z M27,20h1v1h-1z M29,20h1v1h-1z M5,21h1v1h-1z M6,21h1v1h-1z M7,21h1v1h-1z M8,21h1v1h-1z M11,21h1v1h-1z M12,21h1v1h-1z M14,21h1v1h-1z M15,21h1v1h-1z M17,21h1v1h-1z M21,21h1v1h-1z M22,21h1v1h-1z M23,21h1v1h-1z M24,21h1v1h-1z M25,21h1v1h-1z M27,21h1v1h-1z M28,21h1v1h-1z M29,21h1v1h-1z M13,22h1v1h-1z M15,22h1v1h-1z M16,22h1v1h-1z M17,22h1v1h-1z M18,22h1v1h-1z M21,22h1v1h-1z M25,22h1v1h-1z M26,22h1v1h-1z M27,22h1v1h-1z M28,22h1v1h-1z M5,23h1v1h-1z M6,23h1v1h-1z M7,23h1v1h-1z M8,23h1v1h-1z M9,23h1v1h-1z M10,23h1v1h-1z M11,23h1v1h-1z M14,23h1v1h-1z M16,23h1v1h-1z M17,23h1v1h-1z M18,23h1v1h-1z M19,23h1v1h-1z M21,23h1v1h-1z M23,23h1v1h-1z M25,23h1v1h-1z M26,23h1v1h-1z M27,23h1v1h-1z M5,24h1v1h-1z M11,24h1v1h-1z M16,24h1v1h-1z M21,24h1v1h-1z M25,24h1v1h-1z M27,24h1v1h-1z M29,24h1v1h-1z M5,25h1v1h-1z M7,25h1v1h-1z M8,25h1v1h-1z M9,25h1v1h-1z M11,25h1v1h-1z M13,25h1v1h-1z M17,25h1v1h-1z M18,25h1v1h-1z M21,25h1v1h-1z M22,25h1v1h-1z M23,25h1v1h-1z M24,25h1v1h-1z M25,25h1v1h-1z M27,25h1v1h-1z M29,25h1v1h-1z M5,26h1v1h-1z M7,26h1v1h-1z M8,26h1v1h-1z M9,26h1v1h-1z M11,26h1v1h-1z M14,26h1v1h-1z M15,26h1v1h-1z M17,26h1v1h-1z M18,26h1v1h-1z M20,26h1v1h-1z M22,26h1v1h-1z M23,26h1v1h-1z M27,26h1v1h-1z M28,26h1v1h-1z M29,26h1v1h-1z M5,27h1v1h-1z M7,27h1v1h-1z M8,27h1v1h-1z M9,27h1v1h-1z M11,27h1v1h-1z M14,27h1v1h-1z M16,27h1v1h-1z M18,27h1v1h-1z M19,27h1v1h-1z M20,27h1v1h-1z M22,27h1v1h-1z M23,27h1v1h-1z M24,27h1v1h-1z M27,27h1v1h-1z M28,27h1v1h-1z M5,28h1v1h-1z M11,28h1v1h-1z M13,28h1v1h-1z M14,28h1v1h-1z M15,28h1v1h-1z M18,28h1v1h-1z M20,28h1v1h-1z M25,28h1v1h-1z M27,28h1v1h-1z M28,28h1v1h-1z M5,29h1v1h-1z M6,29h1v1h-1z M7,29h1v1h-1z M8,29h1v1h-1z M9,29h1v1h-1z M10,29h1v1h-1z M11,29h1v1h-1z M15,29h1v1h-1z M17,29h1v1h-1z M18,29h1v1h-1z M19,29h1v1h-1z M20,29h1v1h-1z M24,29h1v1h-1z M25,29h1v1h-1z M27,29h1v1h-1z M28,29h1v1h-1z M29,29h1v1h-1z" fill="#000000"/>
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 980 B

View File

@ -0,0 +1,32 @@
<svg class="railroad-diagram" height="62" viewBox="0 0 154.0 62" width="154.0" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(.5 .5)">
<style>/* <![CDATA[ */
svg.railroad-diagram {
background-color:transparent;
}
svg.railroad-diagram path {
stroke-width:1;
stroke:black;
fill:rgba(0,0,0,0);
}
svg.railroad-diagram text {
font:bold 14px monospace;
font-family: Verdana, sans-serif;
text-anchor:middle;
}
svg.railroad-diagram text.label{
text-anchor:start;
}
svg.railroad-diagram text.comment{
font:italic 12px monospace;
}
svg.railroad-diagram rect{
stroke-width:1;
stroke:black;
fill:transparent;
}
/* ]]> */
</style><g>
<path d="M20 21v20m10 -20v20m-10 -10h20"></path></g><path d="M40 31h10"></path><g class="terminal">
<path d="M50 31h0.0"></path><path d="M104.0 31h0.0"></path><rect height="22" rx="10" ry="10" width="54.0" x="50.0" y="20"></rect><text x="77.0" y="35">Beep</text></g><path d="M104.0 31h10"></path><path d="M 114.0 31 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,590 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
class="railroad-diagram"
height="270"
viewBox="0 0 727.0 270"
width="727.0"
version="1.1"
id="svg598"
sodipodi:docname="Call_statement.svg"
inkscape:export-filename="D:\Call_statement.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<metadata
id="metadata604">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs602" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1511"
inkscape:window-height="735"
id="namedview600"
showgrid="false"
inkscape:zoom="2.4621733"
inkscape:cx="474.26814"
inkscape:cy="135"
inkscape:window-x="306"
inkscape:window-y="204"
inkscape:window-maximized="0"
inkscape:current-layer="svg598" />
<g
transform="translate(.5 .5)"
id="g596">
<style
id="style308">/* <![CDATA[ */
svg.railroad-diagram {
background-color:transparent;
}
svg.railroad-diagram path {
stroke-width:1;
stroke:black;
fill:rgba(0,0,0,0);
}
svg.railroad-diagram text {
font:bold 14px monospace;
font-family: Verdana, sans-serif;
text-anchor:middle;
}
svg.railroad-diagram text.label{
text-anchor:start;
}
svg.railroad-diagram text.comment{
font:italic 12px monospace;
}
svg.railroad-diagram rect{
stroke-width:1;
stroke:black;
fill:transparent;
}
/* ]]> */
</style>
<g
id="g312">
<path
d="M20 41v20m10 -20v20m-10 -10h20"
id="path310" />
</g>
<path
d="M40 51h10"
id="path314" />
<g
id="g590">
<path
d="M50 51h0.0"
id="path316" />
<path
d="M677.0 51h0.0"
id="path318" />
<g
id="g346">
<path
d="M50.0 51h0.0"
id="path320" />
<path
d="M164.0 51h0.0"
id="path322" />
<path
d="M50.0 51a15 15 0 0 0 15 -15v-1a15 15 0 0 1 15 -15"
id="path324" />
<g
id="g328">
<path
d="M80.0 20h54.0"
id="path326" />
</g>
<path
d="M134.0 20a15 15 0 0 1 15 15v1a15 15 0 0 0 15 15"
id="path330" />
<path
d="M50.0 51h30"
id="path332" />
<g
class="terminal"
id="g342">
<path
d="M80.0 51h0.0"
id="path334" />
<path
d="M134.0 51h0.0"
id="path336" />
<rect
height="22"
rx="10"
ry="10"
width="54.0"
x="80.0"
y="40"
id="rect338" />
<text
x="107.0"
y="55"
id="text340">Call</text>
</g>
<path
d="M134.0 51h30"
id="path344" />
</g>
<path
d="M164.0 51h10"
id="path348" />
<g
class="non-terminal"
id="g358">
<path
d="M174.0 51h0.0"
id="path350" />
<path
d="M228.0 51h0.0"
id="path352" />
<rect
height="22"
width="54.0"
x="174.0"
y="40"
id="rect354" />
<text
x="201.0"
y="55"
id="text356">name</text>
</g>
<path
d="M228.0 51h10"
id="path360" />
<g
id="g588">
<path
d="M238.0 51h0.0"
id="path362" />
<path
d="M677.0 51h0.0"
id="path364" />
<path
d="M238.0 51h30"
id="path366" />
<g
id="g490">
<path
d="M268.0 51h0.0"
id="path368" />
<path
d="M647.0 51h0.0"
id="path370" />
<g
class="terminal"
id="g380">
<path
d="M268.0 51h0.0"
id="path372" />
<path
d="M296.5 51h0.0"
id="path374" />
<rect
height="22"
rx="10"
ry="10"
width="28.5"
x="268.0"
y="40"
id="rect376" />
<text
x="282.25"
y="55"
id="text378">(</text>
</g>
<path
d="M296.5 51h10"
id="path382" />
<path
d="M306.5 51h10"
id="path384" />
<g
id="g474">
<path
d="M316.5 51h0.0"
id="path386" />
<path
d="M598.5 51h0.0"
id="path388" />
<path
d="M316.5 51h15"
id="path390" />
<g
id="g456">
<path
d="M331.5 51h0.0"
id="path392" />
<path
d="M583.5 51h0.0"
id="path394" />
<g
id="g442">
<path
d="M331.5 51h0.0"
id="path396" />
<path
d="M511.0 51h0.0"
id="path398" />
<path
d="M331.5 51h30"
id="path400" />
<g
id="g404">
<path
d="M361.5 51h119.5"
id="path402" />
</g>
<path
d="M481.0 51h30"
id="path406" />
<path
d="M331.5 51a15 15 0 0 1 15 15v1a15 15 0 0 0 15 15"
id="path408" />
<g
id="g438">
<path
d="M361.5 82h0.0"
id="path410" />
<path
d="M481.0 82h0.0"
id="path412" />
<g
class="non-terminal"
id="g422">
<path
d="M361.5 82h0.0"
id="path414" />
<path
d="M424.0 82h0.0"
id="path416" />
<rect
height="22"
width="62.5"
x="361.5"
y="71"
id="rect418" />
<text
x="392.75"
y="86"
id="text420">param</text>
</g>
<path
d="M424.0 82h10"
id="path424" />
<path
d="M434.0 82h10"
id="path426" />
<g
class="terminal"
id="g436">
<path
d="M444.0 82h0.0"
id="path428" />
<path
d="M481.0 82h0.0"
id="path430" />
<rect
height="22"
rx="10"
ry="10"
width="37.0"
x="444.0"
y="71"
id="rect432" />
<text
x="462.5"
y="86"
id="text434">:=</text>
</g>
</g>
<path
d="M481.0 82a15 15 0 0 0 15 -15v-1a15 15 0 0 1 15 -15"
id="path440" />
</g>
<path
d="M511.0 51h10"
id="path444" />
<g
class="non-terminal"
id="g454">
<path
d="M521.0 51h0.0"
id="path446" />
<path
d="M583.5 51h0.0"
id="path448" />
<rect
height="22"
width="62.5"
x="521.0"
y="40"
id="rect450" />
<text
x="552.25"
y="55"
id="text452">value</text>
</g>
</g>
<path
d="M583.5 51h15"
id="path458" />
<path
d="M331.5 51a15 15 0 0 0 -15 15v43a15 15 0 0 0 15 15"
id="path460" />
<g
class="terminal"
id="g470">
<path
d="M331.5 124h111.75"
id="path462" />
<path
d="M471.75 124h111.75"
id="path464" />
<rect
height="22"
rx="10"
ry="10"
width="28.5"
x="443.25"
y="113"
id="rect466" />
<text
x="457.5"
y="128"
id="text468">,</text>
</g>
<path
d="M583.5 124a15 15 0 0 0 15 -15v-43a15 15 0 0 0 -15 -15"
id="path472" />
</g>
<path
d="M598.5 51h10"
id="path476" />
<path
d="M608.5 51h10"
id="path478" />
<g
class="terminal"
id="g488">
<path
d="M618.5 51h0.0"
id="path480" />
<path
d="M647.0 51h0.0"
id="path482" />
<rect
height="22"
rx="10"
ry="10"
width="28.5"
x="618.5"
y="40"
id="rect484" />
<text
x="632.75"
y="55"
id="text486">)</text>
</g>
</g>
<path
d="M647.0 51h30"
id="path492" />
<path
d="M238.0 51a15 15 0 0 1 15 15v85a15 15 0 0 0 15 15"
id="path494" />
<g
id="g584">
<path
d="M268.0 166h48.5"
id="path496" />
<path
d="M598.5 166h48.5"
id="path498" />
<path
d="M316.5 166h15"
id="path500" />
<g
id="g566">
<path
d="M331.5 166h0.0"
id="path502" />
<path
d="M583.5 166h0.0"
id="path504" />
<g
id="g552">
<path
d="M331.5 166h0.0"
id="path506" />
<path
d="M511.0 166h0.0"
id="path508" />
<path
d="M331.5 166h30"
id="path510" />
<g
id="g514">
<path
d="M361.5 166h119.5"
id="path512" />
</g>
<path
d="M481.0 166h30"
id="path516" />
<path
d="M331.5 166a15 15 0 0 1 15 15v1a15 15 0 0 0 15 15"
id="path518" />
<g
id="g548">
<path
d="M361.5 197h0.0"
id="path520" />
<path
d="M481.0 197h0.0"
id="path522" />
<g
class="non-terminal"
id="g532">
<path
d="M361.5 197h0.0"
id="path524" />
<path
d="M424.0 197h0.0"
id="path526" />
<rect
height="22"
width="62.5"
x="361.5"
y="186"
id="rect528" />
<text
x="392.75"
y="201"
id="text530">param</text>
</g>
<path
d="M424.0 197h10"
id="path534" />
<path
d="M434.0 197h10"
id="path536" />
<g
class="terminal"
id="g546">
<path
d="M444.0 197h0.0"
id="path538" />
<path
d="M481.0 197h0.0"
id="path540" />
<rect
height="22"
rx="10"
ry="10"
width="37.0"
x="444.0"
y="186"
id="rect542" />
<text
x="462.5"
y="201"
id="text544">:=</text>
</g>
</g>
<path
d="M481.0 197a15 15 0 0 0 15 -15v-1a15 15 0 0 1 15 -15"
id="path550" />
</g>
<path
d="M511.0 166h10"
id="path554" />
<g
class="non-terminal"
id="g564">
<path
d="M521.0 166h0.0"
id="path556" />
<path
d="M583.5 166h0.0"
id="path558" />
<rect
height="22"
width="62.5"
x="521.0"
y="155"
id="rect560" />
<text
x="552.25"
y="170"
id="text562">value</text>
</g>
</g>
<path
d="M583.5 166h15"
id="path568" />
<path
d="M331.5 166a15 15 0 0 0 -15 15v43a15 15 0 0 0 15 15"
id="path570" />
<g
class="terminal"
id="g580">
<path
d="M331.5 239h111.75"
id="path572" />
<path
d="M471.75 239h111.75"
id="path574" />
<rect
height="22"
rx="10"
ry="10"
width="28.5"
x="443.25"
y="228"
id="rect576" />
<text
x="457.5"
y="243"
id="text578">,</text>
</g>
<path
d="M583.5 239a15 15 0 0 0 15 -15v-43a15 15 0 0 0 -15 -15"
id="path582" />
</g>
<path
d="M647.0 166a15 15 0 0 0 15 -15v-85a15 15 0 0 1 15 -15"
id="path586" />
</g>
</g>
<path
d="M677.0 51h10"
id="path592" />
<path
d="M 687.0 51 h 20 m -10 -10 v 20 m 10 -20 v 20"
id="path594" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,41 @@
<svg class="railroad-diagram" height="144" viewBox="0 0 430.5 144" width="430.5" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(.5 .5)">
<style>/* <![CDATA[ */
svg.railroad-diagram {
background-color:transparent;
}
svg.railroad-diagram path {
stroke-width:1;
stroke:black;
fill:rgba(0,0,0,0);
}
svg.railroad-diagram text {
font:bold 14px monospace;
font-family: Verdana, sans-serif;
text-anchor:middle;
}
svg.railroad-diagram text.label{
text-anchor:start;
}
svg.railroad-diagram text.comment{
font:italic 12px monospace;
}
svg.railroad-diagram rect{
stroke-width:1;
stroke:black;
fill:transparent;
}
/* ]]> */
</style><g>
<path d="M20 61v20m10 -20v20m-10 -10h20"></path></g><path d="M40 71h10"></path><g class="terminal">
<path d="M50 71h0.0"></path><path d="M112.5 71h0.0"></path><rect height="22" rx="10" ry="10" width="62.5" x="50.0" y="60"></rect><text x="81.25" y="75">Close</text></g><path d="M112.5 71h10"></path><g>
<path d="M122.5 71h0.0"></path><path d="M390.5 71h0.0"></path><path d="M122.5 71a15 15 0 0 0 15 -15v-21a15 15 0 0 1 15 -15"></path><g>
<path d="M152.5 20h208.0"></path></g><path d="M360.5 20a15 15 0 0 1 15 15v21a15 15 0 0 0 15 15"></path><path d="M122.5 71h30"></path><g>
<path d="M152.5 71h0.0"></path><path d="M360.5 71h0.0"></path><path d="M152.5 71h15"></path><g>
<path d="M167.5 71h0.0"></path><path d="M345.5 71h0.0"></path><g>
<path d="M167.5 71h0.0"></path><path d="M256.0 71h0.0"></path><path d="M167.5 71a15 15 0 0 0 15 -15v-1a15 15 0 0 1 15 -15"></path><g>
<path d="M197.5 40h28.5"></path></g><path d="M226.0 40a15 15 0 0 1 15 15v1a15 15 0 0 0 15 15"></path><path d="M167.5 71h30"></path><g class="terminal">
<path d="M197.5 71h0.0"></path><path d="M226.0 71h0.0"></path><rect height="22" rx="10" ry="10" width="28.5" x="197.5" y="60"></rect><text x="211.75" y="75">#</text></g><path d="M226.0 71h30"></path></g><path d="M256.0 71h10"></path><g class="terminal">
<path d="M266.0 71h0.0"></path><path d="M345.5 71h0.0"></path><rect height="22" rx="10" ry="10" width="79.5" x="266.0" y="60"></rect><text x="305.75" y="75">fileNum</text></g></g><path d="M345.5 71h15"></path><path d="M167.5 71a15 15 0 0 0 -15 15v12a15 15 0 0 0 15 15"></path><g class="terminal">
<path d="M167.5 113h74.75"></path><path d="M270.75 113h74.75"></path><rect height="22" rx="10" ry="10" width="28.5" x="242.25" y="102"></rect><text x="256.5" y="117">,</text></g><path d="M345.5 113a15 15 0 0 0 15 -15v-12a15 15 0 0 0 -15 -15"></path></g><path d="M360.5 71h30"></path></g><path d="M 390.5 71 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,44 @@
<svg class="railroad-diagram" height="166" viewBox="0 0 639.5 166" width="639.5" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(.5 .5)">
<style>/* <![CDATA[ */
svg.railroad-diagram {
background-color:transparent;
}
svg.railroad-diagram path {
stroke-width:1;
stroke:black;
fill:rgba(0,0,0,0);
}
svg.railroad-diagram text {
font:bold 14px monospace;
font-family: Verdana, sans-serif;
text-anchor:middle;
}
svg.railroad-diagram text.label{
text-anchor:start;
}
svg.railroad-diagram text.comment{
font:italic 12px monospace;
}
svg.railroad-diagram rect{
stroke-width:1;
stroke:black;
fill:transparent;
}
/* ]]> */
</style><g>
<path d="M20 83v20m10 -20v20m-10 -10h20"></path></g><g>
<path d="M40 93h0.0"></path><path d="M239.5 93h0.0"></path><path d="M40.0 93a15 15 0 0 0 15 -15v-43a15 15 0 0 1 15 -15"></path><g>
<path d="M70.0 20h139.5"></path></g><path d="M209.5 20a15 15 0 0 1 15 15v43a15 15 0 0 0 15 15"></path><path d="M40.0 93h30"></path><g>
<path d="M70.0 93h0.0"></path><path d="M209.5 93h0.0"></path><path d="M70.0 93a15 15 0 0 0 15 -15v-12a15 15 0 0 1 15 -15"></path><g class="terminal">
<path d="M100.0 51h4.25"></path><path d="M175.25 51h4.25"></path><rect height="22" rx="10" ry="10" width="71.0" x="104.25" y="40"></rect><text x="139.75" y="55">Global</text></g><path d="M179.5 51a15 15 0 0 1 15 15v12a15 15 0 0 0 15 15"></path><path d="M70.0 93h30"></path><g class="terminal">
<path d="M100.0 93h0.0"></path><path d="M179.5 93h0.0"></path><rect height="22" rx="10" ry="10" width="79.5" x="100.0" y="82"></rect><text x="139.75" y="97">Private</text></g><path d="M179.5 93h30"></path><path d="M70.0 93a15 15 0 0 1 15 15v12a15 15 0 0 0 15 15"></path><g class="terminal">
<path d="M100.0 135h4.25"></path><path d="M175.25 135h4.25"></path><rect height="22" rx="10" ry="10" width="71.0" x="104.25" y="124"></rect><text x="139.75" y="139">Public</text></g><path d="M179.5 135a15 15 0 0 0 15 -15v-12a15 15 0 0 1 15 -15"></path></g><path d="M209.5 93h30"></path></g><path d="M239.5 93h10"></path><g class="terminal">
<path d="M249.5 93h0.0"></path><path d="M312.0 93h0.0"></path><rect height="22" rx="10" ry="10" width="62.5" x="249.5" y="82"></rect><text x="280.75" y="97">Const</text></g><path d="M312.0 93h10"></path><path d="M322.0 93h10"></path><g>
<path d="M332.0 93h0.0"></path><path d="M589.5 93h0.0"></path><path d="M332.0 93h15"></path><g>
<path d="M347.0 93h0.0"></path><path d="M574.5 93h0.0"></path><g class="terminal">
<path d="M347.0 93h0.0"></path><path d="M401.0 93h0.0"></path><rect height="22" rx="10" ry="10" width="54.0" x="347.0" y="82"></rect><text x="374.0" y="97">name</text></g><path d="M401.0 93h10"></path><path d="M411.0 93h10"></path><g class="terminal">
<path d="M421.0 93h0.0"></path><path d="M449.5 93h0.0"></path><rect height="22" rx="10" ry="10" width="28.5" x="421.0" y="82"></rect><text x="435.25" y="97">=</text></g><path d="M449.5 93h10"></path><path d="M459.5 93h10"></path><g class="terminal">
<path d="M469.5 93h0.0"></path><path d="M574.5 93h0.0"></path><rect height="22" rx="10" ry="10" width="105.0" x="469.5" y="82"></rect><text x="522.0" y="97">expression</text></g></g><path d="M574.5 93h15"></path><path d="M347.0 93a15 15 0 0 0 -15 15v12a15 15 0 0 0 15 15"></path><g class="terminal">
<path d="M347.0 135h99.5"></path><path d="M475.0 135h99.5"></path><rect height="22" rx="10" ry="10" width="28.5" x="446.5" y="124"></rect><text x="460.75" y="139">,</text></g><path d="M574.5 135a15 15 0 0 0 15 -15v-12a15 15 0 0 0 -15 -15"></path></g><path d="M589.5 93h10"></path><path d="M 599.5 93 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -0,0 +1,53 @@
<svg class="railroad-diagram" height="292" viewBox="0 0 697.0 292" width="697.0" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(.5 .5)">
<style>/* <![CDATA[ */
svg.railroad-diagram {
background-color:transparent;
}
svg.railroad-diagram path {
stroke-width:1;
stroke:black;
fill:rgba(0,0,0,0);
}
svg.railroad-diagram text {
font:bold 14px monospace;
font-family: Verdana, sans-serif;
text-anchor:middle;
}
svg.railroad-diagram text.label{
text-anchor:start;
}
svg.railroad-diagram text.comment{
font:italic 12px monospace;
}
svg.railroad-diagram rect{
stroke-width:1;
stroke:black;
fill:transparent;
}
/* ]]> */
</style><g>
<path d="M20 125v20m10 -20v20m-10 -10h20"></path></g><g>
<path d="M40 135h0.0"></path><path d="M370.5 135h0.0"></path><path d="M40.0 135a15 15 0 0 0 15 -15v-85a15 15 0 0 1 15 -15h124.5"></path><path d="M224.5 250h116.0a15 15 0 0 0 15 -15v-85a15 15 0 0 1 15 -15"></path><path d="M40.0 135h15"></path><g>
<path d="M55.0 135h0.0"></path><path d="M194.5 135h0.0"></path><path d="M55.0 135a15 15 0 0 0 15 -15v-12a15 15 0 0 1 15 -15"></path><g class="terminal">
<path d="M85.0 93h4.25"></path><path d="M160.25 93h4.25"></path><rect height="22" rx="10" ry="10" width="71.0" x="89.25" y="82"></rect><text x="124.75" y="97">DefCur</text></g><path d="M164.5 93a15 15 0 0 1 15 15v12a15 15 0 0 0 15 15"></path><path d="M55.0 135a15 15 0 0 0 15 -15v-54a15 15 0 0 1 15 -15"></path><g class="terminal">
<path d="M85.0 51h0.0"></path><path d="M164.5 51h0.0"></path><rect height="22" rx="10" ry="10" width="79.5" x="85.0" y="40"></rect><text x="124.75" y="55">DefBool</text></g><path d="M164.5 51a15 15 0 0 1 15 15v54a15 15 0 0 0 15 15"></path><path d="M55.0 135h30"></path><g class="terminal">
<path d="M85.0 135h0.0"></path><path d="M164.5 135h0.0"></path><rect height="22" rx="10" ry="10" width="79.5" x="85.0" y="124"></rect><text x="124.75" y="139">DefDate</text></g><path d="M164.5 135h30"></path><path d="M55.0 135a15 15 0 0 1 15 15v12a15 15 0 0 0 15 15"></path><g class="terminal">
<path d="M85.0 177h4.25"></path><path d="M160.25 177h4.25"></path><rect height="22" rx="10" ry="10" width="71.0" x="89.25" y="166"></rect><text x="124.75" y="181">DefDbl</text></g><path d="M164.5 177a15 15 0 0 0 15 -15v-12a15 15 0 0 1 15 -15"></path><path d="M55.0 135a15 15 0 0 1 15 15v54a15 15 0 0 0 15 15"></path><g class="terminal">
<path d="M85.0 219h4.25"></path><path d="M160.25 219h4.25"></path><rect height="22" rx="10" ry="10" width="71.0" x="89.25" y="208"></rect><text x="124.75" y="223">DefErr</text></g><path d="M164.5 219a15 15 0 0 0 15 -15v-54a15 15 0 0 1 15 -15"></path><path d="M55.0 135a15 15 0 0 1 15 15v96a15 15 0 0 0 15 15"></path><g class="terminal">
<path d="M85.0 261h4.25"></path><path d="M160.25 261h4.25"></path><rect height="22" rx="10" ry="10" width="71.0" x="89.25" y="250"></rect><text x="124.75" y="265">DefInt</text></g><path d="M164.5 261a15 15 0 0 0 15 -15v-96a15 15 0 0 1 15 -15"></path></g><path d="M194.5 135a15 15 0 0 1 15 15v85a15 15 0 0 0 15 15"></path><path d="M194.5 20a15 15 0 0 1 15 15v85a15 15 0 0 0 15 15"></path><g>
<path d="M224.5 135h0.0"></path><path d="M355.5 135h0.0"></path><path d="M224.5 135a15 15 0 0 0 15 -15v-12a15 15 0 0 1 15 -15"></path><g class="terminal">
<path d="M254.5 93h0.0"></path><path d="M325.5 93h0.0"></path><rect height="22" rx="10" ry="10" width="71.0" x="254.5" y="82"></rect><text x="290.0" y="97">DefObj</text></g><path d="M325.5 93a15 15 0 0 1 15 15v12a15 15 0 0 0 15 15"></path><path d="M224.5 135a15 15 0 0 0 15 -15v-54a15 15 0 0 1 15 -15"></path><g class="terminal">
<path d="M254.5 51h0.0"></path><path d="M325.5 51h0.0"></path><rect height="22" rx="10" ry="10" width="71.0" x="254.5" y="40"></rect><text x="290.0" y="55">DefLng</text></g><path d="M325.5 51a15 15 0 0 1 15 15v54a15 15 0 0 0 15 15"></path><path d="M224.5 135h30"></path><g class="terminal">
<path d="M254.5 135h0.0"></path><path d="M325.5 135h0.0"></path><rect height="22" rx="10" ry="10" width="71.0" x="254.5" y="124"></rect><text x="290.0" y="139">DefSng</text></g><path d="M325.5 135h30"></path><path d="M224.5 135a15 15 0 0 1 15 15v12a15 15 0 0 0 15 15"></path><g class="terminal">
<path d="M254.5 177h0.0"></path><path d="M325.5 177h0.0"></path><rect height="22" rx="10" ry="10" width="71.0" x="254.5" y="166"></rect><text x="290.0" y="181">DefStr</text></g><path d="M325.5 177a15 15 0 0 0 15 -15v-12a15 15 0 0 1 15 -15"></path><path d="M224.5 135a15 15 0 0 1 15 15v54a15 15 0 0 0 15 15"></path><g class="terminal">
<path d="M254.5 219h0.0"></path><path d="M325.5 219h0.0"></path><rect height="22" rx="10" ry="10" width="71.0" x="254.5" y="208"></rect><text x="290.0" y="223">DefVar</text></g><path d="M325.5 219a15 15 0 0 0 15 -15v-54a15 15 0 0 1 15 -15"></path></g><path d="M355.5 135h15"></path></g><path d="M370.5 135h10"></path><g>
<path d="M380.5 135h0.0"></path><path d="M647.0 135h0.0"></path><path d="M380.5 135h15"></path><g>
<path d="M395.5 135h0.0"></path><path d="M632.0 135h0.0"></path><path d="M395.5 135a15 15 0 0 0 15 -15v-12a15 15 0 0 1 15 -15"></path><g>
<path d="M425.5 93h0.0"></path><path d="M602.0 93h0.0"></path><g class="terminal">
<path d="M425.5 93h0.0"></path><path d="M479.5 93h0.0"></path><rect height="22" rx="10" ry="10" width="54.0" x="425.5" y="82"></rect><text x="452.5" y="97">char</text></g><path d="M479.5 93h10"></path><path d="M489.5 93h10"></path><g class="terminal">
<path d="M499.5 93h0.0"></path><path d="M528.0 93h0.0"></path><rect height="22" rx="10" ry="10" width="28.5" x="499.5" y="82"></rect><text x="513.75" y="97">-</text></g><path d="M528.0 93h10"></path><path d="M538.0 93h10"></path><g class="terminal">
<path d="M548.0 93h0.0"></path><path d="M602.0 93h0.0"></path><rect height="22" rx="10" ry="10" width="54.0" x="548.0" y="82"></rect><text x="575.0" y="97">char</text></g></g><path d="M602.0 93a15 15 0 0 1 15 15v12a15 15 0 0 0 15 15"></path><path d="M395.5 135h30"></path><g class="terminal">
<path d="M425.5 135h61.25"></path><path d="M540.75 135h61.25"></path><rect height="22" rx="10" ry="10" width="54.0" x="486.75" y="124"></rect><text x="513.75" y="139">char</text></g><path d="M602.0 135h30"></path></g><path d="M632.0 135h15"></path><path d="M395.5 135a15 15 0 0 0 -15 15v12a15 15 0 0 0 15 15"></path><g class="terminal">
<path d="M395.5 177h104.0"></path><path d="M528.0 177h104.0"></path><rect height="22" rx="10" ry="10" width="28.5" x="499.5" y="166"></rect><text x="513.75" y="181">,</text></g><path d="M632.0 177a15 15 0 0 0 15 -15v-12a15 15 0 0 0 -15 -15"></path></g><path d="M647.0 135h10"></path><path d="M 657.0 135 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@ -0,0 +1,45 @@
<svg class="railroad-diagram" height="124" viewBox="0 0 695.0 124" width="695.0" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(.5 .5)">
<style>/* <![CDATA[ */
svg.railroad-diagram {
background-color:transparent;
}
svg.railroad-diagram path {
stroke-width:1;
stroke:black;
fill:rgba(0,0,0,0);
}
svg.railroad-diagram text {
font:bold 14px monospace;
font-family: Verdana, sans-serif;
text-anchor:middle;
}
svg.railroad-diagram text.label{
text-anchor:start;
}
svg.railroad-diagram text.comment{
font:italic 12px monospace;
}
svg.railroad-diagram rect{
stroke-width:1;
stroke:black;
fill:transparent;
}
/* ]]> */
</style><g>
<path d="M20 41v20m10 -20v20m-10 -10h20"></path></g><path d="M40 51h10"></path><g>
<path d="M50 51h0.0"></path><path d="M645.0 51h0.0"></path><g>
<path d="M50.0 51h0.0"></path><path d="M246.5 51h0.0"></path><path d="M50.0 51h30"></path><g>
<path d="M80.0 51h136.5"></path></g><path d="M216.5 51h30"></path><path d="M50.0 51a15 15 0 0 1 15 15v1a15 15 0 0 0 15 15"></path><g>
<path d="M80.0 82h0.0"></path><path d="M216.5 82h0.0"></path><g class="terminal">
<path d="M80.0 82h0.0"></path><path d="M168.0 82h0.0"></path><rect height="22" rx="10" ry="10" width="88.0" x="80.0" y="71"></rect><text x="124.0" y="86">variable</text></g><path d="M168.0 82h10"></path><path d="M178.0 82h10"></path><g class="terminal">
<path d="M188.0 82h0.0"></path><path d="M216.5 82h0.0"></path><rect height="22" rx="10" ry="10" width="28.5" x="188.0" y="71"></rect><text x="202.25" y="86">=</text></g></g><path d="M216.5 82a15 15 0 0 0 15 -15v-1a15 15 0 0 1 15 -15"></path></g><path d="M246.5 51h10"></path><g class="terminal">
<path d="M256.5 51h0.0"></path><path d="M344.5 51h0.0"></path><rect height="22" rx="10" ry="10" width="88.0" x="256.5" y="40"></rect><text x="300.5" y="55">DimArray</text></g><path d="M344.5 51h10"></path><path d="M354.5 51h10"></path><g class="terminal">
<path d="M364.5 51h0.0"></path><path d="M393.0 51h0.0"></path><rect height="22" rx="10" ry="10" width="28.5" x="364.5" y="40"></rect><text x="378.75" y="55">(</text></g><path d="M393.0 51h10"></path><g>
<path d="M403.0 51h0.0"></path><path d="M606.5 51h0.0"></path><path d="M403.0 51a15 15 0 0 0 15 -15v-1a15 15 0 0 1 15 -15"></path><g>
<path d="M433.0 20h143.5"></path></g><path d="M576.5 20a15 15 0 0 1 15 15v1a15 15 0 0 0 15 15"></path><path d="M403.0 51h30"></path><g>
<path d="M433.0 51h0.0"></path><path d="M576.5 51h0.0"></path><path d="M433.0 51h15"></path><g class="non-terminal">
<path d="M448.0 51h0.0"></path><path d="M561.5 51h0.0"></path><rect height="22" width="113.5" x="448.0" y="40"></rect><text x="504.75" y="55">upper&#95;bound</text></g><path d="M561.5 51h15"></path><path d="M448.0 51a15 15 0 0 0 -15 15v12a15 15 0 0 0 15 15"></path><g class="terminal">
<path d="M448.0 93h42.5"></path><path d="M519.0 93h42.5"></path><rect height="22" rx="10" ry="10" width="28.5" x="490.5" y="82"></rect><text x="504.75" y="97">,</text></g><path d="M561.5 93a15 15 0 0 0 15 -15v-12a15 15 0 0 0 -15 -15"></path></g><path d="M576.5 51h30"></path></g><path d="M606.5 51h10"></path><g class="terminal">
<path d="M616.5 51h0.0"></path><path d="M645.0 51h0.0"></path><rect height="22" rx="10" ry="10" width="28.5" x="616.5" y="40"></rect><text x="630.75" y="55">)</text></g></g><path d="M645.0 51h10"></path><path d="M 655.0 51 h 20 m -10 -10 v 20 m 10 -20 v 20"></path></g></svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

Some files were not shown because too many files have changed in this diff Show More