update
17741
tool-tech-file-view/LibreOfficePortable/App/libreoffice/CREDITS.fodt
Normal file
6777
tool-tech-file-view/LibreOfficePortable/App/libreoffice/LICENSE.html
Normal file
117
tool-tech-file-view/LibreOfficePortable/App/libreoffice/NOTICE
Normal 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/)
|
||||
|
@ -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>
|
@ -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);
|
||||
})();
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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));
|
@ -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>
|
||||
|
@ -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: */
|
@ -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: */
|
@ -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>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="*"/>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
@ -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>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="table">
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="tablecell">
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="tablerow">
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="list">
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="listitem">
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="item">
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="emph">
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="sub">
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="sup">
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="paragraph">
|
||||
<xsl:value-of select="."/>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="section">
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="bookmark">
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="bookmark_value">
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="link">
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="ahelp[@visibility='visible']">
|
||||
<xsl:value-of select="."/>
|
||||
<xsl:text>
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="*"/>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
|
@ -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>
|
@ -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']);
|
@ -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="'&'"/>
|
||||
<xsl:variable name="sl" select="'/'"/>
|
||||
<xsl:variable name="qt" select="'"'"/>
|
||||
|
||||
<!-- 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"><h</xsl:text><xsl:value-of select="$level"/><xsl:text disable-output-escaping="yes">></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"></h</xsl:text><xsl:value-of select="$level"/><xsl:text disable-output-escaping="yes">></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>
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 937 B |
After Width: | Height: | Size: 858 B |
After Width: | Height: | Size: 894 B |
After Width: | Height: | Size: 787 B |
After Width: | Height: | Size: 386 B |
After Width: | Height: | Size: 727 B |
After Width: | Height: | Size: 733 B |
After Width: | Height: | Size: 776 B |
After Width: | Height: | Size: 956 B |
After Width: | Height: | Size: 748 B |
After Width: | Height: | Size: 742 B |
After Width: | Height: | Size: 941 B |
After Width: | Height: | Size: 983 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 466 B |
After Width: | Height: | Size: 572 B |
After Width: | Height: | Size: 464 B |
After Width: | Height: | Size: 508 B |
After Width: | Height: | Size: 621 B |
After Width: | Height: | Size: 656 B |
After Width: | Height: | Size: 315 B |
After Width: | Height: | Size: 98 B |
After Width: | Height: | Size: 150 B |
After Width: | Height: | Size: 130 B |
After Width: | Height: | Size: 126 B |
After Width: | Height: | Size: 296 B |
After Width: | Height: | Size: 781 B |
After Width: | Height: | Size: 440 B |
After Width: | Height: | Size: 678 B |
After Width: | Height: | Size: 441 B |
After Width: | Height: | Size: 867 B |
After Width: | Height: | Size: 895 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 142 B |
After Width: | Height: | Size: 93 B |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 441 B |
After Width: | Height: | Size: 446 B |
After Width: | Height: | Size: 645 B |
After Width: | Height: | Size: 766 B |
After Width: | Height: | Size: 765 B |
After Width: | Height: | Size: 756 B |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 318 B |
After Width: | Height: | Size: 338 B |
After Width: | Height: | Size: 330 B |
After Width: | Height: | Size: 298 B |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 615 B |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 56 KiB |
@ -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 |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 126 B |
After Width: | Height: | Size: 433 B |
After Width: | Height: | Size: 449 B |
After Width: | Height: | Size: 980 B |
@ -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 |
@ -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 |
@ -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 |
@ -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 |
@ -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 |
@ -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_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 |