vue3-sphinx-xml 0.1.0-beta.0 → 0.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Skip.js +18 -0
- package/dist/Skip.js.map +1 -0
- package/dist/StandardElement.js +5 -7
- package/dist/StandardElement.js.map +1 -1
- package/dist/entry.js +8 -3
- package/dist/entry.js.map +1 -1
- package/package.json +1 -1
package/dist/Skip.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const _sfc_main = {
|
|
2
|
+
props: {
|
|
3
|
+
node: {
|
|
4
|
+
type: void 0,
|
|
5
|
+
default: null
|
|
6
|
+
},
|
|
7
|
+
componentName: {
|
|
8
|
+
type: String
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
setup(__props) {
|
|
12
|
+
return (_ctx, _cache) => {
|
|
13
|
+
return null;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export { _sfc_main as default };
|
|
18
|
+
//# sourceMappingURL=Skip.js.map
|
package/dist/Skip.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Skip.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
|
package/dist/StandardElement.js
CHANGED
|
@@ -44,14 +44,12 @@ const _sfc_main = {
|
|
|
44
44
|
const attrs = ref({});
|
|
45
45
|
const isButton = ref(false);
|
|
46
46
|
const componentElement = ref(null);
|
|
47
|
-
const transferAttributes = /* @__PURE__ */ new Set(["div", "button"]);
|
|
48
47
|
const tag = nodeNameTagNameMap.get(node.value.nodeName);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
48
|
+
const tmpDataObject = dataObject(node.value, node.value.getAttribute("classes"));
|
|
49
|
+
const classList = tmpDataObject.class ? tmpDataObject.class.join(" ") : void 0;
|
|
50
|
+
attrs.value = __spreadProps(__spreadValues({}, tmpDataObject.attrs), {
|
|
51
|
+
class: classList
|
|
52
|
+
});
|
|
55
53
|
if (node.value.nodeName === "button") {
|
|
56
54
|
isButton.value = true;
|
|
57
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandardElement.js","sources":["../src/components/templates/StandardElement.vue"],"sourcesContent":["<template>\n <component\n :is=\"tag\"\n :=\"attrs\"\n @[isButton&&`click`]=\"buttonClicked\"\n ref=\"componentElement\"\n >\n <component\n v-for=\"(c, index) in children\"\n :key=\"'standard_element_component_' + index\"\n :is=\"c.component\"\n :node=\"c.node\"\n :componentName=\"c.name\"\n :properties=\"c.properties\"\n />\n </component>\n</template>\n\n<script setup>\nimport { defineProps, toRefs, ref } from 'vue'\n\nimport { nodeNameTagNameMap } from '../../js/nodemap'\nimport { useChildren } from '../../composables/computed'\nimport { useMethods } from '../../composables/methods'\n\nconst props = defineProps({\n node: {\n type: undefined,\n default: null,\n },\n componentName: {\n type: String,\n },\n})\n\nconst { node } = toRefs(props)\nconst { children } = useChildren(node)\nconst { dataObject } = useMethods()\nconst attrs = ref({})\nconst isButton = ref(false)\nconst componentElement = ref(null)\n\nconst transferAttributes = new Set(['div', 'button'])\nconst tag = nodeNameTagNameMap.get(node.value.nodeName)\n\
|
|
1
|
+
{"version":3,"file":"StandardElement.js","sources":["../src/components/templates/StandardElement.vue"],"sourcesContent":["<template>\n <component\n :is=\"tag\"\n :=\"attrs\"\n @[isButton&&`click`]=\"buttonClicked\"\n ref=\"componentElement\"\n >\n <component\n v-for=\"(c, index) in children\"\n :key=\"'standard_element_component_' + index\"\n :is=\"c.component\"\n :node=\"c.node\"\n :componentName=\"c.name\"\n :properties=\"c.properties\"\n />\n </component>\n</template>\n\n<script setup>\nimport { defineProps, toRefs, ref } from 'vue'\n\nimport { nodeNameTagNameMap } from '../../js/nodemap'\nimport { useChildren } from '../../composables/computed'\nimport { useMethods } from '../../composables/methods'\n\nconst props = defineProps({\n node: {\n type: undefined,\n default: null,\n },\n componentName: {\n type: String,\n },\n})\n\nconst { node } = toRefs(props)\nconst { children } = useChildren(node)\nconst { dataObject } = useMethods()\nconst attrs = ref({})\nconst isButton = ref(false)\nconst componentElement = ref(null)\n\nconst transferAttributes = new Set(['div', 'button'])\nconst tag = nodeNameTagNameMap.get(node.value.nodeName)\n\n// if (transferAttributes.has(node.value.nodeName)) {\nconst tmpDataObject = dataObject(node.value, node.value.getAttribute('classes'))\nconst classList = tmpDataObject.class ? tmpDataObject.class.join(' ') : undefined\nattrs.value = {\n ...tmpDataObject.attrs,\n class: classList,\n}\n// }\nif (node.value.nodeName === 'button') {\n isButton.value = true\n}\n\nfunction buttonClicked() {\n if (componentElement.value.getAttribute('aria-selected') === 'false') {\n const parentElement = componentElement.value.parentElement\n let panels = []\n for (const child of parentElement.children) {\n const el = document.getElementById(child.id)\n el.setAttribute(\n 'aria-selected',\n el.getAttribute('aria-selected') === 'true' ? 'false' : 'true',\n )\n panels.push({ id: child.getAttribute('aria-controls') })\n }\n for (const panel of panels) {\n const el = document.getElementById(panel.id)\n if (el.hasAttribute('hidden')) {\n el.removeAttribute('hidden')\n } else {\n el.setAttribute('hidden', '')\n }\n }\n }\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,UAAM,EAAE,SAAS,OAAO,KAAK;AAC7B,UAAM,EAAE,aAAa,YAAY,IAAI;AACrC,UAAM,EAAE,eAAe,WAAY;AACnC,UAAM,QAAQ,IAAI,EAAE;AACpB,UAAM,WAAW,IAAI,KAAK;AAC1B,UAAM,mBAAmB,IAAI,IAAI;AAGjC,UAAM,MAAM,mBAAmB,IAAI,KAAK,MAAM,QAAQ;AAGtD,UAAM,gBAAgB,WAAW,KAAK,OAAO,KAAK,MAAM,aAAa,SAAS,CAAC;AAC/E,UAAM,YAAY,cAAc,QAAQ,cAAc,MAAM,KAAK,GAAG,IAAI;AACxE,UAAM,QAAQ,iCACT,cAAc,QADL;AAAA,MAEZ,OAAO;AAAA,IACT;AAEA,QAAI,KAAK,MAAM,aAAa,UAAU;AACpC,eAAS,QAAQ;AAAA,IACnB;AAEA,6BAAyB;AACvB,UAAI,iBAAiB,MAAM,aAAa,eAAe,MAAM,SAAS;AACpE,cAAM,gBAAgB,iBAAiB,MAAM;AAC7C,YAAI,SAAS,CAAE;AACf,mBAAW,SAAS,cAAc,UAAU;AAC1C,gBAAM,KAAK,SAAS,eAAe,MAAM,EAAE;AAC3C,aAAG,aACD,iBACA,GAAG,aAAa,eAAe,MAAM,SAAS,UAAU,MACzD;AACD,iBAAO,KAAK,EAAE,IAAI,MAAM,aAAa,eAAe,GAAG;AAAA,QACxD;AACD,mBAAW,SAAS,QAAQ;AAC1B,gBAAM,KAAK,SAAS,eAAe,MAAM,EAAE;AAC3C,cAAI,GAAG,aAAa,QAAQ,GAAG;AAC7B,eAAG,gBAAgB,QAAQ;AAAA,UACnC,OAAa;AACL,eAAG,aAAa,UAAU,EAAE;AAAA,UAC7B;AAAA,QACF;AAAA,MACF;AAAA,IACH;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/entry.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Vue3Katex from "@hsorby/vue3-katex";
|
|
2
2
|
import "katex/dist/katex.min.css";
|
|
3
|
-
import { openBlock, createElementBlock, createElementVNode, toDisplayString, pushScopeId, popScopeId, computed, defineAsyncComponent, toRefs,
|
|
3
|
+
import { openBlock, createElementBlock, createElementVNode, toDisplayString, pushScopeId, popScopeId, computed, defineAsyncComponent, toRefs, Fragment, renderList, unref, createBlock, resolveDynamicComponent, ref, watch } from "vue";
|
|
4
4
|
import { useRouter, useRoute } from "vue-router";
|
|
5
5
|
import { useStore } from "vuex";
|
|
6
6
|
import { pathToRegexp } from "path-to-regexp";
|
|
@@ -126,6 +126,7 @@ const nodeNameTemplateNameMap = /* @__PURE__ */ new Map([
|
|
|
126
126
|
["caption_number", "CaptionNumber"],
|
|
127
127
|
["download_reference", "DownloadReference"],
|
|
128
128
|
["footnote_reference", "FootnoteReference"],
|
|
129
|
+
["index", "Skip"],
|
|
129
130
|
["line_block", "LineBlock"],
|
|
130
131
|
["literal_block", "LiteralBlock"],
|
|
131
132
|
["math_block", "MathBlock"],
|
|
@@ -189,6 +190,8 @@ function __variableDynamicImportRuntime1__(path) {
|
|
|
189
190
|
return import("./Reference.js");
|
|
190
191
|
case "../components/templates/Section.vue":
|
|
191
192
|
return import("./Section.js");
|
|
193
|
+
case "../components/templates/Skip.vue":
|
|
194
|
+
return import("./Skip.js");
|
|
192
195
|
case "../components/templates/StandardElement.vue":
|
|
193
196
|
return import("./StandardElement.js");
|
|
194
197
|
case "../components/templates/Text.vue":
|
|
@@ -265,6 +268,8 @@ function __variableDynamicImportRuntime0__(path) {
|
|
|
265
268
|
return import("./Reference.js");
|
|
266
269
|
case "../components/templates/Section.vue":
|
|
267
270
|
return import("./Section.js");
|
|
271
|
+
case "../components/templates/Skip.vue":
|
|
272
|
+
return import("./Skip.js");
|
|
268
273
|
case "../components/templates/StandardElement.vue":
|
|
269
274
|
return import("./StandardElement.js");
|
|
270
275
|
case "../components/templates/Text.vue":
|
|
@@ -435,10 +440,10 @@ const _sfc_main$1 = {
|
|
|
435
440
|
},
|
|
436
441
|
setup(__props) {
|
|
437
442
|
const props = __props;
|
|
438
|
-
const { element
|
|
443
|
+
const { element } = toRefs(props);
|
|
439
444
|
const { children } = useChildren(element);
|
|
440
445
|
return (_ctx, _cache) => {
|
|
441
|
-
return openBlock(), createElementBlock("div", { id:
|
|
446
|
+
return openBlock(), createElementBlock("div", { id: __props.id }, [
|
|
442
447
|
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(children), (c, index) => {
|
|
443
448
|
return openBlock(), createBlock(resolveDynamicComponent(c.component), {
|
|
444
449
|
key: "document_component_" + index,
|
package/dist/entry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.js","sources":["../src/js/utilities.js","../plugin-vue:export-helper","../src/js/nodemap.js","../src/composables/computed.js","../src/components/templates/Document.vue","../src/components/SphinxPage.vue","../src/services/SphinxService.js","../src/store/modules/sphinx.js","../src/entry.js"],"sourcesContent":["import { pathToRegexp } from \"path-to-regexp\"\nimport { renderBlockQuote } from \"./renderfcns\"\n\nexport const decodeHTML = encoded => {\n let elem = document.createElement('textarea')\n elem.innerHTML = encoded\n return elem.value\n}\n\nexport const determineRouteUrl = route => {\n const regex = pathToRegexp(route.matched[0].path)\n let fullPath = route.fullPath\n if (route.hash) {\n fullPath = fullPath.replace(route.hash, '')\n }\n const matched = fullPath.match(regex)\n let base = matched[0]\n if (matched[matched.length - 1]) {\n base = matched[0].replace(`/${matched[matched.length - 1]}`, '')\n }\n return base\n}\n\nexport const constructPageNameFromRoute = route => {\n let pageName = undefined\n try {\n pageName = route.params.pageName.join('/')\n } catch (_) {\n pageName = route.params.pageName\n }\n return pageName\n}\n","\nexport default (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n}\n","export const nodeNameTagNameMap = new Map([\n ['bullet_list', 'ul'],\n ['button', 'button'],\n ['definition', 'dd'],\n ['definition_list', 'dl'],\n ['definition_list_item', 'dt'],\n ['div', 'div'],\n ['emphasis', 'em'],\n ['enumerated_list', 'ol'],\n ['glossary', 'div'],\n ['inline', 'span'],\n ['label', 'span'],\n ['list_item', 'li'],\n ['line', 'p'],\n ['paragraph', 'p'],\n ['rubric', 'h3'],\n ['strong', 'strong'],\n ['subscript', 'sub'],\n ['superscript', 'sup'],\n ['table', 'table'],\n ['tbody', 'tbody'],\n ['entry', 'td'],\n ['row', 'tr'],\n ['thead', 'thead'],\n ['term', 'dt'],\n ['title_reference', 'cite'],\n])\n\nexport const nodeNameTemplateNameMap = new Map([\n ['#text', 'Text'],\n ['block_quote', 'BlockQuote'],\n ['caption', 'FigureCaption'],\n ['caption_number', 'CaptionNumber'],\n ['download_reference', 'DownloadReference'],\n ['footnote_reference', 'FootnoteReference'],\n ['line_block', 'LineBlock'],\n ['literal_block', 'LiteralBlock'],\n ['math_block', 'MathBlock'],\n ['number_reference', 'NumberReference'],\n])\n","import { computed, defineAsyncComponent } from 'vue'\n\nimport ErrorComponent from '../components/Error.vue'\nimport LoadingComponent from '../components/Loading.vue'\nimport { nodeNameTagNameMap, nodeNameTemplateNameMap } from '../js/nodemap'\n\nfunction defineChildComponent(name, node) {\n let properties = undefined\n if (node.nodeName === '#text') {\n if (!node.nodeValue.trim()) {\n return null\n }\n properties = {\n text: node.nodeValue,\n }\n } else if (node.nodeName === 'title') {\n let parentNode = node.parentNode\n let depth = 0\n let isTopic = false\n if (parentNode.nodeName === 'topic') {\n isTopic = true\n } else {\n while (parentNode) {\n // && parentNode.nodeName !== ('SphinxPage' should now be 'document' but maybe this is no longer requied).\n if (parentNode.nodeName === 'section') {\n depth += 1\n }\n parentNode = parentNode.parentNode\n }\n }\n properties = {\n depth,\n isTopic,\n }\n }\n const component = defineAsyncComponent({\n loader: () => {\n return import(`../components/templates/${name}.vue`)\n },\n // A component to use while the async component is loading\n loadingComponent: LoadingComponent,\n // A component to use if the load fails\n errorComponent: ErrorComponent,\n })\n\n return {\n component,\n name,\n node,\n properties,\n }\n}\n\nfunction defineColgroupComponent(node, colspecs) {\n const name = 'ColumnGroup'\n const component = defineAsyncComponent({\n loader: () => {\n return import(`../components/templates/${name}.vue`)\n },\n // A component to use while the async component is loading\n loadingComponent: LoadingComponent,\n // A component to use if the load fails\n errorComponent: ErrorComponent,\n })\n \n const properties = {\n colspecs\n }\n\n return {\n component,\n name,\n node,\n properties,\n }\n}\n\nfunction mapToComponentName(name) {\n let componentName =\n name.charAt(0).toUpperCase() + name.slice(1)\n if (nodeNameTemplateNameMap.has(name)) {\n componentName = nodeNameTemplateNameMap.get(name)\n } else if (nodeNameTagNameMap.has(name)) {\n componentName = 'StandardElement'\n }\nreturn componentName\n}\n\nfunction addTGroup(components, node, columns) {\n if (node === null) {\n return components\n }\n\n let colspecs = []\n for (const colspec of node.querySelectorAll('colspec')) {\n colspecs.push(colspec.getAttribute('colwidth'))\n }\n\n if (colspecs.length !== columns) {\n console.log('Something is not right.')\n }\n components.push(defineColgroupComponent(node, colspecs))\n\n return components\n}\n\nfunction addComponents(components, node) {\n if (node === null) {\n return components\n }\n\n let childTarget = null\n for (const child of node.childNodes) {\n const childName = child.nodeName\n if (childName === 'compact_paragraph') {\n // Skip over this wrapper and directly add its children to this component.\n components = addComponents(components, child)\n } else if (childName === 'tgroup') {\n // Skip over these wrappers and directly add their children to this component.\n const columnCount = Number(child.getAttribute('cols'))\n components = addTGroup(components, child, columnCount)\n components = addComponents(components, child)\n } else if (childName === 'colspec') {\n // Ignore this element completely, this element is dealt with by 'tgroup'.\n } else {\n if (childName === 'target') {\n childTarget = child.getAttribute('refid')\n } else {\n if (childName !== '#text' && childTarget) {\n child.setAttribute('id', childTarget)\n childTarget = ''\n }\n const componentName = mapToComponentName(childName)\n const item = defineChildComponent(componentName, child)\n if (item) {\n components.push(item)\n }\n }\n }\n }\n\n return components\n}\n\nexport function useChildren(element) {\n const children = computed(() => {\n return addComponents([], element.value)\n })\n\n return {\n children,\n }\n}\n\nexport function useClasses(element) {\n const classes = computed(() => {\n let classesString = element.value.getAttribute('classes')\n let classes = []\n if (classesString) {\n classes = classesString.split(' ')\n }\n return [element.value.nodeName.toLowerCase(), ...classes]\n })\n\n return {\n classes\n }\n}\n","<template>\n <div :id=\"id\">\n <component\n v-for=\"(c, index) in children\"\n :key=\"'document_component_' + index\"\n :is=\"c.component\"\n :node=\"c.node\"\n :componentName=\"c.name\"\n :properties=\"c.properties\"\n />\n </div>\n</template>\n\n<script setup>\nimport { defineProps, toRefs } from 'vue'\n\nimport { useChildren } from '../../composables/computed'\n\nconst props = defineProps({\n element: {\n type: undefined,\n default: { empty: true },\n },\n id: {\n type: String,\n default: '',\n },\n})\n\nconst { element, id } = toRefs(props)\nconst { children } = useChildren(element)\n\n</script>\n","<template>\n <document :element=\"element\" :id=\"id\" />\n</template>\n\n<script setup>\nimport { defineProps, ref, toRefs, watch } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useStore } from 'vuex'\n\nimport { determineRouteUrl, constructPageNameFromRoute } from '../js/utilities'\n\nimport Document from './templates/Document.vue'\n\nconst props = defineProps({\n baseURL: {\n type: String,\n default: '/',\n },\n downloadBaseURL: {\n type: String,\n default: '',\n },\n imagesBaseURL: {\n type: String,\n default: '',\n },\n indexFileName: {\n type: String,\n default: 'index',\n },\n pageNotFoundName: {\n type: String,\n default: '404',\n },\n scrollDelay: {\n type: Number,\n default: 200,\n },\n})\n\nconst {\n baseURL,\n downloadBaseURL,\n imagesBaseURL,\n indexFileName,\n pageNotFoundName,\n scrollDelay,\n} = toRefs(props)\n\nconst router = useRouter()\nconst route = useRoute()\nconst store = useStore()\n\nlet element = ref(null)\nlet scrollToTarget = ref(undefined)\nlet id = ref('')\nlet previousRoute = {\n path: undefined,\n hash: undefined,\n}\n\nfunction followScrollTarget(elem) {\n setTimeout(() => {\n scrollToTarget.value = elem.offsetTop\n window.scrollTo({\n top: elem.offsetTop,\n behavior: 'smooth',\n })\n setTimeout(() => {\n if (scrollToTarget.value !== elem.offsetTop) {\n followScrollTarget(elem)\n }\n }, 10)\n }, scrollDelay.value)\n}\n\nwatch(\n route,\n (to) => {\n if (previousRoute.path === undefined || to.path !== previousRoute.path) {\n fetchPageData(to)\n if (to.hash) {\n setTimeout(() => {\n let hash = to.hash\n if (hash.startsWith('#')) {\n hash = hash.slice(1)\n }\n const elem = document.getElementById(hash)\n if (elem) {\n followScrollTarget(elem)\n }\n }, scrollDelay.value)\n }\n } else if (to.path === previousRoute.path && to.hash) {\n let hash = to.hash\n if (hash.startsWith('#')) {\n hash = hash.slice(1)\n }\n const elem = document.getElementById(hash)\n if (elem) {\n window.scrollTo({\n top: elem.offsetTop,\n behavior: 'smooth',\n })\n }\n }\n previousRoute.path = to.path\n previousRoute.hash = to.hash\n },\n { flush: 'pre', immediate: true, deep: true },\n)\n\nfunction fetchPageData(routeTo) {\n let pageName = constructPageNameFromRoute(routeTo)\n if (!pageName) {\n pageName = indexFileName.value\n }\n const resolvedImagesBaseURL =\n imagesBaseURL.value === ''\n ? `${baseURL.value}/_images`\n : imagesBaseURL.value\n const resolvedDownloadBaseURL =\n downloadBaseURL.value === ''\n ? `${baseURL.value}/_downloads`\n : downloadBaseURL.value\n const routeURL = determineRouteUrl(routeTo)\n\n store\n .dispatch('sphinx/fetchPage', {\n page_name: pageName,\n page_route: routeURL,\n page_url: baseURL.value,\n page_downloads: resolvedDownloadBaseURL,\n page_images: resolvedImagesBaseURL,\n })\n .then((response) => {\n if (response) {\n element.value = response\n id.value = 'page_' + pageName.replace('/', '_')\n } else {\n router.push({\n name: pageNotFoundName.value,\n params: {\n type: 'page',\n message: `Could not find Sphinx page '${pageName}.xml'.`,\n },\n })\n }\n })\n}\n</script>\n","import axios from 'axios'\n\nconst apiClient = axios.create({\n withCredentials: false,\n headers: {\n Accept: 'text/xml',\n 'Content-Type': 'text/xml',\n },\n timeout: 10000,\n})\n\nexport default {\n getPage(baseURL, page) {\n return apiClient.get(`${baseURL}/${page}.xml`)\n },\n}\n","import SphinxService from '../../services/SphinxService'\n\nexport const namespaced = true\n\nexport const state = {\n pages: new Map(),\n urlMap: new Map(),\n inflight: new Map(),\n downloadURLs: new Map(),\n imagesURLs: new Map(),\n}\n\nexport const mutations = {\n APPEND_PAGE(state, { routeURL, page }) {\n let pages = state.pages.get(routeURL)\n if (!pages) {\n pages = []\n }\n pages.push(page)\n state.pages.set(routeURL, pages)\n },\n ADD_INFLIGHT(state, { routeURL, page_name, pending }) {\n let inflightMap = state.inflight.get(routeURL)\n if (!inflightMap) {\n inflightMap = new Map()\n }\n inflightMap.set(page_name, pending)\n state.inflight.set(routeURL, inflightMap)\n },\n REMOVE_INFLIGHT(state, { routeURL, id }) {\n state.inflight.get(routeURL).delete(id)\n },\n // SET_DOWNLOADS_URL(state, { routeURL, url }) {\n // state.downloadsURLs.set(routeURL, url)\n // },\n // SET_IMAGES_URL(state, { routeURL, url }) {\n // state.imagesURLs.set(routeURL, url)\n // },\n REGISTER_ROUTE_URL(state, { baseURL, routeURL, downloadsURL, imagesURL }) {\n const registeredURL = state.pages.get(routeURL)\n if (!registeredURL) {\n state.pages.set(routeURL, [])\n state.urlMap.set(routeURL, baseURL)\n state.downloadURLs.set(routeURL, downloadsURL)\n state.imagesURLs.set(routeURL, imagesURL)\n state.inflight.set(routeURL, new Map())\n }\n },\n}\n\nexport const actions = {\n fetchPage({ commit, getters }, payload) {\n const page_name = payload.page_name\n const page_route = payload.page_route\n const base_url = payload.page_url\n commit('REGISTER_ROUTE_URL', {\n baseURL: base_url,\n routeURL: page_route,\n downloadsURL: payload.page_downloads,\n imagesURL: payload.page_images,\n })\n const existingPage = getters.getPageById(page_route, page_name)\n if (existingPage) {\n return Promise.resolve(existingPage)\n }\n if (getters.isInflight(page_route, page_name)) {\n return getters.getInflight(page_route, page_name)\n }\n const pending = SphinxService.getPage(base_url, page_name)\n .then(response => {\n let parser = new DOMParser()\n let xmlDoc = parser.parseFromString(response.data, 'text/xml')\n const documentElement = xmlDoc.querySelector('document')\n commit('APPEND_PAGE', { routeURL: page_route, page: documentElement })\n commit('REMOVE_INFLIGHT', { routeURL: page_route, id: page_name })\n return documentElement\n })\n .catch(() => {\n commit('REMOVE_INFLIGHT', { routeURL: page_route, id: page_name })\n })\n commit('ADD_INFLIGHT', { routeURL: page_route, page_name, pending })\n return pending\n },\n // setDownloadURL({ commit }, { page_route, url }) {\n // commit('SET_DOWNLOAD_URL', { routeURL: page_route, url })\n // },\n // setImagesURL({ commit }, { page_route, url }) {\n // commit('SET_IMAGES_URL', { routeURL: page_route, url })\n // },\n}\n\nexport const getters = {\n getPageById: state => (routeURL, id) => {\n return state.pages.get(routeURL).find(page => page.id === id)\n },\n getInflight: state => (routeURL, id) => {\n return state.inflight.get(routeURL).get(id)\n },\n isInflight: state => (routeURL, id) => {\n return !!state.inflight.get(routeURL).get(id)\n },\n getBaseUrl: state => routeURL => {\n return state.urlMap.get(routeURL)\n },\n getDownloadURL: state => routeURL => {\n return state.downloadURLs.get(routeURL)\n },\n getImagesURL: state => routeURL => {\n return state.imagesURLs.get(routeURL)\n },\n}\n","import Vue3Katex from '@hsorby/vue3-katex'\nimport 'katex/dist/katex.min.css'\n\nimport SphinxPage from './components/SphinxPage.vue'\nimport * as SphinxStore from './store/modules/sphinx'\n\nfunction installVue3SphinxXml(app, options = {}) {\n if (!options.store) {\n throw 'Please provide a store!!'\n }\n\n options.store.registerModule('sphinx', SphinxStore)\n app.use(Vue3Katex, options.katex)\n}\n\nexport { installVue3SphinxXml, SphinxPage }\n\n"],"names":["ErrorComponent"],"mappings":";;;;;;;AAGY,MAAC,aAAa,aAAW;AACnC,MAAI,OAAO,SAAS,cAAc,UAAU;AAC5C,OAAK,YAAY;AACjB,SAAO,KAAK;AACd;AAEY,MAAC,oBAAoB,WAAS;AACxC,QAAM,QAAQ,aAAa,MAAM,QAAQ,GAAG,IAAI;AAChD,MAAI,WAAW,MAAM;AACrB,MAAI,MAAM,MAAM;AACd,eAAW,SAAS,QAAQ,MAAM,MAAM,EAAE;AAAA,EAC3C;AACD,QAAM,UAAU,SAAS,MAAM,KAAK;AACpC,MAAI,OAAO,QAAQ;AACnB,MAAI,QAAQ,QAAQ,SAAS,IAAI;AAC/B,WAAO,QAAQ,GAAG,QAAQ,IAAI,QAAQ,QAAQ,SAAS,MAAM,EAAE;AAAA,EAChE;AACD,SAAO;AACT;AAEY,MAAC,6BAA6B,WAAS;AACjD,MAAI,WAAW;AACf,MAAI;AACF,eAAW,MAAM,OAAO,SAAS,KAAK,GAAG;AAAA,EAC1C,SAAQ,GAAP;AACA,eAAW,MAAM,OAAO;AAAA,EACzB;AACD,SAAO;AACT;;;;;;;;;;;;;;;;;;;;;AC9BA,IAAA,cAAe,CAAC,KAAK,UAAU;AAC7B,QAAM,SAAS,IAAI,aAAa;AAChC,aAAW,CAAC,KAAK,QAAQ,OAAO;AAC9B,WAAO,OAAO;AAAA,EACf;AACD,SAAO;AACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPY,MAAC,qBAAqB,oBAAI,IAAI;AAAA,EACxC,CAAC,eAAe,IAAI;AAAA,EACpB,CAAC,UAAU,QAAQ;AAAA,EACnB,CAAC,cAAc,IAAI;AAAA,EACnB,CAAC,mBAAmB,IAAI;AAAA,EACxB,CAAC,wBAAwB,IAAI;AAAA,EAC7B,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,YAAY,IAAI;AAAA,EACjB,CAAC,mBAAmB,IAAI;AAAA,EACxB,CAAC,YAAY,KAAK;AAAA,EAClB,CAAC,UAAU,MAAM;AAAA,EACjB,CAAC,SAAS,MAAM;AAAA,EAChB,CAAC,aAAa,IAAI;AAAA,EAClB,CAAC,QAAQ,GAAG;AAAA,EACZ,CAAC,aAAa,GAAG;AAAA,EACjB,CAAC,UAAU,IAAI;AAAA,EACf,CAAC,UAAU,QAAQ;AAAA,EACnB,CAAC,aAAa,KAAK;AAAA,EACnB,CAAC,eAAe,KAAK;AAAA,EACrB,CAAC,SAAS,OAAO;AAAA,EACjB,CAAC,SAAS,OAAO;AAAA,EACjB,CAAC,SAAS,IAAI;AAAA,EACd,CAAC,OAAO,IAAI;AAAA,EACZ,CAAC,SAAS,OAAO;AAAA,EACjB,CAAC,QAAQ,IAAI;AAAA,EACb,CAAC,mBAAmB,MAAM;AAC5B,CAAC;AAEM,MAAM,0BAA0B,oBAAI,IAAI;AAAA,EAC7C,CAAC,SAAS,MAAM;AAAA,EAChB,CAAC,eAAe,YAAY;AAAA,EAC5B,CAAC,WAAW,eAAe;AAAA,EAC3B,CAAC,kBAAkB,eAAe;AAAA,EAClC,CAAC,sBAAsB,mBAAmB;AAAA,EAC1C,CAAC,sBAAsB,mBAAmB;AAAA,EAC1C,CAAC,cAAc,WAAW;AAAA,EAC1B,CAAC,iBAAiB,cAAc;AAAA,EAChC,CAAC,cAAc,WAAW;AAAA,EAC1B,CAAC,oBAAoB,iBAAiB;AACxC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjCD,8BAA8B,MAAM,MAAM;AACxC,MAAI,aAAa;AACjB,MAAI,KAAK,aAAa,SAAS;AAC7B,QAAI,CAAC,KAAK,UAAU,QAAQ;AAC1B,aAAO;AAAA,IACR;AACD,iBAAa;AAAA,MACX,MAAM,KAAK;AAAA,IACZ;AAAA,EACL,WAAa,KAAK,aAAa,SAAS;AACpC,QAAI,aAAa,KAAK;AACtB,QAAI,QAAQ;AACZ,QAAI,UAAU;AACd,QAAI,WAAW,aAAa,SAAS;AACnC,gBAAU;AAAA,IAChB,OAAW;AACL,aAAO,YAAY;AAEjB,YAAI,WAAW,aAAa,WAAW;AACrC,mBAAS;AAAA,QACV;AACD,qBAAa,WAAW;AAAA,MACzB;AAAA,IACF;AACD,iBAAa;AAAA,MACX;AAAA,MACA;AAAA,IACD;AAAA,EACF;AACD,QAAM,YAAY,qBAAqB;AAAA,IACrC,QAAQ,MAAM;AACZ,aAAO,kCAAO,2BAA2B,UAAU;AAAA,IACpD;AAAA,IAED,kBAAkB;AAAA,IAElB,gBAAgBA;AAAAA,EACpB,CAAG;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACH;AAEA,iCAAiC,MAAM,UAAU;AAC/C,QAAM,OAAO;AACb,QAAM,YAAY,qBAAqB;AAAA,IACrC,QAAQ,MAAM;AACZ,aAAO,kCAAO,2BAA2B,UAAU;AAAA,IACpD;AAAA,IAED,kBAAkB;AAAA,IAElB,gBAAgBA;AAAAA,EACpB,CAAG;AAED,QAAM,aAAa;AAAA,IACjB;AAAA,EACD;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACH;AAEA,4BAA4B,MAAM;AAChC,MAAI,gBACJ,KAAK,OAAO,CAAC,EAAE,YAAW,IAAK,KAAK,MAAM,CAAC;AAC3C,MAAI,wBAAwB,IAAI,IAAI,GAAG;AACrC,oBAAgB,wBAAwB,IAAI,IAAI;AAAA,EACjD,WAAU,mBAAmB,IAAI,IAAI,GAAG;AACvC,oBAAgB;AAAA,EACjB;AACH,SAAO;AACP;AAEA,mBAAmB,YAAY,MAAM,SAAS;AAC5C,MAAI,SAAS,MAAM;AACjB,WAAO;AAAA,EACR;AAED,MAAI,WAAW,CAAE;AACjB,aAAW,WAAW,KAAK,iBAAiB,SAAS,GAAG;AACtD,aAAS,KAAK,QAAQ,aAAa,UAAU,CAAC;AAAA,EAC/C;AAED,MAAI,SAAS,WAAW,SAAS;AAC/B,YAAQ,IAAI,yBAAyB;AAAA,EACtC;AACD,aAAW,KAAK,wBAAwB,MAAM,QAAQ,CAAC;AAEvD,SAAO;AACT;AAEA,uBAAuB,YAAY,MAAM;AACvC,MAAI,SAAS,MAAM;AACjB,WAAO;AAAA,EACR;AAED,MAAI,cAAc;AAClB,aAAW,SAAS,KAAK,YAAY;AACnC,UAAM,YAAY,MAAM;AACxB,QAAI,cAAc,qBAAqB;AAErC,mBAAa,cAAc,YAAY,KAAK;AAAA,IAClD,WAAe,cAAc,UAAU;AAEjC,YAAM,cAAc,OAAO,MAAM,aAAa,MAAM,CAAC;AACrD,mBAAa,UAAU,YAAY,OAAO,WAAW;AACrD,mBAAa,cAAc,YAAY,KAAK;AAAA,IAClD,WAAe,cAAc;AAAW;AAAA,SAE7B;AACL,UAAI,cAAc,UAAU;AAC1B,sBAAc,MAAM,aAAa,OAAO;AAAA,MAChD,OAAa;AACL,YAAI,cAAc,WAAW,aAAa;AACxC,gBAAM,aAAa,MAAM,WAAW;AACpC,wBAAc;AAAA,QACf;AACD,cAAM,gBAAgB,mBAAmB,SAAS;AAClD,cAAM,OAAO,qBAAqB,eAAe,KAAK;AACtD,YAAI,MAAM;AACR,qBAAW,KAAK,IAAI;AAAA,QACrB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAED,SAAO;AACT;AAEO,qBAAqB,SAAS;AACnC,QAAM,WAAW,SAAS,MAAM;AAC9B,WAAO,cAAc,CAAA,GAAI,QAAQ,KAAK;AAAA,EAC1C,CAAG;AAED,SAAO;AAAA,IACL;AAAA,EACD;AACH;AAEO,oBAAoB,SAAS;AAClC,QAAM,UAAU,SAAS,MAAM;AAC7B,QAAI,gBAAgB,QAAQ,MAAM,aAAa,SAAS;AACxD,QAAI,WAAU,CAAE;AAChB,QAAI,eAAe;AACjB,iBAAU,cAAc,MAAM,GAAG;AAAA,IAClC;AACD,WAAO,CAAC,QAAQ,MAAM,SAAS,YAAW,GAAI,GAAG,QAAO;AAAA,EAC5D,CAAG;AAED,SAAO;AAAA,IACL;AAAA,EACD;AACH;;;;;;;;;;;;;;;AC1IA,UAAM,EAAE,SAAS,OAAO,OAAO,KAAK;AACpC,UAAM,EAAE,aAAa,YAAY,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACUxC,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,OAAO,KAAK;AAEhB,UAAM,SAAS,UAAW;AAC1B,UAAM,QAAQ,SAAU;AACxB,UAAM,QAAQ,SAAU;AAExB,QAAI,UAAU,IAAI,IAAI;AACtB,QAAI,iBAAiB,IAAI,MAAS;AAClC,QAAI,KAAK,IAAI,EAAE;AACf,QAAI,gBAAgB;AAAA,MAClB,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAEA,gCAA4B,MAAM;AAChC,iBAAW,MAAM;AACf,uBAAe,QAAQ,KAAK;AAC5B,eAAO,SAAS;AAAA,UACd,KAAK,KAAK;AAAA,UACV,UAAU;AAAA,QAChB,CAAK;AACD,mBAAW,MAAM;AACf,cAAI,eAAe,UAAU,KAAK,WAAW;AAC3C,+BAAmB,IAAI;AAAA,UACxB;AAAA,QACF,GAAE,EAAE;AAAA,MACT,GAAK,YAAY,KAAK;AAAA,IACtB;AAEA,UACE,OACA,CAAC,OAAO;AACN,UAAI,cAAc,SAAS,UAAa,GAAG,SAAS,cAAc,MAAM;AACtE,sBAAc,EAAE;AAChB,YAAI,GAAG,MAAM;AACX,qBAAW,MAAM;AACf,gBAAI,OAAO,GAAG;AACd,gBAAI,KAAK,WAAW,GAAG,GAAG;AACxB,qBAAO,KAAK,MAAM,CAAC;AAAA,YACpB;AACD,kBAAM,OAAO,SAAS,eAAe,IAAI;AACzC,gBAAI,MAAM;AACR,iCAAmB,IAAI;AAAA,YACxB;AAAA,UACX,GAAW,YAAY,KAAK;AAAA,QACrB;AAAA,MACP,WAAe,GAAG,SAAS,cAAc,QAAQ,GAAG,MAAM;AACpD,YAAI,OAAO,GAAG;AACd,YAAI,KAAK,WAAW,GAAG,GAAG;AACxB,iBAAO,KAAK,MAAM,CAAC;AAAA,QACpB;AACD,cAAM,OAAO,SAAS,eAAe,IAAI;AACzC,YAAI,MAAM;AACR,iBAAO,SAAS;AAAA,YACd,KAAK,KAAK;AAAA,YACV,UAAU;AAAA,UACpB,CAAS;AAAA,QACF;AAAA,MACF;AACD,oBAAc,OAAO,GAAG;AACxB,oBAAc,OAAO,GAAG;AAAA,IACzB,GACD,EAAE,OAAO,OAAO,WAAW,MAAM,MAAM,KAAM,CAC/C;AAEA,2BAAuB,SAAS;AAC9B,UAAI,WAAW,2BAA2B,OAAO;AACjD,UAAI,CAAC,UAAU;AACb,mBAAW,cAAc;AAAA,MAC1B;AACD,YAAM,wBACJ,cAAc,UAAU,KACpB,GAAG,QAAQ,kBACX,cAAc;AACpB,YAAM,0BACJ,gBAAgB,UAAU,KACtB,GAAG,QAAQ,qBACX,gBAAgB;AACtB,YAAM,WAAW,kBAAkB,OAAO;AAE1C,YACG,SAAS,oBAAoB;AAAA,QAC5B,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,UAAU,QAAQ;AAAA,QAClB,gBAAgB;AAAA,QAChB,aAAa;AAAA,MACnB,CAAK,EACA,KAAK,CAAC,aAAa;AAClB,YAAI,UAAU;AACZ,kBAAQ,QAAQ;AAChB,aAAG,QAAQ,UAAU,SAAS,QAAQ,KAAK,GAAG;AAAA,QACtD,OAAa;AACL,iBAAO,KAAK;AAAA,YACV,MAAM,iBAAiB;AAAA,YACvB,QAAQ;AAAA,cACN,MAAM;AAAA,cACN,SAAS,+BAA+B;AAAA,YACzC;AAAA,UACX,CAAS;AAAA,QACF;AAAA,MACP,CAAK;AAAA,IACL;;;;;;;;;ACnJA,MAAM,YAAY,MAAM,OAAO;AAAA,EAC7B,iBAAiB;AAAA,EACjB,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,gBAAgB;AAAA,EACjB;AAAA,EACD,SAAS;AACX,CAAC;AAED,IAAe,gBAAA;AAAA,EACb,QAAQ,SAAS,MAAM;AACrB,WAAO,UAAU,IAAI,GAAG,WAAW,UAAU;AAAA,EAC9C;AACH;ACbO,MAAM,aAAa;AAEnB,MAAM,QAAQ;AAAA,EACnB,OAAO,oBAAI,IAAK;AAAA,EAChB,QAAQ,oBAAI,IAAK;AAAA,EACjB,UAAU,oBAAI,IAAK;AAAA,EACnB,cAAc,oBAAI,IAAK;AAAA,EACvB,YAAY,oBAAI,IAAK;AACvB;AAEO,MAAM,YAAY;AAAA,EACvB,YAAY,QAAO,EAAE,UAAU,QAAQ;AACrC,QAAI,QAAQ,OAAM,MAAM,IAAI,QAAQ;AACpC,QAAI,CAAC,OAAO;AACV,cAAQ,CAAE;AAAA,IACX;AACD,UAAM,KAAK,IAAI;AACf,WAAM,MAAM,IAAI,UAAU,KAAK;AAAA,EAChC;AAAA,EACD,aAAa,QAAO,EAAE,UAAU,WAAW,WAAW;AACpD,QAAI,cAAc,OAAM,SAAS,IAAI,QAAQ;AAC7C,QAAI,CAAC,aAAa;AAChB,oBAAc,oBAAI,IAAK;AAAA,IACxB;AACD,gBAAY,IAAI,WAAW,OAAO;AAClC,WAAM,SAAS,IAAI,UAAU,WAAW;AAAA,EACzC;AAAA,EACD,gBAAgB,QAAO,EAAE,UAAU,MAAM;AACvC,WAAM,SAAS,IAAI,QAAQ,EAAE,OAAO,EAAE;AAAA,EACvC;AAAA,EAOD,mBAAmB,QAAO,EAAE,SAAS,UAAU,cAAc,aAAa;AACxE,UAAM,gBAAgB,OAAM,MAAM,IAAI,QAAQ;AAC9C,QAAI,CAAC,eAAe;AAClB,aAAM,MAAM,IAAI,UAAU,CAAA,CAAE;AAC5B,aAAM,OAAO,IAAI,UAAU,OAAO;AAClC,aAAM,aAAa,IAAI,UAAU,YAAY;AAC7C,aAAM,WAAW,IAAI,UAAU,SAAS;AACxC,aAAM,SAAS,IAAI,UAAU,oBAAI,IAAG,CAAE;AAAA,IACvC;AAAA,EACF;AACH;AAEO,MAAM,UAAU;AAAA,EACrB,UAAU,EAAE,QAAQ,qBAAW,SAAS;AACtC,UAAM,YAAY,QAAQ;AAC1B,UAAM,aAAa,QAAQ;AAC3B,UAAM,WAAW,QAAQ;AACzB,WAAO,sBAAsB;AAAA,MAC3B,SAAS;AAAA,MACT,UAAU;AAAA,MACV,cAAc,QAAQ;AAAA,MACtB,WAAW,QAAQ;AAAA,IACzB,CAAK;AACD,UAAM,eAAe,SAAQ,YAAY,YAAY,SAAS;AAC9D,QAAI,cAAc;AAChB,aAAO,QAAQ,QAAQ,YAAY;AAAA,IACpC;AACD,QAAI,SAAQ,WAAW,YAAY,SAAS,GAAG;AAC7C,aAAO,SAAQ,YAAY,YAAY,SAAS;AAAA,IACjD;AACD,UAAM,UAAU,cAAc,QAAQ,UAAU,SAAS,EACtD,KAAK,cAAY;AAChB,UAAI,SAAS,IAAI,UAAW;AAC5B,UAAI,SAAS,OAAO,gBAAgB,SAAS,MAAM,UAAU;AAC7D,YAAM,kBAAkB,OAAO,cAAc,UAAU;AACvD,aAAO,eAAe,EAAE,UAAU,YAAY,MAAM,iBAAiB;AACrE,aAAO,mBAAmB,EAAE,UAAU,YAAY,IAAI,WAAW;AACjE,aAAO;AAAA,IACf,CAAO,EACA,MAAM,MAAM;AACX,aAAO,mBAAmB,EAAE,UAAU,YAAY,IAAI,WAAW;AAAA,IACzE,CAAO;AACH,WAAO,gBAAgB,EAAE,UAAU,YAAY,WAAW,SAAS;AACnE,WAAO;AAAA,EACR;AAOH;AAEO,MAAM,UAAU;AAAA,EACrB,aAAa,YAAS,CAAC,UAAU,OAAO;AACtC,WAAO,OAAM,MAAM,IAAI,QAAQ,EAAE,KAAK,UAAQ,KAAK,OAAO,EAAE;AAAA,EAC7D;AAAA,EACD,aAAa,YAAS,CAAC,UAAU,OAAO;AACtC,WAAO,OAAM,SAAS,IAAI,QAAQ,EAAE,IAAI,EAAE;AAAA,EAC3C;AAAA,EACD,YAAY,YAAS,CAAC,UAAU,OAAO;AACrC,WAAO,CAAC,CAAC,OAAM,SAAS,IAAI,QAAQ,EAAE,IAAI,EAAE;AAAA,EAC7C;AAAA,EACD,YAAY,YAAS,cAAY;AAC/B,WAAO,OAAM,OAAO,IAAI,QAAQ;AAAA,EACjC;AAAA,EACD,gBAAgB,YAAS,cAAY;AACnC,WAAO,OAAM,aAAa,IAAI,QAAQ;AAAA,EACvC;AAAA,EACD,cAAc,YAAS,cAAY;AACjC,WAAO,OAAM,WAAW,IAAI,QAAQ;AAAA,EACrC;AACH;;;;;;;;;ACxGA,8BAA8B,KAAK,UAAU,IAAI;AAC/C,MAAI,CAAC,QAAQ,OAAO;AAClB,UAAM;AAAA,EACP;AAED,UAAQ,MAAM,eAAe,UAAU,WAAW;AAClD,MAAI,IAAI,WAAW,QAAQ,KAAK;AAClC;;"}
|
|
1
|
+
{"version":3,"file":"entry.js","sources":["../src/js/utilities.js","../plugin-vue:export-helper","../src/js/nodemap.js","../src/composables/computed.js","../src/components/templates/Document.vue","../src/components/SphinxPage.vue","../src/services/SphinxService.js","../src/store/modules/sphinx.js","../src/entry.js"],"sourcesContent":["import { pathToRegexp } from \"path-to-regexp\"\nimport { renderBlockQuote } from \"./renderfcns\"\n\nexport const decodeHTML = encoded => {\n let elem = document.createElement('textarea')\n elem.innerHTML = encoded\n return elem.value\n}\n\nexport const determineRouteUrl = route => {\n const regex = pathToRegexp(route.matched[0].path)\n let fullPath = route.fullPath\n if (route.hash) {\n fullPath = fullPath.replace(route.hash, '')\n }\n const matched = fullPath.match(regex)\n let base = matched[0]\n if (matched[matched.length - 1]) {\n base = matched[0].replace(`/${matched[matched.length - 1]}`, '')\n }\n return base\n}\n\nexport const constructPageNameFromRoute = route => {\n let pageName = undefined\n try {\n pageName = route.params.pageName.join('/')\n } catch (_) {\n pageName = route.params.pageName\n }\n return pageName\n}\n","\nexport default (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n}\n","export const nodeNameTagNameMap = new Map([\n ['bullet_list', 'ul'],\n ['button', 'button'],\n ['definition', 'dd'],\n ['definition_list', 'dl'],\n ['definition_list_item', 'dt'],\n ['div', 'div'],\n ['emphasis', 'em'],\n ['enumerated_list', 'ol'],\n ['glossary', 'div'],\n ['inline', 'span'],\n ['label', 'span'],\n ['list_item', 'li'],\n ['line', 'p'],\n ['paragraph', 'p'],\n ['rubric', 'h3'],\n ['strong', 'strong'],\n ['subscript', 'sub'],\n ['superscript', 'sup'],\n ['table', 'table'],\n ['tbody', 'tbody'],\n ['entry', 'td'],\n ['row', 'tr'],\n ['thead', 'thead'],\n ['term', 'dt'],\n ['title_reference', 'cite'],\n])\n\nexport const nodeNameTemplateNameMap = new Map([\n ['#text', 'Text'],\n ['block_quote', 'BlockQuote'],\n ['caption', 'FigureCaption'],\n ['caption_number', 'CaptionNumber'],\n ['download_reference', 'DownloadReference'],\n ['footnote_reference', 'FootnoteReference'],\n ['index', 'Skip'],\n ['line_block', 'LineBlock'],\n ['literal_block', 'LiteralBlock'],\n ['math_block', 'MathBlock'],\n ['number_reference', 'NumberReference'],\n])\n","import { computed, defineAsyncComponent } from 'vue'\n\nimport ErrorComponent from '../components/Error.vue'\nimport LoadingComponent from '../components/Loading.vue'\nimport { nodeNameTagNameMap, nodeNameTemplateNameMap } from '../js/nodemap'\n\nfunction defineChildComponent(name, node) {\n let properties = undefined\n if (node.nodeName === '#text') {\n if (!node.nodeValue.trim()) {\n return null\n }\n properties = {\n text: node.nodeValue,\n }\n } else if (node.nodeName === 'title') {\n let parentNode = node.parentNode\n let depth = 0\n let isTopic = false\n if (parentNode.nodeName === 'topic') {\n isTopic = true\n } else {\n while (parentNode) {\n // && parentNode.nodeName !== ('SphinxPage' should now be 'document' but maybe this is no longer requied).\n if (parentNode.nodeName === 'section') {\n depth += 1\n }\n parentNode = parentNode.parentNode\n }\n }\n properties = {\n depth,\n isTopic,\n }\n }\n const component = defineAsyncComponent({\n loader: () => {\n return import(`../components/templates/${name}.vue`)\n },\n // A component to use while the async component is loading\n loadingComponent: LoadingComponent,\n // A component to use if the load fails\n errorComponent: ErrorComponent,\n })\n\n return {\n component,\n name,\n node,\n properties,\n }\n}\n\nfunction defineColgroupComponent(node, colspecs) {\n const name = 'ColumnGroup'\n const component = defineAsyncComponent({\n loader: () => {\n return import(`../components/templates/${name}.vue`)\n },\n // A component to use while the async component is loading\n loadingComponent: LoadingComponent,\n // A component to use if the load fails\n errorComponent: ErrorComponent,\n })\n \n const properties = {\n colspecs\n }\n\n return {\n component,\n name,\n node,\n properties,\n }\n}\n\nfunction mapToComponentName(name) {\n let componentName =\n name.charAt(0).toUpperCase() + name.slice(1)\n if (nodeNameTemplateNameMap.has(name)) {\n componentName = nodeNameTemplateNameMap.get(name)\n } else if (nodeNameTagNameMap.has(name)) {\n componentName = 'StandardElement'\n }\nreturn componentName\n}\n\nfunction addTGroup(components, node, columns) {\n if (node === null) {\n return components\n }\n\n let colspecs = []\n for (const colspec of node.querySelectorAll('colspec')) {\n colspecs.push(colspec.getAttribute('colwidth'))\n }\n\n if (colspecs.length !== columns) {\n console.log('Something is not right.')\n }\n components.push(defineColgroupComponent(node, colspecs))\n\n return components\n}\n\nfunction addComponents(components, node) {\n if (node === null) {\n return components\n }\n\n let childTarget = null\n for (const child of node.childNodes) {\n const childName = child.nodeName\n if (childName === 'compact_paragraph') {\n // Skip over this wrapper and directly add its children to this component.\n components = addComponents(components, child)\n } else if (childName === 'tgroup') {\n // Skip over these wrappers and directly add their children to this component.\n const columnCount = Number(child.getAttribute('cols'))\n components = addTGroup(components, child, columnCount)\n components = addComponents(components, child)\n } else if (childName === 'colspec') {\n // Ignore this element completely, this element is dealt with by 'tgroup'.\n } else {\n if (childName === 'target') {\n childTarget = child.getAttribute('refid')\n } else {\n if (childName !== '#text' && childTarget) {\n child.setAttribute('id', childTarget)\n childTarget = ''\n }\n const componentName = mapToComponentName(childName)\n const item = defineChildComponent(componentName, child)\n if (item) {\n components.push(item)\n }\n }\n }\n }\n\n return components\n}\n\nexport function useChildren(element) {\n const children = computed(() => {\n return addComponents([], element.value)\n })\n\n return {\n children,\n }\n}\n\nexport function useClasses(element) {\n const classes = computed(() => {\n let classesString = element.value.getAttribute('classes')\n let classes = []\n if (classesString) {\n classes = classesString.split(' ')\n }\n return [element.value.nodeName.toLowerCase(), ...classes]\n })\n\n return {\n classes\n }\n}\n","<template>\n <div :id=\"id\">\n <component\n v-for=\"(c, index) in children\"\n :key=\"'document_component_' + index\"\n :is=\"c.component\"\n :node=\"c.node\"\n :componentName=\"c.name\"\n :properties=\"c.properties\"\n />\n </div>\n</template>\n\n<script setup>\nimport { defineProps, toRefs } from 'vue'\n\nimport { useChildren } from '../../composables/computed'\n\nconst props = defineProps({\n element: {\n type: undefined,\n default: { empty: true },\n },\n id: {\n type: String,\n default: '',\n },\n})\n\nconst { element } = toRefs(props)\nconst { children } = useChildren(element)\n\n</script>\n","<template>\n <document :element=\"element\" :id=\"id\" />\n</template>\n\n<script setup>\nimport { defineProps, ref, toRefs, watch } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\nimport { useStore } from 'vuex'\n\nimport { determineRouteUrl, constructPageNameFromRoute } from '../js/utilities'\n\nimport Document from './templates/Document.vue'\n\nconst props = defineProps({\n baseURL: {\n type: String,\n default: '/',\n },\n downloadBaseURL: {\n type: String,\n default: '',\n },\n imagesBaseURL: {\n type: String,\n default: '',\n },\n indexFileName: {\n type: String,\n default: 'index',\n },\n pageNotFoundName: {\n type: String,\n default: '404',\n },\n scrollDelay: {\n type: Number,\n default: 200,\n },\n})\n\nconst {\n baseURL,\n downloadBaseURL,\n imagesBaseURL,\n indexFileName,\n pageNotFoundName,\n scrollDelay,\n} = toRefs(props)\n\nconst router = useRouter()\nconst route = useRoute()\nconst store = useStore()\n\nlet element = ref(null)\nlet scrollToTarget = ref(undefined)\nlet id = ref('')\nlet previousRoute = {\n path: undefined,\n hash: undefined,\n}\n\nfunction followScrollTarget(elem) {\n setTimeout(() => {\n scrollToTarget.value = elem.offsetTop\n window.scrollTo({\n top: elem.offsetTop,\n behavior: 'smooth',\n })\n setTimeout(() => {\n if (scrollToTarget.value !== elem.offsetTop) {\n followScrollTarget(elem)\n }\n }, 10)\n }, scrollDelay.value)\n}\n\nwatch(\n route,\n (to) => {\n if (previousRoute.path === undefined || to.path !== previousRoute.path) {\n fetchPageData(to)\n if (to.hash) {\n setTimeout(() => {\n let hash = to.hash\n if (hash.startsWith('#')) {\n hash = hash.slice(1)\n }\n const elem = document.getElementById(hash)\n if (elem) {\n followScrollTarget(elem)\n }\n }, scrollDelay.value)\n }\n } else if (to.path === previousRoute.path && to.hash) {\n let hash = to.hash\n if (hash.startsWith('#')) {\n hash = hash.slice(1)\n }\n const elem = document.getElementById(hash)\n if (elem) {\n window.scrollTo({\n top: elem.offsetTop,\n behavior: 'smooth',\n })\n }\n }\n previousRoute.path = to.path\n previousRoute.hash = to.hash\n },\n { flush: 'pre', immediate: true, deep: true },\n)\n\nfunction fetchPageData(routeTo) {\n let pageName = constructPageNameFromRoute(routeTo)\n if (!pageName) {\n pageName = indexFileName.value\n }\n const resolvedImagesBaseURL =\n imagesBaseURL.value === ''\n ? `${baseURL.value}/_images`\n : imagesBaseURL.value\n const resolvedDownloadBaseURL =\n downloadBaseURL.value === ''\n ? `${baseURL.value}/_downloads`\n : downloadBaseURL.value\n const routeURL = determineRouteUrl(routeTo)\n\n store\n .dispatch('sphinx/fetchPage', {\n page_name: pageName,\n page_route: routeURL,\n page_url: baseURL.value,\n page_downloads: resolvedDownloadBaseURL,\n page_images: resolvedImagesBaseURL,\n })\n .then((response) => {\n if (response) {\n element.value = response\n id.value = 'page_' + pageName.replace('/', '_')\n } else {\n router.push({\n name: pageNotFoundName.value,\n params: {\n type: 'page',\n message: `Could not find Sphinx page '${pageName}.xml'.`,\n },\n })\n }\n })\n}\n</script>\n","import axios from 'axios'\n\nconst apiClient = axios.create({\n withCredentials: false,\n headers: {\n Accept: 'text/xml',\n 'Content-Type': 'text/xml',\n },\n timeout: 10000,\n})\n\nexport default {\n getPage(baseURL, page) {\n return apiClient.get(`${baseURL}/${page}.xml`)\n },\n}\n","import SphinxService from '../../services/SphinxService'\n\nexport const namespaced = true\n\nexport const state = {\n pages: new Map(),\n urlMap: new Map(),\n inflight: new Map(),\n downloadURLs: new Map(),\n imagesURLs: new Map(),\n}\n\nexport const mutations = {\n APPEND_PAGE(state, { routeURL, page }) {\n let pages = state.pages.get(routeURL)\n if (!pages) {\n pages = []\n }\n pages.push(page)\n state.pages.set(routeURL, pages)\n },\n ADD_INFLIGHT(state, { routeURL, page_name, pending }) {\n let inflightMap = state.inflight.get(routeURL)\n if (!inflightMap) {\n inflightMap = new Map()\n }\n inflightMap.set(page_name, pending)\n state.inflight.set(routeURL, inflightMap)\n },\n REMOVE_INFLIGHT(state, { routeURL, id }) {\n state.inflight.get(routeURL).delete(id)\n },\n // SET_DOWNLOADS_URL(state, { routeURL, url }) {\n // state.downloadsURLs.set(routeURL, url)\n // },\n // SET_IMAGES_URL(state, { routeURL, url }) {\n // state.imagesURLs.set(routeURL, url)\n // },\n REGISTER_ROUTE_URL(state, { baseURL, routeURL, downloadsURL, imagesURL }) {\n const registeredURL = state.pages.get(routeURL)\n if (!registeredURL) {\n state.pages.set(routeURL, [])\n state.urlMap.set(routeURL, baseURL)\n state.downloadURLs.set(routeURL, downloadsURL)\n state.imagesURLs.set(routeURL, imagesURL)\n state.inflight.set(routeURL, new Map())\n }\n },\n}\n\nexport const actions = {\n fetchPage({ commit, getters }, payload) {\n const page_name = payload.page_name\n const page_route = payload.page_route\n const base_url = payload.page_url\n commit('REGISTER_ROUTE_URL', {\n baseURL: base_url,\n routeURL: page_route,\n downloadsURL: payload.page_downloads,\n imagesURL: payload.page_images,\n })\n const existingPage = getters.getPageById(page_route, page_name)\n if (existingPage) {\n return Promise.resolve(existingPage)\n }\n if (getters.isInflight(page_route, page_name)) {\n return getters.getInflight(page_route, page_name)\n }\n const pending = SphinxService.getPage(base_url, page_name)\n .then(response => {\n let parser = new DOMParser()\n let xmlDoc = parser.parseFromString(response.data, 'text/xml')\n const documentElement = xmlDoc.querySelector('document')\n commit('APPEND_PAGE', { routeURL: page_route, page: documentElement })\n commit('REMOVE_INFLIGHT', { routeURL: page_route, id: page_name })\n return documentElement\n })\n .catch(() => {\n commit('REMOVE_INFLIGHT', { routeURL: page_route, id: page_name })\n })\n commit('ADD_INFLIGHT', { routeURL: page_route, page_name, pending })\n return pending\n },\n // setDownloadURL({ commit }, { page_route, url }) {\n // commit('SET_DOWNLOAD_URL', { routeURL: page_route, url })\n // },\n // setImagesURL({ commit }, { page_route, url }) {\n // commit('SET_IMAGES_URL', { routeURL: page_route, url })\n // },\n}\n\nexport const getters = {\n getPageById: state => (routeURL, id) => {\n return state.pages.get(routeURL).find(page => page.id === id)\n },\n getInflight: state => (routeURL, id) => {\n return state.inflight.get(routeURL).get(id)\n },\n isInflight: state => (routeURL, id) => {\n return !!state.inflight.get(routeURL).get(id)\n },\n getBaseUrl: state => routeURL => {\n return state.urlMap.get(routeURL)\n },\n getDownloadURL: state => routeURL => {\n return state.downloadURLs.get(routeURL)\n },\n getImagesURL: state => routeURL => {\n return state.imagesURLs.get(routeURL)\n },\n}\n","import Vue3Katex from '@hsorby/vue3-katex'\nimport 'katex/dist/katex.min.css'\n\nimport SphinxPage from './components/SphinxPage.vue'\nimport * as SphinxStore from './store/modules/sphinx'\n\nfunction installVue3SphinxXml(app, options = {}) {\n if (!options.store) {\n throw 'Please provide a store!!'\n }\n\n options.store.registerModule('sphinx', SphinxStore)\n app.use(Vue3Katex, options.katex)\n}\n\nexport { installVue3SphinxXml, SphinxPage }\n"],"names":["ErrorComponent"],"mappings":";;;;;;;AAGY,MAAC,aAAa,aAAW;AACnC,MAAI,OAAO,SAAS,cAAc,UAAU;AAC5C,OAAK,YAAY;AACjB,SAAO,KAAK;AACd;AAEY,MAAC,oBAAoB,WAAS;AACxC,QAAM,QAAQ,aAAa,MAAM,QAAQ,GAAG,IAAI;AAChD,MAAI,WAAW,MAAM;AACrB,MAAI,MAAM,MAAM;AACd,eAAW,SAAS,QAAQ,MAAM,MAAM,EAAE;AAAA,EAC3C;AACD,QAAM,UAAU,SAAS,MAAM,KAAK;AACpC,MAAI,OAAO,QAAQ;AACnB,MAAI,QAAQ,QAAQ,SAAS,IAAI;AAC/B,WAAO,QAAQ,GAAG,QAAQ,IAAI,QAAQ,QAAQ,SAAS,MAAM,EAAE;AAAA,EAChE;AACD,SAAO;AACT;AAEY,MAAC,6BAA6B,WAAS;AACjD,MAAI,WAAW;AACf,MAAI;AACF,eAAW,MAAM,OAAO,SAAS,KAAK,GAAG;AAAA,EAC1C,SAAQ,GAAP;AACA,eAAW,MAAM,OAAO;AAAA,EACzB;AACD,SAAO;AACT;;;;;;;;;;;;;;;;;;;;;AC9BA,IAAA,cAAe,CAAC,KAAK,UAAU;AAC7B,QAAM,SAAS,IAAI,aAAa;AAChC,aAAW,CAAC,KAAK,QAAQ,OAAO;AAC9B,WAAO,OAAO;AAAA,EACf;AACD,SAAO;AACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPY,MAAC,qBAAqB,oBAAI,IAAI;AAAA,EACxC,CAAC,eAAe,IAAI;AAAA,EACpB,CAAC,UAAU,QAAQ;AAAA,EACnB,CAAC,cAAc,IAAI;AAAA,EACnB,CAAC,mBAAmB,IAAI;AAAA,EACxB,CAAC,wBAAwB,IAAI;AAAA,EAC7B,CAAC,OAAO,KAAK;AAAA,EACb,CAAC,YAAY,IAAI;AAAA,EACjB,CAAC,mBAAmB,IAAI;AAAA,EACxB,CAAC,YAAY,KAAK;AAAA,EAClB,CAAC,UAAU,MAAM;AAAA,EACjB,CAAC,SAAS,MAAM;AAAA,EAChB,CAAC,aAAa,IAAI;AAAA,EAClB,CAAC,QAAQ,GAAG;AAAA,EACZ,CAAC,aAAa,GAAG;AAAA,EACjB,CAAC,UAAU,IAAI;AAAA,EACf,CAAC,UAAU,QAAQ;AAAA,EACnB,CAAC,aAAa,KAAK;AAAA,EACnB,CAAC,eAAe,KAAK;AAAA,EACrB,CAAC,SAAS,OAAO;AAAA,EACjB,CAAC,SAAS,OAAO;AAAA,EACjB,CAAC,SAAS,IAAI;AAAA,EACd,CAAC,OAAO,IAAI;AAAA,EACZ,CAAC,SAAS,OAAO;AAAA,EACjB,CAAC,QAAQ,IAAI;AAAA,EACb,CAAC,mBAAmB,MAAM;AAC5B,CAAC;AAEM,MAAM,0BAA0B,oBAAI,IAAI;AAAA,EAC7C,CAAC,SAAS,MAAM;AAAA,EAChB,CAAC,eAAe,YAAY;AAAA,EAC5B,CAAC,WAAW,eAAe;AAAA,EAC3B,CAAC,kBAAkB,eAAe;AAAA,EAClC,CAAC,sBAAsB,mBAAmB;AAAA,EAC1C,CAAC,sBAAsB,mBAAmB;AAAA,EAC1C,CAAC,SAAS,MAAM;AAAA,EAChB,CAAC,cAAc,WAAW;AAAA,EAC1B,CAAC,iBAAiB,cAAc;AAAA,EAChC,CAAC,cAAc,WAAW;AAAA,EAC1B,CAAC,oBAAoB,iBAAiB;AACxC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClCD,8BAA8B,MAAM,MAAM;AACxC,MAAI,aAAa;AACjB,MAAI,KAAK,aAAa,SAAS;AAC7B,QAAI,CAAC,KAAK,UAAU,QAAQ;AAC1B,aAAO;AAAA,IACR;AACD,iBAAa;AAAA,MACX,MAAM,KAAK;AAAA,IACZ;AAAA,EACL,WAAa,KAAK,aAAa,SAAS;AACpC,QAAI,aAAa,KAAK;AACtB,QAAI,QAAQ;AACZ,QAAI,UAAU;AACd,QAAI,WAAW,aAAa,SAAS;AACnC,gBAAU;AAAA,IAChB,OAAW;AACL,aAAO,YAAY;AAEjB,YAAI,WAAW,aAAa,WAAW;AACrC,mBAAS;AAAA,QACV;AACD,qBAAa,WAAW;AAAA,MACzB;AAAA,IACF;AACD,iBAAa;AAAA,MACX;AAAA,MACA;AAAA,IACD;AAAA,EACF;AACD,QAAM,YAAY,qBAAqB;AAAA,IACrC,QAAQ,MAAM;AACZ,aAAO,kCAAO,2BAA2B,UAAU;AAAA,IACpD;AAAA,IAED,kBAAkB;AAAA,IAElB,gBAAgBA;AAAAA,EACpB,CAAG;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACH;AAEA,iCAAiC,MAAM,UAAU;AAC/C,QAAM,OAAO;AACb,QAAM,YAAY,qBAAqB;AAAA,IACrC,QAAQ,MAAM;AACZ,aAAO,kCAAO,2BAA2B,UAAU;AAAA,IACpD;AAAA,IAED,kBAAkB;AAAA,IAElB,gBAAgBA;AAAAA,EACpB,CAAG;AAED,QAAM,aAAa;AAAA,IACjB;AAAA,EACD;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACH;AAEA,4BAA4B,MAAM;AAChC,MAAI,gBACJ,KAAK,OAAO,CAAC,EAAE,YAAW,IAAK,KAAK,MAAM,CAAC;AAC3C,MAAI,wBAAwB,IAAI,IAAI,GAAG;AACrC,oBAAgB,wBAAwB,IAAI,IAAI;AAAA,EACjD,WAAU,mBAAmB,IAAI,IAAI,GAAG;AACvC,oBAAgB;AAAA,EACjB;AACH,SAAO;AACP;AAEA,mBAAmB,YAAY,MAAM,SAAS;AAC5C,MAAI,SAAS,MAAM;AACjB,WAAO;AAAA,EACR;AAED,MAAI,WAAW,CAAE;AACjB,aAAW,WAAW,KAAK,iBAAiB,SAAS,GAAG;AACtD,aAAS,KAAK,QAAQ,aAAa,UAAU,CAAC;AAAA,EAC/C;AAED,MAAI,SAAS,WAAW,SAAS;AAC/B,YAAQ,IAAI,yBAAyB;AAAA,EACtC;AACD,aAAW,KAAK,wBAAwB,MAAM,QAAQ,CAAC;AAEvD,SAAO;AACT;AAEA,uBAAuB,YAAY,MAAM;AACvC,MAAI,SAAS,MAAM;AACjB,WAAO;AAAA,EACR;AAED,MAAI,cAAc;AAClB,aAAW,SAAS,KAAK,YAAY;AACnC,UAAM,YAAY,MAAM;AACxB,QAAI,cAAc,qBAAqB;AAErC,mBAAa,cAAc,YAAY,KAAK;AAAA,IAClD,WAAe,cAAc,UAAU;AAEjC,YAAM,cAAc,OAAO,MAAM,aAAa,MAAM,CAAC;AACrD,mBAAa,UAAU,YAAY,OAAO,WAAW;AACrD,mBAAa,cAAc,YAAY,KAAK;AAAA,IAClD,WAAe,cAAc;AAAW;AAAA,SAE7B;AACL,UAAI,cAAc,UAAU;AAC1B,sBAAc,MAAM,aAAa,OAAO;AAAA,MAChD,OAAa;AACL,YAAI,cAAc,WAAW,aAAa;AACxC,gBAAM,aAAa,MAAM,WAAW;AACpC,wBAAc;AAAA,QACf;AACD,cAAM,gBAAgB,mBAAmB,SAAS;AAClD,cAAM,OAAO,qBAAqB,eAAe,KAAK;AACtD,YAAI,MAAM;AACR,qBAAW,KAAK,IAAI;AAAA,QACrB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAED,SAAO;AACT;AAEO,qBAAqB,SAAS;AACnC,QAAM,WAAW,SAAS,MAAM;AAC9B,WAAO,cAAc,CAAA,GAAI,QAAQ,KAAK;AAAA,EAC1C,CAAG;AAED,SAAO;AAAA,IACL;AAAA,EACD;AACH;AAEO,oBAAoB,SAAS;AAClC,QAAM,UAAU,SAAS,MAAM;AAC7B,QAAI,gBAAgB,QAAQ,MAAM,aAAa,SAAS;AACxD,QAAI,WAAU,CAAE;AAChB,QAAI,eAAe;AACjB,iBAAU,cAAc,MAAM,GAAG;AAAA,IAClC;AACD,WAAO,CAAC,QAAQ,MAAM,SAAS,YAAW,GAAI,GAAG,QAAO;AAAA,EAC5D,CAAG;AAED,SAAO;AAAA,IACL;AAAA,EACD;AACH;;;;;;;;;;;;;;;AC1IA,UAAM,EAAE,YAAY,OAAO,KAAK;AAChC,UAAM,EAAE,aAAa,YAAY,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACUxC,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,OAAO,KAAK;AAEhB,UAAM,SAAS,UAAW;AAC1B,UAAM,QAAQ,SAAU;AACxB,UAAM,QAAQ,SAAU;AAExB,QAAI,UAAU,IAAI,IAAI;AACtB,QAAI,iBAAiB,IAAI,MAAS;AAClC,QAAI,KAAK,IAAI,EAAE;AACf,QAAI,gBAAgB;AAAA,MAClB,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAEA,gCAA4B,MAAM;AAChC,iBAAW,MAAM;AACf,uBAAe,QAAQ,KAAK;AAC5B,eAAO,SAAS;AAAA,UACd,KAAK,KAAK;AAAA,UACV,UAAU;AAAA,QAChB,CAAK;AACD,mBAAW,MAAM;AACf,cAAI,eAAe,UAAU,KAAK,WAAW;AAC3C,+BAAmB,IAAI;AAAA,UACxB;AAAA,QACF,GAAE,EAAE;AAAA,MACT,GAAK,YAAY,KAAK;AAAA,IACtB;AAEA,UACE,OACA,CAAC,OAAO;AACN,UAAI,cAAc,SAAS,UAAa,GAAG,SAAS,cAAc,MAAM;AACtE,sBAAc,EAAE;AAChB,YAAI,GAAG,MAAM;AACX,qBAAW,MAAM;AACf,gBAAI,OAAO,GAAG;AACd,gBAAI,KAAK,WAAW,GAAG,GAAG;AACxB,qBAAO,KAAK,MAAM,CAAC;AAAA,YACpB;AACD,kBAAM,OAAO,SAAS,eAAe,IAAI;AACzC,gBAAI,MAAM;AACR,iCAAmB,IAAI;AAAA,YACxB;AAAA,UACX,GAAW,YAAY,KAAK;AAAA,QACrB;AAAA,MACP,WAAe,GAAG,SAAS,cAAc,QAAQ,GAAG,MAAM;AACpD,YAAI,OAAO,GAAG;AACd,YAAI,KAAK,WAAW,GAAG,GAAG;AACxB,iBAAO,KAAK,MAAM,CAAC;AAAA,QACpB;AACD,cAAM,OAAO,SAAS,eAAe,IAAI;AACzC,YAAI,MAAM;AACR,iBAAO,SAAS;AAAA,YACd,KAAK,KAAK;AAAA,YACV,UAAU;AAAA,UACpB,CAAS;AAAA,QACF;AAAA,MACF;AACD,oBAAc,OAAO,GAAG;AACxB,oBAAc,OAAO,GAAG;AAAA,IACzB,GACD,EAAE,OAAO,OAAO,WAAW,MAAM,MAAM,KAAM,CAC/C;AAEA,2BAAuB,SAAS;AAC9B,UAAI,WAAW,2BAA2B,OAAO;AACjD,UAAI,CAAC,UAAU;AACb,mBAAW,cAAc;AAAA,MAC1B;AACD,YAAM,wBACJ,cAAc,UAAU,KACpB,GAAG,QAAQ,kBACX,cAAc;AACpB,YAAM,0BACJ,gBAAgB,UAAU,KACtB,GAAG,QAAQ,qBACX,gBAAgB;AACtB,YAAM,WAAW,kBAAkB,OAAO;AAE1C,YACG,SAAS,oBAAoB;AAAA,QAC5B,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,UAAU,QAAQ;AAAA,QAClB,gBAAgB;AAAA,QAChB,aAAa;AAAA,MACnB,CAAK,EACA,KAAK,CAAC,aAAa;AAClB,YAAI,UAAU;AACZ,kBAAQ,QAAQ;AAChB,aAAG,QAAQ,UAAU,SAAS,QAAQ,KAAK,GAAG;AAAA,QACtD,OAAa;AACL,iBAAO,KAAK;AAAA,YACV,MAAM,iBAAiB;AAAA,YACvB,QAAQ;AAAA,cACN,MAAM;AAAA,cACN,SAAS,+BAA+B;AAAA,YACzC;AAAA,UACX,CAAS;AAAA,QACF;AAAA,MACP,CAAK;AAAA,IACL;;;;;;;;;ACnJA,MAAM,YAAY,MAAM,OAAO;AAAA,EAC7B,iBAAiB;AAAA,EACjB,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,gBAAgB;AAAA,EACjB;AAAA,EACD,SAAS;AACX,CAAC;AAED,IAAe,gBAAA;AAAA,EACb,QAAQ,SAAS,MAAM;AACrB,WAAO,UAAU,IAAI,GAAG,WAAW,UAAU;AAAA,EAC9C;AACH;ACbO,MAAM,aAAa;AAEnB,MAAM,QAAQ;AAAA,EACnB,OAAO,oBAAI,IAAK;AAAA,EAChB,QAAQ,oBAAI,IAAK;AAAA,EACjB,UAAU,oBAAI,IAAK;AAAA,EACnB,cAAc,oBAAI,IAAK;AAAA,EACvB,YAAY,oBAAI,IAAK;AACvB;AAEO,MAAM,YAAY;AAAA,EACvB,YAAY,QAAO,EAAE,UAAU,QAAQ;AACrC,QAAI,QAAQ,OAAM,MAAM,IAAI,QAAQ;AACpC,QAAI,CAAC,OAAO;AACV,cAAQ,CAAE;AAAA,IACX;AACD,UAAM,KAAK,IAAI;AACf,WAAM,MAAM,IAAI,UAAU,KAAK;AAAA,EAChC;AAAA,EACD,aAAa,QAAO,EAAE,UAAU,WAAW,WAAW;AACpD,QAAI,cAAc,OAAM,SAAS,IAAI,QAAQ;AAC7C,QAAI,CAAC,aAAa;AAChB,oBAAc,oBAAI,IAAK;AAAA,IACxB;AACD,gBAAY,IAAI,WAAW,OAAO;AAClC,WAAM,SAAS,IAAI,UAAU,WAAW;AAAA,EACzC;AAAA,EACD,gBAAgB,QAAO,EAAE,UAAU,MAAM;AACvC,WAAM,SAAS,IAAI,QAAQ,EAAE,OAAO,EAAE;AAAA,EACvC;AAAA,EAOD,mBAAmB,QAAO,EAAE,SAAS,UAAU,cAAc,aAAa;AACxE,UAAM,gBAAgB,OAAM,MAAM,IAAI,QAAQ;AAC9C,QAAI,CAAC,eAAe;AAClB,aAAM,MAAM,IAAI,UAAU,CAAA,CAAE;AAC5B,aAAM,OAAO,IAAI,UAAU,OAAO;AAClC,aAAM,aAAa,IAAI,UAAU,YAAY;AAC7C,aAAM,WAAW,IAAI,UAAU,SAAS;AACxC,aAAM,SAAS,IAAI,UAAU,oBAAI,IAAG,CAAE;AAAA,IACvC;AAAA,EACF;AACH;AAEO,MAAM,UAAU;AAAA,EACrB,UAAU,EAAE,QAAQ,qBAAW,SAAS;AACtC,UAAM,YAAY,QAAQ;AAC1B,UAAM,aAAa,QAAQ;AAC3B,UAAM,WAAW,QAAQ;AACzB,WAAO,sBAAsB;AAAA,MAC3B,SAAS;AAAA,MACT,UAAU;AAAA,MACV,cAAc,QAAQ;AAAA,MACtB,WAAW,QAAQ;AAAA,IACzB,CAAK;AACD,UAAM,eAAe,SAAQ,YAAY,YAAY,SAAS;AAC9D,QAAI,cAAc;AAChB,aAAO,QAAQ,QAAQ,YAAY;AAAA,IACpC;AACD,QAAI,SAAQ,WAAW,YAAY,SAAS,GAAG;AAC7C,aAAO,SAAQ,YAAY,YAAY,SAAS;AAAA,IACjD;AACD,UAAM,UAAU,cAAc,QAAQ,UAAU,SAAS,EACtD,KAAK,cAAY;AAChB,UAAI,SAAS,IAAI,UAAW;AAC5B,UAAI,SAAS,OAAO,gBAAgB,SAAS,MAAM,UAAU;AAC7D,YAAM,kBAAkB,OAAO,cAAc,UAAU;AACvD,aAAO,eAAe,EAAE,UAAU,YAAY,MAAM,iBAAiB;AACrE,aAAO,mBAAmB,EAAE,UAAU,YAAY,IAAI,WAAW;AACjE,aAAO;AAAA,IACf,CAAO,EACA,MAAM,MAAM;AACX,aAAO,mBAAmB,EAAE,UAAU,YAAY,IAAI,WAAW;AAAA,IACzE,CAAO;AACH,WAAO,gBAAgB,EAAE,UAAU,YAAY,WAAW,SAAS;AACnE,WAAO;AAAA,EACR;AAOH;AAEO,MAAM,UAAU;AAAA,EACrB,aAAa,YAAS,CAAC,UAAU,OAAO;AACtC,WAAO,OAAM,MAAM,IAAI,QAAQ,EAAE,KAAK,UAAQ,KAAK,OAAO,EAAE;AAAA,EAC7D;AAAA,EACD,aAAa,YAAS,CAAC,UAAU,OAAO;AACtC,WAAO,OAAM,SAAS,IAAI,QAAQ,EAAE,IAAI,EAAE;AAAA,EAC3C;AAAA,EACD,YAAY,YAAS,CAAC,UAAU,OAAO;AACrC,WAAO,CAAC,CAAC,OAAM,SAAS,IAAI,QAAQ,EAAE,IAAI,EAAE;AAAA,EAC7C;AAAA,EACD,YAAY,YAAS,cAAY;AAC/B,WAAO,OAAM,OAAO,IAAI,QAAQ;AAAA,EACjC;AAAA,EACD,gBAAgB,YAAS,cAAY;AACnC,WAAO,OAAM,aAAa,IAAI,QAAQ;AAAA,EACvC;AAAA,EACD,cAAc,YAAS,cAAY;AACjC,WAAO,OAAM,WAAW,IAAI,QAAQ;AAAA,EACrC;AACH;;;;;;;;;ACxGA,8BAA8B,KAAK,UAAU,IAAI;AAC/C,MAAI,CAAC,QAAQ,OAAO;AAClB,UAAM;AAAA,EACP;AAED,UAAQ,MAAM,eAAe,UAAU,WAAW;AAClD,MAAI,IAAI,WAAW,QAAQ,KAAK;AAClC;;"}
|