@conduction/nextcloud-vue 2.61.0 → 2.63.0
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/esm/components/CnAdminActionCard/CnAdminActionCard.vue.js +10 -0
- package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue.js.map +1 -0
- package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue2.js +189 -0
- package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue2.js.map +1 -0
- package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue3.js +72 -0
- package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue3.js.map +1 -0
- package/dist/esm/components/CnAppNav/CnAppNav.vue2.js +394 -27
- package/dist/esm/components/CnAppNav/CnAppNav.vue2.js.map +1 -1
- package/dist/esm/components/CnAppNav/CnAppNav.vue3.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +99 -9
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js +39 -18
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue2.js +79 -2
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue3.js +38 -25
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnBrandStripe/CnBrandStripe.vue2.js +21 -1
- package/dist/esm/components/CnBrandStripe/CnBrandStripe.vue2.js.map +1 -1
- package/dist/esm/components/CnBrandStripe/CnBrandStripe.vue3.js +4 -1
- package/dist/esm/components/CnBrandStripe/CnBrandStripe.vue3.js.map +1 -1
- package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue2.js.map +1 -1
- package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js +53 -37
- package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +30 -6
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +2 -2
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue.js +10 -0
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue.js.map +1 -0
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue2.js +293 -0
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue2.js.map +1 -0
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue3.js +189 -0
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue3.js.map +1 -0
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +256 -23
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js +119 -51
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +2 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
- package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue2.js +3 -1
- package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue2.js.map +1 -1
- package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue3.js +1 -1
- package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue3.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +234 -9
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js +96 -57
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +51 -2
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +5 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/selfModeActions.js +3 -3
- package/dist/esm/components/CnIndexPage/selfModeActions.js.map +1 -1
- package/dist/esm/components/CnLinkCardsPage/CnLinkCardsPage.vue2.js.map +1 -1
- package/dist/esm/components/CnLinkCardsPage/CnLinkCardsPage.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +36 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js +4 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +53 -0
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +22 -5
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
- package/dist/esm/components/CnReportsPage/CnReportsPage.vue2.js.map +1 -1
- package/dist/esm/components/CnReportsPage/CnReportsPage.vue3.js.map +1 -1
- package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue2.js +121 -12
- package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue2.js.map +1 -1
- package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue3.js +3 -1
- package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue3.js.map +1 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js +326 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js.map +1 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js +112 -26
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js.map +1 -1
- package/dist/esm/components/CnStorePage/CnStorePage.vue2.js.map +1 -1
- package/dist/esm/components/CnStorePage/CnStorePage.vue3.js.map +1 -1
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue.js +10 -0
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue.js.map +1 -0
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js +337 -0
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue3.js +102 -0
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnTimelineWidget/dashboardRegistration.js +34 -0
- package/dist/esm/components/CnTimelineWidget/dashboardRegistration.js.map +1 -0
- package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue2.js +131 -8
- package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue2.js.map +1 -1
- package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue3.js +40 -38
- package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetGrid/builtInWidgets.js +8 -6
- package/dist/esm/components/CnWidgetGrid/builtInWidgets.js.map +1 -1
- package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
- package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
- package/dist/esm/components/CnWikiPage/CnWikiPage.vue2.js.map +1 -1
- package/dist/esm/components/CnWikiPage/CnWikiPage.vue3.js.map +1 -1
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue2.js +19 -0
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue3.js +1 -1
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue3.js.map +1 -1
- package/dist/esm/composables/useDependencyCheck.js +65 -0
- package/dist/esm/composables/useDependencyCheck.js.map +1 -0
- package/dist/esm/composables/useWalkthrough.js +218 -6
- package/dist/esm/composables/useWalkthrough.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/l10n/en.json.js +48 -0
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +48 -0
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/nextcloud-vue.css +557 -9
- package/dist/esm/store/useObjectStore.js +8 -0
- package/dist/esm/store/useObjectStore.js.map +1 -1
- package/dist/esm/utils/columnFilters.js +311 -0
- package/dist/esm/utils/columnFilters.js.map +1 -0
- package/dist/esm/utils/groupAutocomplete.js +123 -0
- package/dist/esm/utils/groupAutocomplete.js.map +1 -0
- package/dist/esm/utils/libraryWidgetKeys.js +2 -0
- package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
- package/dist/esm/utils/pickerOptions.js +198 -0
- package/dist/esm/utils/pickerOptions.js.map +1 -0
- package/dist/esm/utils/schema.js +83 -7
- package/dist/esm/utils/schema.js.map +1 -1
- package/dist/esm/utils/timelineEvents.js +174 -0
- package/dist/esm/utils/timelineEvents.js.map +1 -0
- package/dist/esm/utils/validateManifestV2.compiled.js +2 -2
- package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
- package/dist/esm/utils/walkthroughSignals.js +88 -0
- package/dist/esm/utils/walkthroughSignals.js.map +1 -0
- package/dist/nextcloud-vue.cjs.js +9779 -5236
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +557 -9
- package/l10n/en.json +48 -0
- package/l10n/nl.json +48 -0
- package/package.json +3 -2
- package/scripts/manifest-schema-hash.js +41 -0
- package/scripts/record-manifest-schema-hash.js +52 -0
- package/src/components/CnAdminActionCard/CnAdminActionCard.vue +234 -0
- package/src/components/CnAdminActionCard/index.js +4 -0
- package/src/components/CnAppNav/CnAppNav.vue +394 -27
- package/src/components/CnAppRoot/CnAppRoot.vue +129 -15
- package/src/components/CnBannerWidget/CnBannerWidget.vue +113 -2
- package/src/components/CnBrandStripe/CnBrandStripe.md +16 -0
- package/src/components/CnBrandStripe/CnBrandStripe.vue +58 -5
- package/src/components/CnChoiceCards/CnChoiceCards.vue +56 -31
- package/src/components/CnDashboardPage/CnDashboardPage.vue +32 -8
- package/src/components/CnDataTable/CnColumnFilterPopover.vue +524 -0
- package/src/components/CnDataTable/CnDataTable.md +4 -1
- package/src/components/CnDataTable/CnDataTable.vue +302 -21
- package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +2 -2
- package/src/components/CnFieldHelper/CnFieldHelper.vue +4 -2
- package/src/components/CnFormDialog/CnFormDialog.vue +290 -31
- package/src/components/CnIndexPage/CnIndexPage.vue +55 -2
- package/src/components/CnIndexPage/selfModeActions.js +3 -3
- package/src/components/CnLinkCardsPage/CnLinkCardsPage.vue +35 -2
- package/src/components/CnObjectListWidget/CnObjectListWidget.vue +39 -1
- package/src/components/CnObjectSidebar/CnFilesTab.vue +65 -0
- package/src/components/CnReportsPage/CnReportsPage.vue +7 -0
- package/src/components/CnResourceSelect/CnResourceSelect.vue +123 -12
- package/src/components/CnSetupWizard/CnSetupWizard.vue +392 -3
- package/src/components/CnStorePage/CnStorePage.vue +7 -0
- package/src/components/CnTimelineWidget/CnTimelineWidget.vue +477 -0
- package/src/components/CnTimelineWidget/dashboardRegistration.js +32 -0
- package/src/components/CnTimelineWidget/index.js +4 -0
- package/src/components/CnWalkthrough/CnWalkthrough.vue +143 -10
- package/src/components/CnWidgetGrid/builtInWidgets.js +2 -0
- package/src/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
- package/src/components/CnWikiPage/CnWikiPage.vue +7 -0
- package/src/components/CnWizardDialog/CnWizardDialog.vue +20 -1
- package/src/components/index.js +2 -0
- package/src/composables/useDependencyCheck.js +61 -0
- package/src/composables/useWalkthrough.js +217 -5
- package/src/css/dashboard.css +49 -0
- package/src/css/detail-page.css +19 -0
- package/src/css/table.css +82 -2
- package/src/index.js +2 -0
- package/src/public/index.js +5 -0
- package/src/schemas/app-manifest-v2.schema.json +23 -1
- package/src/store/useObjectStore.js +8 -0
- package/src/utils/columnFilters.js +324 -0
- package/src/utils/groupAutocomplete.js +119 -0
- package/src/utils/libraryWidgetKeys.js +2 -0
- package/src/utils/pickerOptions.js +194 -0
- package/src/utils/schema.js +83 -7
- package/src/utils/timelineEvents.js +171 -0
- package/src/utils/validateManifestV2.compiled.js +2 -2
- package/src/utils/walkthroughSignals.js +94 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SPDX-FileCopyrightText: 2026 Conduction B.V.
|
|
3
|
+
* SPDX-License-Identifier: EUPL-1.2
|
|
4
|
+
*
|
|
5
|
+
* Signals the walkthrough listens for.
|
|
6
|
+
*
|
|
7
|
+
* A step with `advanceOn: { type: 'object-created', register, schema }`
|
|
8
|
+
* advances when a `cn-walkthrough:object-created` window event arrives for
|
|
9
|
+
* that register and schema. Every create path in the library calls
|
|
10
|
+
* {@link dispatchObjectCreated}: the object store's save, the index page's
|
|
11
|
+
* create override, and the related list's create form.
|
|
12
|
+
*
|
|
13
|
+
* @module utils/walkthroughSignals
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
const OBJECT_CREATED_EVENT = 'cn-walkthrough:object-created';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Ids announced in the last few seconds. One save can pass through two
|
|
20
|
+
* layers (a page's create override that itself calls the store), and one
|
|
21
|
+
* create must advance a tour by one step, not two.
|
|
22
|
+
*
|
|
23
|
+
* @type {Map<string, number>}
|
|
24
|
+
*/
|
|
25
|
+
const recent = new Map();
|
|
26
|
+
const DEDUPE_MS = 2000;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The id of an OpenRegister object, whatever shape the response has.
|
|
30
|
+
*
|
|
31
|
+
* @param {object} object The created object.
|
|
32
|
+
* @return {string} The id, or ''.
|
|
33
|
+
*/
|
|
34
|
+
function idOf(object) {
|
|
35
|
+
if (!object || typeof object !== 'object') {
|
|
36
|
+
return ''
|
|
37
|
+
}
|
|
38
|
+
const self = object['@self'] || {};
|
|
39
|
+
return String(object.id || object.uuid || self.id || self.uuid || '')
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Announce that an object was created.
|
|
44
|
+
*
|
|
45
|
+
* `register` and `schema` are the slugs the creating surface knows. An
|
|
46
|
+
* object's own `@self.register` / `@self.schema` are numeric ids on
|
|
47
|
+
* OpenRegister, which a manifest's `advanceOn` never uses.
|
|
48
|
+
*
|
|
49
|
+
* @spec openspec/changes/walkthrough-advance-pause-resume/specs/cn-walkthrough/spec.md
|
|
50
|
+
* @param {object} payload What was created.
|
|
51
|
+
* @param {string|number} [payload.register] The register slug (or id).
|
|
52
|
+
* @param {string|number} [payload.schema] The schema slug (or id).
|
|
53
|
+
* @param {object} payload.object The created object.
|
|
54
|
+
* @return {boolean} True when the event was dispatched (false for a duplicate or no window).
|
|
55
|
+
*/
|
|
56
|
+
function dispatchObjectCreated({ register, schema, object } = {}) {
|
|
57
|
+
if (typeof window === 'undefined' || !object || typeof object !== 'object') {
|
|
58
|
+
return false
|
|
59
|
+
}
|
|
60
|
+
const id = idOf(object);
|
|
61
|
+
const now = Date.now();
|
|
62
|
+
for (const [key, at] of recent) {
|
|
63
|
+
if (now - at > DEDUPE_MS) {
|
|
64
|
+
recent.delete(key);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (id) {
|
|
68
|
+
if (recent.has(id)) {
|
|
69
|
+
return false
|
|
70
|
+
}
|
|
71
|
+
recent.set(id, now);
|
|
72
|
+
}
|
|
73
|
+
const detail = {
|
|
74
|
+
...object,
|
|
75
|
+
register: register !== undefined && register !== null && register !== '' ? register : object.register,
|
|
76
|
+
schema: schema !== undefined && schema !== null && schema !== '' ? schema : object.schema,
|
|
77
|
+
object,
|
|
78
|
+
};
|
|
79
|
+
try {
|
|
80
|
+
window.dispatchEvent(new CustomEvent(OBJECT_CREATED_EVENT, { detail }));
|
|
81
|
+
} catch {
|
|
82
|
+
return false
|
|
83
|
+
}
|
|
84
|
+
return true
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export { OBJECT_CREATED_EVENT, dispatchObjectCreated };
|
|
88
|
+
//# sourceMappingURL=walkthroughSignals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walkthroughSignals.js","sources":["../../../src/utils/walkthroughSignals.js"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2026 Conduction B.V.\n * SPDX-License-Identifier: EUPL-1.2\n *\n * Signals the walkthrough listens for.\n *\n * A step with `advanceOn: { type: 'object-created', register, schema }`\n * advances when a `cn-walkthrough:object-created` window event arrives for\n * that register and schema. Every create path in the library calls\n * {@link dispatchObjectCreated}: the object store's save, the index page's\n * create override, and the related list's create form.\n *\n * @module utils/walkthroughSignals\n */\n\nexport const OBJECT_CREATED_EVENT = 'cn-walkthrough:object-created'\n\n/**\n * Ids announced in the last few seconds. One save can pass through two\n * layers (a page's create override that itself calls the store), and one\n * create must advance a tour by one step, not two.\n *\n * @type {Map<string, number>}\n */\nconst recent = new Map()\nconst DEDUPE_MS = 2000\n\n/**\n * The id of an OpenRegister object, whatever shape the response has.\n *\n * @param {object} object The created object.\n * @return {string} The id, or ''.\n */\nfunction idOf(object) {\n\tif (!object || typeof object !== 'object') {\n\t\treturn ''\n\t}\n\tconst self = object['@self'] || {}\n\treturn String(object.id || object.uuid || self.id || self.uuid || '')\n}\n\n/**\n * Announce that an object was created.\n *\n * `register` and `schema` are the slugs the creating surface knows. An\n * object's own `@self.register` / `@self.schema` are numeric ids on\n * OpenRegister, which a manifest's `advanceOn` never uses.\n *\n * @spec openspec/changes/walkthrough-advance-pause-resume/specs/cn-walkthrough/spec.md\n * @param {object} payload What was created.\n * @param {string|number} [payload.register] The register slug (or id).\n * @param {string|number} [payload.schema] The schema slug (or id).\n * @param {object} payload.object The created object.\n * @return {boolean} True when the event was dispatched (false for a duplicate or no window).\n */\nexport function dispatchObjectCreated({ register, schema, object } = {}) {\n\tif (typeof window === 'undefined' || !object || typeof object !== 'object') {\n\t\treturn false\n\t}\n\tconst id = idOf(object)\n\tconst now = Date.now()\n\tfor (const [key, at] of recent) {\n\t\tif (now - at > DEDUPE_MS) {\n\t\t\trecent.delete(key)\n\t\t}\n\t}\n\tif (id) {\n\t\tif (recent.has(id)) {\n\t\t\treturn false\n\t\t}\n\t\trecent.set(id, now)\n\t}\n\tconst detail = {\n\t\t...object,\n\t\tregister: register !== undefined && register !== null && register !== '' ? register : object.register,\n\t\tschema: schema !== undefined && schema !== null && schema !== '' ? schema : object.schema,\n\t\tobject,\n\t}\n\ttry {\n\t\twindow.dispatchEvent(new CustomEvent(OBJECT_CREATED_EVENT, { detail }))\n\t} catch {\n\t\treturn false\n\t}\n\treturn true\n}\n\n/**\n * Test-only: forget the recently announced ids.\n *\n * @internal\n */\nexport function __resetObjectCreatedDedupeForTests() {\n\trecent.clear()\n}\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,oBAAoB,GAAG,gCAA+B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,MAAM,GAAG,IAAI,GAAG,GAAE;AACxB,MAAM,SAAS,GAAG,KAAI;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,CAAC,MAAM,EAAE;AACtB,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC5C,EAAE,OAAO,EAAE;AACX,EAAE;AACF,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,GAAE;AACnC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;AACtE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,qBAAqB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;AACzE,CAAC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC7E,EAAE,OAAO,KAAK;AACd,EAAE;AACF,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAC;AACxB,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAE;AACvB,CAAC,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,EAAE;AACjC,EAAE,IAAI,GAAG,GAAG,EAAE,GAAG,SAAS,EAAE;AAC5B,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAC;AACrB,GAAG;AACH,EAAE;AACF,CAAC,IAAI,EAAE,EAAE;AACT,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACtB,GAAG,OAAO,KAAK;AACf,GAAG;AACH,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAC;AACrB,EAAE;AACF,CAAC,MAAM,MAAM,GAAG;AAChB,EAAE,GAAG,MAAM;AACX,EAAE,QAAQ,EAAE,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,EAAE,GAAG,QAAQ,GAAG,MAAM,CAAC,QAAQ;AACvG,EAAE,MAAM,EAAE,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM;AAC3F,EAAE,MAAM;AACR,GAAE;AACF,CAAC,IAAI;AACL,EAAE,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,CAAC,EAAC;AACzE,EAAE,CAAC,MAAM;AACT,EAAE,OAAO,KAAK;AACd,EAAE;AACF,CAAC,OAAO,IAAI;AACZ;;;;"}
|