@vc-shell/framework 2.0.0-alpha.9 → 2.0.0-pr221.637b802
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/CHANGELOG.md +549 -539
- package/dist/ai-agent/index.js +13 -0
- package/dist/ai-agent/index.js.map +1 -0
- package/dist/chunks/ExtensionPoint.vue_vue_type_style_index_0_lang-B1R06zHa.js +12 -0
- package/dist/chunks/ExtensionPoint.vue_vue_type_style_index_0_lang-B1R06zHa.js.map +1 -0
- package/dist/chunks/VcAiAgentPanel.vue_vue_type_style_index_0_lang-D0kWIlz3.js +4485 -0
- package/dist/chunks/VcAiAgentPanel.vue_vue_type_style_index_0_lang-D0kWIlz3.js.map +1 -0
- package/dist/chunks/VcTableAdapter.vue_vue_type_style_index_0_lang-Dh7DDZB9.js +22070 -0
- package/dist/chunks/VcTableAdapter.vue_vue_type_style_index_0_lang-Dh7DDZB9.js.map +1 -0
- package/dist/chunks/index-BuTo_Lx8.js +72 -0
- package/dist/chunks/index-BuTo_Lx8.js.map +1 -0
- package/dist/chunks/index-CDUdOax4.js +117 -0
- package/dist/chunks/index-CDUdOax4.js.map +1 -0
- package/dist/chunks/vendor-boolbase-DYkUBG-P.js.map +1 -0
- package/dist/chunks/vendor-cheerio-DE71XQ9x.js.map +1 -0
- package/dist/chunks/vendor-cheerio-select-D-qK1Cpo.js.map +1 -0
- package/dist/chunks/vendor-css-select-DqoO1-RK.js.map +1 -0
- package/dist/chunks/vendor-css-what-CZZaquJM.js.map +1 -0
- package/dist/chunks/vendor-cypress-signalr-mock-itnm2wpA.js.map +1 -0
- package/dist/chunks/vendor-d3-array-9cpTrqlO.js.map +1 -0
- package/dist/chunks/vendor-d3-axis-D1_DbKLz.js.map +1 -0
- package/dist/chunks/vendor-d3-brush-CcKeJp9e.js.map +1 -0
- package/dist/chunks/vendor-d3-chord-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-d3-color-BOYE6h_9.js.map +1 -0
- package/dist/chunks/vendor-d3-dispatch-fx-WMg0D.js.map +1 -0
- package/dist/chunks/vendor-d3-drag-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-d3-ease-Cr34gv04.js.map +1 -0
- package/dist/chunks/vendor-d3-force-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-d3-format-DaIwZvFc.js.map +1 -0
- package/dist/chunks/vendor-d3-geo-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-d3-geo-projection-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-d3-hierarchy-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-d3-interpolate-BYG2gvO4.js.map +1 -0
- package/dist/chunks/vendor-d3-interpolate-path-CpGLvKgS.js.map +1 -0
- package/dist/chunks/vendor-d3-path-DJOTitNW.js.map +1 -0
- package/dist/chunks/vendor-d3-quadtree-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-d3-sankey-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-d3-scale-CC5rtdt5.js.map +1 -0
- package/dist/chunks/vendor-d3-selection-CNMxsYiL.js.map +1 -0
- package/dist/chunks/vendor-d3-shape-DBhCDMiV.js.map +1 -0
- package/dist/chunks/vendor-d3-time-DAPP210_.js.map +1 -0
- package/dist/chunks/vendor-d3-time-format-hD7iE2WG.js.map +1 -0
- package/dist/chunks/vendor-d3-timer-C1cUWKPz.js.map +1 -0
- package/dist/chunks/vendor-d3-transition-BbNQT7qF.js.map +1 -0
- package/dist/chunks/vendor-d3-zoom-CcKeJp9e.js.map +1 -0
- package/dist/chunks/vendor-date-fns-BKO3x1R1.js.map +1 -0
- package/dist/chunks/vendor-dom-serializer-BbVuF1MQ.js.map +1 -0
- package/dist/chunks/vendor-domelementtype-B3sFIGaC.js.map +1 -0
- package/dist/chunks/vendor-domhandler-Kufn9M_V.js.map +1 -0
- package/dist/chunks/vendor-dompurify-DpIUMBYC.js +560 -0
- package/dist/chunks/vendor-dompurify-DpIUMBYC.js.map +1 -0
- package/dist/chunks/vendor-domutils-DDRq_ial.js.map +1 -0
- package/dist/chunks/vendor-elkjs-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-emotion-cache-eEZT5l-Q.js.map +1 -0
- package/dist/chunks/vendor-emotion-hash-DImMRhyK.js.map +1 -0
- package/dist/chunks/vendor-emotion-memoize-BcEUCz8q.js.map +1 -0
- package/dist/chunks/vendor-emotion-serialize-BSDW8NwU.js.map +1 -0
- package/dist/chunks/vendor-emotion-sheet-CS8ZBl9s.js.map +1 -0
- package/dist/chunks/vendor-emotion-unitless-B7u1PU6w.js.map +1 -0
- package/dist/chunks/vendor-emotion-utils-D7refZTM.js.map +1 -0
- package/dist/chunks/vendor-emotion-weak-memoize-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-entities-J86Og8IU.js.map +1 -0
- package/dist/chunks/vendor-floating-ui-core-BoHdh92a.js.map +1 -0
- package/dist/chunks/vendor-floating-ui-dom-BvVXFZ4B.js.map +1 -0
- package/dist/chunks/vendor-floating-ui-utils-CidJRIm2.js.map +1 -0
- package/dist/chunks/vendor-floating-ui-vue-sCrhit51.js.map +1 -0
- package/dist/chunks/vendor-gridstack-Beau2jQ7.js +3460 -0
- package/dist/chunks/vendor-gridstack-Beau2jQ7.js.map +1 -0
- package/dist/chunks/vendor-headlessui-vue-Cn-RMs4E.js.map +1 -0
- package/dist/chunks/vendor-htmlparser2-BxKKzWLL.js.map +1 -0
- package/dist/chunks/vendor-internmap-Q5729_cS.js.map +1 -0
- package/dist/chunks/vendor-intlify-core-base-Cf8V01l9.js +1141 -0
- package/dist/chunks/vendor-intlify-core-base-Cf8V01l9.js.map +1 -0
- package/dist/chunks/vendor-intlify-message-compiler-h1txdYa8.js +960 -0
- package/dist/chunks/vendor-intlify-message-compiler-h1txdYa8.js.map +1 -0
- package/dist/chunks/vendor-intlify-shared-D4BJYR57.js +144 -0
- package/dist/chunks/vendor-intlify-shared-D4BJYR57.js.map +1 -0
- package/dist/chunks/vendor-iso-639-1-BEjYyfKo.js.map +1 -0
- package/dist/chunks/vendor-juggle-resize-observer-DiSiNbbT.js.map +1 -0
- package/dist/chunks/vendor-kdbush-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-leaflet-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-linkify-it-LzoUhj6C.js.map +1 -0
- package/dist/chunks/vendor-linkifyjs-dCH9UYes.js.map +1 -0
- package/dist/chunks/vendor-lodash-es-CfnUOh0o.js +1490 -0
- package/dist/chunks/vendor-lodash-es-CfnUOh0o.js.map +1 -0
- package/dist/chunks/vendor-lodash-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-lucide-vue-next-CwUrzD6N.js +33103 -0
- package/dist/chunks/vendor-lucide-vue-next-CwUrzD6N.js.map +1 -0
- package/dist/chunks/vendor-maplibre-gl-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-markdown-it-Bs9KEWkF.js.map +1 -0
- package/dist/chunks/vendor-markdown-it-task-lists-CHKeJZfk.js.map +1 -0
- package/dist/chunks/vendor-mdurl-DZFDNdqC.js.map +1 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-analytics-js-ufpnHxNR.js +1142 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-analytics-js-ufpnHxNR.js.map +1 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-cfgsync-js-BmGq5cEx.js +247 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-cfgsync-js-BmGq5cEx.js.map +1 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-channel-js-BdtUi1l8.js +1907 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-channel-js-BdtUi1l8.js.map +1 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-core-js-CR3vyuZc.js +8406 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-core-js-CR3vyuZc.js.map +1 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-dependencies-js-DXmYt4tG.js +1441 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-dependencies-js-DXmYt4tG.js.map +1 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-properties-js-CLbNzgkN.js +610 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-properties-js-CLbNzgkN.js.map +1 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-shims-CGX8KXgN.js +44 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-shims-CGX8KXgN.js.map +1 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-web-DzgnK2Mn.js +970 -0
- package/dist/chunks/vendor-microsoft-applicationinsights-web-DzgnK2Mn.js.map +1 -0
- package/dist/chunks/vendor-microsoft-dynamicproto-js-D7567TLZ.js +147 -0
- package/dist/chunks/vendor-microsoft-dynamicproto-js-D7567TLZ.js.map +1 -0
- package/dist/chunks/vendor-microsoft-signalr-Bgpbb4fW.js +1761 -0
- package/dist/chunks/vendor-microsoft-signalr-Bgpbb4fW.js.map +1 -0
- package/dist/chunks/vendor-nevware21-ts-async-BxN_lmkD.js +271 -0
- package/dist/chunks/vendor-nevware21-ts-async-BxN_lmkD.js.map +1 -0
- package/dist/chunks/vendor-nevware21-ts-utils-Dr-hD3q9.js +973 -0
- package/dist/chunks/vendor-nevware21-ts-utils-Dr-hD3q9.js.map +1 -0
- package/dist/chunks/vendor-nth-check-D0N1qpsw.js.map +1 -0
- package/dist/chunks/vendor-orderedmap-B3SOk52B.js.map +1 -0
- package/dist/chunks/vendor-parse5-htmlparser2-tree-adapter-BUDJ887-.js.map +1 -0
- package/dist/chunks/vendor-parse5-zq5Hn0y9.js.map +1 -0
- package/dist/chunks/vendor-prettier-2Sf6a5jB.js +5309 -0
- package/dist/chunks/vendor-prettier-2Sf6a5jB.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-commands-BaRVaTVO.js +385 -0
- package/dist/chunks/vendor-prosemirror-commands-BaRVaTVO.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-dropcursor-PuLxL9JM.js +86 -0
- package/dist/chunks/vendor-prosemirror-dropcursor-PuLxL9JM.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-gapcursor-C7MEx13L.js +203 -0
- package/dist/chunks/vendor-prosemirror-gapcursor-C7MEx13L.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-history-_AfZxoMt.js +248 -0
- package/dist/chunks/vendor-prosemirror-history-_AfZxoMt.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-keymap-tvZqK1zZ.js +62 -0
- package/dist/chunks/vendor-prosemirror-keymap-tvZqK1zZ.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-markdown-rpUTSG_Q.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-model-DAA3avbR.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-schema-list-qDgvFydE.js +87 -0
- package/dist/chunks/vendor-prosemirror-schema-list-qDgvFydE.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-state-BvFA7AjG.js +821 -0
- package/dist/chunks/vendor-prosemirror-state-BvFA7AjG.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-tables-CbmHRq4G.js +1414 -0
- package/dist/chunks/vendor-prosemirror-tables-CbmHRq4G.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-transform-DVGD47fI.js +1541 -0
- package/dist/chunks/vendor-prosemirror-transform-DVGD47fI.js.map +1 -0
- package/dist/chunks/vendor-prosemirror-view-BW4UqvjQ.js +3802 -0
- package/dist/chunks/vendor-prosemirror-view-BW4UqvjQ.js.map +1 -0
- package/dist/chunks/vendor-punycode-js-CgGegfA_.js.map +1 -0
- package/dist/chunks/vendor-rope-sequence-BWC2FSrq.js.map +1 -0
- package/dist/chunks/vendor-sortablejs-Bsvu-FKn.js +1276 -0
- package/dist/chunks/vendor-sortablejs-Bsvu-FKn.js.map +1 -0
- package/dist/chunks/vendor-striptags-DtlgQudQ.js.map +1 -0
- package/dist/chunks/vendor-stylis-ClfDrgKE.js.map +1 -0
- package/dist/chunks/vendor-supercluster-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-swiper-BgqGfw3Y.js +3800 -0
- package/dist/chunks/vendor-swiper-BgqGfw3Y.js.map +1 -0
- package/dist/chunks/vendor-tanstack-virtual-core-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-tanstack-vue-virtual-CD9yLWd7.js.map +1 -0
- package/dist/chunks/vendor-three-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-throttle-debounce-CX0imT7m.js.map +1 -0
- package/dist/chunks/vendor-tiptap-core-CZbeo7XQ.js +3944 -0
- package/dist/chunks/vendor-tiptap-core-CZbeo7XQ.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-blockquote-B8uwrgnZ.js +60 -0
- package/dist/chunks/vendor-tiptap-extension-blockquote-B8uwrgnZ.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-bold-Ch9pbrZY.js +80 -0
- package/dist/chunks/vendor-tiptap-extension-bold-Ch9pbrZY.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-code-CVh_mZgz.js +52 -0
- package/dist/chunks/vendor-tiptap-extension-code-CVh_mZgz.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-code-block-CfoUSR2N.js +215 -0
- package/dist/chunks/vendor-tiptap-extension-code-block-CfoUSR2N.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-document-C4tn-v0L.js +12 -0
- package/dist/chunks/vendor-tiptap-extension-document-C4tn-v0L.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-hard-break-CbK1eM89.js +59 -0
- package/dist/chunks/vendor-tiptap-extension-hard-break-CbK1eM89.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-heading-BlkYF-RD.js +63 -0
- package/dist/chunks/vendor-tiptap-extension-heading-BlkYF-RD.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-horizontal-rule-DjMOsQCA.js +56 -0
- package/dist/chunks/vendor-tiptap-extension-horizontal-rule-DjMOsQCA.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-image-BpqLcXdw.js +128 -0
- package/dist/chunks/vendor-tiptap-extension-image-BpqLcXdw.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-italic-YDdh6jEW.js +79 -0
- package/dist/chunks/vendor-tiptap-extension-italic-YDdh6jEW.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-link-CETrc0Mo.js +312 -0
- package/dist/chunks/vendor-tiptap-extension-link-CETrc0Mo.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-list-DsiDvJxK.js +753 -0
- package/dist/chunks/vendor-tiptap-extension-list-DsiDvJxK.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-paragraph-Bcss4jc0.js +49 -0
- package/dist/chunks/vendor-tiptap-extension-paragraph-Bcss4jc0.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-placeholder-ClNjQXk_.js +1 -0
- package/dist/chunks/vendor-tiptap-extension-placeholder-ClNjQXk_.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-strike-BZiBed9b.js +64 -0
- package/dist/chunks/vendor-tiptap-extension-strike-BZiBed9b.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-table-QVjcLO_H.js +409 -0
- package/dist/chunks/vendor-tiptap-extension-table-QVjcLO_H.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-table-cell-CuXZTKj8.js +1 -0
- package/dist/chunks/vendor-tiptap-extension-table-cell-CuXZTKj8.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-table-header-CuXZTKj8.js +1 -0
- package/dist/chunks/vendor-tiptap-extension-table-header-CuXZTKj8.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-table-row-CuXZTKj8.js +1 -0
- package/dist/chunks/vendor-tiptap-extension-table-row-CuXZTKj8.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-text-Wofhchrp.js +13 -0
- package/dist/chunks/vendor-tiptap-extension-text-Wofhchrp.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-text-style-Bc6nvmn0.js +235 -0
- package/dist/chunks/vendor-tiptap-extension-text-style-Bc6nvmn0.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extension-underline-Bo1pXXDN.js +65 -0
- package/dist/chunks/vendor-tiptap-extension-underline-Bo1pXXDN.js.map +1 -0
- package/dist/chunks/vendor-tiptap-extensions-D7eaegpB.js +299 -0
- package/dist/chunks/vendor-tiptap-extensions-D7eaegpB.js.map +1 -0
- package/dist/chunks/vendor-tiptap-markdown-18K1hcU0.js +826 -0
- package/dist/chunks/vendor-tiptap-markdown-18K1hcU0.js.map +1 -0
- package/dist/chunks/vendor-tiptap-pm-yqZPZQMU.js +1 -0
- package/dist/chunks/vendor-tiptap-pm-yqZPZQMU.js.map +1 -0
- package/dist/chunks/vendor-tiptap-starter-kit-ny-AoaO_.js +28 -0
- package/dist/chunks/vendor-tiptap-starter-kit-ny-AoaO_.js.map +1 -0
- package/dist/chunks/vendor-tiptap-vue-3-BNAw8onj.js +157 -0
- package/dist/chunks/vendor-tiptap-vue-3-BNAw8onj.js.map +1 -0
- package/dist/chunks/vendor-topojson-client-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-truncate-html-ChA1T5zy.js.map +1 -0
- package/dist/chunks/vendor-tslib-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-uc-micro-4lbSaZOs.js.map +1 -0
- package/dist/chunks/vendor-unovis-dagre-layout-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-unovis-graphlibrary-l0sNRNKZ.js.map +1 -0
- package/dist/chunks/vendor-unovis-ts-stSsHr9j.js.map +1 -0
- package/dist/chunks/vendor-unovis-vue-CZWGT3-0.js.map +1 -0
- package/dist/chunks/vendor-vee-validate-i18n-zT8NxX3R.js.map +1 -0
- package/dist/chunks/vendor-vee-validate-rules-4oWUZPpG.js.map +1 -0
- package/dist/chunks/vendor-vue-currency-input-CckB4kjx.js.map +1 -0
- package/dist/chunks/vendor-vue-demi-CD9yLWd7.js.map +1 -0
- package/dist/chunks/vendor-vue-devtools-api-aVYGocXp.js.map +1 -0
- package/dist/chunks/vendor-vue-i18n-LO-EJStU.js +1369 -0
- package/dist/chunks/vendor-vue-i18n-LO-EJStU.js.map +1 -0
- package/dist/chunks/vendor-vue3-application-insights-CAgbt8pk.js +69 -0
- package/dist/chunks/vendor-vue3-application-insights-CAgbt8pk.js.map +1 -0
- package/dist/chunks/vendor-vue3-touch-events-DqysuuWh.js.map +1 -0
- package/dist/chunks/vendor-vuepic-vue-datepicker-CaZ_qpJp.js.map +1 -0
- package/dist/chunks/vendor-vueuse-components-BW7i7Uhb.js +219 -0
- package/dist/chunks/vendor-vueuse-components-BW7i7Uhb.js.map +1 -0
- package/dist/chunks/vendor-vueuse-core-CEdpDfzx.js +586 -0
- package/dist/chunks/vendor-vueuse-core-CEdpDfzx.js.map +1 -0
- package/dist/chunks/vendor-vueuse-shared-BlCOXw5g.js +149 -0
- package/dist/chunks/vendor-vueuse-shared-BlCOXw5g.js.map +1 -0
- package/dist/chunks/vendor-w3c-keyname-CLxH8j-f.js.map +1 -0
- package/dist/chunks/vendor-web-vitals-ByFgAM-8.js +215 -0
- package/dist/chunks/vendor-web-vitals-ByFgAM-8.js.map +1 -0
- package/dist/core/api/platform.d.ts +304 -958
- package/dist/core/api/platform.d.ts.map +1 -1
- package/dist/core/blade-navigation/bladeConfigRegistry.d.ts +21 -0
- package/dist/core/blade-navigation/bladeConfigRegistry.d.ts.map +1 -0
- package/dist/core/blade-navigation/index.d.ts +5 -0
- package/dist/core/blade-navigation/index.d.ts.map +1 -0
- package/dist/core/blade-navigation/singletons.d.ts +21 -0
- package/dist/core/blade-navigation/singletons.d.ts.map +1 -0
- package/dist/core/blade-navigation/types/index.d.ts +252 -0
- package/dist/core/blade-navigation/types/index.d.ts.map +1 -0
- package/dist/core/blade-navigation/useBladeMessaging.d.ts +18 -0
- package/dist/core/blade-navigation/useBladeMessaging.d.ts.map +1 -0
- package/dist/core/blade-navigation/useBladeStack.d.ts +19 -0
- package/dist/core/blade-navigation/useBladeStack.d.ts.map +1 -0
- package/dist/core/blade-navigation/utils/bladeRouterGuard.d.ts +32 -0
- package/dist/core/blade-navigation/utils/bladeRouterGuard.d.ts.map +1 -0
- package/dist/core/blade-navigation/utils/navigateToMainRoute.d.ts.map +1 -0
- package/dist/core/blade-navigation/utils/restoreFromUrl.d.ts +24 -0
- package/dist/core/blade-navigation/utils/restoreFromUrl.d.ts.map +1 -0
- package/dist/core/blade-navigation/utils/urlSync.d.ts +54 -0
- package/dist/core/blade-navigation/utils/urlSync.d.ts.map +1 -0
- package/dist/core/composables/bladeContext/index.d.ts +29 -0
- package/dist/core/composables/bladeContext/index.d.ts.map +1 -0
- package/dist/core/composables/index.d.ts +7 -1
- package/dist/core/composables/index.d.ts.map +1 -1
- package/dist/core/composables/useAppBarMobileButtons/index.d.ts.map +1 -1
- package/dist/core/composables/useAppInsights/index.d.ts +2 -1
- package/dist/core/composables/useAppInsights/index.d.ts.map +1 -1
- package/dist/core/composables/useAssets/index.d.ts.map +1 -1
- package/dist/core/composables/useAssetsManager/index.d.ts +24 -0
- package/dist/core/composables/useAssetsManager/index.d.ts.map +1 -0
- package/dist/core/composables/useAsync/index.d.ts.map +1 -1
- package/dist/core/composables/useBlade/index.d.ts +34 -27
- package/dist/core/composables/useBlade/index.d.ts.map +1 -1
- package/dist/core/composables/useBladeForm/index.d.ts +17 -0
- package/dist/core/composables/useBladeForm/index.d.ts.map +1 -0
- package/dist/core/composables/useBladeForm/types.d.ts +40 -0
- package/dist/core/composables/useBladeForm/types.d.ts.map +1 -0
- package/dist/core/composables/useBladeNavigationAdapter/index.d.ts +33 -0
- package/dist/core/composables/useBladeNavigationAdapter/index.d.ts.map +1 -0
- package/dist/core/composables/useBladeRegistry/index.d.ts +1 -1
- package/dist/core/composables/useBladeRegistry/index.d.ts.map +1 -1
- package/dist/core/composables/useBladeWidgets/index.d.ts +49 -0
- package/dist/core/composables/useBladeWidgets/index.d.ts.map +1 -0
- package/dist/core/composables/useBreadcrumbs/index.d.ts +1 -1
- package/dist/core/composables/useBreadcrumbs/index.d.ts.map +1 -1
- package/dist/core/composables/useConnectionStatus/index.d.ts.map +1 -1
- package/dist/core/composables/useDynamicProperties/index.d.ts +3 -69
- package/dist/core/composables/useDynamicProperties/index.d.ts.map +1 -1
- package/dist/core/composables/useDynamicProperties/strategies/boolean.d.ts +3 -0
- package/dist/core/composables/useDynamicProperties/strategies/boolean.d.ts.map +1 -0
- package/dist/core/composables/useDynamicProperties/strategies/color.d.ts +3 -0
- package/dist/core/composables/useDynamicProperties/strategies/color.d.ts.map +1 -0
- package/dist/core/composables/useDynamicProperties/strategies/dictionary.d.ts +3 -0
- package/dist/core/composables/useDynamicProperties/strategies/dictionary.d.ts.map +1 -0
- package/dist/core/composables/useDynamicProperties/strategies/index.d.ts +4 -0
- package/dist/core/composables/useDynamicProperties/strategies/index.d.ts.map +1 -0
- package/dist/core/composables/useDynamicProperties/strategies/measure.d.ts +3 -0
- package/dist/core/composables/useDynamicProperties/strategies/measure.d.ts.map +1 -0
- package/dist/core/composables/useDynamicProperties/strategies/regular.d.ts +3 -0
- package/dist/core/composables/useDynamicProperties/strategies/regular.d.ts.map +1 -0
- package/dist/core/composables/useDynamicProperties/strategies/types.d.ts +16 -0
- package/dist/core/composables/useDynamicProperties/strategies/types.d.ts.map +1 -0
- package/dist/core/composables/useDynamicProperties/types.d.ts +70 -0
- package/dist/core/composables/useDynamicProperties/types.d.ts.map +1 -0
- package/dist/core/composables/useDynamicProperties/utils.d.ts +10 -0
- package/dist/core/composables/useDynamicProperties/utils.d.ts.map +1 -0
- package/dist/core/composables/useExternalProvider/index.d.ts +12 -0
- package/dist/core/composables/useExternalProvider/index.d.ts.map +1 -0
- package/dist/core/composables/useFunctions/debounce.d.ts.map +1 -1
- package/dist/core/composables/useMenuExpanded/index.d.ts +9 -0
- package/dist/core/composables/useMenuExpanded/index.d.ts.map +1 -0
- package/dist/core/composables/useModificationTracker/index.d.ts.map +1 -0
- package/dist/core/composables/useNotifications/index.d.ts +3 -8
- package/dist/core/composables/useNotifications/index.d.ts.map +1 -1
- package/dist/core/composables/usePermissions/index.d.ts.map +1 -1
- package/dist/core/composables/usePlatformLocaleSync/index.d.ts +17 -0
- package/dist/core/composables/usePlatformLocaleSync/index.d.ts.map +1 -0
- package/dist/core/composables/usePopup/index.d.ts +12 -0
- package/dist/core/composables/usePopup/index.d.ts.map +1 -0
- package/dist/core/composables/usePopup/keys.d.ts +4 -0
- package/dist/core/composables/usePopup/keys.d.ts.map +1 -0
- package/dist/core/composables/usePopup/preset-registry.d.ts +7 -0
- package/dist/core/composables/usePopup/preset-registry.d.ts.map +1 -0
- package/dist/core/composables/usePopup/singleton.d.ts +6 -0
- package/dist/core/composables/usePopup/singleton.d.ts.map +1 -0
- package/dist/core/composables/usePopup/types.d.ts +22 -0
- package/dist/core/composables/usePopup/types.d.ts.map +1 -0
- package/dist/core/composables/useResponsive/index.d.ts +26 -0
- package/dist/core/composables/useResponsive/index.d.ts.map +1 -0
- package/dist/core/composables/useSidebarState/index.d.ts.map +1 -1
- package/dist/core/composables/useSlowNetworkDetection/index.d.ts +10 -0
- package/dist/core/composables/useSlowNetworkDetection/index.d.ts.map +1 -0
- package/dist/core/composables/useTheme/index.d.ts.map +1 -1
- package/dist/core/composables/useToolbar/index.d.ts.map +1 -1
- package/dist/core/composables/useUser/index.d.ts +1 -0
- package/dist/core/composables/useUser/index.d.ts.map +1 -1
- package/dist/core/composables/useUserManagement/index.d.ts.map +1 -1
- package/dist/core/composables/useWidgets/index.d.ts +4 -0
- package/dist/core/composables/useWidgets/index.d.ts.map +1 -1
- package/dist/core/constants/index.d.ts +0 -1
- package/dist/core/constants/index.d.ts.map +1 -1
- package/dist/core/directives/index.d.ts +2 -0
- package/dist/core/directives/index.d.ts.map +1 -1
- package/dist/core/interceptors/index.d.ts.map +1 -1
- package/dist/core/notifications/composables/index.d.ts +5 -0
- package/dist/core/notifications/composables/index.d.ts.map +1 -0
- package/dist/core/notifications/composables/useBladeNotifications.d.ts +13 -0
- package/dist/core/notifications/composables/useBladeNotifications.d.ts.map +1 -0
- package/dist/core/notifications/composables/useBroadcastFilter.d.ts +7 -0
- package/dist/core/notifications/composables/useBroadcastFilter.d.ts.map +1 -0
- package/dist/core/notifications/composables/useNotificationContext.d.ts +4 -0
- package/dist/core/notifications/composables/useNotificationContext.d.ts.map +1 -0
- package/dist/core/notifications/composables/useNotificationStore.d.ts +11 -0
- package/dist/core/notifications/composables/useNotificationStore.d.ts.map +1 -0
- package/dist/core/notifications/index.d.ts +11 -0
- package/dist/core/notifications/index.d.ts.map +1 -0
- package/dist/core/notifications/notification.d.ts +37 -0
- package/dist/core/notifications/notification.d.ts.map +1 -0
- package/dist/core/notifications/store.d.ts +31 -0
- package/dist/core/notifications/store.d.ts.map +1 -0
- package/dist/core/notifications/toast-controller.d.ts +7 -0
- package/dist/core/notifications/toast-controller.d.ts.map +1 -0
- package/dist/core/notifications/toast-types.d.ts +27 -0
- package/dist/core/notifications/toast-types.d.ts.map +1 -0
- package/dist/core/notifications/types.d.ts +48 -0
- package/dist/core/notifications/types.d.ts.map +1 -0
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue.d.ts +3 -2
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentIframe.vue.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentLoader.vue.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/components/_internal/VcVirtoOzLogo.vue.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/composables/index.d.ts +1 -1
- package/dist/core/plugins/ai-agent/composables/index.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/composables/useAiAgent.d.ts +2 -10
- package/dist/core/plugins/ai-agent/composables/useAiAgent.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/composables/useAiAgentContext.d.ts +2 -3
- package/dist/core/plugins/ai-agent/composables/useAiAgentContext.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/index.d.ts +2 -2
- package/dist/core/plugins/ai-agent/index.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/public.d.ts +12 -0
- package/dist/core/plugins/ai-agent/public.d.ts.map +1 -0
- package/dist/core/plugins/ai-agent/services/ai-agent-service.d.ts +2 -4
- package/dist/core/plugins/ai-agent/services/ai-agent-service.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/services/context-manager.d.ts +21 -0
- package/dist/core/plugins/ai-agent/services/context-manager.d.ts.map +1 -0
- package/dist/core/plugins/ai-agent/services/message-transport.d.ts +29 -0
- package/dist/core/plugins/ai-agent/services/message-transport.d.ts.map +1 -0
- package/dist/core/plugins/ai-agent/services/panel-controller.d.ts +16 -0
- package/dist/core/plugins/ai-agent/services/panel-controller.d.ts.map +1 -0
- package/dist/core/plugins/ai-agent/types.d.ts +2 -2
- package/dist/core/plugins/ai-agent/types.d.ts.map +1 -1
- package/dist/core/plugins/ai-agent/utils/deep-merge-changes.d.ts +16 -0
- package/dist/core/plugins/ai-agent/utils/deep-merge-changes.d.ts.map +1 -0
- package/dist/core/plugins/ai-agent/utils/index.d.ts +2 -0
- package/dist/core/plugins/ai-agent/utils/index.d.ts.map +1 -0
- package/dist/core/plugins/extension-points/ExtensionPoint.vue.d.ts.map +1 -1
- package/dist/core/plugins/extension-points/public.d.ts +8 -0
- package/dist/core/plugins/extension-points/public.d.ts.map +1 -0
- package/dist/core/plugins/extension-points/store.d.ts.map +1 -1
- package/dist/core/plugins/modularity/index.d.ts +44 -30
- package/dist/core/plugins/modularity/index.d.ts.map +1 -1
- package/dist/core/plugins/signalR/index.d.ts +2 -6
- package/dist/core/plugins/signalR/index.d.ts.map +1 -1
- package/dist/core/plugins/validation/rules.d.ts.map +1 -1
- package/dist/core/services/_internal/index.d.ts +3 -3
- package/dist/core/services/_internal/index.d.ts.map +1 -1
- package/dist/core/services/app-bar-menu-service.d.ts.map +1 -1
- package/dist/core/services/dashboard-service.d.ts.map +1 -1
- package/dist/core/services/settings-menu-service.d.ts.map +1 -1
- package/dist/core/services/widget-service.d.ts +25 -24
- package/dist/core/services/widget-service.d.ts.map +1 -1
- package/dist/core/types/breadcrumbs.d.ts +8 -0
- package/dist/core/types/breadcrumbs.d.ts.map +1 -0
- package/dist/core/types/index.d.ts +13 -33
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/menu-types.d.ts +4 -4
- package/dist/core/types/menu-types.d.ts.map +1 -1
- package/dist/core/utilities/assets.d.ts +6 -0
- package/dist/core/utilities/assets.d.ts.map +1 -0
- package/dist/core/utilities/colorUtils.d.ts.map +1 -0
- package/dist/core/utilities/date/formatDate.d.ts.map +1 -1
- package/dist/core/utilities/error.d.ts.map +1 -1
- package/dist/core/utilities/formatBadgeCount.d.ts.map +1 -0
- package/dist/core/utilities/index.d.ts +4 -0
- package/dist/core/utilities/index.d.ts.map +1 -1
- package/dist/core/utilities/pendingErrorNotifications.d.ts +2 -2
- package/dist/core/utilities/thumbnail/index.d.ts +42 -0
- package/dist/core/utilities/thumbnail/index.d.ts.map +1 -0
- package/dist/extensions/index.js +8 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/framework.js +4462 -31895
- package/dist/framework.js.map +1 -0
- package/dist/index.css +9 -0
- package/dist/index.d.ts +31 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/injection-keys.d.ts +11 -20
- package/dist/injection-keys.d.ts.map +1 -1
- package/dist/locales/de.d.ts +3 -0
- package/dist/locales/de.js +439 -0
- package/dist/locales/en.d.ts +3 -0
- package/dist/locales/en.js +439 -0
- package/dist/locales/en.json +17 -5
- package/dist/locales/types.d.ts +446 -0
- package/dist/modules/assets/components/assets-details/assets-details.vue.d.ts +4 -0
- package/dist/modules/assets/components/assets-details/assets-details.vue.d.ts.map +1 -0
- package/dist/modules/assets/components/assets-details/index.d.ts +3 -0
- package/dist/modules/assets/components/assets-details/index.d.ts.map +1 -0
- package/dist/modules/assets/components/index.d.ts +2 -0
- package/dist/modules/assets/components/index.d.ts.map +1 -0
- package/dist/modules/assets/index.d.ts +6 -0
- package/dist/modules/assets/index.d.ts.map +1 -0
- package/dist/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts +4 -0
- package/dist/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts.map +1 -0
- package/dist/modules/assets-manager/components/assets-manager/index.d.ts +3 -0
- package/dist/modules/assets-manager/components/assets-manager/index.d.ts.map +1 -0
- package/dist/modules/assets-manager/components/index.d.ts +2 -0
- package/dist/modules/assets-manager/components/index.d.ts.map +1 -0
- package/dist/modules/assets-manager/index.d.ts +5 -0
- package/dist/modules/assets-manager/index.d.ts.map +1 -0
- package/dist/modules/index.d.ts +3 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/scripts/check-locales.cjs +3185 -0
- package/dist/shell/_internal/_storybook-helpers.d.ts.map +1 -0
- package/dist/shell/_internal/blade-navigation/components/index.d.ts +3 -0
- package/dist/shell/_internal/blade-navigation/components/index.d.ts.map +1 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-navigation/_internal/vc-mobile-back-button.vue.d.ts.map +1 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-navigation/index.d.ts +3 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-navigation/index.d.ts.map +1 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-navigation/vc-blade-navigation-new.vue.d.ts.map +1 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-slot/index.d.ts +2 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-slot/index.d.ts.map +1 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-slot/vc-blade-slot.vue.d.ts +21 -0
- package/dist/shell/_internal/blade-navigation/components/vc-blade-slot/vc-blade-slot.vue.d.ts.map +1 -0
- package/dist/shell/_internal/blade-navigation/index.d.ts +3 -0
- package/dist/shell/_internal/blade-navigation/index.d.ts.map +1 -0
- package/dist/shell/_internal/blade-navigation/plugin-v2.d.ts +22 -0
- package/dist/shell/_internal/blade-navigation/plugin-v2.d.ts.map +1 -0
- package/dist/shell/_internal/notifications/components/index.d.ts +2 -0
- package/dist/shell/_internal/notifications/components/index.d.ts.map +1 -0
- package/dist/shell/_internal/notifications/components/notification-container/index.d.ts +120 -0
- package/dist/shell/_internal/notifications/components/notification-container/index.d.ts.map +1 -0
- package/dist/shell/_internal/notifications/composables/index.d.ts +3 -0
- package/dist/shell/_internal/notifications/composables/index.d.ts.map +1 -0
- package/dist/shell/_internal/notifications/composables/useContainer/index.d.ts +23 -0
- package/dist/shell/_internal/notifications/composables/useContainer/index.d.ts.map +1 -0
- package/dist/shell/_internal/notifications/composables/useInstance/index.d.ts +11 -0
- package/dist/shell/_internal/notifications/composables/useInstance/index.d.ts.map +1 -0
- package/dist/shell/_internal/notifications/register-backend.d.ts +6 -0
- package/dist/shell/_internal/notifications/register-backend.d.ts.map +1 -0
- package/dist/shell/_internal/popup/common/vc-popup-base.vue.d.ts +51 -0
- package/dist/shell/_internal/popup/common/vc-popup-base.vue.d.ts.map +1 -0
- package/dist/shell/_internal/popup/common/vc-popup-error.vue.d.ts.map +1 -0
- package/dist/shell/_internal/popup/common/vc-popup-info.vue.d.ts.map +1 -0
- package/dist/shell/_internal/popup/common/vc-popup-warning.vue.d.ts.map +1 -0
- package/dist/shell/_internal/popup/components/index.d.ts +2 -0
- package/dist/shell/_internal/popup/components/index.d.ts.map +1 -0
- package/dist/shell/_internal/popup/components/vc-popup-container/index.d.ts +3 -0
- package/dist/shell/_internal/popup/components/vc-popup-container/index.d.ts.map +1 -0
- package/dist/shell/_internal/popup/components/vc-popup-container/vc-popup-container.vue.d.ts.map +1 -0
- package/dist/shell/_internal/popup/composables/index.d.ts +2 -0
- package/dist/shell/_internal/popup/composables/index.d.ts.map +1 -0
- package/dist/shell/_internal/popup/composables/usePopup/index.d.ts +2 -0
- package/dist/shell/_internal/popup/composables/usePopup/index.d.ts.map +1 -0
- package/dist/shell/_internal/popup/index.d.ts +12 -0
- package/dist/shell/_internal/popup/index.d.ts.map +1 -0
- package/dist/shell/_internal/popup/keys.d.ts +2 -0
- package/dist/shell/_internal/popup/keys.d.ts.map +1 -0
- package/dist/shell/_internal/popup/plugin.d.ts +6 -0
- package/dist/shell/_internal/popup/plugin.d.ts.map +1 -0
- package/dist/shell/_internal/popup/register-presets.d.ts +6 -0
- package/dist/shell/_internal/popup/register-presets.d.ts.map +1 -0
- package/dist/shell/_internal/popup/types/index.d.ts +2 -0
- package/dist/shell/_internal/popup/types/index.d.ts.map +1 -0
- package/dist/shell/_internal/popup/utils/index.d.ts.map +1 -0
- package/dist/shell/auth/ChangePasswordPage/components/change-password/ChangePassword.vue.d.ts.map +1 -0
- package/dist/shell/auth/ChangePasswordPage/components/change-password/index.d.ts +3 -0
- package/dist/shell/auth/ChangePasswordPage/components/change-password/index.d.ts.map +1 -0
- package/dist/shell/auth/ChangePasswordPage/components/index.d.ts +2 -0
- package/dist/shell/auth/ChangePasswordPage/components/index.d.ts.map +1 -0
- package/dist/shell/auth/ChangePasswordPage/index.d.ts +2 -0
- package/dist/shell/auth/ChangePasswordPage/index.d.ts.map +1 -0
- package/dist/shell/auth/ForgotPasswordPage/components/forgot-password/ForgotPassword.vue.d.ts.map +1 -0
- package/dist/shell/auth/ForgotPasswordPage/components/forgot-password/index.d.ts +3 -0
- package/dist/shell/auth/ForgotPasswordPage/components/forgot-password/index.d.ts.map +1 -0
- package/dist/shell/auth/ForgotPasswordPage/components/index.d.ts +2 -0
- package/dist/shell/auth/ForgotPasswordPage/components/index.d.ts.map +1 -0
- package/dist/shell/auth/ForgotPasswordPage/index.d.ts +2 -0
- package/dist/shell/auth/ForgotPasswordPage/index.d.ts.map +1 -0
- package/dist/shell/auth/InvitePage/components/index.d.ts +2 -0
- package/dist/shell/auth/InvitePage/components/index.d.ts.map +1 -0
- package/dist/shell/auth/InvitePage/components/invite/Invite.vue.d.ts +14 -0
- package/dist/shell/auth/InvitePage/components/invite/Invite.vue.d.ts.map +1 -0
- package/dist/shell/auth/InvitePage/components/invite/index.d.ts +3 -0
- package/dist/shell/auth/InvitePage/components/invite/index.d.ts.map +1 -0
- package/dist/shell/auth/InvitePage/index.d.ts +2 -0
- package/dist/shell/auth/InvitePage/index.d.ts.map +1 -0
- package/dist/shell/auth/LoginPage/components/index.d.ts +2 -0
- package/dist/shell/auth/LoginPage/components/index.d.ts.map +1 -0
- package/dist/shell/auth/LoginPage/components/login/Login.vue.d.ts.map +1 -0
- package/dist/shell/auth/LoginPage/components/login/index.d.ts +3 -0
- package/dist/shell/auth/LoginPage/components/login/index.d.ts.map +1 -0
- package/dist/shell/auth/LoginPage/index.d.ts +2 -0
- package/dist/shell/auth/LoginPage/index.d.ts.map +1 -0
- package/dist/shell/auth/ResetPasswordPage/components/index.d.ts +2 -0
- package/dist/shell/auth/ResetPasswordPage/components/index.d.ts.map +1 -0
- package/dist/shell/auth/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts +14 -0
- package/dist/shell/auth/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts.map +1 -0
- package/dist/shell/auth/ResetPasswordPage/components/reset-password/index.d.ts +3 -0
- package/dist/shell/auth/ResetPasswordPage/components/reset-password/index.d.ts.map +1 -0
- package/dist/shell/auth/ResetPasswordPage/index.d.ts +2 -0
- package/dist/shell/auth/ResetPasswordPage/index.d.ts.map +1 -0
- package/dist/shell/auth/_test-utils/shared-dependency-mocks.d.ts +8 -0
- package/dist/shell/auth/_test-utils/shared-dependency-mocks.d.ts.map +1 -0
- package/dist/shell/auth/_test-utils/shared-mock-factories.d.ts +13 -0
- package/dist/shell/auth/_test-utils/shared-mock-factories.d.ts.map +1 -0
- package/dist/shell/auth/_test-utils/shared-stubs.d.ts +33 -0
- package/dist/shell/auth/_test-utils/shared-stubs.d.ts.map +1 -0
- package/dist/shell/auth/index.d.ts +7 -0
- package/dist/shell/auth/index.d.ts.map +1 -0
- package/dist/shell/auth/sign-in/external-provider.vue.d.ts.map +1 -0
- package/dist/shell/auth/sign-in/external-providers.vue.d.ts.map +1 -0
- package/dist/shell/auth/sign-in/index.d.ts +2 -0
- package/dist/shell/auth/sign-in/index.d.ts.map +1 -0
- package/dist/shell/auth/sign-in/useExternalProvider.d.ts +3 -0
- package/dist/shell/auth/sign-in/useExternalProvider.d.ts.map +1 -0
- package/dist/shell/auth/utils.d.ts +25 -0
- package/dist/shell/auth/utils.d.ts.map +1 -0
- package/dist/shell/components/app-hub/composables/index.d.ts +2 -0
- package/dist/shell/components/app-hub/composables/index.d.ts.map +1 -0
- package/dist/shell/components/app-hub/composables/useAppHub/index.d.ts +10 -0
- package/dist/shell/components/app-hub/composables/useAppHub/index.d.ts.map +1 -0
- package/dist/shell/components/change-password/change-password.vue.d.ts.map +1 -0
- package/dist/shell/components/change-password/index.d.ts +3 -0
- package/dist/shell/components/change-password/index.d.ts.map +1 -0
- package/dist/shell/components/change-password-button/change-password-button.vue.d.ts.map +1 -0
- package/dist/shell/components/change-password-button/index.d.ts.map +1 -0
- package/dist/shell/components/error-interceptor/index.d.ts +14 -0
- package/dist/shell/components/error-interceptor/index.d.ts.map +1 -0
- package/dist/shell/components/error-interceptor/interceptor.d.ts.map +1 -0
- package/dist/shell/components/index.d.ts +13 -0
- package/dist/shell/components/index.d.ts.map +1 -0
- package/dist/shell/components/language-selector/index.d.ts +3 -0
- package/dist/shell/components/language-selector/index.d.ts.map +1 -0
- package/dist/shell/components/language-selector/language-selector.vue.d.ts.map +1 -0
- package/dist/shell/components/logout-button/index.d.ts.map +1 -0
- package/dist/shell/components/logout-button/logout-button.vue.d.ts.map +1 -0
- package/dist/shell/components/notification-dropdown/_internal/notification/index.d.ts.map +1 -0
- package/dist/shell/components/notification-dropdown/_internal/notification/notification.vue.d.ts +15 -0
- package/dist/shell/components/notification-dropdown/_internal/notification/notification.vue.d.ts.map +1 -0
- package/dist/shell/components/notification-dropdown/index.d.ts +3 -0
- package/dist/shell/components/notification-dropdown/index.d.ts.map +1 -0
- package/dist/shell/components/notification-dropdown/notification-dropdown.vue.d.ts.map +1 -0
- package/dist/shell/components/notification-template/index.d.ts +3 -0
- package/dist/shell/components/notification-template/index.d.ts.map +1 -0
- package/dist/shell/components/notification-template/notification-template.vue.d.ts +29 -0
- package/dist/shell/components/notification-template/notification-template.vue.d.ts.map +1 -0
- package/dist/shell/components/settings-menu/index.d.ts.map +1 -0
- package/dist/shell/components/settings-menu/settings-menu.vue.d.ts.map +1 -0
- package/dist/shell/components/settings-menu-item/index.d.ts.map +1 -0
- package/dist/shell/components/settings-menu-item/settings-menu-item.vue.d.ts +42 -0
- package/dist/shell/components/settings-menu-item/settings-menu-item.vue.d.ts.map +1 -0
- package/dist/shell/components/sidebar/index.d.ts +47 -0
- package/dist/shell/components/sidebar/index.d.ts.map +1 -0
- package/dist/shell/components/sidebar/sidebar.vue.d.ts +31 -0
- package/dist/shell/components/sidebar/sidebar.vue.d.ts.map +1 -0
- package/dist/shell/components/theme-selector/index.d.ts.map +1 -0
- package/dist/shell/components/theme-selector/theme-selector.vue.d.ts.map +1 -0
- package/dist/shell/components/user-dropdown-button/_internal/user-info.vue.d.ts.map +1 -0
- package/dist/shell/components/user-dropdown-button/_internal/user-sidebar.vue.d.ts.map +1 -0
- package/dist/shell/components/user-dropdown-button/index.d.ts +3 -0
- package/dist/shell/components/user-dropdown-button/index.d.ts.map +1 -0
- package/dist/shell/components/user-dropdown-button/user-dropdown-button.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/ChartContainer.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/ChartLegend.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/ChartTooltip.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/DashboardBarChart.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/DashboardDonutChart.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/DashboardLineChart.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/chart-utils.d.ts +29 -0
- package/dist/shell/dashboard/dashboard-charts/chart-utils.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/index.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-charts/types.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-widget-card/dashboard-feed-list.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-widget-card/dashboard-feed-row.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-widget-card/dashboard-stat-item.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-widget-card/dashboard-widget-card.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/dashboard-widget-card/index.d.ts +5 -0
- package/dist/shell/dashboard/dashboard-widget-card/index.d.ts.map +1 -0
- package/dist/shell/dashboard/draggable-dashboard/DraggableDashboard.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/draggable-dashboard/GridstackDashboard.vue.d.ts.map +1 -0
- package/dist/shell/dashboard/draggable-dashboard/composables/useGridstack.d.ts +56 -0
- package/dist/shell/dashboard/draggable-dashboard/composables/useGridstack.d.ts.map +1 -0
- package/dist/shell/dashboard/draggable-dashboard/composables/useGridstackAdapter.d.ts +47 -0
- package/dist/shell/dashboard/draggable-dashboard/composables/useGridstackAdapter.d.ts.map +1 -0
- package/dist/shell/dashboard/draggable-dashboard/index.d.ts +13 -0
- package/dist/shell/dashboard/draggable-dashboard/index.d.ts.map +1 -0
- package/dist/shell/dashboard/draggable-dashboard/types.d.ts.map +1 -0
- package/dist/shell/dashboard/index.d.ts +4 -0
- package/dist/shell/dashboard/index.d.ts.map +1 -0
- package/dist/test-helpers.d.ts +103 -14
- package/dist/test-helpers.d.ts.map +1 -1
- package/dist/test-mock-factories.d.ts +48 -0
- package/dist/test-mock-factories.d.ts.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts +2 -2
- package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-banner/vc-banner.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-button/index.d.ts +1 -1
- package/dist/ui/components/atoms/vc-button/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts +2 -2
- package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-card/vc-card.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-col/vc-col.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/composables/index.d.ts +1 -2
- package/dist/ui/components/atoms/vc-icon/composables/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/types.d.ts +15 -2
- package/dist/ui/components/atoms/vc-icon/types.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-bootstrap-icon.vue.d.ts +1 -0
- package/dist/ui/components/atoms/vc-icon/vc-bootstrap-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-fontawesome-icon.vue.d.ts +2 -1
- package/dist/ui/components/atoms/vc-icon/vc-fontawesome-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts +3 -2
- package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-lucide-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts +1 -0
- package/dist/ui/components/atoms/vc-icon/vc-material-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-svg-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-image/vc-image.vue.d.ts +3 -0
- package/dist/ui/components/atoms/vc-image/vc-image.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-link/vc-link.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-loading/vc-loading.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts +1 -1
- package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-row/vc-row.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-scrollable-container/vc-scrollable-container.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-skeleton/vc-skeleton.vue.d.ts +1 -1
- package/dist/ui/components/atoms/vc-skeleton/vc-skeleton.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-status/vc-status.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts +2 -2
- package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-widget/vc-widget.vue.d.ts +1 -0
- package/dist/ui/components/atoms/vc-widget/vc-widget.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/index.d.ts +2 -0
- package/dist/ui/components/molecules/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/multilanguage-selector/index.d.ts +2 -0
- package/dist/ui/components/molecules/multilanguage-selector/index.d.ts.map +1 -0
- package/dist/ui/components/molecules/multilanguage-selector/multilanguage-selector.vue.d.ts +44 -0
- package/dist/ui/components/molecules/multilanguage-selector/multilanguage-selector.vue.d.ts.map +1 -0
- package/dist/ui/components/molecules/vc-accordion/_internal/vc-accordion-item/vc-accordion-item.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-accordion/_internal/vc-accordion-item/vc-accordion-item.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-accordion/index.d.ts +1 -1
- package/dist/ui/components/molecules/vc-accordion/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-accordion/vc-accordion.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-accordion/vc-accordion.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-checkbox/vc-checkbox.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-checkbox-group/vc-checkbox-group.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-color-input/vc-color-input.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-color-input/vc-color-input.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-date-picker/vc-date-picker.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-date-picker/vc-date-picker.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-dropdown/index.d.ts +1 -1
- package/dist/ui/components/molecules/vc-dropdown/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-dropdown/vc-dropdown.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-dropdown-panel/vc-dropdown-panel.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-dropdown-panel/vc-dropdown-panel.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-editor/_internal/extensions/font-size.d.ts +3 -3
- package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-custom-button.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-font-selector.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-toolbar.vue.d.ts +2 -2
- package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-toolbar.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts +3 -3
- package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-field/vc-field.vue.d.ts +2 -21
- package/dist/ui/components/molecules/vc-field/vc-field.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-image-tile/index.d.ts +3 -0
- package/dist/ui/components/molecules/vc-image-tile/index.d.ts.map +1 -0
- package/dist/ui/components/molecules/vc-image-tile/vc-image-tile.vue.d.ts +41 -0
- package/dist/ui/components/molecules/vc-image-tile/vc-image-tile.vue.d.ts.map +1 -0
- package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input-dropdown/index.d.ts +1 -1
- package/dist/ui/components/molecules/vc-input-dropdown/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input-group/vc-input-group.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-menu/index.d.ts +1 -1
- package/dist/ui/components/molecules/vc-menu/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-menu/vc-menu-group.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-menu/vc-menu-group.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-menu/vc-menu-item.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-menu/vc-menu-item.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-menu/vc-menu.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-menu/vc-menu.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-multivalue/_internal/MultivalueDropdown.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-multivalue/_internal/MultivalueTrigger.vue.d.ts +4 -4
- package/dist/ui/components/molecules/vc-multivalue/composables/index.d.ts +1 -1
- package/dist/ui/components/molecules/vc-multivalue/composables/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-radio-button/vc-radio-button.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-radio-group/vc-radio-group.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/_internal/SelectDropdown.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/_internal/SelectTrigger.vue.d.ts +2 -2
- package/dist/ui/components/molecules/vc-select/_internal/SelectTrigger.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/composables/index.d.ts +1 -1
- package/dist/ui/components/molecules/vc-select/composables/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/composables/useSelectDataSource.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/composables/useSelectSelection.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/composables/useSelectValueMapping.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/composables/useSelectVisibility.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts +10 -27
- package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-slider/vc-slider.vue.d.ts +5 -5
- package/dist/ui/components/molecules/vc-slider/vc-slider.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-switch/vc-switch.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-toast/vc-toast.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-toast/vc-toast.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/index.d.ts +1 -1
- package/dist/ui/components/organisms/index.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarMobileActions.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarOverlay.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarWidgetItem.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppHubContent.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/MenuSidebar.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/MenuSidebar.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/composables/useToggleableContent.d.ts +3 -3
- package/dist/ui/components/organisms/vc-app/_internal/app-bar/composables/useToggleableContent.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/layouts/DesktopLayout.vue.d.ts +7 -3
- package/dist/ui/components/organisms/vc-app/_internal/layouts/DesktopLayout.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/layouts/MobileLayout.vue.d.ts +7 -3
- package/dist/ui/components/organisms/vc-app/_internal/layouts/MobileLayout.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/menu/VcAppMenu.vue.d.ts +1 -0
- package/dist/ui/components/organisms/vc-app/_internal/menu/VcAppMenu.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/sidebar/SidebarContent.vue.d.ts +4 -0
- package/dist/ui/components/organisms/vc-app/_internal/sidebar/SidebarContent.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/sidebar/SidebarHeader.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/sidebar/SidebarHeader.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/composables/useShellBootstrap.d.ts +1 -1
- package/dist/ui/components/organisms/vc-app/composables/useShellBootstrap.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/composables/useShellNavigation.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/composition/menu/index.d.ts +1 -1
- package/dist/ui/components/organisms/vc-app/composition/menu/index.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/composition/state/index.d.ts +1 -1
- package/dist/ui/components/organisms/vc-app/composition/state/index.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts +5 -2
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/BladeHeader.vue.d.ts +2 -2
- package/dist/ui/components/organisms/vc-blade/_internal/BladeHeader.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/BladeStatusBanners.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/BladeToolbar.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/BladeToolbar.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/BladeToolbarSkeleton.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/composables/useBladeError.d.ts +2 -2
- package/dist/ui/components/organisms/vc-blade/_internal/composables/useBladeError.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/composables/useToolbarRegistration.d.ts +2 -2
- package/dist/ui/components/organisms/vc-blade/_internal/composables/useToolbarRegistration.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarBaseButton.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarDesktop.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/toolbar/ToolbarMobile.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetContainer.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetContainerDesktop.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetContainerMobile.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetScope.vue.d.ts +17 -0
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetScope.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/useHeadlessWidgetHelpers.d.ts +9 -0
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/useHeadlessWidgetHelpers.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-blade/utils.d.ts +3 -3
- package/dist/ui/components/organisms/vc-blade/utils.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts +3 -31
- package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-data-table/VcDataTable.vue.d.ts +308 -0
- package/dist/ui/components/organisms/vc-data-table/VcDataTable.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/VcTableAdapter.vue.d.ts +132 -0
- package/dist/ui/components/organisms/vc-data-table/VcTableAdapter.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-base-header/vc-table-base-header.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts +31 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts +20 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts +11 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-empty/vc-table-empty.vue.d.ts +23 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-empty/vc-table-empty.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/base/BaseVcDataTable.d.ts +377 -0
- package/dist/ui/components/organisms/vc-data-table/base/BaseVcDataTable.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/ColumnFilter.vue.d.ts +59 -0
- package/dist/ui/components/organisms/vc-data-table/components/ColumnFilter.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/ColumnSwitcherButton.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/DataTableBody.vue.d.ts +161 -0
- package/dist/ui/components/organisms/vc-data-table/components/DataTableBody.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/DataTableCellRenderer.vue.d.ts +54 -0
- package/dist/ui/components/organisms/vc-data-table/components/DataTableCellRenderer.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/DataTableHeader.vue.d.ts +83 -0
- package/dist/ui/components/organisms/vc-data-table/components/DataTableHeader.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/DataTableRow.vue.d.ts +122 -0
- package/dist/ui/components/organisms/vc-data-table/components/DataTableRow.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/GlobalFiltersButton.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/GlobalFiltersPanel.vue.d.ts +45 -0
- package/dist/ui/components/organisms/vc-data-table/components/GlobalFiltersPanel.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/Table.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableActions.vue.d.ts +23 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableActions.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableAddRowButton.vue.d.ts +17 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableAddRowButton.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableBody.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableCell.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableCheckbox.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableColumnSwitcher.vue.d.ts +32 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableColumnSwitcher.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableEmpty.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableFooter.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableGroupRow.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableHead.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableHeader.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableResizeHandle.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableRow.vue.d.ts +77 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableRow.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableRowActions.vue.d.ts +51 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableRowActions.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableSearchHeader.vue.d.ts +69 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableSearchHeader.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/TableSelectAllBar.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/VcColumn.vue.d.ts +362 -0
- package/dist/ui/components/organisms/vc-data-table/components/VcColumn.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/_internal/SlotProxy.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/_internal/TableSkeletonRows.vue.d.ts +18 -0
- package/dist/ui/components/organisms/vc-data-table/components/_internal/TableSkeletonRows.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellDate.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellDateAgo.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellDefault.vue.d.ts +40 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellDefault.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellEditableWrapper.vue.d.ts +29 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellEditableWrapper.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellHtml.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellImage.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellLink.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellMoney.vue.d.ts +42 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellMoney.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellNumber.vue.d.ts +40 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellNumber.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellStatus.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/CellStatusIcon.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/DynamicCellRenderer.vue.d.ts +48 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/DynamicCellRenderer.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/index.d.ts +12 -0
- package/dist/ui/components/organisms/vc-data-table/components/cells/index.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/index.d.ts +27 -0
- package/dist/ui/components/organisms/vc-data-table/components/index.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/DataTableMobileCard.vue.d.ts +54 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/DataTableMobileCard.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/DataTableMobileView.vue.d.ts +66 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/DataTableMobileView.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/MobileActionSheet.vue.d.ts +32 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/MobileActionSheet.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/MobileCellRenderer.vue.d.ts +51 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/MobileCellRenderer.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/PullToRefresh.vue.d.ts +43 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/PullToRefresh.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/index.d.ts +6 -0
- package/dist/ui/components/organisms/vc-data-table/components/mobile/index.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/index.d.ts +31 -0
- package/dist/ui/components/organisms/vc-data-table/composables/index.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useCellBase.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useCellRegistry.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useColumnFilter.d.ts +38 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useColumnFilter.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useColumnWidthEngine.d.ts +46 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useColumnWidthEngine.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useDataProcessing.d.ts +34 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useDataProcessing.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useDataTableOrchestrator.d.ts +279 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useDataTableOrchestrator.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useDataTableState.d.ts +30 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useDataTableState.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useMobileCardLayout.d.ts +48 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useMobileCardLayout.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableColumns.d.ts +53 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableColumns.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableColumnsReorder.d.ts +30 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableColumnsReorder.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableColumnsResize.d.ts +36 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableColumnsResize.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableContext.d.ts +8 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableContext.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableEditing.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableExpansion.d.ts +44 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableExpansion.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableFilter.d.ts +25 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableFilter.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableInlineEdit.d.ts +69 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableInlineEdit.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableRowGrouping.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableRowReorder.d.ts +32 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableRowReorder.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableSelectionV2.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableSort.d.ts +48 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableSort.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useTableSwipe.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/composables/useVirtualScroll.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/index.d.ts +13 -0
- package/dist/ui/components/organisms/vc-data-table/index.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/keys.d.ts +22 -0
- package/dist/ui/components/organisms/vc-data-table/keys.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/types.d.ts +842 -0
- package/dist/ui/components/organisms/vc-data-table/types.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/utils/ColumnCollector.d.ts +67 -0
- package/dist/ui/components/organisms/vc-data-table/utils/ColumnCollector.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/utils/columnHelpers.d.ts +30 -0
- package/dist/ui/components/organisms/vc-data-table/utils/columnHelpers.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/utils/deepClone.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-data-table/utils/index.d.ts +10 -0
- package/dist/ui/components/organisms/vc-data-table/utils/index.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-filmstrip/vc-gallery-filmstrip.vue.d.ts +42 -0
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-filmstrip/vc-gallery-filmstrip.vue.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts +12 -10
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts +5 -4
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/composables/index.d.ts +1 -0
- package/dist/ui/components/organisms/vc-gallery/composables/index.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/composables/useGalleryFilmstrip.d.ts +16 -0
- package/dist/ui/components/organisms/vc-gallery/composables/useGalleryFilmstrip.d.ts.map +1 -0
- package/dist/ui/components/organisms/vc-gallery/composables/useGalleryPreview.d.ts +2 -2
- package/dist/ui/components/organisms/vc-gallery/composables/useGalleryPreview.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/composables/useGalleryReorder.d.ts +7 -12
- package/dist/ui/components/organisms/vc-gallery/composables/useGalleryReorder.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/composables/useGalleryUpload.d.ts +2 -2
- package/dist/ui/components/organisms/vc-gallery/composables/useGalleryUpload.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts +39 -42
- package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-image-upload/vc-image-upload.vue.d.ts +6 -5
- package/dist/ui/components/organisms/vc-image-upload/vc-image-upload.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts +2 -2
- package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-sidebar/vc-sidebar.vue.d.ts +5 -5
- package/dist/ui/components/organisms/vc-sidebar/vc-sidebar.vue.d.ts.map +1 -1
- package/dist/ui/composables/index.d.ts +5 -0
- package/dist/ui/composables/index.d.ts.map +1 -1
- package/dist/ui/composables/useAdaptiveItems.d.ts +9 -8
- package/dist/ui/composables/useAdaptiveItems.d.ts.map +1 -1
- package/dist/ui/composables/useBladeLoading/index.d.ts +6 -0
- package/dist/ui/composables/useBladeLoading/index.d.ts.map +1 -0
- package/dist/ui/composables/useCollapsible.d.ts.map +1 -1
- package/dist/ui/composables/useDataTablePagination.d.ts +30 -0
- package/dist/ui/composables/useDataTablePagination.d.ts.map +1 -0
- package/dist/ui/composables/useDataTableSort.d.ts +24 -0
- package/dist/ui/composables/useDataTableSort.d.ts.map +1 -0
- package/dist/ui/composables/useScrollArrows.d.ts.map +1 -1
- package/dist/ui/composables/useTableSelection.d.ts.map +1 -0
- package/dist/ui/composables/useTableSort.d.ts.map +1 -0
- package/dist/ui/index.d.ts +5 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +149 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/types/index.d.ts +1 -7
- package/dist/ui/types/index.d.ts.map +1 -1
- package/dist/ui/utilities/index.d.ts +2 -0
- package/dist/ui/utilities/index.d.ts.map +1 -0
- package/dist/vitest-axe.setup.d.ts.map +1 -1
- package/dist/vitest-mocks.setup.d.ts +2 -0
- package/dist/vitest-mocks.setup.d.ts.map +1 -0
- package/globals-augments.d.ts +36 -0
- package/globals.d.ts +22 -0
- package/package.json +50 -13
- package/shims-vue.d.ts +14 -0
- package/typings/blade-macros.d.ts +25 -0
- package/typings/shims-vue.d.ts +43 -0
- package/dist/core/composables/useGlobalSearch/index.d.ts +0 -5
- package/dist/core/composables/useGlobalSearch/index.d.ts.map +0 -1
- package/dist/core/constants/ui.d.ts +0 -50
- package/dist/core/constants/ui.d.ts.map +0 -1
- package/dist/framework.css +0 -9
- package/dist/locales/de.json +0 -426
- package/dist/shared/components/app-switcher/components/index.d.ts +0 -2
- package/dist/shared/components/app-switcher/components/index.d.ts.map +0 -1
- package/dist/shared/components/app-switcher/components/vc-app-switcher/index.d.ts +0 -2
- package/dist/shared/components/app-switcher/components/vc-app-switcher/index.d.ts.map +0 -1
- package/dist/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue.d.ts +0 -14
- package/dist/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue.d.ts.map +0 -1
- package/dist/shared/components/app-switcher/composables/index.d.ts +0 -2
- package/dist/shared/components/app-switcher/composables/index.d.ts.map +0 -1
- package/dist/shared/components/app-switcher/composables/useAppSwitcher/index.d.ts +0 -10
- package/dist/shared/components/app-switcher/composables/useAppSwitcher/index.d.ts.map +0 -1
- package/dist/shared/components/app-switcher/index.d.ts +0 -14
- package/dist/shared/components/app-switcher/index.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/components/index.d.ts +0 -3
- package/dist/shared/components/blade-navigation/components/index.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/_internal/vc-mobile-back-button.vue.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/index.d.ts +0 -3
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/index.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation-new.vue.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-slot/index.d.ts +0 -2
- package/dist/shared/components/blade-navigation/components/vc-blade-slot/index.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-slot/vc-blade-slot.vue.d.ts +0 -21
- package/dist/shared/components/blade-navigation/components/vc-blade-slot/vc-blade-slot.vue.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts +0 -26
- package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/composables/index.d.ts +0 -6
- package/dist/shared/components/blade-navigation/composables/index.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/composables/useBladeMessaging.d.ts +0 -18
- package/dist/shared/components/blade-navigation/composables/useBladeMessaging.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/composables/useBladeNavigationAdapter.d.ts +0 -33
- package/dist/shared/components/blade-navigation/composables/useBladeNavigationAdapter.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/composables/useBladeStack.d.ts +0 -19
- package/dist/shared/components/blade-navigation/composables/useBladeStack.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/index.d.ts +0 -5
- package/dist/shared/components/blade-navigation/index.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/plugin-v2.d.ts +0 -39
- package/dist/shared/components/blade-navigation/plugin-v2.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/types/index.d.ts +0 -216
- package/dist/shared/components/blade-navigation/types/index.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/utils/bladeRouterGuard.d.ts +0 -31
- package/dist/shared/components/blade-navigation/utils/bladeRouterGuard.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/utils/navigateToMainRoute.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/utils/restoreFromUrl.d.ts +0 -23
- package/dist/shared/components/blade-navigation/utils/restoreFromUrl.d.ts.map +0 -1
- package/dist/shared/components/blade-navigation/utils/urlSync.d.ts +0 -54
- package/dist/shared/components/blade-navigation/utils/urlSync.d.ts.map +0 -1
- package/dist/shared/components/change-password/change-password.vue.d.ts.map +0 -1
- package/dist/shared/components/change-password/index.d.ts +0 -8
- package/dist/shared/components/change-password/index.d.ts.map +0 -1
- package/dist/shared/components/change-password-button/change-password-button.vue.d.ts.map +0 -1
- package/dist/shared/components/change-password-button/index.d.ts.map +0 -1
- package/dist/shared/components/common/popup/vc-popup-base.vue.d.ts +0 -51
- package/dist/shared/components/common/popup/vc-popup-base.vue.d.ts.map +0 -1
- package/dist/shared/components/common/popup/vc-popup-error.vue.d.ts.map +0 -1
- package/dist/shared/components/common/popup/vc-popup-info.vue.d.ts.map +0 -1
- package/dist/shared/components/common/popup/vc-popup-warning.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/ChartContainer.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/ChartLegend.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/ChartTooltip.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/DashboardBarChart.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/DashboardDonutChart.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/DashboardLineChart.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/chart-utils.d.ts +0 -29
- package/dist/shared/components/dashboard-charts/chart-utils.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/index.d.ts.map +0 -1
- package/dist/shared/components/dashboard-charts/types.d.ts.map +0 -1
- package/dist/shared/components/dashboard-widget-card/dashboard-feed-list.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-widget-card/dashboard-feed-row.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-widget-card/dashboard-stat-item.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-widget-card/dashboard-widget-card.vue.d.ts.map +0 -1
- package/dist/shared/components/dashboard-widget-card/index.d.ts +0 -5
- package/dist/shared/components/dashboard-widget-card/index.d.ts.map +0 -1
- package/dist/shared/components/draggable-dashboard/DraggableDashboard.vue.d.ts.map +0 -1
- package/dist/shared/components/draggable-dashboard/GridstackDashboard.vue.d.ts.map +0 -1
- package/dist/shared/components/draggable-dashboard/composables/useGridstack.d.ts +0 -56
- package/dist/shared/components/draggable-dashboard/composables/useGridstack.d.ts.map +0 -1
- package/dist/shared/components/draggable-dashboard/composables/useGridstackAdapter.d.ts +0 -47
- package/dist/shared/components/draggable-dashboard/composables/useGridstackAdapter.d.ts.map +0 -1
- package/dist/shared/components/draggable-dashboard/index.d.ts +0 -13
- package/dist/shared/components/draggable-dashboard/index.d.ts.map +0 -1
- package/dist/shared/components/draggable-dashboard/types.d.ts.map +0 -1
- package/dist/shared/components/error-interceptor/index.d.ts +0 -19
- package/dist/shared/components/error-interceptor/index.d.ts.map +0 -1
- package/dist/shared/components/error-interceptor/interceptor.d.ts.map +0 -1
- package/dist/shared/components/generic-dropdown/generic-dropdown.vue.d.ts +0 -57
- package/dist/shared/components/generic-dropdown/generic-dropdown.vue.d.ts.map +0 -1
- package/dist/shared/components/generic-dropdown/index.d.ts +0 -75
- package/dist/shared/components/generic-dropdown/index.d.ts.map +0 -1
- package/dist/shared/components/index.d.ts +0 -26
- package/dist/shared/components/index.d.ts.map +0 -1
- package/dist/shared/components/language-selector/index.d.ts +0 -8
- package/dist/shared/components/language-selector/index.d.ts.map +0 -1
- package/dist/shared/components/language-selector/language-selector.vue.d.ts.map +0 -1
- package/dist/shared/components/logout-button/index.d.ts.map +0 -1
- package/dist/shared/components/logout-button/logout-button.vue.d.ts.map +0 -1
- package/dist/shared/components/multilanguage-selector/index.d.ts +0 -2
- package/dist/shared/components/multilanguage-selector/index.d.ts.map +0 -1
- package/dist/shared/components/multilanguage-selector/multilanguage-selector.vue.d.ts +0 -44
- package/dist/shared/components/multilanguage-selector/multilanguage-selector.vue.d.ts.map +0 -1
- package/dist/shared/components/notification-dropdown/_internal/notification/index.d.ts.map +0 -1
- package/dist/shared/components/notification-dropdown/_internal/notification/notification.vue.d.ts +0 -17
- package/dist/shared/components/notification-dropdown/_internal/notification/notification.vue.d.ts.map +0 -1
- package/dist/shared/components/notification-dropdown/index.d.ts +0 -8
- package/dist/shared/components/notification-dropdown/index.d.ts.map +0 -1
- package/dist/shared/components/notification-dropdown/notification-dropdown.vue.d.ts.map +0 -1
- package/dist/shared/components/notification-template/index.d.ts +0 -8
- package/dist/shared/components/notification-template/index.d.ts.map +0 -1
- package/dist/shared/components/notification-template/notification-template.vue.d.ts +0 -26
- package/dist/shared/components/notification-template/notification-template.vue.d.ts.map +0 -1
- package/dist/shared/components/notifications/components/index.d.ts +0 -2
- package/dist/shared/components/notifications/components/index.d.ts.map +0 -1
- package/dist/shared/components/notifications/components/notification-container/index.d.ts +0 -120
- package/dist/shared/components/notifications/components/notification-container/index.d.ts.map +0 -1
- package/dist/shared/components/notifications/composables/index.d.ts +0 -3
- package/dist/shared/components/notifications/composables/index.d.ts.map +0 -1
- package/dist/shared/components/notifications/composables/useContainer/index.d.ts +0 -23
- package/dist/shared/components/notifications/composables/useContainer/index.d.ts.map +0 -1
- package/dist/shared/components/notifications/composables/useInstance/index.d.ts +0 -11
- package/dist/shared/components/notifications/composables/useInstance/index.d.ts.map +0 -1
- package/dist/shared/components/notifications/core/index.d.ts +0 -2
- package/dist/shared/components/notifications/core/index.d.ts.map +0 -1
- package/dist/shared/components/notifications/core/notification.d.ts +0 -18
- package/dist/shared/components/notifications/core/notification.d.ts.map +0 -1
- package/dist/shared/components/notifications/index.d.ts +0 -6
- package/dist/shared/components/notifications/index.d.ts.map +0 -1
- package/dist/shared/components/notifications/types/index.d.ts +0 -27
- package/dist/shared/components/notifications/types/index.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/components/index.d.ts +0 -2
- package/dist/shared/components/popup-handler/components/index.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/components/vc-popup-container/index.d.ts +0 -3
- package/dist/shared/components/popup-handler/components/vc-popup-container/index.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/components/vc-popup-container/vc-popup-container.vue.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/composables/index.d.ts +0 -2
- package/dist/shared/components/popup-handler/composables/index.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/composables/usePopup/index.d.ts +0 -14
- package/dist/shared/components/popup-handler/composables/usePopup/index.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/index.d.ts +0 -16
- package/dist/shared/components/popup-handler/index.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/keys.d.ts +0 -4
- package/dist/shared/components/popup-handler/keys.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/plugin.d.ts +0 -7
- package/dist/shared/components/popup-handler/plugin.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/types/index.d.ts +0 -22
- package/dist/shared/components/popup-handler/types/index.d.ts.map +0 -1
- package/dist/shared/components/popup-handler/utils/index.d.ts.map +0 -1
- package/dist/shared/components/settings-menu/index.d.ts.map +0 -1
- package/dist/shared/components/settings-menu/settings-menu.vue.d.ts.map +0 -1
- package/dist/shared/components/settings-menu-item/index.d.ts.map +0 -1
- package/dist/shared/components/settings-menu-item/settings-menu-item.vue.d.ts +0 -41
- package/dist/shared/components/settings-menu-item/settings-menu-item.vue.d.ts.map +0 -1
- package/dist/shared/components/sidebar/index.d.ts +0 -47
- package/dist/shared/components/sidebar/index.d.ts.map +0 -1
- package/dist/shared/components/sidebar/sidebar.vue.d.ts +0 -31
- package/dist/shared/components/sidebar/sidebar.vue.d.ts.map +0 -1
- package/dist/shared/components/sign-in/external-provider.vue.d.ts.map +0 -1
- package/dist/shared/components/sign-in/external-providers.vue.d.ts.map +0 -1
- package/dist/shared/components/sign-in/index.d.ts +0 -2
- package/dist/shared/components/sign-in/index.d.ts.map +0 -1
- package/dist/shared/components/sign-in/useExternalProvider.d.ts +0 -12
- package/dist/shared/components/sign-in/useExternalProvider.d.ts.map +0 -1
- package/dist/shared/components/theme-selector/index.d.ts.map +0 -1
- package/dist/shared/components/theme-selector/theme-selector.vue.d.ts.map +0 -1
- package/dist/shared/components/user-dropdown-button/_internal/user-info.vue.d.ts.map +0 -1
- package/dist/shared/components/user-dropdown-button/_internal/user-sidebar.vue.d.ts.map +0 -1
- package/dist/shared/components/user-dropdown-button/index.d.ts +0 -8
- package/dist/shared/components/user-dropdown-button/index.d.ts.map +0 -1
- package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts.map +0 -1
- package/dist/shared/composables/index.d.ts +0 -6
- package/dist/shared/composables/index.d.ts.map +0 -1
- package/dist/shared/composables/useExternalWidgets.d.ts +0 -10
- package/dist/shared/composables/useExternalWidgets.d.ts.map +0 -1
- package/dist/shared/composables/useMenuExpanded.d.ts +0 -9
- package/dist/shared/composables/useMenuExpanded.d.ts.map +0 -1
- package/dist/shared/composables/useModificationTracker/index.d.ts.map +0 -1
- package/dist/shared/composables/useTableSelection.d.ts.map +0 -1
- package/dist/shared/composables/useTableSort.d.ts.map +0 -1
- package/dist/shared/index.d.ts +0 -13
- package/dist/shared/index.d.ts.map +0 -1
- package/dist/shared/modules/assets/components/assets-details/assets-details.vue.d.ts +0 -34
- package/dist/shared/modules/assets/components/assets-details/assets-details.vue.d.ts.map +0 -1
- package/dist/shared/modules/assets/components/assets-details/index.d.ts +0 -3
- package/dist/shared/modules/assets/components/assets-details/index.d.ts.map +0 -1
- package/dist/shared/modules/assets/components/index.d.ts +0 -2
- package/dist/shared/modules/assets/components/index.d.ts.map +0 -1
- package/dist/shared/modules/assets/index.d.ts +0 -13
- package/dist/shared/modules/assets/index.d.ts.map +0 -1
- package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts +0 -42
- package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts.map +0 -1
- package/dist/shared/modules/assets-manager/components/assets-manager/index.d.ts +0 -3
- package/dist/shared/modules/assets-manager/components/assets-manager/index.d.ts.map +0 -1
- package/dist/shared/modules/assets-manager/components/index.d.ts +0 -2
- package/dist/shared/modules/assets-manager/components/index.d.ts.map +0 -1
- package/dist/shared/modules/assets-manager/index.d.ts +0 -13
- package/dist/shared/modules/assets-manager/index.d.ts.map +0 -1
- package/dist/shared/modules/index.d.ts +0 -3
- package/dist/shared/modules/index.d.ts.map +0 -1
- package/dist/shared/pages/ChangePasswordPage/components/change-password/ChangePassword.vue.d.ts.map +0 -1
- package/dist/shared/pages/ChangePasswordPage/components/change-password/index.d.ts +0 -3
- package/dist/shared/pages/ChangePasswordPage/components/change-password/index.d.ts.map +0 -1
- package/dist/shared/pages/ChangePasswordPage/components/index.d.ts +0 -2
- package/dist/shared/pages/ChangePasswordPage/components/index.d.ts.map +0 -1
- package/dist/shared/pages/ChangePasswordPage/index.d.ts +0 -2
- package/dist/shared/pages/ChangePasswordPage/index.d.ts.map +0 -1
- package/dist/shared/pages/ChangePasswordPage/plugin.d.ts +0 -6
- package/dist/shared/pages/ChangePasswordPage/plugin.d.ts.map +0 -1
- package/dist/shared/pages/ForgotPasswordPage/components/forgot-password/ForgotPassword.vue.d.ts.map +0 -1
- package/dist/shared/pages/ForgotPasswordPage/components/forgot-password/index.d.ts +0 -3
- package/dist/shared/pages/ForgotPasswordPage/components/forgot-password/index.d.ts.map +0 -1
- package/dist/shared/pages/ForgotPasswordPage/components/index.d.ts +0 -2
- package/dist/shared/pages/ForgotPasswordPage/components/index.d.ts.map +0 -1
- package/dist/shared/pages/ForgotPasswordPage/index.d.ts +0 -2
- package/dist/shared/pages/ForgotPasswordPage/index.d.ts.map +0 -1
- package/dist/shared/pages/ForgotPasswordPage/plugin.d.ts +0 -6
- package/dist/shared/pages/ForgotPasswordPage/plugin.d.ts.map +0 -1
- package/dist/shared/pages/InvitePage/components/index.d.ts +0 -2
- package/dist/shared/pages/InvitePage/components/index.d.ts.map +0 -1
- package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts +0 -14
- package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts.map +0 -1
- package/dist/shared/pages/InvitePage/components/invite/index.d.ts +0 -3
- package/dist/shared/pages/InvitePage/components/invite/index.d.ts.map +0 -1
- package/dist/shared/pages/InvitePage/index.d.ts +0 -2
- package/dist/shared/pages/InvitePage/index.d.ts.map +0 -1
- package/dist/shared/pages/InvitePage/plugin.d.ts +0 -6
- package/dist/shared/pages/InvitePage/plugin.d.ts.map +0 -1
- package/dist/shared/pages/LoginPage/components/index.d.ts +0 -2
- package/dist/shared/pages/LoginPage/components/index.d.ts.map +0 -1
- package/dist/shared/pages/LoginPage/components/login/Login.vue.d.ts.map +0 -1
- package/dist/shared/pages/LoginPage/components/login/index.d.ts +0 -3
- package/dist/shared/pages/LoginPage/components/login/index.d.ts.map +0 -1
- package/dist/shared/pages/LoginPage/index.d.ts +0 -2
- package/dist/shared/pages/LoginPage/index.d.ts.map +0 -1
- package/dist/shared/pages/LoginPage/plugin.d.ts +0 -6
- package/dist/shared/pages/LoginPage/plugin.d.ts.map +0 -1
- package/dist/shared/pages/ResetPasswordPage/components/index.d.ts +0 -2
- package/dist/shared/pages/ResetPasswordPage/components/index.d.ts.map +0 -1
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts +0 -14
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts.map +0 -1
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/index.d.ts +0 -3
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/index.d.ts.map +0 -1
- package/dist/shared/pages/ResetPasswordPage/index.d.ts +0 -2
- package/dist/shared/pages/ResetPasswordPage/index.d.ts.map +0 -1
- package/dist/shared/pages/ResetPasswordPage/plugin.d.ts +0 -6
- package/dist/shared/pages/ResetPasswordPage/plugin.d.ts.map +0 -1
- package/dist/shared/pages/_storybook-helpers.d.ts.map +0 -1
- package/dist/shared/pages/index.d.ts +0 -6
- package/dist/shared/pages/index.d.ts.map +0 -1
- package/dist/shared/pages/plugin.d.ts +0 -6
- package/dist/shared/pages/plugin.d.ts.map +0 -1
- package/dist/shared/utilities/assets.d.ts +0 -5
- package/dist/shared/utilities/assets.d.ts.map +0 -1
- package/dist/shared/utilities/colorUtils.d.ts.map +0 -1
- package/dist/shared/utilities/formatBadgeCount.d.ts.map +0 -1
- package/dist/shared/utilities/index.d.ts +0 -5
- package/dist/shared/utilities/index.d.ts.map +0 -1
- package/dist/shared/utilities/vueUtils.d.ts +0 -34
- package/dist/shared/utilities/vueUtils.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/composables/use-icon-type.d.ts +0 -22
- package/dist/ui/components/atoms/vc-icon/composables/use-icon-type.d.ts.map +0 -1
- package/dist/ui/components/atoms/vc-icon/composables/use-icon.d.ts +0 -30
- package/dist/ui/components/atoms/vc-icon/composables/use-icon.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetDropdownItem.vue.d.ts +0 -15
- package/dist/ui/components/organisms/vc-blade/_internal/widgets/WidgetDropdownItem.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-blade/constants.d.ts +0 -8
- package/dist/ui/components/organisms/vc-blade/constants.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/VcDataTable.vue.d.ts +0 -307
- package/dist/ui/components/organisms/vc-table/VcDataTable.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/VcTableAdapter.vue.d.ts +0 -132
- package/dist/ui/components/organisms/vc-table/VcTableAdapter.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-base-header/vc-table-base-header.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts +0 -31
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts +0 -20
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts +0 -11
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-empty/vc-table-empty.vue.d.ts +0 -23
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-empty/vc-table-empty.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/base/BaseVcDataTable.d.ts +0 -377
- package/dist/ui/components/organisms/vc-table/base/BaseVcDataTable.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/ColumnFilter.vue.d.ts +0 -59
- package/dist/ui/components/organisms/vc-table/components/ColumnFilter.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/ColumnSwitcherButton.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/DataTableBody.vue.d.ts +0 -158
- package/dist/ui/components/organisms/vc-table/components/DataTableBody.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/DataTableCellRenderer.vue.d.ts +0 -52
- package/dist/ui/components/organisms/vc-table/components/DataTableCellRenderer.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/DataTableHeader.vue.d.ts +0 -79
- package/dist/ui/components/organisms/vc-table/components/DataTableHeader.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/DataTableRow.vue.d.ts +0 -118
- package/dist/ui/components/organisms/vc-table/components/DataTableRow.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/GlobalFiltersButton.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/GlobalFiltersPanel.vue.d.ts +0 -45
- package/dist/ui/components/organisms/vc-table/components/GlobalFiltersPanel.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/Table.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableActions.vue.d.ts +0 -23
- package/dist/ui/components/organisms/vc-table/components/TableActions.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableAddRowButton.vue.d.ts +0 -17
- package/dist/ui/components/organisms/vc-table/components/TableAddRowButton.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableBody.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableCell.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableCheckbox.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableColumnSwitcher.vue.d.ts +0 -30
- package/dist/ui/components/organisms/vc-table/components/TableColumnSwitcher.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableEmpty.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableFooter.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableGroupRow.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableHead.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableHeader.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableResizeHandle.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableRow.vue.d.ts +0 -71
- package/dist/ui/components/organisms/vc-table/components/TableRow.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableRowActions.vue.d.ts +0 -43
- package/dist/ui/components/organisms/vc-table/components/TableRowActions.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableSearchHeader.vue.d.ts +0 -69
- package/dist/ui/components/organisms/vc-table/components/TableSearchHeader.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/TableSelectAllBar.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/VcColumn.vue.d.ts +0 -362
- package/dist/ui/components/organisms/vc-table/components/VcColumn.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/_internal/SlotProxy.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/_internal/TableSkeletonRows.vue.d.ts +0 -18
- package/dist/ui/components/organisms/vc-table/components/_internal/TableSkeletonRows.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellDate.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellDateAgo.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellDefault.vue.d.ts +0 -38
- package/dist/ui/components/organisms/vc-table/components/cells/CellDefault.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellEditableWrapper.vue.d.ts +0 -27
- package/dist/ui/components/organisms/vc-table/components/cells/CellEditableWrapper.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellHtml.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellImage.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellLink.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellMoney.vue.d.ts +0 -40
- package/dist/ui/components/organisms/vc-table/components/cells/CellMoney.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellNumber.vue.d.ts +0 -38
- package/dist/ui/components/organisms/vc-table/components/cells/CellNumber.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellStatus.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/CellStatusIcon.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/DynamicCellRenderer.vue.d.ts +0 -46
- package/dist/ui/components/organisms/vc-table/components/cells/DynamicCellRenderer.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/cells/index.d.ts +0 -12
- package/dist/ui/components/organisms/vc-table/components/cells/index.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/index.d.ts +0 -27
- package/dist/ui/components/organisms/vc-table/components/index.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/mobile/DataTableMobileCard.vue.d.ts +0 -49
- package/dist/ui/components/organisms/vc-table/components/mobile/DataTableMobileCard.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/mobile/DataTableMobileView.vue.d.ts +0 -61
- package/dist/ui/components/organisms/vc-table/components/mobile/DataTableMobileView.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/mobile/MobileActionSheet.vue.d.ts +0 -32
- package/dist/ui/components/organisms/vc-table/components/mobile/MobileActionSheet.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/mobile/MobileCellRenderer.vue.d.ts +0 -27
- package/dist/ui/components/organisms/vc-table/components/mobile/MobileCellRenderer.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/mobile/PullToRefresh.vue.d.ts +0 -44
- package/dist/ui/components/organisms/vc-table/components/mobile/PullToRefresh.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/components/mobile/index.d.ts +0 -6
- package/dist/ui/components/organisms/vc-table/components/mobile/index.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/index.d.ts +0 -31
- package/dist/ui/components/organisms/vc-table/composables/index.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useCellBase.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useCellRegistry.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useColumnFilter.d.ts +0 -38
- package/dist/ui/components/organisms/vc-table/composables/useColumnFilter.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useDataProcessing.d.ts +0 -34
- package/dist/ui/components/organisms/vc-table/composables/useDataProcessing.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useDataTableOrchestrator.d.ts +0 -276
- package/dist/ui/components/organisms/vc-table/composables/useDataTableOrchestrator.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useDataTableState.d.ts +0 -30
- package/dist/ui/components/organisms/vc-table/composables/useDataTableState.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useMobileCardLayout.d.ts +0 -48
- package/dist/ui/components/organisms/vc-table/composables/useMobileCardLayout.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableColumns.d.ts +0 -40
- package/dist/ui/components/organisms/vc-table/composables/useTableColumns.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableColumnsReorder.d.ts +0 -33
- package/dist/ui/components/organisms/vc-table/composables/useTableColumnsReorder.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableColumnsResize.d.ts +0 -25
- package/dist/ui/components/organisms/vc-table/composables/useTableColumnsResize.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableContext.d.ts +0 -8
- package/dist/ui/components/organisms/vc-table/composables/useTableContext.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableEditing.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableExpansion.d.ts +0 -40
- package/dist/ui/components/organisms/vc-table/composables/useTableExpansion.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableFilter.d.ts +0 -25
- package/dist/ui/components/organisms/vc-table/composables/useTableFilter.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableInlineEdit.d.ts +0 -68
- package/dist/ui/components/organisms/vc-table/composables/useTableInlineEdit.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableRowGrouping.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableRowReorder.d.ts +0 -32
- package/dist/ui/components/organisms/vc-table/composables/useTableRowReorder.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableSelectionV2.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableSort.d.ts +0 -48
- package/dist/ui/components/organisms/vc-table/composables/useTableSort.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableSwipe.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/composables/useVirtualScroll.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/index.d.ts +0 -13
- package/dist/ui/components/organisms/vc-table/index.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/keys.d.ts +0 -22
- package/dist/ui/components/organisms/vc-table/keys.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/types.d.ts +0 -807
- package/dist/ui/components/organisms/vc-table/types.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/utils/ColumnCollector.d.ts +0 -67
- package/dist/ui/components/organisms/vc-table/utils/ColumnCollector.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/utils/deepClone.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-table/utils/index.d.ts +0 -9
- package/dist/ui/components/organisms/vc-table/utils/index.d.ts.map +0 -1
- package/dist/ui/types/global-components.d.ts +0 -10
- package/dist/ui/types/global-components.d.ts.map +0 -1
- package/dist/vendor-dompurify-M2Bspgo5.js +0 -553
- package/dist/vendor-gridstack-Dkfw452e.js +0 -3390
- package/dist/vendor-intlify-core-base-BmIo1dK4.js +0 -1141
- package/dist/vendor-intlify-message-compiler-D9VOavkL.js +0 -960
- package/dist/vendor-intlify-shared-SCAs3ybf.js +0 -144
- package/dist/vendor-lodash-es-BBiobZqS.js +0 -1502
- package/dist/vendor-lucide-vue-next-CPgeDcFj.js +0 -33093
- package/dist/vendor-microsoft-applicationinsights-analytics-js-DFu_cVaY.js +0 -1207
- package/dist/vendor-microsoft-applicationinsights-cfgsync-js-DRQLN2Ue.js +0 -261
- package/dist/vendor-microsoft-applicationinsights-channel-js-BIJDcP3D.js +0 -1822
- package/dist/vendor-microsoft-applicationinsights-common-CJjmnDMb.js +0 -1921
- package/dist/vendor-microsoft-applicationinsights-core-js-BOc_o46i.js +0 -4276
- package/dist/vendor-microsoft-applicationinsights-dependencies-js-DDz502id.js +0 -1407
- package/dist/vendor-microsoft-applicationinsights-properties-js-9aDWHwXJ.js +0 -572
- package/dist/vendor-microsoft-applicationinsights-shims-Dton8Vqy.js +0 -43
- package/dist/vendor-microsoft-applicationinsights-web-DTa5YN-h.js +0 -487
- package/dist/vendor-microsoft-dynamicproto-js-89GEKjvR.js +0 -147
- package/dist/vendor-microsoft-signalr-Bgpbb4fW.js +0 -1761
- package/dist/vendor-nevware21-ts-async-D4qa7g-U.js +0 -261
- package/dist/vendor-nevware21-ts-utils-DII8jruI.js +0 -853
- package/dist/vendor-prettier-DeqUTTnE.js +0 -5215
- package/dist/vendor-prosemirror-commands-Bv4ChObl.js +0 -385
- package/dist/vendor-prosemirror-dropcursor-kF5UKNFM.js +0 -86
- package/dist/vendor-prosemirror-gapcursor-S3ikcYX6.js +0 -203
- package/dist/vendor-prosemirror-history-CQYKHz3u.js +0 -248
- package/dist/vendor-prosemirror-keymap-CAfQyvJ7.js +0 -62
- package/dist/vendor-prosemirror-schema-list-BNJkECdS.js +0 -87
- package/dist/vendor-prosemirror-state-IeimrELV.js +0 -821
- package/dist/vendor-prosemirror-tables-zVUKdbdQ.js +0 -1414
- package/dist/vendor-prosemirror-transform-BUjWd5Tb.js +0 -1525
- package/dist/vendor-prosemirror-view-DFpBkGRq.js +0 -3794
- package/dist/vendor-swiper-1bp0oJwt.js +0 -3387
- package/dist/vendor-tiptap-core-CDScflP1.js +0 -3921
- package/dist/vendor-tiptap-extension-blockquote-ChRAwuus.js +0 -55
- package/dist/vendor-tiptap-extension-bold-BwoVpOFS.js +0 -74
- package/dist/vendor-tiptap-extension-code-DOlgG3ih.js +0 -52
- package/dist/vendor-tiptap-extension-code-block-CMeTs87s.js +0 -215
- package/dist/vendor-tiptap-extension-document-DO8oly70.js +0 -12
- package/dist/vendor-tiptap-extension-hard-break-BgDl2sHf.js +0 -59
- package/dist/vendor-tiptap-extension-heading-DFuYlwHi.js +0 -63
- package/dist/vendor-tiptap-extension-horizontal-rule-uyfttMp9.js +0 -56
- package/dist/vendor-tiptap-extension-image-DPeBaTE3.js +0 -128
- package/dist/vendor-tiptap-extension-italic-C9-3jNxO.js +0 -73
- package/dist/vendor-tiptap-extension-link-B57VzStq.js +0 -312
- package/dist/vendor-tiptap-extension-list-spvOF7Mz.js +0 -722
- package/dist/vendor-tiptap-extension-paragraph-Cj7auQB7.js +0 -44
- package/dist/vendor-tiptap-extension-placeholder-DhwvmZ6Y.js +0 -1
- package/dist/vendor-tiptap-extension-strike-yj6UvnkO.js +0 -64
- package/dist/vendor-tiptap-extension-table-cell-CQpTPSvF.js +0 -1
- package/dist/vendor-tiptap-extension-table-ex1kZQ-9.js +0 -374
- package/dist/vendor-tiptap-extension-table-header-CQpTPSvF.js +0 -1
- package/dist/vendor-tiptap-extension-table-row-CQpTPSvF.js +0 -1
- package/dist/vendor-tiptap-extension-text-C8FG4KnI.js +0 -13
- package/dist/vendor-tiptap-extension-text-style-DsQDXowp.js +0 -235
- package/dist/vendor-tiptap-extension-underline-HB3fg6Dc.js +0 -65
- package/dist/vendor-tiptap-extensions-CUGwjzl5.js +0 -296
- package/dist/vendor-tiptap-markdown-BTXJw7Bt.js +0 -826
- package/dist/vendor-tiptap-pm-DSHuSumV.js +0 -1
- package/dist/vendor-tiptap-starter-kit-C42PcJ7J.js +0 -28
- package/dist/vendor-tiptap-vue-3-BxWCzu9Z.js +0 -157
- package/dist/vendor-vue-i18n-DfoSKa-v.js +0 -1369
- package/dist/vendor-vue3-application-insights-BmJCYUcp.js +0 -69
- package/dist/vendor-vueuse-components-C3DWJalC.js +0 -219
- package/dist/vendor-vueuse-core-NnO9wNjs.js +0 -530
- package/dist/vendor-vueuse-shared-Byno6iDO.js +0 -149
- package/dist/vendor-web-vitals-vrpLO1bu.js +0 -207
- /package/dist/{vendor-boolbase-DYkUBG-P.js → chunks/vendor-boolbase-DYkUBG-P.js} +0 -0
- /package/dist/{vendor-cheerio-DE71XQ9x.js → chunks/vendor-cheerio-DE71XQ9x.js} +0 -0
- /package/dist/{vendor-cheerio-select-D-qK1Cpo.js → chunks/vendor-cheerio-select-D-qK1Cpo.js} +0 -0
- /package/dist/{vendor-css-select-DqoO1-RK.js → chunks/vendor-css-select-DqoO1-RK.js} +0 -0
- /package/dist/{vendor-css-what-CZZaquJM.js → chunks/vendor-css-what-CZZaquJM.js} +0 -0
- /package/dist/{vendor-cypress-signalr-mock-itnm2wpA.js → chunks/vendor-cypress-signalr-mock-itnm2wpA.js} +0 -0
- /package/dist/{vendor-d3-array-9cpTrqlO.js → chunks/vendor-d3-array-9cpTrqlO.js} +0 -0
- /package/dist/{vendor-d3-axis-D1_DbKLz.js → chunks/vendor-d3-axis-D1_DbKLz.js} +0 -0
- /package/dist/{vendor-d3-brush-CcKeJp9e.js → chunks/vendor-d3-brush-CcKeJp9e.js} +0 -0
- /package/dist/{vendor-d3-color-BOYE6h_9.js → chunks/vendor-d3-color-BOYE6h_9.js} +0 -0
- /package/dist/{vendor-d3-dispatch-fx-WMg0D.js → chunks/vendor-d3-dispatch-fx-WMg0D.js} +0 -0
- /package/dist/{vendor-d3-ease-Cr34gv04.js → chunks/vendor-d3-ease-Cr34gv04.js} +0 -0
- /package/dist/{vendor-d3-format-DaIwZvFc.js → chunks/vendor-d3-format-DaIwZvFc.js} +0 -0
- /package/dist/{vendor-d3-interpolate-BYG2gvO4.js → chunks/vendor-d3-interpolate-BYG2gvO4.js} +0 -0
- /package/dist/{vendor-d3-interpolate-path-CpGLvKgS.js → chunks/vendor-d3-interpolate-path-CpGLvKgS.js} +0 -0
- /package/dist/{vendor-d3-path-DJOTitNW.js → chunks/vendor-d3-path-DJOTitNW.js} +0 -0
- /package/dist/{vendor-d3-scale-CC5rtdt5.js → chunks/vendor-d3-scale-CC5rtdt5.js} +0 -0
- /package/dist/{vendor-d3-selection-CNMxsYiL.js → chunks/vendor-d3-selection-CNMxsYiL.js} +0 -0
- /package/dist/{vendor-d3-shape-DBhCDMiV.js → chunks/vendor-d3-shape-DBhCDMiV.js} +0 -0
- /package/dist/{vendor-d3-time-DAPP210_.js → chunks/vendor-d3-time-DAPP210_.js} +0 -0
- /package/dist/{vendor-d3-time-format-hD7iE2WG.js → chunks/vendor-d3-time-format-hD7iE2WG.js} +0 -0
- /package/dist/{vendor-d3-timer-C1cUWKPz.js → chunks/vendor-d3-timer-C1cUWKPz.js} +0 -0
- /package/dist/{vendor-d3-transition-BbNQT7qF.js → chunks/vendor-d3-transition-BbNQT7qF.js} +0 -0
- /package/dist/{vendor-d3-zoom-CcKeJp9e.js → chunks/vendor-d3-zoom-CcKeJp9e.js} +0 -0
- /package/dist/{vendor-date-fns-BKO3x1R1.js → chunks/vendor-date-fns-BKO3x1R1.js} +0 -0
- /package/dist/{vendor-dom-serializer-BbVuF1MQ.js → chunks/vendor-dom-serializer-BbVuF1MQ.js} +0 -0
- /package/dist/{vendor-domelementtype-B3sFIGaC.js → chunks/vendor-domelementtype-B3sFIGaC.js} +0 -0
- /package/dist/{vendor-domhandler-Kufn9M_V.js → chunks/vendor-domhandler-Kufn9M_V.js} +0 -0
- /package/dist/{vendor-domutils-DDRq_ial.js → chunks/vendor-domutils-DDRq_ial.js} +0 -0
- /package/dist/{vendor-emotion-cache-eEZT5l-Q.js → chunks/vendor-emotion-cache-eEZT5l-Q.js} +0 -0
- /package/dist/{vendor-emotion-hash-DImMRhyK.js → chunks/vendor-emotion-hash-DImMRhyK.js} +0 -0
- /package/dist/{vendor-emotion-memoize-BcEUCz8q.js → chunks/vendor-emotion-memoize-BcEUCz8q.js} +0 -0
- /package/dist/{vendor-emotion-serialize-BSDW8NwU.js → chunks/vendor-emotion-serialize-BSDW8NwU.js} +0 -0
- /package/dist/{vendor-emotion-sheet-CS8ZBl9s.js → chunks/vendor-emotion-sheet-CS8ZBl9s.js} +0 -0
- /package/dist/{vendor-emotion-unitless-B7u1PU6w.js → chunks/vendor-emotion-unitless-B7u1PU6w.js} +0 -0
- /package/dist/{vendor-emotion-utils-D7refZTM.js → chunks/vendor-emotion-utils-D7refZTM.js} +0 -0
- /package/dist/{vendor-entities-J86Og8IU.js → chunks/vendor-entities-J86Og8IU.js} +0 -0
- /package/dist/{vendor-floating-ui-core-BoHdh92a.js → chunks/vendor-floating-ui-core-BoHdh92a.js} +0 -0
- /package/dist/{vendor-floating-ui-dom-BvVXFZ4B.js → chunks/vendor-floating-ui-dom-BvVXFZ4B.js} +0 -0
- /package/dist/{vendor-floating-ui-utils-CidJRIm2.js → chunks/vendor-floating-ui-utils-CidJRIm2.js} +0 -0
- /package/dist/{vendor-floating-ui-vue-sCrhit51.js → chunks/vendor-floating-ui-vue-sCrhit51.js} +0 -0
- /package/dist/{vendor-headlessui-vue-Cn-RMs4E.js → chunks/vendor-headlessui-vue-Cn-RMs4E.js} +0 -0
- /package/dist/{vendor-htmlparser2-BxKKzWLL.js → chunks/vendor-htmlparser2-BxKKzWLL.js} +0 -0
- /package/dist/{vendor-internmap-Q5729_cS.js → chunks/vendor-internmap-Q5729_cS.js} +0 -0
- /package/dist/{vendor-iso-639-1-BEjYyfKo.js → chunks/vendor-iso-639-1-BEjYyfKo.js} +0 -0
- /package/dist/{vendor-juggle-resize-observer-DiSiNbbT.js → chunks/vendor-juggle-resize-observer-DiSiNbbT.js} +0 -0
- /package/dist/{vendor-linkify-it-LzoUhj6C.js → chunks/vendor-linkify-it-LzoUhj6C.js} +0 -0
- /package/dist/{vendor-linkifyjs-dCH9UYes.js → chunks/vendor-linkifyjs-dCH9UYes.js} +0 -0
- /package/dist/{vendor-markdown-it-Bs9KEWkF.js → chunks/vendor-markdown-it-Bs9KEWkF.js} +0 -0
- /package/dist/{vendor-markdown-it-task-lists-CHKeJZfk.js → chunks/vendor-markdown-it-task-lists-CHKeJZfk.js} +0 -0
- /package/dist/{vendor-mdurl-DZFDNdqC.js → chunks/vendor-mdurl-DZFDNdqC.js} +0 -0
- /package/dist/{vendor-nth-check-D0N1qpsw.js → chunks/vendor-nth-check-D0N1qpsw.js} +0 -0
- /package/dist/{vendor-orderedmap-B3SOk52B.js → chunks/vendor-orderedmap-B3SOk52B.js} +0 -0
- /package/dist/{vendor-parse5-htmlparser2-tree-adapter-BUDJ887-.js → chunks/vendor-parse5-htmlparser2-tree-adapter-BUDJ887-.js} +0 -0
- /package/dist/{vendor-parse5-zq5Hn0y9.js → chunks/vendor-parse5-zq5Hn0y9.js} +0 -0
- /package/dist/{vendor-prosemirror-markdown-rpUTSG_Q.js → chunks/vendor-prosemirror-markdown-rpUTSG_Q.js} +0 -0
- /package/dist/{vendor-prosemirror-model-DAA3avbR.js → chunks/vendor-prosemirror-model-DAA3avbR.js} +0 -0
- /package/dist/{vendor-punycode-js-CgGegfA_.js → chunks/vendor-punycode-js-CgGegfA_.js} +0 -0
- /package/dist/{vendor-rope-sequence-BWC2FSrq.js → chunks/vendor-rope-sequence-BWC2FSrq.js} +0 -0
- /package/dist/{vendor-striptags-DtlgQudQ.js → chunks/vendor-striptags-DtlgQudQ.js} +0 -0
- /package/dist/{vendor-stylis-ClfDrgKE.js → chunks/vendor-stylis-ClfDrgKE.js} +0 -0
- /package/dist/{vendor-tanstack-vue-virtual-CD9yLWd7.js → chunks/vendor-tanstack-vue-virtual-CD9yLWd7.js} +0 -0
- /package/dist/{vendor-throttle-debounce-CX0imT7m.js → chunks/vendor-throttle-debounce-CX0imT7m.js} +0 -0
- /package/dist/{vendor-truncate-html-ChA1T5zy.js → chunks/vendor-truncate-html-ChA1T5zy.js} +0 -0
- /package/dist/{vendor-uc-micro-4lbSaZOs.js → chunks/vendor-uc-micro-4lbSaZOs.js} +0 -0
- /package/dist/{vendor-unovis-ts-stSsHr9j.js → chunks/vendor-unovis-ts-stSsHr9j.js} +0 -0
- /package/dist/{vendor-unovis-vue-CZWGT3-0.js → chunks/vendor-unovis-vue-CZWGT3-0.js} +0 -0
- /package/dist/{vendor-vee-validate-i18n-zT8NxX3R.js → chunks/vendor-vee-validate-i18n-zT8NxX3R.js} +0 -0
- /package/dist/{vendor-vee-validate-rules-4oWUZPpG.js → chunks/vendor-vee-validate-rules-4oWUZPpG.js} +0 -0
- /package/dist/{vendor-vue-currency-input-CckB4kjx.js → chunks/vendor-vue-currency-input-CckB4kjx.js} +0 -0
- /package/dist/{vendor-vue-demi-CD9yLWd7.js → chunks/vendor-vue-demi-CD9yLWd7.js} +0 -0
- /package/dist/{vendor-vue-devtools-api-aVYGocXp.js → chunks/vendor-vue-devtools-api-aVYGocXp.js} +0 -0
- /package/dist/{vendor-vue3-touch-events-DqysuuWh.js → chunks/vendor-vue3-touch-events-DqysuuWh.js} +0 -0
- /package/dist/{vendor-vuepic-vue-datepicker-CaZ_qpJp.js → chunks/vendor-vuepic-vue-datepicker-CaZ_qpJp.js} +0 -0
- /package/dist/{vendor-w3c-keyname-CLxH8j-f.js → chunks/vendor-w3c-keyname-CLxH8j-f.js} +0 -0
- /package/dist/{shared/components → core}/blade-navigation/utils/navigateToMainRoute.d.ts +0 -0
- /package/dist/{shared → core}/composables/useModificationTracker/index.d.ts +0 -0
- /package/dist/{shared → core}/utilities/colorUtils.d.ts +0 -0
- /package/dist/{shared → core}/utilities/formatBadgeCount.d.ts +0 -0
- /package/dist/{shared/pages → shell/_internal}/_storybook-helpers.d.ts +0 -0
- /package/dist/{shared/components → shell/_internal}/blade-navigation/components/vc-blade-navigation/_internal/vc-mobile-back-button.vue.d.ts +0 -0
- /package/dist/{shared/components → shell/_internal}/blade-navigation/components/vc-blade-navigation/vc-blade-navigation-new.vue.d.ts +0 -0
- /package/dist/{shared/components/common/popup → shell/_internal/popup/common}/vc-popup-error.vue.d.ts +0 -0
- /package/dist/{shared/components/common/popup → shell/_internal/popup/common}/vc-popup-info.vue.d.ts +0 -0
- /package/dist/{shared/components/common/popup → shell/_internal/popup/common}/vc-popup-warning.vue.d.ts +0 -0
- /package/dist/{shared/components/popup-handler → shell/_internal/popup}/components/vc-popup-container/vc-popup-container.vue.d.ts +0 -0
- /package/dist/{shared/components/popup-handler → shell/_internal/popup}/utils/index.d.ts +0 -0
- /package/dist/{shared/pages → shell/auth}/ChangePasswordPage/components/change-password/ChangePassword.vue.d.ts +0 -0
- /package/dist/{shared/pages → shell/auth}/ForgotPasswordPage/components/forgot-password/ForgotPassword.vue.d.ts +0 -0
- /package/dist/{shared/pages → shell/auth}/LoginPage/components/login/Login.vue.d.ts +0 -0
- /package/dist/{shared/components → shell/auth}/sign-in/external-provider.vue.d.ts +0 -0
- /package/dist/{shared/components → shell/auth}/sign-in/external-providers.vue.d.ts +0 -0
- /package/dist/{shared → shell}/components/change-password/change-password.vue.d.ts +0 -0
- /package/dist/{shared → shell}/components/change-password-button/change-password-button.vue.d.ts +0 -0
- /package/dist/{shared → shell}/components/change-password-button/index.d.ts +0 -0
- /package/dist/{shared → shell}/components/error-interceptor/interceptor.d.ts +0 -0
- /package/dist/{shared → shell}/components/language-selector/language-selector.vue.d.ts +0 -0
- /package/dist/{shared → shell}/components/logout-button/index.d.ts +0 -0
- /package/dist/{shared → shell}/components/logout-button/logout-button.vue.d.ts +0 -0
- /package/dist/{shared → shell}/components/notification-dropdown/_internal/notification/index.d.ts +0 -0
- /package/dist/{shared → shell}/components/notification-dropdown/notification-dropdown.vue.d.ts +0 -0
- /package/dist/{shared → shell}/components/settings-menu/index.d.ts +0 -0
- /package/dist/{shared → shell}/components/settings-menu/settings-menu.vue.d.ts +0 -0
- /package/dist/{shared → shell}/components/settings-menu-item/index.d.ts +0 -0
- /package/dist/{shared → shell}/components/theme-selector/index.d.ts +0 -0
- /package/dist/{shared → shell}/components/theme-selector/theme-selector.vue.d.ts +0 -0
- /package/dist/{shared → shell}/components/user-dropdown-button/_internal/user-info.vue.d.ts +0 -0
- /package/dist/{shared → shell}/components/user-dropdown-button/_internal/user-sidebar.vue.d.ts +0 -0
- /package/dist/{shared → shell}/components/user-dropdown-button/user-dropdown-button.vue.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/dashboard-charts/ChartContainer.vue.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/dashboard-charts/ChartLegend.vue.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/dashboard-charts/ChartTooltip.vue.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/dashboard-charts/DashboardBarChart.vue.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/dashboard-charts/DashboardDonutChart.vue.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/dashboard-charts/DashboardLineChart.vue.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/dashboard-charts/index.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/dashboard-charts/types.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/dashboard-widget-card/dashboard-feed-list.vue.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/dashboard-widget-card/dashboard-feed-row.vue.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/dashboard-widget-card/dashboard-stat-item.vue.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/dashboard-widget-card/dashboard-widget-card.vue.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/draggable-dashboard/DraggableDashboard.vue.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/draggable-dashboard/GridstackDashboard.vue.d.ts +0 -0
- /package/dist/{shared/components → shell/dashboard}/draggable-dashboard/types.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/_internal/vc-table-base-header/vc-table-base-header.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/_internal/vc-table-filter/vc-table-filter.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/ColumnSwitcherButton.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/GlobalFiltersButton.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/Table.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/TableBody.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/TableCell.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/TableCheckbox.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/TableEmpty.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/TableFooter.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/TableGroupRow.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/TableHead.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/TableHeader.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/TableResizeHandle.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/TableSelectAllBar.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/_internal/SlotProxy.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/cells/CellDate.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/cells/CellDateAgo.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/cells/CellHtml.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/cells/CellImage.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/cells/CellLink.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/cells/CellStatus.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/components/cells/CellStatusIcon.vue.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/composables/useCellBase.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/composables/useCellRegistry.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/composables/useTableEditing.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/composables/useTableRowGrouping.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/composables/useTableSelectionV2.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/composables/useTableSwipe.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/composables/useVirtualScroll.d.ts +0 -0
- /package/dist/ui/components/organisms/{vc-table → vc-data-table}/utils/deepClone.d.ts +0 -0
- /package/dist/{shared → ui}/composables/useTableSelection.d.ts +0 -0
- /package/dist/{shared → ui}/composables/useTableSort.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VcAiAgentPanel.vue_vue_type_style_index_0_lang-D0kWIlz3.js","sources":["../../core/api/platform.ts","../../core/utilities/logger.ts","../../core/utilities/errorTypes.ts","../../core/composables/useExternalProvider/index.ts","../../core/composables/useUser/index.ts","../../core/blade-navigation/types/index.ts","../../injection-keys.ts","../../core/plugins/ai-agent/constants.ts","../../core/plugins/ai-agent/services/panel-controller.ts","../../core/plugins/ai-agent/services/context-manager.ts","../../core/plugins/ai-agent/services/message-transport.ts","../../core/plugins/ai-agent/services/ai-agent-service.ts","../../core/blade-navigation/singletons.ts","../../core/blade-navigation/utils/urlSync.ts","../../core/composables/useBlade/index.ts","../../core/blade-navigation/useBladeStack.ts","../../core/plugins/ai-agent/composables/useAiAgent.ts","../../core/plugins/ai-agent/components/_internal/VcVirtoOzLogo.vue","../../ui/components/atoms/vc-icon/vc-material-icon.vue","../../ui/components/atoms/vc-icon/vc-bootstrap-icon.vue","../../ui/components/atoms/vc-icon/vc-lucide-icon.vue","../../ui/components/atoms/vc-icon/vc-fontawesome-icon.vue","../../ui/components/atoms/vc-icon/vc-svg-icon.vue","../../ui/components/atoms/vc-icon/vc-icon.vue","../../core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue","../../core/plugins/ai-agent/components/_internal/VcAiAgentLoader.vue","../../core/plugins/ai-agent/components/_internal/VcAiAgentIframe.vue","../../core/plugins/ai-agent/components/VcAiAgentPanel.vue"],"sourcesContent":["//----------------------\n// <auto-generated>\n// Generated using the NSwag toolchain v14.6.3.0 (NJsonSchema v11.5.2.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org)\n// </auto-generated>\n//----------------------\n\n/* tslint:disable */\n/* eslint-disable */\n// ReSharper disable InconsistentNaming\n// @ts-nocheck\n\n// ISO 8601 date string pattern for JSON reviver\nconst ISO_DATE_PATTERN = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?$/;\n\n/**\n * JSON parse reviver that converts ISO date strings to Date objects.\n * This is needed because when using interface-based types (after NSwag migration),\n * dates are not automatically converted from strings to Date objects.\n */\nfunction dateReviver(key: string, value: unknown): unknown {\n if (typeof value === \"string\" && ISO_DATE_PATTERN.test(value)) {\n const date = new Date(value);\n // Only return Date if it's valid\n if (!isNaN(date.getTime())) {\n return date;\n }\n }\n return value;\n}\n\nexport class AuthApiBase {\n authToken = \"\";\n\n /**\n * JSON parse reviver for converting date strings to Date objects.\n * Subclasses use this when parsing API responses.\n * The dateReviver function is defined in File.Header.liquid template.\n */\n protected jsonParseReviver = dateReviver;\n\n protected constructor() {}\n\n // Enforce always return empty string as baseUrl\n getBaseUrl(defaultUrl: string, baseUrl: string) {\n return \"\";\n }\n\n setAuthToken(token: string) {\n this.authToken = token;\n }\n\n protected transformOptions(options: any): Promise<any> {\n if (this.authToken) {\n options.headers[\"authorization\"] = `Bearer ${this.authToken}`;\n }\n return Promise.resolve(options);\n }\n}\n\nexport class ExternalSignInClient extends AuthApiBase {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n private baseUrl: string;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n super();\n this.http = http ? http : (window as any);\n this.baseUrl = this.getBaseUrl(\"\", baseUrl);\n }\n\n /**\n * @param authenticationType (optional)\n * @param returnUrl (optional)\n * @param storeId (optional)\n * @param oidcUrl (optional)\n * @param callbackUrl (optional)\n * @return OK\n */\n signIn(\n authenticationType?: string | undefined,\n returnUrl?: string | undefined,\n storeId?: string | undefined,\n oidcUrl?: string | undefined,\n callbackUrl?: string | undefined,\n ): Promise<void> {\n let url_ = this.baseUrl + \"/externalsignin?\";\n if (authenticationType === null) throw new globalThis.Error(\"The parameter 'authenticationType' cannot be null.\");\n else if (authenticationType !== undefined)\n url_ += \"AuthenticationType=\" + encodeURIComponent(\"\" + authenticationType) + \"&\";\n if (returnUrl === null) throw new globalThis.Error(\"The parameter 'returnUrl' cannot be null.\");\n else if (returnUrl !== undefined) url_ += \"ReturnUrl=\" + encodeURIComponent(\"\" + returnUrl) + \"&\";\n if (storeId === null) throw new globalThis.Error(\"The parameter 'storeId' cannot be null.\");\n else if (storeId !== undefined) url_ += \"StoreId=\" + encodeURIComponent(\"\" + storeId) + \"&\";\n if (oidcUrl === null) throw new globalThis.Error(\"The parameter 'oidcUrl' cannot be null.\");\n else if (oidcUrl !== undefined) url_ += \"OidcUrl=\" + encodeURIComponent(\"\" + oidcUrl) + \"&\";\n if (callbackUrl === null) throw new globalThis.Error(\"The parameter 'callbackUrl' cannot be null.\");\n else if (callbackUrl !== undefined) url_ += \"CallbackUrl=\" + encodeURIComponent(\"\" + callbackUrl) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSignIn(_response);\n });\n }\n\n protected processSignIn(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * @param authenticationType (optional)\n * @param returnUrl (optional)\n * @return OK\n */\n signOut(authenticationType?: string | undefined, returnUrl?: string | undefined): Promise<void> {\n let url_ = this.baseUrl + \"/externalsignin/signout?\";\n if (authenticationType === null) throw new globalThis.Error(\"The parameter 'authenticationType' cannot be null.\");\n else if (authenticationType !== undefined)\n url_ += \"authenticationType=\" + encodeURIComponent(\"\" + authenticationType) + \"&\";\n if (returnUrl === null) throw new globalThis.Error(\"The parameter 'returnUrl' cannot be null.\");\n else if (returnUrl !== undefined) url_ += \"returnUrl=\" + encodeURIComponent(\"\" + returnUrl) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSignOut(_response);\n });\n }\n\n protected processSignOut(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * @param returnUrl (optional)\n * @return OK\n */\n signInCallback(returnUrl?: string | undefined): Promise<void> {\n let url_ = this.baseUrl + \"/externalsignin/callback?\";\n if (returnUrl === null) throw new globalThis.Error(\"The parameter 'returnUrl' cannot be null.\");\n else if (returnUrl !== undefined) url_ += \"returnUrl=\" + encodeURIComponent(\"\" + returnUrl) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSignInCallback(_response);\n });\n }\n\n protected processSignInCallback(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * @return OK\n */\n getExternalLoginProviders(): Promise<ExternalSignInProviderInfo[]> {\n let url_ = this.baseUrl + \"/externalsignin/providers\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetExternalLoginProviders(_response);\n });\n }\n\n protected processGetExternalLoginProviders(response: Response): Promise<ExternalSignInProviderInfo[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\"\n ? null\n : (JSON.parse(_responseText, this.jsonParseReviver) as ExternalSignInProviderInfo[]);\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ExternalSignInProviderInfo[]>(null as any);\n }\n}\n\nexport class AppsClient extends AuthApiBase {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n private baseUrl: string;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n super();\n this.http = http ? http : (window as any);\n this.baseUrl = this.getBaseUrl(\"\", baseUrl);\n }\n\n /**\n * Gets the list of available apps, filtered by user permissions.\n * @return OK\n */\n getApps(): Promise<AppDescriptor[]> {\n let url_ = this.baseUrl + \"/api/platform/apps\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetApps(_response);\n });\n }\n\n protected processGetApps(response: Response): Promise<AppDescriptor[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as AppDescriptor[]);\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<AppDescriptor[]>(null as any);\n }\n}\n\nexport class AuthorizationClient extends AuthApiBase {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n private baseUrl: string;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n super();\n this.http = http ? http : (window as any);\n this.baseUrl = this.getBaseUrl(\"\", baseUrl);\n }\n\n /**\n * @return OK\n */\n revokeCurrentUserToken(): Promise<void> {\n let url_ = this.baseUrl + \"/revoke/token\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"POST\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processRevokeCurrentUserToken(_response);\n });\n }\n\n protected processRevokeCurrentUserToken(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * @return OK\n */\n exchange(body: Body): Promise<OpenIddictResponse> {\n let url_ = this.baseUrl + \"/connect/token\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = Object.keys(body as any)\n .map((key) => {\n return encodeURIComponent(key) + \"=\" + encodeURIComponent((body as any)[key]);\n })\n .join(\"&\");\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processExchange(_response);\n });\n }\n\n protected processExchange(response: Response): Promise<OpenIddictResponse> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as OpenIddictResponse);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n let result400: any = null;\n result400 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as OpenIddictResponse);\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<OpenIddictResponse>(null as any);\n }\n\n /**\n * @return OK\n */\n authorizeGET(): Promise<void> {\n let url_ = this.baseUrl + \"/connect/authorize\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processAuthorizeGET(_response);\n });\n }\n\n protected processAuthorizeGET(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * @return OK\n */\n authorizePOST(): Promise<void> {\n let url_ = this.baseUrl + \"/connect/authorize\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"POST\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processAuthorizePOST(_response);\n });\n }\n\n protected processAuthorizePOST(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * @return OK\n */\n userinfoGET(): Promise<void> {\n let url_ = this.baseUrl + \"/connect/userinfo\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processUserinfoGET(_response);\n });\n }\n\n protected processUserinfoGET(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * @return OK\n */\n userinfoPOST(): Promise<void> {\n let url_ = this.baseUrl + \"/connect/userinfo\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"POST\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processUserinfoPOST(_response);\n });\n }\n\n protected processUserinfoPOST(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * @return OK\n */\n logout(): Promise<void> {\n let url_ = this.baseUrl + \"/connect/logout\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processLogout(_response);\n });\n }\n\n protected processLogout(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n}\n\nexport class ChangeLogClient extends AuthApiBase {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n private baseUrl: string;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n super();\n this.http = http ? http : (window as any);\n this.baseUrl = this.getBaseUrl(\"\", baseUrl);\n }\n\n /**\n * Force set changes last modified date\n * @param scope (optional)\n * @return No Content\n */\n forceChanges(scope?: string | undefined): Promise<void> {\n let url_ = this.baseUrl + \"/api/changes/force?\";\n if (scope === null) throw new globalThis.Error(\"The parameter 'scope' cannot be null.\");\n else if (scope !== undefined) url_ += \"Scope=\" + encodeURIComponent(\"\" + scope) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"POST\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processForceChanges(_response);\n });\n }\n\n protected processForceChanges(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 204) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * @return No Content\n */\n resetPlatformCache(): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform-cache/reset\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"POST\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processResetPlatformCache(_response);\n });\n }\n\n protected processResetPlatformCache(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 204) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * Get last modified date for given scope\n Used for signal of what something changed and for cache invalidation in external platform clients\n * @param scope (optional) \n * @return OK\n */\n getLastModifiedDate(scope?: string | undefined): Promise<LastModifiedResponse> {\n let url_ = this.baseUrl + \"/api/changes/lastmodifieddate?\";\n if (scope === null) throw new globalThis.Error(\"The parameter 'scope' cannot be null.\");\n else if (scope !== undefined) url_ += \"scope=\" + encodeURIComponent(\"\" + scope) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetLastModifiedDate(_response);\n });\n }\n\n protected processGetLastModifiedDate(response: Response): Promise<LastModifiedResponse> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as LastModifiedResponse);\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<LastModifiedResponse>(null as any);\n }\n\n /**\n * @param body (optional)\n * @return OK\n */\n getChangedEntities(body?: ChangedEntitiesRequest | undefined): Promise<ChangedEntitiesResponse> {\n let url_ = this.baseUrl + \"/api/changes/changed-entities\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetChangedEntities(_response);\n });\n }\n\n protected processGetChangedEntities(response: Response): Promise<ChangedEntitiesResponse> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ChangedEntitiesResponse);\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ChangedEntitiesResponse>(null as any);\n }\n\n /**\n * @param body (optional)\n * @return No Content\n */\n resetChangedEntities(body?: string[] | undefined): Promise<void> {\n let url_ = this.baseUrl + \"/api/changes/changed-entities/reset\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processResetChangedEntities(_response);\n });\n }\n\n protected processResetChangedEntities(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 204) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * @param body (optional)\n * @return OK\n */\n searchChanges(body?: ChangeLogSearchCriteria | undefined): Promise<ChangeLogSearchResult> {\n let url_ = this.baseUrl + \"/api/platform/changelog/search\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSearchChanges(_response);\n });\n }\n\n protected processSearchChanges(response: Response): Promise<ChangeLogSearchResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ChangeLogSearchResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ChangeLogSearchResult>(null as any);\n }\n\n /**\n * @param start (optional)\n * @param end (optional)\n * @return OK\n */\n searchTypeChangeHistory(type: string, start?: Date | undefined, end?: Date | undefined): Promise<OperationLog[]> {\n let url_ = this.baseUrl + \"/api/platform/changelog/{type}/changes?\";\n if (type === undefined || type === null) throw new globalThis.Error(\"The parameter 'type' must be defined.\");\n url_ = url_.replace(\"{type}\", encodeURIComponent(\"\" + type));\n if (start === null) throw new globalThis.Error(\"The parameter 'start' cannot be null.\");\n else if (start !== undefined) url_ += \"start=\" + encodeURIComponent(start ? \"\" + start.toISOString() : \"\") + \"&\";\n if (end === null) throw new globalThis.Error(\"The parameter 'end' cannot be null.\");\n else if (end !== undefined) url_ += \"end=\" + encodeURIComponent(end ? \"\" + end.toISOString() : \"\") + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSearchTypeChangeHistory(_response);\n });\n }\n\n protected processSearchTypeChangeHistory(response: Response): Promise<OperationLog[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as OperationLog[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<OperationLog[]>(null as any);\n }\n}\n\nexport class DeveloperToolsClient extends AuthApiBase {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n private baseUrl: string;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n super();\n this.http = http ? http : (window as any);\n this.baseUrl = this.getBaseUrl(\"\", baseUrl);\n }\n\n /**\n * @return OK\n */\n getDeveloperTools(): Promise<DeveloperToolDescriptor[]> {\n let url_ = this.baseUrl + \"/api/platform/developer-tools\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetDeveloperTools(_response);\n });\n }\n\n protected processGetDeveloperTools(response: Response): Promise<DeveloperToolDescriptor[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as DeveloperToolDescriptor[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<DeveloperToolDescriptor[]>(null as any);\n }\n}\n\nexport class DiagnosticsClient extends AuthApiBase {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n private baseUrl: string;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n super();\n this.http = http ? http : (window as any);\n this.baseUrl = this.getBaseUrl(\"\", baseUrl);\n }\n\n /**\n * @return OK\n */\n getSystemInfo(): Promise<SystemInfo> {\n let url_ = this.baseUrl + \"/api/platform/diagnostics/systeminfo\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetSystemInfo(_response);\n });\n }\n\n protected processGetSystemInfo(response: Response): Promise<SystemInfo> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as SystemInfo);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<SystemInfo>(null as any);\n }\n\n /**\n * Get installed modules with errors\n * @return OK\n */\n getModulesErrors(): Promise<ModuleDescriptor[]> {\n let url_ = this.baseUrl + \"/api/platform/diagnostics/errors\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetModulesErrors(_response);\n });\n }\n\n protected processGetModulesErrors(response: Response): Promise<ModuleDescriptor[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ModuleDescriptor[]);\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ModuleDescriptor[]>(null as any);\n }\n}\n\nexport class DynamicPropertiesClient extends AuthApiBase {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n private baseUrl: string;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n super();\n this.http = http ? http : (window as any);\n this.baseUrl = this.getBaseUrl(\"\", baseUrl);\n }\n\n /**\n * Get object types which support dynamic properties\n * @return OK\n */\n getObjectTypes(): Promise<string[]> {\n let url_ = this.baseUrl + \"/api/platform/dynamic/types\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetObjectTypes(_response);\n });\n }\n\n protected processGetObjectTypes(response: Response): Promise<string[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as string[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<string[]>(null as any);\n }\n\n /**\n * @param id (optional)\n * @return OK\n */\n getAllDynamicProperties(id?: string | undefined): Promise<DynamicProperty[]> {\n let url_ = this.baseUrl + \"/api/platform/dynamic/properties?\";\n if (id === null) throw new globalThis.Error(\"The parameter 'id' cannot be null.\");\n else if (id !== undefined) url_ += \"id=\" + encodeURIComponent(\"\" + id) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetAllDynamicProperties(_response);\n });\n }\n\n protected processGetAllDynamicProperties(response: Response): Promise<DynamicProperty[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as DynamicProperty[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<DynamicProperty[]>(null as any);\n }\n\n /**\n * Add new dynamic property\n * @param body (optional)\n * @return OK\n */\n createProperty(body?: DynamicProperty | undefined): Promise<DynamicProperty> {\n let url_ = this.baseUrl + \"/api/platform/dynamic/properties\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processCreateProperty(_response);\n });\n }\n\n protected processCreateProperty(response: Response): Promise<DynamicProperty> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as DynamicProperty);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<DynamicProperty>(null as any);\n }\n\n /**\n * Update existing dynamic property\n * @param body (optional)\n * @return No Content\n */\n updateProperty(body?: DynamicProperty | undefined): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/dynamic/properties\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processUpdateProperty(_response);\n });\n }\n\n protected processUpdateProperty(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 204) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * Delete dynamic property\n * @param propertyIds (optional)\n * @return No Content\n */\n deleteProperty(propertyIds?: string[] | undefined): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/dynamic/properties?\";\n if (propertyIds === null) throw new globalThis.Error(\"The parameter 'propertyIds' cannot be null.\");\n else if (propertyIds !== undefined)\n propertyIds &&\n propertyIds.forEach((item) => {\n url_ += \"propertyIds=\" + encodeURIComponent(\"\" + item) + \"&\";\n });\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"DELETE\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processDeleteProperty(_response);\n });\n }\n\n protected processDeleteProperty(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 204) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * Get dynamic properties registered for object type\n * @param body (optional)\n * @return OK\n */\n searchDynamicProperties(body?: DynamicPropertySearchCriteria | undefined): Promise<DynamicPropertySearchResult> {\n let url_ = this.baseUrl + \"/api/platform/dynamic/properties/search\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSearchDynamicProperties(_response);\n });\n }\n\n protected processSearchDynamicProperties(response: Response): Promise<DynamicPropertySearchResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\"\n ? null\n : (JSON.parse(_responseText, this.jsonParseReviver) as DynamicPropertySearchResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<DynamicPropertySearchResult>(null as any);\n }\n\n /**\n * Does nothing. Just a way to expose DynamicObjectProperty thru Swagger.\n * @return OK\n */\n exposeDynamicObjectProperty(): Promise<DynamicObjectProperty> {\n let url_ = this.baseUrl + \"/api/platform/dynamic\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processExposeDynamicObjectProperty(_response);\n });\n }\n\n protected processExposeDynamicObjectProperty(response: Response): Promise<DynamicObjectProperty> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as DynamicObjectProperty);\n return result200;\n });\n } else if (status === 204) {\n return response.text().then((_responseText) => {\n return throwException(\"No Content\", status, _responseText, _headers);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<DynamicObjectProperty>(null as any);\n }\n\n /**\n * @param propertyId (optional)\n * @return OK\n */\n getAllDictionaryItems(propertyId?: string | undefined): Promise<DynamicPropertyDictionaryItem[]> {\n let url_ = this.baseUrl + \"/api/platform/dynamic/dictionaryitems?\";\n if (propertyId === null) throw new globalThis.Error(\"The parameter 'propertyId' cannot be null.\");\n else if (propertyId !== undefined) url_ += \"propertyId=\" + encodeURIComponent(\"\" + propertyId) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetAllDictionaryItems(_response);\n });\n }\n\n protected processGetAllDictionaryItems(response: Response): Promise<DynamicPropertyDictionaryItem[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\"\n ? null\n : (JSON.parse(_responseText, this.jsonParseReviver) as DynamicPropertyDictionaryItem[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<DynamicPropertyDictionaryItem[]>(null as any);\n }\n\n /**\n * Add or update dictionary items\n * @param body (optional)\n * @return No Content\n */\n saveDictionaryItems(body?: DynamicPropertyDictionaryItem[] | undefined): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/dynamic/dictionaryitems\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSaveDictionaryItems(_response);\n });\n }\n\n protected processSaveDictionaryItems(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 204) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * Delete dictionary items\n * @param ids (optional) IDs of dictionary items to delete.\n * @return No Content\n */\n deleteDictionaryItem(ids?: string[] | undefined): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/dynamic/dictionaryitems?\";\n if (ids === null) throw new globalThis.Error(\"The parameter 'ids' cannot be null.\");\n else if (ids !== undefined)\n ids &&\n ids.forEach((item) => {\n url_ += \"ids=\" + encodeURIComponent(\"\" + item) + \"&\";\n });\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"DELETE\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processDeleteDictionaryItem(_response);\n });\n }\n\n protected processDeleteDictionaryItem(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 204) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * Get dictionary items\n * @param body (optional)\n * @return OK\n */\n searchDictionaryItems(\n body?: DynamicPropertyDictionaryItemSearchCriteria | undefined,\n ): Promise<DynamicPropertyDictionaryItemSearchResult> {\n let url_ = this.baseUrl + \"/api/platform/dynamic/dictionaryitems/search\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSearchDictionaryItems(_response);\n });\n }\n\n protected processSearchDictionaryItems(response: Response): Promise<DynamicPropertyDictionaryItemSearchResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\"\n ? null\n : (JSON.parse(_responseText, this.jsonParseReviver) as DynamicPropertyDictionaryItemSearchResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<DynamicPropertyDictionaryItemSearchResult>(null as any);\n }\n}\n\nexport class JobsClient extends AuthApiBase {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n private baseUrl: string;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n super();\n this.http = http ? http : (window as any);\n this.baseUrl = this.getBaseUrl(\"\", baseUrl);\n }\n\n /**\n * Get background job status\n * @param id Job ID.\n * @return OK\n */\n getStatus(id: string): Promise<Job> {\n let url_ = this.baseUrl + \"/api/platform/jobs/{id}\";\n if (id === undefined || id === null) throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetStatus(_response);\n });\n }\n\n protected processGetStatus(response: Response): Promise<Job> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as Job);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<Job>(null as any);\n }\n}\n\nexport class LocalizableSettingsClient extends AuthApiBase {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n private baseUrl: string;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n super();\n this.http = http ? http : (window as any);\n this.baseUrl = this.getBaseUrl(\"\", baseUrl);\n }\n\n /**\n * @return OK\n */\n getSettingsAndLanguages(): Promise<LocalizableSettingsAndLanguages> {\n let url_ = this.baseUrl + \"/api/platform/localizable-settings\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetSettingsAndLanguages(_response);\n });\n }\n\n protected processGetSettingsAndLanguages(response: Response): Promise<LocalizableSettingsAndLanguages> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\"\n ? null\n : (JSON.parse(_responseText, this.jsonParseReviver) as LocalizableSettingsAndLanguages);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<LocalizableSettingsAndLanguages>(null as any);\n }\n\n /**\n * @return OK\n */\n getDictionaryValues(name: string, language: string): Promise<KeyValue[]> {\n let url_ = this.baseUrl + \"/api/platform/localizable-settings/{name}/dictionary-items/{language}/values\";\n if (name === undefined || name === null) throw new globalThis.Error(\"The parameter 'name' must be defined.\");\n url_ = url_.replace(\"{name}\", encodeURIComponent(\"\" + name));\n if (language === undefined || language === null)\n throw new globalThis.Error(\"The parameter 'language' must be defined.\");\n url_ = url_.replace(\"{language}\", encodeURIComponent(\"\" + language));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetDictionaryValues(_response);\n });\n }\n\n protected processGetDictionaryValues(response: Response): Promise<KeyValue[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as KeyValue[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<KeyValue[]>(null as any);\n }\n\n /**\n * @param body (optional)\n * @return No Content\n */\n saveDictionaryItems(name: string, body?: DictionaryItem[] | undefined): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/localizable-settings/{name}/dictionary-items\";\n if (name === undefined || name === null) throw new globalThis.Error(\"The parameter 'name' must be defined.\");\n url_ = url_.replace(\"{name}\", encodeURIComponent(\"\" + name));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSaveDictionaryItems(_response);\n });\n }\n\n protected processSaveDictionaryItems(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 204) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * @param values (optional)\n * @return No Content\n */\n deleteDictionaryItems(name: string, values?: string[] | undefined): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/localizable-settings/{name}/dictionary-items?\";\n if (name === undefined || name === null) throw new globalThis.Error(\"The parameter 'name' must be defined.\");\n url_ = url_.replace(\"{name}\", encodeURIComponent(\"\" + name));\n if (values === null) throw new globalThis.Error(\"The parameter 'values' cannot be null.\");\n else if (values !== undefined)\n values &&\n values.forEach((item) => {\n url_ += \"values=\" + encodeURIComponent(\"\" + item) + \"&\";\n });\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"DELETE\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processDeleteDictionaryItems(_response);\n });\n }\n\n protected processDeleteDictionaryItems(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 204) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n}\n\nexport class ModulesClient extends AuthApiBase {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n private baseUrl: string;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n super();\n this.http = http ? http : (window as any);\n this.baseUrl = this.getBaseUrl(\"\", baseUrl);\n }\n\n /**\n * Reload modules\n * @return No Content\n */\n reloadModules(): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/modules/reload\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"POST\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processReloadModules(_response);\n });\n }\n\n protected processReloadModules(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 204) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * Get installed modules\n * @return OK\n */\n getModules(): Promise<ModuleDescriptor[]> {\n let url_ = this.baseUrl + \"/api/platform/modules\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetModules(_response);\n });\n }\n\n protected processGetModules(response: Response): Promise<ModuleDescriptor[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ModuleDescriptor[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ModuleDescriptor[]>(null as any);\n }\n\n /**\n * Get all dependent modules for module\n * @param body (optional) modules descriptors\n * @return OK\n */\n getDependingModules(body?: ModuleDescriptor[] | undefined): Promise<ModuleDescriptor[]> {\n let url_ = this.baseUrl + \"/api/platform/modules/getdependents\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetDependingModules(_response);\n });\n }\n\n protected processGetDependingModules(response: Response): Promise<ModuleDescriptor[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ModuleDescriptor[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ModuleDescriptor[]>(null as any);\n }\n\n /**\n * Returns a flat expanded list of modules that depend on passed modules\n * @param body (optional) modules descriptors\n * @return OK\n */\n getMissingDependencies(body?: ModuleDescriptor[] | undefined): Promise<ModuleDescriptor[]> {\n let url_ = this.baseUrl + \"/api/platform/modules/getmissingdependencies\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetMissingDependencies(_response);\n });\n }\n\n protected processGetMissingDependencies(response: Response): Promise<ModuleDescriptor[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ModuleDescriptor[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ModuleDescriptor[]>(null as any);\n }\n\n /**\n * Upload module package for installation or update\n * @return OK\n */\n uploadModuleArchive(): Promise<ModuleDescriptor> {\n let url_ = this.baseUrl + \"/api/platform/modules/localstorage\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processUploadModuleArchive(_response);\n });\n }\n\n protected processUploadModuleArchive(response: Response): Promise<ModuleDescriptor> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ModuleDescriptor);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ModuleDescriptor>(null as any);\n }\n\n /**\n * Install modules\n * @param body (optional) modules for install\n * @return OK\n */\n installModules(body?: ModuleDescriptor[] | undefined): Promise<ModulePushNotification> {\n let url_ = this.baseUrl + \"/api/platform/modules/install\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processInstallModules(_response);\n });\n }\n\n protected processInstallModules(response: Response): Promise<ModulePushNotification> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ModulePushNotification);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ModulePushNotification>(null as any);\n }\n\n /**\n * Update modules\n * @param body (optional) modules for update\n * @return OK\n */\n updateModules(body?: ModuleDescriptor[] | undefined): Promise<ModulePushNotification> {\n let url_ = this.baseUrl + \"/api/platform/modules/update\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processUpdateModules(_response);\n });\n }\n\n protected processUpdateModules(response: Response): Promise<ModulePushNotification> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ModulePushNotification);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ModulePushNotification>(null as any);\n }\n\n /**\n * Uninstall module\n * @param body (optional) modules\n * @return OK\n */\n uninstallModule(body?: ModuleDescriptor[] | undefined): Promise<ModulePushNotification> {\n let url_ = this.baseUrl + \"/api/platform/modules/uninstall\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processUninstallModule(_response);\n });\n }\n\n protected processUninstallModule(response: Response): Promise<ModulePushNotification> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ModulePushNotification);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ModulePushNotification>(null as any);\n }\n\n /**\n * Restart web application\n * @return No Content\n */\n restart(): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/modules/restart\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"POST\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processRestart(_response);\n });\n }\n\n protected processRestart(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 204) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * Auto-install modules with specified groups\n * @return OK\n */\n tryToAutoInstallModules(): Promise<ModuleAutoInstallPushNotification> {\n let url_ = this.baseUrl + \"/api/platform/modules/autoinstall\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processTryToAutoInstallModules(_response);\n });\n }\n\n protected processTryToAutoInstallModules(response: Response): Promise<ModuleAutoInstallPushNotification> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\"\n ? null\n : (JSON.parse(_responseText, this.jsonParseReviver) as ModuleAutoInstallPushNotification);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ModuleAutoInstallPushNotification>(null as any);\n }\n\n /**\n * @return OK\n */\n getModulesLoadingOrder(): Promise<string[]> {\n let url_ = this.baseUrl + \"/api/platform/modules/loading-order\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetModulesLoadingOrder(_response);\n });\n }\n\n protected processGetModulesLoadingOrder(response: Response): Promise<string[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as string[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<string[]>(null as any);\n }\n}\n\nexport class OAuthAppsClient extends AuthApiBase {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n private baseUrl: string;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n super();\n this.http = http ? http : (window as any);\n this.baseUrl = this.getBaseUrl(\"\", baseUrl);\n }\n\n /**\n * @return OK\n */\n new(): Promise<OpenIddictApplicationDescriptor> {\n let url_ = this.baseUrl + \"/api/platform/oauthapps/new\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processNew(_response);\n });\n }\n\n protected processNew(response: Response): Promise<OpenIddictApplicationDescriptor> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\"\n ? null\n : (JSON.parse(_responseText, this.jsonParseReviver) as OpenIddictApplicationDescriptor);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<OpenIddictApplicationDescriptor>(null as any);\n }\n\n /**\n * @param body (optional)\n * @return OK\n */\n save(body?: OpenIddictApplicationDescriptor | undefined): Promise<OpenIddictApplicationDescriptor> {\n let url_ = this.baseUrl + \"/api/platform/oauthapps\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSave(_response);\n });\n }\n\n protected processSave(response: Response): Promise<OpenIddictApplicationDescriptor> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\"\n ? null\n : (JSON.parse(_responseText, this.jsonParseReviver) as OpenIddictApplicationDescriptor);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<OpenIddictApplicationDescriptor>(null as any);\n }\n\n /**\n * @param clientIds (optional)\n * @return OK\n */\n delete(clientIds?: string[] | undefined): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/oauthapps?\";\n if (clientIds === null) throw new globalThis.Error(\"The parameter 'clientIds' cannot be null.\");\n else if (clientIds !== undefined)\n clientIds &&\n clientIds.forEach((item) => {\n url_ += \"clientIds=\" + encodeURIComponent(\"\" + item) + \"&\";\n });\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"DELETE\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processDelete(_response);\n });\n }\n\n protected processDelete(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * @param body (optional)\n * @return OK\n */\n search(body?: OAuthAppSearchCriteria | undefined): Promise<OAuthAppSearchResult> {\n let url_ = this.baseUrl + \"/api/platform/oauthapps/search\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSearch(_response);\n });\n }\n\n protected processSearch(response: Response): Promise<OAuthAppSearchResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as OAuthAppSearchResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<OAuthAppSearchResult>(null as any);\n }\n}\n\nexport class PushNotificationClient extends AuthApiBase {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n private baseUrl: string;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n super();\n this.http = http ? http : (window as any);\n this.baseUrl = this.getBaseUrl(\"\", baseUrl);\n }\n\n /**\n * SearchAsync push notifications\n * @param body (optional) SearchAsync parameters.\n * @return OK\n */\n searchPushNotification(body?: PushNotificationSearchCriteria | undefined): Promise<PushNotificationSearchResult> {\n let url_ = this.baseUrl + \"/api/platform/pushnotifications\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSearchPushNotification(_response);\n });\n }\n\n protected processSearchPushNotification(response: Response): Promise<PushNotificationSearchResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\"\n ? null\n : (JSON.parse(_responseText, this.jsonParseReviver) as PushNotificationSearchResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<PushNotificationSearchResult>(null as any);\n }\n\n /**\n * Mark all notifications as read\n * @return OK\n */\n markAllAsRead(): Promise<PushNotificationSearchResult> {\n let url_ = this.baseUrl + \"/api/platform/pushnotifications/markAllAsRead\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processMarkAllAsRead(_response);\n });\n }\n\n protected processMarkAllAsRead(response: Response): Promise<PushNotificationSearchResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\"\n ? null\n : (JSON.parse(_responseText, this.jsonParseReviver) as PushNotificationSearchResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<PushNotificationSearchResult>(null as any);\n }\n}\n\nexport class SecurityClient extends AuthApiBase {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n private baseUrl: string;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n super();\n this.http = http ? http : (window as any);\n this.baseUrl = this.getBaseUrl(\"\", baseUrl);\n }\n\n /**\n * @param body (optional)\n * @return OK\n */\n searchUserSessions(userId: string, body?: UserSessionSearchCriteria | undefined): Promise<UserSessionSearchResult> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{userId}/sessions/search\";\n if (userId === undefined || userId === null) throw new globalThis.Error(\"The parameter 'userId' must be defined.\");\n url_ = url_.replace(\"{userId}\", encodeURIComponent(\"\" + userId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSearchUserSessions(_response);\n });\n }\n\n protected processSearchUserSessions(response: Response): Promise<UserSessionSearchResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as UserSessionSearchResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<UserSessionSearchResult>(null as any);\n }\n\n /**\n * @return No Content\n */\n terminateUserSession(userId: string, id: string): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{userId}/sessions/{id}\";\n if (userId === undefined || userId === null) throw new globalThis.Error(\"The parameter 'userId' must be defined.\");\n url_ = url_.replace(\"{userId}\", encodeURIComponent(\"\" + userId));\n if (id === undefined || id === null) throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"DELETE\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processTerminateUserSession(_response);\n });\n }\n\n protected processTerminateUserSession(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 204) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * @return No Content\n */\n terminateAllUserSessions(userId: string): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{userId}/sessions\";\n if (userId === undefined || userId === null) throw new globalThis.Error(\"The parameter 'userId' must be defined.\");\n url_ = url_.replace(\"{userId}\", encodeURIComponent(\"\" + userId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"DELETE\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processTerminateAllUserSessions(_response);\n });\n }\n\n protected processTerminateAllUserSessions(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 204) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * Sign in with user name and password\n * @param body (optional) Login request.\n * @return OK\n */\n login(body?: LoginRequest | undefined): Promise<SignInResult> {\n let url_ = this.baseUrl + \"/api/platform/security/login\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processLogin(_response);\n });\n }\n\n protected processLogin(response: Response): Promise<SignInResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as SignInResult);\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<SignInResult>(null as any);\n }\n\n /**\n * Sign out\n * @return No Content\n */\n logout(): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/security/logout\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processLogout(_response);\n });\n }\n\n protected processLogout(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 204) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * Get current user details\n * @return OK\n */\n getCurrentUser(): Promise<UserDetail> {\n let url_ = this.baseUrl + \"/api/platform/security/currentuser\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetCurrentUser(_response);\n });\n }\n\n protected processGetCurrentUser(response: Response): Promise<UserDetail> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as UserDetail);\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<UserDetail>(null as any);\n }\n\n /**\n * @return OK\n */\n userinfo(): Promise<Claim[]> {\n let url_ = this.baseUrl + \"/api/platform/security/userinfo\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processUserinfo(_response);\n });\n }\n\n protected processUserinfo(response: Response): Promise<Claim[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as Claim[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<Claim[]>(null as any);\n }\n\n /**\n * Get all registered permissions\n * @return OK\n */\n getAllRegisteredPermissions(): Promise<Permission[]> {\n let url_ = this.baseUrl + \"/api/platform/security/permissions\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetAllRegisteredPermissions(_response);\n });\n }\n\n protected processGetAllRegisteredPermissions(response: Response): Promise<Permission[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as Permission[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<Permission[]>(null as any);\n }\n\n /**\n * SearchAsync roles by keyword\n * @param body (optional) SearchAsync parameters.\n * @return OK\n */\n searchRoles(body?: RoleSearchCriteria | undefined): Promise<RoleSearchResult> {\n let url_ = this.baseUrl + \"/api/platform/security/roles/search\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSearchRoles(_response);\n });\n }\n\n protected processSearchRoles(response: Response): Promise<RoleSearchResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as RoleSearchResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<RoleSearchResult>(null as any);\n }\n\n /**\n * Get role by ID\n * @return OK\n */\n getRole(roleName: string): Promise<Role> {\n let url_ = this.baseUrl + \"/api/platform/security/roles/{roleName}\";\n if (roleName === undefined || roleName === null)\n throw new globalThis.Error(\"The parameter 'roleName' must be defined.\");\n url_ = url_.replace(\"{roleName}\", encodeURIComponent(\"\" + roleName));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetRole(_response);\n });\n }\n\n protected processGetRole(response: Response): Promise<Role> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as Role);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<Role>(null as any);\n }\n\n /**\n * Delete roles by ID\n * @param ids (optional) An array of role IDs.\n * @return No Content\n */\n deleteRoles(ids?: string[] | undefined): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/security/roles?\";\n if (ids === null) throw new globalThis.Error(\"The parameter 'ids' cannot be null.\");\n else if (ids !== undefined)\n ids &&\n ids.forEach((item) => {\n url_ += \"ids=\" + encodeURIComponent(\"\" + item) + \"&\";\n });\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"DELETE\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processDeleteRoles(_response);\n });\n }\n\n protected processDeleteRoles(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 204) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * Update an existing role or create new\n * @param body (optional)\n * @return OK\n */\n updateRole(body?: Role | undefined): Promise<SecurityResult> {\n let url_ = this.baseUrl + \"/api/platform/security/roles\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processUpdateRole(_response);\n });\n }\n\n protected processUpdateRole(response: Response): Promise<SecurityResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as SecurityResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<SecurityResult>(null as any);\n }\n\n /**\n * SearchAsync users by keyword\n * @param body (optional) Search criteria.\n * @return OK\n */\n searchUsers(body?: UserSearchCriteria | undefined): Promise<UserSearchResult> {\n let url_ = this.baseUrl + \"/api/platform/security/users/search\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSearchUsers(_response);\n });\n }\n\n protected processSearchUsers(response: Response): Promise<UserSearchResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as UserSearchResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<UserSearchResult>(null as any);\n }\n\n /**\n * Get user details by user name\n * @return OK\n */\n getUserByName(userName: string): Promise<ApplicationUser> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{userName}\";\n if (userName === undefined || userName === null)\n throw new globalThis.Error(\"The parameter 'userName' must be defined.\");\n url_ = url_.replace(\"{userName}\", encodeURIComponent(\"\" + userName));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetUserByName(_response);\n });\n }\n\n protected processGetUserByName(response: Response): Promise<ApplicationUser> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ApplicationUser);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ApplicationUser>(null as any);\n }\n\n /**\n * Get user details by user ID\n * @return OK\n */\n getUserById(id: string): Promise<ApplicationUser> {\n let url_ = this.baseUrl + \"/api/platform/security/users/id/{id}\";\n if (id === undefined || id === null) throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetUserById(_response);\n });\n }\n\n protected processGetUserById(response: Response): Promise<ApplicationUser> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ApplicationUser);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ApplicationUser>(null as any);\n }\n\n /**\n * Get user details by user email\n * @return OK\n */\n getUserByEmail(email: string): Promise<ApplicationUser> {\n let url_ = this.baseUrl + \"/api/platform/security/users/email/{email}\";\n if (email === undefined || email === null) throw new globalThis.Error(\"The parameter 'email' must be defined.\");\n url_ = url_.replace(\"{email}\", encodeURIComponent(\"\" + email));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetUserByEmail(_response);\n });\n }\n\n protected processGetUserByEmail(response: Response): Promise<ApplicationUser> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ApplicationUser);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ApplicationUser>(null as any);\n }\n\n /**\n * Get user details by external login provider\n * @return OK\n */\n getUserByLogin(loginProvider: string, providerKey: string): Promise<ApplicationUser> {\n let url_ = this.baseUrl + \"/api/platform/security/users/login/external/{loginProvider}/{providerKey}\";\n if (loginProvider === undefined || loginProvider === null)\n throw new globalThis.Error(\"The parameter 'loginProvider' must be defined.\");\n url_ = url_.replace(\"{loginProvider}\", encodeURIComponent(\"\" + loginProvider));\n if (providerKey === undefined || providerKey === null)\n throw new globalThis.Error(\"The parameter 'providerKey' must be defined.\");\n url_ = url_.replace(\"{providerKey}\", encodeURIComponent(\"\" + providerKey));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetUserByLogin(_response);\n });\n }\n\n protected processGetUserByLogin(response: Response): Promise<ApplicationUser> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ApplicationUser);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ApplicationUser>(null as any);\n }\n\n /**\n * Create new user\n * @param body (optional)\n * @return OK\n */\n create(body?: ApplicationUser | undefined): Promise<SecurityResult> {\n let url_ = this.baseUrl + \"/api/platform/security/users/create\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processCreate(_response);\n });\n }\n\n protected processCreate(response: Response): Promise<SecurityResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as SecurityResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<SecurityResult>(null as any);\n }\n\n /**\n * Change password for current user.\n * @param body (optional) Old and new passwords.\n * @return OK\n */\n changeCurrentUserPassword(body?: ChangePasswordRequest | undefined): Promise<SecurityResult> {\n let url_ = this.baseUrl + \"/api/platform/security/currentuser/changepassword\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processChangeCurrentUserPassword(_response);\n });\n }\n\n protected processChangeCurrentUserPassword(response: Response): Promise<SecurityResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as SecurityResult);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n return throwException(\"Bad Request\", status, _responseText, _headers);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<SecurityResult>(null as any);\n }\n\n /**\n * Change password\n * @param userName user name\n * @param body (optional) Old and new passwords.\n * @return OK\n */\n changePassword(userName: string, body?: ChangePasswordRequest | undefined): Promise<SecurityResult> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{userName}/changepassword\";\n if (userName === undefined || userName === null)\n throw new globalThis.Error(\"The parameter 'userName' must be defined.\");\n url_ = url_.replace(\"{userName}\", encodeURIComponent(\"\" + userName));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processChangePassword(_response);\n });\n }\n\n protected processChangePassword(response: Response): Promise<SecurityResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as SecurityResult);\n return result200;\n });\n } else if (status === 400) {\n return response.text().then((_responseText) => {\n return throwException(\"Bad Request\", status, _responseText, _headers);\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<SecurityResult>(null as any);\n }\n\n /**\n * Reset password confirmation\n * @param body (optional) Password reset information.\n * @return OK\n */\n resetPassword(userName: string, body?: ResetPasswordRequest | undefined): Promise<SecurityResult> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{userName}/resetpassword\";\n if (userName === undefined || userName === null)\n throw new globalThis.Error(\"The parameter 'userName' must be defined.\");\n url_ = url_.replace(\"{userName}\", encodeURIComponent(\"\" + userName));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processResetPassword(_response);\n });\n }\n\n protected processResetPassword(response: Response): Promise<SecurityResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as SecurityResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<SecurityResult>(null as any);\n }\n\n /**\n * Reset password confirmation\n * @param body (optional) Password reset information.\n * @return OK\n */\n resetPasswordByToken(userId: string, body?: ResetPasswordConfirmRequest | undefined): Promise<SecurityResult> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{userId}/resetpasswordconfirm\";\n if (userId === undefined || userId === null) throw new globalThis.Error(\"The parameter 'userId' must be defined.\");\n url_ = url_.replace(\"{userId}\", encodeURIComponent(\"\" + userId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processResetPasswordByToken(_response);\n });\n }\n\n protected processResetPasswordByToken(response: Response): Promise<SecurityResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as SecurityResult);\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<SecurityResult>(null as any);\n }\n\n /**\n * Validate password reset token\n * @param body (optional)\n * @return OK\n */\n validatePasswordResetToken(userId: string, body?: ValidatePasswordResetTokenRequest | undefined): Promise<boolean> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{userId}/validatepasswordresettoken\";\n if (userId === undefined || userId === null) throw new globalThis.Error(\"The parameter 'userId' must be defined.\");\n url_ = url_.replace(\"{userId}\", encodeURIComponent(\"\" + userId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processValidatePasswordResetToken(_response);\n });\n }\n\n protected processValidatePasswordResetToken(response: Response): Promise<boolean> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as boolean);\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<boolean>(null as any);\n }\n\n /**\n * Send email with instructions on how to reset user password.\n * @return OK\n */\n requestPasswordReset(loginOrEmail: string): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{loginOrEmail}/requestpasswordreset\";\n if (loginOrEmail === undefined || loginOrEmail === null)\n throw new globalThis.Error(\"The parameter 'loginOrEmail' must be defined.\");\n url_ = url_.replace(\"{loginOrEmail}\", encodeURIComponent(\"\" + loginOrEmail));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"POST\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processRequestPasswordReset(_response);\n });\n }\n\n protected processRequestPasswordReset(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * @param body (optional)\n * @return OK\n */\n validatePassword(body?: string | undefined): Promise<IdentityResult> {\n let url_ = this.baseUrl + \"/api/platform/security/validatepassword\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processValidatePassword(_response);\n });\n }\n\n protected processValidatePassword(response: Response): Promise<IdentityResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as IdentityResult);\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<IdentityResult>(null as any);\n }\n\n /**\n * @param body (optional)\n * @return OK\n */\n validateUserPassword(body?: ChangePasswordRequest | undefined): Promise<IdentityResult> {\n let url_ = this.baseUrl + \"/api/platform/security/validateuserpassword\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processValidateUserPassword(_response);\n });\n }\n\n protected processValidateUserPassword(response: Response): Promise<IdentityResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as IdentityResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<IdentityResult>(null as any);\n }\n\n /**\n * Update user details by user ID\n * @param body (optional) User details.\n * @return OK\n */\n update(body?: ApplicationUser | undefined): Promise<SecurityResult> {\n let url_ = this.baseUrl + \"/api/platform/security/users\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processUpdate(_response);\n });\n }\n\n protected processUpdate(response: Response): Promise<SecurityResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as SecurityResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<SecurityResult>(null as any);\n }\n\n /**\n * Delete users by name\n * @param names (optional) An array of user names.\n * @return OK\n */\n delete(names?: string[] | undefined): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/security/users?\";\n if (names === null) throw new globalThis.Error(\"The parameter 'names' cannot be null.\");\n else if (names !== undefined)\n names &&\n names.forEach((item) => {\n url_ += \"names=\" + encodeURIComponent(\"\" + item) + \"&\";\n });\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"DELETE\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processDelete(_response);\n });\n }\n\n protected processDelete(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * Checks if user locked\n * @param id User id\n * @return OK\n */\n isUserLocked(id: string): Promise<UserLockedResult> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{id}/locked\";\n if (id === undefined || id === null) throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processIsUserLocked(_response);\n });\n }\n\n protected processIsUserLocked(response: Response): Promise<UserLockedResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as UserLockedResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<UserLockedResult>(null as any);\n }\n\n /**\n * Checks if manual password change is enabled\n * @return OK\n */\n passwordChangeEnabled(): Promise<UserLockedResult> {\n let url_ = this.baseUrl + \"/api/platform/security/passwordchangeenabled\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processPasswordChangeEnabled(_response);\n });\n }\n\n protected processPasswordChangeEnabled(response: Response): Promise<UserLockedResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as UserLockedResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<UserLockedResult>(null as any);\n }\n\n /**\n * Lock user\n * @param id >User id\n * @return OK\n */\n lockUser(id: string): Promise<SecurityResult> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{id}/lock\";\n if (id === undefined || id === null) throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processLockUser(_response);\n });\n }\n\n protected processLockUser(response: Response): Promise<SecurityResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as SecurityResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<SecurityResult>(null as any);\n }\n\n /**\n * Unlock user\n * @param id >User id\n * @return OK\n */\n unlockUser(id: string): Promise<SecurityResult> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{id}/unlock\";\n if (id === undefined || id === null) throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processUnlockUser(_response);\n });\n }\n\n protected processUnlockUser(response: Response): Promise<SecurityResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as SecurityResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<SecurityResult>(null as any);\n }\n\n /**\n * @return OK\n */\n getUserApiKeys(id: string): Promise<UserApiKey[]> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{id}/apikeys\";\n if (id === undefined || id === null) throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetUserApiKeys(_response);\n });\n }\n\n protected processGetUserApiKeys(response: Response): Promise<UserApiKey[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as UserApiKey[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<UserApiKey[]>(null as any);\n }\n\n /**\n * @param body (optional)\n * @return OK\n */\n saveUserApiKey(body?: UserApiKey | undefined): Promise<UserApiKey[]> {\n let url_ = this.baseUrl + \"/api/platform/security/users/apikeys\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSaveUserApiKey(_response);\n });\n }\n\n protected processSaveUserApiKey(response: Response): Promise<UserApiKey[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as UserApiKey[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<UserApiKey[]>(null as any);\n }\n\n /**\n * @param body (optional)\n * @return OK\n */\n updateUserApiKey(body?: UserApiKey | undefined): Promise<UserApiKey[]> {\n let url_ = this.baseUrl + \"/api/platform/security/users/apikeys\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processUpdateUserApiKey(_response);\n });\n }\n\n protected processUpdateUserApiKey(response: Response): Promise<UserApiKey[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as UserApiKey[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<UserApiKey[]>(null as any);\n }\n\n /**\n * @param ids (optional)\n * @return OK\n */\n deleteUserApiKeys(ids?: string[] | undefined): Promise<UserApiKey[]> {\n let url_ = this.baseUrl + \"/api/platform/security/users/apikeys?\";\n if (ids === null) throw new globalThis.Error(\"The parameter 'ids' cannot be null.\");\n else if (ids !== undefined)\n ids &&\n ids.forEach((item) => {\n url_ += \"ids=\" + encodeURIComponent(\"\" + item) + \"&\";\n });\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"DELETE\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processDeleteUserApiKeys(_response);\n });\n }\n\n protected processDeleteUserApiKeys(response: Response): Promise<UserApiKey[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as UserApiKey[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<UserApiKey[]>(null as any);\n }\n\n /**\n * Get allowed login types\n * @return OK\n */\n getLoginTypes(): Promise<LoginType[]> {\n let url_ = this.baseUrl + \"/api/platform/security/logintypes\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetLoginTypes(_response);\n });\n }\n\n protected processGetLoginTypes(response: Response): Promise<LoginType[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as LoginType[]);\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<LoginType[]>(null as any);\n }\n\n /**\n * Verify user email\n * @return OK\n */\n sendVerificationEmail(userId: string): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{userId}/sendVerificationEmail\";\n if (userId === undefined || userId === null) throw new globalThis.Error(\"The parameter 'userId' must be defined.\");\n url_ = url_.replace(\"{userId}\", encodeURIComponent(\"\" + userId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"POST\",\n headers: {},\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processSendVerificationEmail(_response);\n });\n }\n\n protected processSendVerificationEmail(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * @param body (optional)\n * @return OK\n */\n confirmEmail(userId: string, body?: ConfirmEmailRequest | undefined): Promise<SecurityResult> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{userId}/confirmEmail\";\n if (userId === undefined || userId === null) throw new globalThis.Error(\"The parameter 'userId' must be defined.\");\n url_ = url_.replace(\"{userId}\", encodeURIComponent(\"\" + userId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processConfirmEmail(_response);\n });\n }\n\n protected processConfirmEmail(response: Response): Promise<SecurityResult> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as SecurityResult);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<SecurityResult>(null as any);\n }\n\n /**\n * @param newEmail (optional)\n * @return OK\n */\n generateChangeEmailToken(userId: string, newEmail?: string | undefined): Promise<string> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{userId}/generateChangeEmailToken?\";\n if (userId === undefined || userId === null) throw new globalThis.Error(\"The parameter 'userId' must be defined.\");\n url_ = url_.replace(\"{userId}\", encodeURIComponent(\"\" + userId));\n if (newEmail === null) throw new globalThis.Error(\"The parameter 'newEmail' cannot be null.\");\n else if (newEmail !== undefined) url_ += \"newEmail=\" + encodeURIComponent(\"\" + newEmail) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGenerateChangeEmailToken(_response);\n });\n }\n\n protected processGenerateChangeEmailToken(response: Response): Promise<string> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as string);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<string>(null as any);\n }\n\n /**\n * @return OK\n */\n generateEmailConfirmationToken(userId: string): Promise<string> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{userId}/generateEmailConfirmationToken\";\n if (userId === undefined || userId === null) throw new globalThis.Error(\"The parameter 'userId' must be defined.\");\n url_ = url_.replace(\"{userId}\", encodeURIComponent(\"\" + userId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGenerateEmailConfirmationToken(_response);\n });\n }\n\n protected processGenerateEmailConfirmationToken(response: Response): Promise<string> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as string);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<string>(null as any);\n }\n\n /**\n * @return OK\n */\n generatePasswordResetToken(userId: string): Promise<string> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{userId}/generatePasswordResetToken\";\n if (userId === undefined || userId === null) throw new globalThis.Error(\"The parameter 'userId' must be defined.\");\n url_ = url_.replace(\"{userId}\", encodeURIComponent(\"\" + userId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGeneratePasswordResetToken(_response);\n });\n }\n\n protected processGeneratePasswordResetToken(response: Response): Promise<string> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as string);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<string>(null as any);\n }\n\n /**\n * @param tokenProvider (optional)\n * @param purpose (optional)\n * @return OK\n */\n generateUserToken(userId: string, tokenProvider?: string | undefined, purpose?: string | undefined): Promise<string> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{userId}/generateToken?\";\n if (userId === undefined || userId === null) throw new globalThis.Error(\"The parameter 'userId' must be defined.\");\n url_ = url_.replace(\"{userId}\", encodeURIComponent(\"\" + userId));\n if (tokenProvider === null) throw new globalThis.Error(\"The parameter 'tokenProvider' cannot be null.\");\n else if (tokenProvider !== undefined) url_ += \"tokenProvider=\" + encodeURIComponent(\"\" + tokenProvider) + \"&\";\n if (purpose === null) throw new globalThis.Error(\"The parameter 'purpose' cannot be null.\");\n else if (purpose !== undefined) url_ += \"purpose=\" + encodeURIComponent(\"\" + purpose) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGenerateUserToken(_response);\n });\n }\n\n protected processGenerateUserToken(response: Response): Promise<string> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as string);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<string>(null as any);\n }\n\n /**\n * @param body (optional)\n * @return OK\n */\n verifyUserToken(userId: string, body?: VerifyTokenRequest | undefined): Promise<boolean> {\n let url_ = this.baseUrl + \"/api/platform/security/users/{userId}/verifyToken\";\n if (userId === undefined || userId === null) throw new globalThis.Error(\"The parameter 'userId' must be defined.\");\n url_ = url_.replace(\"{userId}\", encodeURIComponent(\"\" + userId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processVerifyUserToken(_response);\n });\n }\n\n protected processVerifyUserToken(response: Response): Promise<boolean> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 = _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as boolean);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<boolean>(null as any);\n }\n}\n\nexport class SettingClient extends AuthApiBase {\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> };\n private baseUrl: string;\n\n constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response> }) {\n super();\n this.http = http ? http : (window as any);\n this.baseUrl = this.getBaseUrl(\"\", baseUrl);\n }\n\n /**\n * Get all settings\n * @return OK\n */\n getAllGlobalSettings(): Promise<ObjectSettingEntry[]> {\n let url_ = this.baseUrl + \"/api/platform/settings\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetAllGlobalSettings(_response);\n });\n }\n\n protected processGetAllGlobalSettings(response: Response): Promise<ObjectSettingEntry[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ObjectSettingEntry[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ObjectSettingEntry[]>(null as any);\n }\n\n /**\n * Update settings values\n * @param body (optional)\n * @return No Content\n */\n update(body?: ObjectSettingEntry[] | undefined): Promise<void> {\n let url_ = this.baseUrl + \"/api/platform/settings\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_: RequestInit = {\n body: content_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processUpdate(_response);\n });\n }\n\n protected processUpdate(response: Response): Promise<void> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 204) {\n return response.text().then((_responseText) => {\n return;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<void>(null as any);\n }\n\n /**\n * Get settings registered by specific module\n * @param id Module ID.\n * @return OK\n */\n getGlobalModuleSettings(id: string): Promise<ObjectSettingEntry[]> {\n let url_ = this.baseUrl + \"/api/platform/settings/modules/{id}\";\n if (id === undefined || id === null) throw new globalThis.Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetGlobalModuleSettings(_response);\n });\n }\n\n protected processGetGlobalModuleSettings(response: Response): Promise<ObjectSettingEntry[]> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ObjectSettingEntry[]);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ObjectSettingEntry[]>(null as any);\n }\n\n /**\n * Get setting details by name\n * @param name Setting system name.\n * @return OK\n */\n getGlobalSetting(name: string): Promise<ObjectSettingEntry> {\n let url_ = this.baseUrl + \"/api/platform/settings/{name}\";\n if (name === undefined || name === null) throw new globalThis.Error(\"The parameter 'name' must be defined.\");\n url_ = url_.replace(\"{name}\", encodeURIComponent(\"\" + name));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetGlobalSetting(_response);\n });\n }\n\n protected processGetGlobalSetting(response: Response): Promise<ObjectSettingEntry> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ObjectSettingEntry);\n return result200;\n });\n } else if (status === 401) {\n return response.text().then((_responseText) => {\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n });\n } else if (status === 403) {\n return response.text().then((_responseText) => {\n return throwException(\"Forbidden\", status, _responseText, _headers);\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ObjectSettingEntry>(null as any);\n }\n\n /**\n * Get UI customization setting\n * @return OK\n */\n getUICustomizationSetting(): Promise<ObjectSettingEntry> {\n let url_ = this.baseUrl + \"/api/platform/settings/ui/customization\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_: RequestInit = {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n },\n };\n\n return this.transformOptions(options_)\n .then((transformedOptions_) => {\n return this.http.fetch(url_, transformedOptions_);\n })\n .then((_response: Response) => {\n return this.processGetUICustomizationSetting(_response);\n });\n }\n\n protected processGetUICustomizationSetting(response: Response): Promise<ObjectSettingEntry> {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && response.headers.forEach) {\n response.headers.forEach((v: any, k: any) => (_headers[k] = v));\n }\n if (status === 200) {\n return response.text().then((_responseText) => {\n let result200: any = null;\n result200 =\n _responseText === \"\" ? null : (JSON.parse(_responseText, this.jsonParseReviver) as ObjectSettingEntry);\n return result200;\n });\n } else if (status !== 200 && status !== 204) {\n return response.text().then((_responseText) => {\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n });\n }\n return Promise.resolve<ObjectSettingEntry>(null as any);\n }\n}\n\nexport interface AppDescriptor {\n title?: string | undefined;\n description?: string | undefined;\n iconUrl?: string | undefined;\n relativeUrl?: string | undefined;\n permission?: string | undefined;\n supportEmbeddedMode?: boolean;\n id?: string | undefined;\n}\n\nexport interface ApplicationUser {\n storeId?: string | undefined;\n memberId?: string | undefined;\n isAdministrator?: boolean;\n photoUrl?: string | undefined;\n userType?: string | undefined;\n status?: string | undefined;\n password?: string | undefined;\n createdDate?: Date;\n modifiedDate?: Date | undefined;\n createdBy?: string | undefined;\n modifiedBy?: string | undefined;\n roles?: Role[] | undefined;\n logins?: ApplicationUserLogin[] | undefined;\n passwordExpired?: boolean;\n lastPasswordChangedDate?: Date | undefined;\n lastPasswordChangeRequestDate?: Date | undefined;\n lastLoginDate?: Date | undefined;\n id?: string | undefined;\n userName?: string | undefined;\n normalizedUserName?: string | undefined;\n email?: string | undefined;\n normalizedEmail?: string | undefined;\n emailConfirmed?: boolean;\n passwordHash?: string | undefined;\n securityStamp?: string | undefined;\n concurrencyStamp?: string | undefined;\n phoneNumber?: string | undefined;\n phoneNumberConfirmed?: boolean;\n twoFactorEnabled?: boolean;\n lockoutEnd?: Date | undefined;\n lockoutEnabled?: boolean;\n accessFailedCount?: number;\n}\n\nexport interface ApplicationUserLogin {\n loginProvider?: string | undefined;\n providerKey?: string | undefined;\n}\n\nexport interface ChangeLogSearchCriteria {\n operationTypes?: EntryState[] | undefined;\n startDate?: Date | undefined;\n endDate?: Date | undefined;\n responseGroup?: string | undefined;\n objectType?: string | undefined;\n objectTypes?: string[] | undefined;\n objectIds?: string[] | undefined;\n keyword?: string | undefined;\n searchPhrase?: string | undefined;\n languageCode?: string | undefined;\n sort?: string | undefined;\n readonly sortInfos?: SortInfo[] | undefined;\n skip?: number;\n take?: number;\n}\n\nexport interface ChangeLogSearchResult {\n totalCount?: number;\n results?: OperationLog[] | undefined;\n}\n\nexport interface ChangePasswordRequest {\n userName?: string | undefined;\n oldPassword?: string | undefined;\n newPassword?: string | undefined;\n}\n\nexport interface ChangedEntitiesRequest {\n entityNames?: string[] | undefined;\n modifiedSince?: Date;\n}\n\nexport interface ChangedEntitiesResponse {\n entities?: ChangedEntity[] | undefined;\n}\n\nexport interface ChangedEntity {\n name?: string | undefined;\n modifiedDate?: Date;\n}\n\nexport interface Claim {\n issuer?: string | undefined;\n originalIssuer?: string | undefined;\n readonly properties?: { [key: string]: string } | undefined;\n subject?: ClaimsIdentity | undefined;\n type?: string | undefined;\n value?: string | undefined;\n valueType?: string | undefined;\n}\n\nexport interface ClaimsIdentity {\n authenticationType?: string | undefined;\n readonly isAuthenticated?: boolean;\n actor?: ClaimsIdentity | undefined;\n bootstrapContext?: any | undefined;\n claims?: Claim[] | undefined;\n label?: string | undefined;\n readonly name?: string | undefined;\n readonly nameClaimType?: string | undefined;\n readonly roleClaimType?: string | undefined;\n}\n\nexport interface ConfirmEmailRequest {\n token?: string | undefined;\n}\n\nexport interface CryptoProviderCache {}\n\nexport interface CryptoProviderFactory {\n readonly cryptoProviderCache?: CryptoProviderCache | undefined;\n customCryptoProvider?: ICryptoProvider | undefined;\n cacheSignatureProviders?: boolean;\n signatureProviderObjectPoolCacheSize?: number;\n}\n\nexport interface DeveloperToolDescriptor {\n name?: string | undefined;\n url?: string | undefined;\n isExternal?: boolean;\n sortOrder?: number;\n permission?: string | undefined;\n}\n\nexport interface DictionaryItem {\n alias?: string | undefined;\n localizedValues?: LocalizedValue[] | undefined;\n}\n\nexport interface DynamicObjectProperty {\n objectId?: string | undefined;\n values?: DynamicPropertyObjectValue[] | undefined;\n name?: string | undefined;\n description?: string | undefined;\n objectType?: string | undefined;\n isArray?: boolean;\n isDictionary?: boolean;\n isMultilingual?: boolean;\n isRequired?: boolean;\n displayOrder?: number | undefined;\n valueType?: DynamicObjectPropertyValueType;\n displayNames?: DynamicPropertyName[] | undefined;\n createdDate?: Date;\n modifiedDate?: Date | undefined;\n createdBy?: string | undefined;\n modifiedBy?: string | undefined;\n id?: string | undefined;\n}\n\nexport interface DynamicProperty {\n name?: string | undefined;\n description?: string | undefined;\n objectType?: string | undefined;\n isArray?: boolean;\n isDictionary?: boolean;\n isMultilingual?: boolean;\n isRequired?: boolean;\n displayOrder?: number | undefined;\n valueType?: DynamicPropertyValueType2;\n displayNames?: DynamicPropertyName[] | undefined;\n createdDate?: Date;\n modifiedDate?: Date | undefined;\n createdBy?: string | undefined;\n modifiedBy?: string | undefined;\n id?: string | undefined;\n}\n\nexport interface DynamicPropertyDictionaryItem {\n propertyId?: string | undefined;\n name?: string | undefined;\n displayNames?: DynamicPropertyDictionaryItemName[] | undefined;\n createdDate?: Date;\n modifiedDate?: Date | undefined;\n createdBy?: string | undefined;\n modifiedBy?: string | undefined;\n id?: string | undefined;\n}\n\nexport interface DynamicPropertyDictionaryItemName {\n locale?: string | undefined;\n name?: string | undefined;\n}\n\nexport interface DynamicPropertyDictionaryItemSearchCriteria {\n propertyId?: string | undefined;\n responseGroup?: string | undefined;\n objectType?: string | undefined;\n objectTypes?: string[] | undefined;\n objectIds?: string[] | undefined;\n keyword?: string | undefined;\n searchPhrase?: string | undefined;\n languageCode?: string | undefined;\n sort?: string | undefined;\n readonly sortInfos?: SortInfo[] | undefined;\n skip?: number;\n take?: number;\n}\n\nexport interface DynamicPropertyDictionaryItemSearchResult {\n totalCount?: number;\n results?: DynamicPropertyDictionaryItem[] | undefined;\n}\n\nexport interface DynamicPropertyName {\n locale?: string | undefined;\n name?: string | undefined;\n}\n\nexport interface DynamicPropertyObjectValue {\n objectType?: string | undefined;\n objectId?: string | undefined;\n locale?: string | undefined;\n value?: any | undefined;\n valueId?: string | undefined;\n valueType?: DynamicPropertyObjectValueValueType;\n propertyId?: string | undefined;\n propertyName?: string | undefined;\n}\n\nexport interface DynamicPropertySearchCriteria {\n readonly typeName?: string | undefined;\n responseGroup?: string | undefined;\n objectType?: string | undefined;\n objectTypes?: string[] | undefined;\n objectIds?: string[] | undefined;\n keyword?: string | undefined;\n searchPhrase?: string | undefined;\n languageCode?: string | undefined;\n sort?: string | undefined;\n readonly sortInfos?: SortInfo[] | undefined;\n skip?: number;\n take?: number;\n}\n\nexport interface DynamicPropertySearchResult {\n totalCount?: number;\n results?: DynamicProperty[] | undefined;\n}\n\nexport enum DynamicPropertyValueType {\n Undefined = \"Undefined\",\n ShortText = \"ShortText\",\n LongText = \"LongText\",\n Integer = \"Integer\",\n Decimal = \"Decimal\",\n DateTime = \"DateTime\",\n Boolean = \"Boolean\",\n Html = \"Html\",\n Image = \"Image\",\n}\n\nexport enum EntryState {\n Detached = \"Detached\",\n Unchanged = \"Unchanged\",\n Added = \"Added\",\n Deleted = \"Deleted\",\n Modified = \"Modified\",\n}\n\nexport interface ExternalSignInProviderInfo {\n authenticationType?: string | undefined;\n displayName?: string | undefined;\n logoUrl?: string | undefined;\n}\n\nexport interface ICryptoProvider {}\n\nexport interface IdentityError {\n code?: string | undefined;\n description?: string | undefined;\n}\n\nexport interface IdentityResult {\n readonly succeeded?: boolean;\n readonly errors?: IdentityError[] | undefined;\n}\n\nexport interface Job {\n state?: string | undefined;\n completed?: boolean;\n id?: string | undefined;\n}\n\nexport interface JsonElement {\n readonly valueKind?: JsonElementValueKind;\n}\n\nexport enum JsonValueKind {\n Undefined = \"Undefined\",\n Object = \"Object\",\n Array = \"Array\",\n String = \"String\",\n Number = \"Number\",\n True = \"True\",\n False = \"False\",\n Null = \"Null\",\n}\n\nexport interface JsonWebKey {\n readonly additionalData?: { [key: string]: any } | undefined;\n alg?: string | undefined;\n crv?: string | undefined;\n d?: string | undefined;\n dp?: string | undefined;\n dq?: string | undefined;\n e?: string | undefined;\n k?: string | undefined;\n keyId?: string | undefined;\n readonly keyOps?: string[] | undefined;\n kid?: string | undefined;\n kty?: string | undefined;\n n?: string | undefined;\n readonly oth?: string[] | undefined;\n p?: string | undefined;\n q?: string | undefined;\n qi?: string | undefined;\n use?: string | undefined;\n x?: string | undefined;\n readonly x5c?: string[] | undefined;\n x5t?: string | undefined;\n x5tS256?: string | undefined;\n x5u?: string | undefined;\n y?: string | undefined;\n readonly keySize?: number;\n readonly hasPrivateKey?: boolean;\n cryptoProviderFactory?: CryptoProviderFactory | undefined;\n}\n\nexport interface JsonWebKeySet {\n readonly additionalData?: { [key: string]: any } | undefined;\n readonly keys?: JsonWebKey[] | undefined;\n skipUnresolvedJsonWebKeys?: boolean;\n}\n\nexport interface KeyValue {\n key?: string | undefined;\n value?: string | undefined;\n}\n\nexport interface LastModifiedResponse {\n scope?: string | undefined;\n lastModifiedDate?: Date;\n}\n\nexport interface License {\n type?: string | undefined;\n customerName?: string | undefined;\n customerEmail?: string | undefined;\n expirationDate?: Date;\n rawLicense?: string | undefined;\n}\n\nexport interface LocalizableSetting {\n name?: string | undefined;\n isLocalizable?: boolean;\n items?: DictionaryItem[] | undefined;\n}\n\nexport interface LocalizableSettingsAndLanguages {\n settings?: LocalizableSetting[] | undefined;\n languages?: string[] | undefined;\n}\n\nexport interface LocalizedValue {\n languageCode?: string | undefined;\n value?: string | undefined;\n}\n\nexport interface LoginRequest {\n userName?: string | undefined;\n password?: string | undefined;\n rememberMe?: boolean;\n}\n\nexport interface LoginType {\n enabled?: boolean;\n hasLoginForm?: boolean;\n authenticationType?: string | undefined;\n priority?: number;\n}\n\nexport interface ModuleAutoInstallPushNotification {\n started?: Date | undefined;\n finished?: Date | undefined;\n progressLog?: ProgressMessage[] | undefined;\n readonly errorCount?: number;\n serverId?: string | undefined;\n creator?: string | undefined;\n created?: Date;\n isNew?: boolean;\n notifyType?: string | undefined;\n description?: string | undefined;\n title?: string | undefined;\n repeatCount?: number;\n id?: string | undefined;\n}\n\nexport interface ModuleDescriptor {\n version?: string | undefined;\n platformVersion?: string | undefined;\n title?: string | undefined;\n description?: string | undefined;\n authors?: string[] | undefined;\n owners?: string[] | undefined;\n licenseUrl?: string | undefined;\n projectUrl?: string | undefined;\n iconUrl?: string | undefined;\n requireLicenseAcceptance?: boolean;\n releaseNotes?: string | undefined;\n copyright?: string | undefined;\n tags?: string | undefined;\n groups?: string[] | undefined;\n dependencies?: ModuleIdentity[] | undefined;\n validationErrors?: string[] | undefined;\n isRemovable?: boolean;\n isInstalled?: boolean;\n installedVersion?: ModuleIdentity | undefined;\n id?: string | undefined;\n}\n\nexport interface ModuleIdentity {\n id?: string | undefined;\n version?: SemanticVersion | undefined;\n optional?: boolean;\n}\n\nexport interface ModulePushNotification {\n started?: Date | undefined;\n finished?: Date | undefined;\n progressLog?: ProgressMessage[] | undefined;\n readonly errorCount?: number;\n serverId?: string | undefined;\n creator?: string | undefined;\n created?: Date;\n isNew?: boolean;\n notifyType?: string | undefined;\n description?: string | undefined;\n title?: string | undefined;\n repeatCount?: number;\n id?: string | undefined;\n}\n\nexport interface OAuthAppSearchCriteria {\n responseGroup?: string | undefined;\n objectType?: string | undefined;\n objectTypes?: string[] | undefined;\n objectIds?: string[] | undefined;\n keyword?: string | undefined;\n searchPhrase?: string | undefined;\n languageCode?: string | undefined;\n sort?: string | undefined;\n readonly sortInfos?: SortInfo[] | undefined;\n skip?: number;\n take?: number;\n}\n\nexport interface OAuthAppSearchResult {\n totalCount?: number;\n results?: OpenIddictApplicationDescriptor[] | undefined;\n}\n\nexport interface ObjectSettingEntry {\n readonly itHasValues?: boolean;\n objectId?: string | undefined;\n objectType?: string | undefined;\n isReadOnly?: boolean;\n value?: any | undefined;\n id?: string | undefined;\n restartRequired?: boolean;\n moduleId?: string | undefined;\n groupName?: string | undefined;\n name?: string | undefined;\n displayName?: string | undefined;\n isRequired?: boolean;\n isHidden?: boolean;\n isPublic?: boolean;\n valueType?: ObjectSettingEntryValueType;\n allowedValues?: any[] | undefined;\n defaultValue?: any | undefined;\n isDictionary?: boolean;\n isLocalizable?: boolean;\n}\n\nexport interface OpenIddictApplicationDescriptor {\n applicationType?: string | undefined;\n clientId?: string | undefined;\n clientSecret?: string | undefined;\n clientType?: string | undefined;\n consentType?: string | undefined;\n displayName?: string | undefined;\n readonly displayNames?: { [key: string]: string } | undefined;\n jsonWebKeySet?: JsonWebKeySet | undefined;\n readonly permissions?: string[] | undefined;\n readonly postLogoutRedirectUris?: string[] | undefined;\n readonly properties?: { [key: string]: JsonElement } | undefined;\n readonly redirectUris?: string[] | undefined;\n readonly requirements?: string[] | undefined;\n readonly settings?: { [key: string]: string } | undefined;\n type?: string | undefined;\n}\n\nexport interface OpenIddictResponse {\n accessToken?: string | undefined;\n code?: string | undefined;\n deviceCode?: string | undefined;\n error?: string | undefined;\n errorDescription?: string | undefined;\n errorUri?: string | undefined;\n expiresIn?: number | undefined;\n idToken?: string | undefined;\n iss?: string | undefined;\n refreshToken?: string | undefined;\n scope?: string | undefined;\n state?: string | undefined;\n tokenType?: string | undefined;\n userCode?: string | undefined;\n verificationUri?: string | undefined;\n verificationUriComplete?: string | undefined;\n readonly count?: number;\n}\n\nexport interface OperationLog {\n objectType?: string | undefined;\n objectId?: string | undefined;\n operationType?: OperationLogOperationType;\n detail?: string | undefined;\n createdDate?: Date;\n modifiedDate?: Date | undefined;\n createdBy?: string | undefined;\n modifiedBy?: string | undefined;\n id?: string | undefined;\n}\n\nexport interface Permission {\n name?: string | undefined;\n moduleId?: string | undefined;\n groupName?: string | undefined;\n assignedScopes?: PermissionScope[] | undefined;\n readonly availableScopes?: PermissionScope[] | undefined;\n}\n\nexport interface PermissionScope {\n type?: string | undefined;\n label?: string | undefined;\n scope?: string | undefined;\n}\n\nexport interface ProgressMessage {\n message?: string | undefined;\n level?: ProgressMessageLevel2;\n}\n\nexport enum ProgressMessageLevel {\n Info = \"Info\",\n Warning = \"Warning\",\n Debug = \"Debug\",\n Error = \"Error\",\n}\n\nexport interface PushNotification {\n serverId?: string | undefined;\n creator?: string | undefined;\n created?: Date;\n isNew?: boolean;\n notifyType?: string | undefined;\n description?: string | undefined;\n title?: string | undefined;\n repeatCount?: number;\n id?: string | undefined;\n}\n\nexport interface PushNotificationSearchCriteria {\n ids?: string[] | undefined;\n onlyNew?: boolean;\n startDate?: Date | undefined;\n endDate?: Date | undefined;\n responseGroup?: string | undefined;\n objectType?: string | undefined;\n objectTypes?: string[] | undefined;\n objectIds?: string[] | undefined;\n keyword?: string | undefined;\n searchPhrase?: string | undefined;\n languageCode?: string | undefined;\n sort?: string | undefined;\n readonly sortInfos?: SortInfo[] | undefined;\n skip?: number;\n take?: number;\n}\n\nexport interface PushNotificationSearchResult {\n totalCount?: number;\n newCount?: number;\n notifyEvents?: PushNotification[] | undefined;\n}\n\nexport interface ResetPasswordConfirmRequest {\n token?: string | undefined;\n newPassword?: string | undefined;\n}\n\nexport interface ResetPasswordRequest {\n newPassword?: string | undefined;\n forcePasswordChangeOnNextSignIn?: boolean;\n}\n\nexport interface Role {\n description?: string | undefined;\n permissions?: Permission[] | undefined;\n id?: string | undefined;\n name?: string | undefined;\n normalizedName?: string | undefined;\n concurrencyStamp?: string | undefined;\n}\n\nexport interface RoleSearchCriteria {\n responseGroup?: string | undefined;\n objectType?: string | undefined;\n objectTypes?: string[] | undefined;\n objectIds?: string[] | undefined;\n keyword?: string | undefined;\n searchPhrase?: string | undefined;\n languageCode?: string | undefined;\n sort?: string | undefined;\n readonly sortInfos?: SortInfo[] | undefined;\n skip?: number;\n take?: number;\n}\n\nexport interface RoleSearchResult {\n readonly roles?: Role[] | undefined;\n totalCount?: number;\n results?: Role[] | undefined;\n}\n\nexport interface SecurityResult {\n succeeded?: boolean;\n errors?: string[] | undefined;\n}\n\nexport interface SemanticVersion {\n readonly major?: number;\n readonly minor?: number;\n readonly patch?: number;\n readonly prerelease?: string | undefined;\n}\n\nexport enum SettingValueType {\n ShortText = \"ShortText\",\n LongText = \"LongText\",\n Integer = \"Integer\",\n Decimal = \"Decimal\",\n DateTime = \"DateTime\",\n Boolean = \"Boolean\",\n SecureString = \"SecureString\",\n Json = \"Json\",\n PositiveInteger = \"PositiveInteger\",\n}\n\nexport interface SignInResult {\n readonly succeeded?: boolean;\n readonly isLockedOut?: boolean;\n readonly isNotAllowed?: boolean;\n readonly requiresTwoFactor?: boolean;\n}\n\nexport enum SortDirection {\n Ascending = \"Ascending\",\n Descending = \"Descending\",\n}\n\nexport interface SortInfo {\n sortColumn?: string | undefined;\n sortDirection?: SortInfoSortDirection;\n}\n\nexport interface StringIdentityUserRole {\n userId?: string | undefined;\n roleId?: string | undefined;\n}\n\nexport interface SystemInfo {\n platformVersion?: string | undefined;\n license?: License | undefined;\n installedModules?: ModuleDescriptor[] | undefined;\n version?: string | undefined;\n is64BitOperatingSystem?: boolean;\n is64BitProcess?: boolean;\n databaseProvider?: string | undefined;\n environmentName?: string | undefined;\n}\n\nexport interface UserApiKey {\n apiKey?: string | undefined;\n userName?: string | undefined;\n userId?: string | undefined;\n isActive?: boolean;\n createdDate?: Date;\n modifiedDate?: Date | undefined;\n createdBy?: string | undefined;\n modifiedBy?: string | undefined;\n id?: string | undefined;\n}\n\nexport interface UserDetail {\n permissions?: string[] | undefined;\n userName?: string | undefined;\n isAdministrator?: boolean;\n passwordExpired?: boolean;\n daysTillPasswordExpiry?: number;\n authenticationMethod?: string | undefined;\n isSsoAuthenticationMethod?: boolean;\n memberId?: string | undefined;\n id?: string | undefined;\n}\n\nexport interface UserLockedResult {\n locked?: boolean;\n}\n\nexport interface UserSearchCriteria {\n memberId?: string | undefined;\n memberIds?: string[] | undefined;\n modifiedSinceDate?: Date | undefined;\n roles?: string[] | undefined;\n lasLoginDate?: Date | undefined;\n onlyUnlocked?: boolean;\n responseGroup?: string | undefined;\n objectType?: string | undefined;\n objectTypes?: string[] | undefined;\n objectIds?: string[] | undefined;\n keyword?: string | undefined;\n searchPhrase?: string | undefined;\n languageCode?: string | undefined;\n sort?: string | undefined;\n readonly sortInfos?: SortInfo[] | undefined;\n skip?: number;\n take?: number;\n}\n\nexport interface UserSearchResult {\n readonly users?: ApplicationUser[] | undefined;\n totalCount?: number;\n results?: ApplicationUser[] | undefined;\n}\n\nexport interface UserSession {\n sessionGroupId?: string | undefined;\n createdDate?: Date;\n expirationDate?: Date;\n ipAddress?: string | undefined;\n userAgent?: string | undefined;\n id?: string | undefined;\n}\n\nexport interface UserSessionSearchCriteria {\n userId?: string | undefined;\n responseGroup?: string | undefined;\n objectType?: string | undefined;\n objectTypes?: string[] | undefined;\n objectIds?: string[] | undefined;\n keyword?: string | undefined;\n searchPhrase?: string | undefined;\n languageCode?: string | undefined;\n sort?: string | undefined;\n readonly sortInfos?: SortInfo[] | undefined;\n skip?: number;\n take?: number;\n}\n\nexport interface UserSessionSearchResult {\n totalCount?: number;\n results?: UserSession[] | undefined;\n}\n\nexport interface ValidatePasswordResetTokenRequest {\n token?: string | undefined;\n}\n\nexport interface VerifyTokenRequest {\n tokenProvider?: string | undefined;\n purpose?: string | undefined;\n token?: string | undefined;\n}\n\nexport interface Body {\n grant_type: string;\n scope?: string;\n username?: string;\n password?: string;\n storeId?: string;\n user_id?: string;\n\n [key: string]: any;\n}\n\nexport enum DynamicObjectPropertyValueType {\n Undefined = \"Undefined\",\n ShortText = \"ShortText\",\n LongText = \"LongText\",\n Integer = \"Integer\",\n Decimal = \"Decimal\",\n DateTime = \"DateTime\",\n Boolean = \"Boolean\",\n Html = \"Html\",\n Image = \"Image\",\n}\n\nexport enum DynamicPropertyValueType2 {\n Undefined = \"Undefined\",\n ShortText = \"ShortText\",\n LongText = \"LongText\",\n Integer = \"Integer\",\n Decimal = \"Decimal\",\n DateTime = \"DateTime\",\n Boolean = \"Boolean\",\n Html = \"Html\",\n Image = \"Image\",\n}\n\nexport enum DynamicPropertyObjectValueValueType {\n Undefined = \"Undefined\",\n ShortText = \"ShortText\",\n LongText = \"LongText\",\n Integer = \"Integer\",\n Decimal = \"Decimal\",\n DateTime = \"DateTime\",\n Boolean = \"Boolean\",\n Html = \"Html\",\n Image = \"Image\",\n}\n\nexport enum JsonElementValueKind {\n Undefined = \"Undefined\",\n Object = \"Object\",\n Array = \"Array\",\n String = \"String\",\n Number = \"Number\",\n True = \"True\",\n False = \"False\",\n Null = \"Null\",\n}\n\nexport enum ObjectSettingEntryValueType {\n ShortText = \"ShortText\",\n LongText = \"LongText\",\n Integer = \"Integer\",\n Decimal = \"Decimal\",\n DateTime = \"DateTime\",\n Boolean = \"Boolean\",\n SecureString = \"SecureString\",\n Json = \"Json\",\n PositiveInteger = \"PositiveInteger\",\n}\n\nexport enum OperationLogOperationType {\n Detached = \"Detached\",\n Unchanged = \"Unchanged\",\n Added = \"Added\",\n Deleted = \"Deleted\",\n Modified = \"Modified\",\n}\n\nexport enum ProgressMessageLevel2 {\n Info = \"Info\",\n Warning = \"Warning\",\n Debug = \"Debug\",\n Error = \"Error\",\n}\n\nexport enum SortInfoSortDirection {\n Ascending = \"Ascending\",\n Descending = \"Descending\",\n}\n\nexport class ApiException extends Error {\n override message: string;\n status: number;\n response: string;\n headers: { [key: string]: any };\n result: any;\n\n constructor(message: string, status: number, response: string, headers: { [key: string]: any }, result: any) {\n super();\n\n this.message = message;\n this.status = status;\n this.response = response;\n this.headers = headers;\n this.result = result;\n }\n\n protected isApiException = true;\n\n static isApiException(obj: any): obj is ApiException {\n return obj.isApiException === true;\n }\n}\n\nfunction throwException(\n message: string,\n status: number,\n response: string,\n headers: { [key: string]: any },\n result?: any,\n): any {\n if (result !== null && result !== undefined) throw result;\n else throw new ApiException(message, status, response, headers, null);\n}\n\n \n","/**\r\n * Logger utility for consistent logging throughout the framework.\r\n * Provides conditional logging based on environment and log levels.\r\n */\r\n\r\nexport type LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\" | \"none\";\r\n\r\ninterface LoggerConfig {\r\n level: LogLevel;\r\n prefix: string;\r\n enabled: boolean;\r\n}\r\n\r\nconst LOG_LEVELS: Record<LogLevel, number> = {\r\n debug: 0,\r\n info: 1,\r\n warn: 2,\r\n error: 3,\r\n none: 4,\r\n};\r\n\r\n/**\r\n * Default configuration - can be overridden per logger instance\r\n */\r\nconst defaultConfig: LoggerConfig = {\r\n level: (import.meta.env?.DEV ? \"debug\" : \"warn\") as LogLevel,\r\n prefix: \"@vc-shell/framework\",\r\n enabled: true,\r\n};\r\n\r\n/**\r\n * Creates a logger instance with optional context prefix\r\n * @param context - Additional context prefix for log messages\r\n * @returns Logger instance with log methods\r\n */\r\nexport function createLogger(context?: string) {\r\n const config = { ...defaultConfig };\r\n const prefix = context ? `[${config.prefix}#${context}]` : `[${config.prefix}]`;\r\n\r\n const shouldLog = (level: LogLevel): boolean => {\r\n if (!config.enabled) return false;\r\n return LOG_LEVELS[level] >= LOG_LEVELS[config.level];\r\n };\r\n\r\n return {\r\n /**\r\n * Log debug messages (only in development)\r\n */\r\n debug: (...args: unknown[]): void => {\r\n if (shouldLog(\"debug\")) {\r\n console.debug(prefix, ...args);\r\n }\r\n },\r\n\r\n /**\r\n * Log info messages\r\n */\r\n info: (...args: unknown[]): void => {\r\n if (shouldLog(\"info\")) {\r\n console.info(prefix, ...args);\r\n }\r\n },\r\n\r\n /**\r\n * Log warning messages\r\n */\r\n warn: (...args: unknown[]): void => {\r\n if (shouldLog(\"warn\")) {\r\n console.warn(prefix, ...args);\r\n }\r\n },\r\n\r\n /**\r\n * Log error messages\r\n */\r\n error: (...args: unknown[]): void => {\r\n if (shouldLog(\"error\")) {\r\n console.error(prefix, ...args);\r\n }\r\n },\r\n\r\n /**\r\n * Create a child logger with additional context\r\n */\r\n child: (childContext: string) => {\r\n return createLogger(context ? `${context}:${childContext}` : childContext);\r\n },\r\n\r\n /**\r\n * Set the log level for this logger instance\r\n */\r\n setLevel: (level: LogLevel): void => {\r\n config.level = level;\r\n },\r\n\r\n /**\r\n * Enable or disable logging\r\n */\r\n setEnabled: (enabled: boolean): void => {\r\n config.enabled = enabled;\r\n },\r\n };\r\n}\r\n\r\n/**\r\n * Default logger instance for general framework logging\r\n */\r\nexport const logger = createLogger();\r\n\r\n/**\r\n * Pre-configured loggers for common contexts\r\n */\r\nexport const loggers = {\r\n core: createLogger(\"core\"),\r\n ui: createLogger(\"ui\"),\r\n shared: createLogger(\"shared\"),\r\n plugins: createLogger(\"plugins\"),\r\n services: createLogger(\"services\"),\r\n composables: createLogger(\"composables\"),\r\n};\r\n","/**\r\n * Base error class for VC-Shell framework\r\n * Provides structured error handling with error codes and context\r\n */\r\nexport class FrameworkError extends Error {\r\n constructor(\r\n message: string,\r\n public readonly code: string,\r\n public readonly context?: Record<string, unknown>,\r\n ) {\r\n super(message);\r\n this.name = \"FrameworkError\";\r\n\r\n // Maintains proper stack trace for where our error was thrown (only available on V8)\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, FrameworkError);\r\n }\r\n }\r\n\r\n toJSON() {\r\n return {\r\n name: this.name,\r\n code: this.code,\r\n message: this.message,\r\n context: this.context,\r\n stack: this.stack,\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * Error thrown when validation fails\r\n */\r\nexport class ValidationError extends FrameworkError {\r\n constructor(message: string, context?: Record<string, unknown>) {\r\n super(message, \"VALIDATION_ERROR\", context);\r\n this.name = \"ValidationError\";\r\n }\r\n}\r\n\r\n/**\r\n * Error thrown when a service operation fails\r\n */\r\nexport class ServiceError extends FrameworkError {\r\n constructor(message: string, context?: Record<string, unknown>) {\r\n super(message, \"SERVICE_ERROR\", context);\r\n this.name = \"ServiceError\";\r\n }\r\n}\r\n\r\n/**\r\n * Error thrown when a required dependency is not provided\r\n */\r\nexport class InjectionError extends FrameworkError {\r\n constructor(serviceName: string, context?: Record<string, unknown>) {\r\n super(`${serviceName} not provided. Make sure to call the corresponding 'provide' function.`, \"INJECTION_ERROR\", {\r\n serviceName,\r\n ...context,\r\n });\r\n this.name = \"InjectionError\";\r\n }\r\n}\r\n\r\n/**\r\n * Error thrown when component registration fails\r\n */\r\nexport class RegistrationError extends FrameworkError {\r\n constructor(componentName: string, reason: string, context?: Record<string, unknown>) {\r\n super(`Failed to register '${componentName}': ${reason}`, \"REGISTRATION_ERROR\", {\r\n componentName,\r\n ...context,\r\n });\r\n this.name = \"RegistrationError\";\r\n }\r\n}\r\n\r\n/**\r\n * Error thrown when a blade operation fails\r\n */\r\nexport class BladeError extends FrameworkError {\r\n constructor(message: string, bladeId?: string, context?: Record<string, unknown>) {\r\n super(message, \"BLADE_ERROR\", {\r\n bladeId,\r\n ...context,\r\n });\r\n this.name = \"BladeError\";\r\n }\r\n}\r\n\r\n/**\r\n * Error thrown when module loading fails\r\n */\r\nexport class ModuleLoadError extends FrameworkError {\r\n constructor(moduleId: string, reason: string, context?: Record<string, unknown>) {\r\n super(`Failed to load module '${moduleId}': ${reason}`, \"MODULE_LOAD_ERROR\", {\r\n moduleId,\r\n ...context,\r\n });\r\n this.name = \"ModuleLoadError\";\r\n }\r\n}\r\n\r\n/**\r\n * Type guard to check if an error is a FrameworkError\r\n */\r\nexport function isFrameworkError(error: unknown): error is FrameworkError {\r\n return error instanceof FrameworkError;\r\n}\r\n\r\n/**\r\n * Wraps an unknown error into a FrameworkError\r\n */\r\nexport function wrapError(error: unknown, code = \"UNKNOWN_ERROR\"): FrameworkError {\r\n if (isFrameworkError(error)) {\r\n return error;\r\n }\r\n\r\n if (error instanceof Error) {\r\n return new FrameworkError(error.message, code, {\r\n originalError: error.name,\r\n stack: error.stack,\r\n });\r\n }\r\n\r\n return new FrameworkError(String(error), code);\r\n}\r\n","import { useLocalStorage } from \"@vueuse/core\";\nimport type { Ref } from \"vue\";\nimport { ExternalSignInClient, ExternalSignInProviderInfo } from \"@core/api/platform\";\nimport { createLogger } from \"@core/utilities\";\n\nconst logger = createLogger(\"use-external-provider\");\n\nexport interface IUseExternalProvider {\n storage: Ref<{ providerType?: string | undefined }>;\n signIn: (authenticationType?: string) => Promise<void>;\n signOut: (authenticationType: string) => Promise<void>;\n getProviders: () => Promise<ExternalSignInProviderInfo[] | undefined>;\n}\n\nconst VC_EXTERNAL_AUTH_DATA_KEY = \"externalSignIn\";\n\nexport const useExternalProvider = (): IUseExternalProvider => {\n const externalSecurityClient = new ExternalSignInClient();\n const externalSignInStorage = useLocalStorage<{ providerType?: string | undefined }>(\n VC_EXTERNAL_AUTH_DATA_KEY,\n {},\n {\n listenToStorageChanges: true,\n deep: true,\n },\n );\n\n function getReturnUrlValue(): string | null {\n const { searchParams } = new URL(location.href);\n return searchParams.get(\"returnUrl\") || searchParams.get(\"ReturnUrl\");\n }\n\n async function externalSignIn(authenticationType?: string) {\n try {\n const origin = window.location.origin;\n const finalReturnUrl = window.location.pathname ?? getReturnUrlValue() ?? \"/\";\n\n if (!authenticationType) {\n throw new Error(\"The parameter 'authenticationType' cannot be null or undefined.\");\n }\n\n // const oidcUrlObject = new URL(oidcUrl, origin);\n // const callbackUrl = new URL(\"/auth/callback\", origin);\n const url = new URL(\"/externalsignin\", origin);\n\n // Set query parameters\n // callbackUrl.searchParams.set(\"returnUrl\", finalReturnUrl);\n url.searchParams.set(\"authenticationType\", authenticationType);\n // url.searchParams.set(\"callbackUrl\", callbackUrl.href);\n url.searchParams.set(\"returnUrl\", finalReturnUrl);\n\n // Store sign-in data\n externalSignInStorage.value = { providerType: authenticationType };\n\n // Redirect to the constructed URL\n window.location.assign(url);\n } catch (e) {\n logger.error(\"External sign-in failed:\", e);\n throw e;\n }\n }\n\n async function externalSignOut(authenticationType: string) {\n try {\n const origin = window.location.origin;\n const returnUrl = window.location.pathname ?? \"/\";\n\n const url = new URL(\"/externalsignin/signout\", origin);\n\n // Set query parameters\n url.searchParams.set(\"authenticationType\", authenticationType);\n url.searchParams.set(\"returnUrl\", returnUrl);\n\n // Clear sign-in data\n externalSignInStorage.value = {};\n\n // Redirect to the sign-out URL\n window.location.assign(url);\n } catch (e) {\n logger.error(\"External sign-out failed:\", e);\n throw e;\n }\n }\n\n async function getExternalLoginProviders() {\n let result: ExternalSignInProviderInfo[] | undefined = undefined;\n try {\n result = await externalSecurityClient.getExternalLoginProviders();\n } catch (e) {\n logger.error(\"Failed to get external login providers:\", e);\n }\n\n return result;\n }\n\n return {\n storage: externalSignInStorage,\n signIn: externalSignIn,\n signOut: externalSignOut,\n getProviders: getExternalLoginProviders,\n };\n};\n","import { computed, Ref, ref, ComputedRef } from \"vue\";\nimport {\n UserDetail,\n SecurityClient,\n ResetPasswordConfirmRequest,\n SecurityResult,\n ValidatePasswordResetTokenRequest,\n IdentityResult,\n ChangePasswordRequest,\n LoginType,\n LoginRequest,\n SignInResult,\n} from \"@core/api/platform\";\nimport type { RequestPasswordResult } from \"@core/types\";\nimport { createSharedComposable } from \"@vueuse/core\";\nimport { useExternalProvider } from \"@core/composables/useExternalProvider\";\nimport { createLogger } from \"@core/utilities\";\n\nexport interface TokenData {\n token: string | null;\n access_token: string | null;\n refresh_token: string | null;\n expires_at: number | null;\n}\n\nconst AUTH_STORAGE_KEY = \"vc_auth_data\";\n\nconst logger = createLogger(\"use-user\");\n\n// Interface for the full internal API provided by _createInternalUserLogic\nexport interface IUserInternalAPI {\n user: ComputedRef<UserDetail | undefined>;\n loading: ComputedRef<boolean>;\n isAdministrator: ComputedRef<boolean | undefined>;\n loadUser: () => Promise<UserDetail>;\n signIn: (username: string, password: string) => Promise<SignInResult | { succeeded: boolean; error?: any }>;\n signOut: () => Promise<void>;\n validateToken: (userId: string, token: string) => Promise<boolean>;\n validatePassword: (password: string) => Promise<IdentityResult>;\n resetPasswordByToken: (userId: string, password: string, token: string) => Promise<SecurityResult>;\n requestPasswordReset: (loginOrEmail: string) => Promise<RequestPasswordResult>;\n changeUserPassword: (oldPassword: string, newPassword: string) => Promise<SecurityResult | undefined>;\n getLoginType: () => Promise<LoginType[]>;\n getAccessToken: () => Promise<string | null>;\n isAuthenticated: ComputedRef<boolean>;\n}\n\nexport interface UseUserReturn {\n user: ComputedRef<UserDetail | undefined>;\n loading: ComputedRef<boolean>;\n isAuthenticated: ComputedRef<boolean>;\n isAdministrator: ComputedRef<boolean | undefined>;\n loadUser: () => Promise<UserDetail>;\n signOut: () => Promise<void>;\n getAccessToken: () => Promise<string | null>;\n}\n\n/** @deprecated Use UseUserReturn instead */\nexport type IAppUserAPI = UseUserReturn;\n\nfunction readAuthData(): TokenData | null {\n try {\n const stored = localStorage.getItem(AUTH_STORAGE_KEY);\n if (stored) {\n return JSON.parse(stored) as TokenData;\n }\n } catch (e) {\n logger.error(\"Failed to read auth data from storage:\", e);\n }\n return null;\n}\n\nfunction storeAuthData(data: TokenData): void {\n try {\n logger.debug(\"storeAuthData - Saving:\", data);\n localStorage.setItem(AUTH_STORAGE_KEY, JSON.stringify(data));\n logger.debug(\"storeAuthData - Saved successfully\");\n } catch (e) {\n logger.error(\"Failed to store auth data:\", e);\n }\n}\n\nfunction clearAuthData(): void {\n try {\n localStorage.removeItem(AUTH_STORAGE_KEY);\n } catch (e) {\n logger.error(\"Failed to clear auth data:\", e);\n }\n}\n\n// Direct fetch to /connect/token endpoint\nasync function fetchToken(params: Record<string, string>): Promise<TokenData | null> {\n try {\n const body = new URLSearchParams(params).toString();\n\n const response = await fetch(\"/connect/token\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n body,\n });\n\n if (!response.ok) {\n const errorBody = await response.text();\n logger.error(\"fetchToken - HTTP error:\", response.status, response.statusText, errorBody);\n return null;\n }\n\n const data = await response.json();\n logger.debug(\"fetchToken - Response:\", data);\n\n const accessToken = data.access_token;\n const refreshToken = data.refresh_token;\n const expiresIn = data.expires_in;\n\n if (data.error || !accessToken) {\n logger.error(\"fetchToken - Error:\", data.error_description || data.error || \"No access token\");\n return null;\n }\n\n const expiresAt = expiresIn ? Date.now() + expiresIn * 1000 : null;\n\n return {\n token: accessToken,\n access_token: accessToken,\n refresh_token: refreshToken ?? null,\n expires_at: expiresAt,\n };\n } catch (e) {\n logger.error(\"fetchToken - Exception:\", e);\n return null;\n }\n}\n\nexport function _createInternalUserLogic(): IUserInternalAPI {\n const loading: Ref<boolean> = ref(false);\n const user: Ref<UserDetail | undefined> = ref();\n const authData: Ref<TokenData | null> = ref(null);\n\n const { storage: externalSignInStorage, signOut: externalSignOut } = useExternalProvider();\n\n const securityClient = new SecurityClient();\n\n const isAuthenticated = computed(() => user.value?.userName != null);\n\n async function validateToken(userId: string, token: string): Promise<boolean> {\n let result = false;\n try {\n loading.value = true;\n result = await securityClient.validatePasswordResetToken(userId, {\n token,\n } as ValidatePasswordResetTokenRequest);\n } catch (_e) {\n //TODO: log error\n } finally {\n loading.value = false;\n }\n return result;\n }\n\n async function validatePassword(password: string): Promise<IdentityResult> {\n return securityClient.validatePassword(password);\n }\n\n async function resetPasswordByToken(userId: string, password: string, token: string): Promise<SecurityResult> {\n return securityClient.resetPasswordByToken(userId, {\n newPassword: password,\n token,\n } as ResetPasswordConfirmRequest);\n }\n\n async function signIn(\n username: string,\n password: string,\n ): Promise<SignInResult | { succeeded: boolean; error?: any; status?: number }> {\n logger.debug(\"signIn - Entry point\");\n try {\n loading.value = true;\n\n // First do the standard login to set cookies/session\n const result = await securityClient.login({ userName: username, password } as LoginRequest);\n logger.debug(\"signIn - Cookie login completed:\", result);\n\n if (!result.succeeded) {\n return result;\n }\n\n // Then get OAuth token for API calls (direct fetch, bypasses API client)\n // Request offline_access scope to get refresh_token for automatic token renewal\n logger.debug(\"signIn - Requesting token...\");\n const tokenData = await fetchToken({\n grant_type: \"password\",\n username,\n password,\n scope: \"offline_access\",\n });\n\n if (tokenData) {\n authData.value = tokenData;\n storeAuthData(authData.value);\n logger.debug(\"signIn - Token saved:\", authData.value);\n }\n\n // Load current user info\n const userInfo = await securityClient.getCurrentUser();\n if (userInfo) {\n user.value = userInfo;\n return result;\n }\n\n throw { succeeded: false };\n } catch (e: any) {\n logger.error(\"signIn failed:\", e);\n\n // Extract human-readable error from ApiException.response (raw JSON from server)\n let error = e.message;\n if (e.response) {\n try {\n const body = JSON.parse(e.response);\n error = body.errorDescription || body.errors?.[0]?.description || body.error || error;\n } catch {\n // response is not JSON, keep e.message\n }\n }\n\n return { succeeded: false, error, status: e.status };\n } finally {\n loading.value = false;\n }\n }\n\n async function signOut(): Promise<void> {\n logger.debug(\"signOut - Entry point\");\n\n user.value = undefined;\n\n // Clear stored auth data\n clearAuthData();\n authData.value = null;\n\n if (externalSignInStorage.value?.providerType) {\n await externalSignOut(externalSignInStorage.value.providerType);\n } else {\n securityClient.logout();\n }\n }\n\n let loadUserPromise: Promise<UserDetail> | null = null;\n\n async function loadUser(): Promise<UserDetail> {\n // Deduplicate concurrent calls — reuse the in-flight promise\n if (loadUserPromise) {\n return loadUserPromise;\n }\n\n loadUserPromise = (async () => {\n logger.debug(\"loadUser - Entry point\");\n\n try {\n loading.value = true;\n performance.mark(\"vc:auth-start\");\n\n // getCurrentUser() and getAccessToken() have no data dependency.\n // getAccessToken() reads from localStorage (sync ~0ms) or refreshes via /connect/token.\n // Running in parallel saves one sequential round-trip on token refresh paths.\n const [userDetail] = await Promise.all([securityClient.getCurrentUser(), getAccessToken()]);\n\n user.value = userDetail;\n performance.mark(\"vc:auth-done\");\n logger.debug(\"User details loaded:\", user.value);\n } catch (e: any) {\n logger.error(\"loadUser failed:\", e);\n } finally {\n loading.value = false;\n loadUserPromise = null;\n }\n\n return { ...user.value } as UserDetail;\n })();\n\n return loadUserPromise;\n }\n\n async function requestPasswordReset(loginOrEmail: string): Promise<RequestPasswordResult> {\n try {\n loading.value = true;\n await securityClient.requestPasswordReset(loginOrEmail);\n return { succeeded: true };\n } catch (e) {\n //TODO: log error\n return { succeeded: false, error: e as string };\n } finally {\n loading.value = false;\n }\n }\n\n async function changeUserPassword(oldPassword: string, newPassword: string): Promise<SecurityResult | undefined> {\n let result;\n\n try {\n loading.value = true;\n const command: ChangePasswordRequest = {\n oldPassword,\n newPassword,\n };\n\n result = await securityClient.changeCurrentUserPassword(command);\n } catch (e: any) {\n return { succeeded: false, errors: [e.message] } as SecurityResult;\n } finally {\n loading.value = false;\n }\n\n return result;\n }\n\n async function getLoginType() {\n let result: LoginType[] | null = null;\n try {\n result = await securityClient.getLoginTypes();\n } catch (e) {\n logger.error(\"getLoginType failed:\", e);\n throw e;\n }\n\n return result;\n }\n\n // Buffer time in ms - refresh token this much before actual expiration\n const TOKEN_REFRESH_BUFFER_MS = 60 * 1000; // 60 seconds\n\n async function getAccessToken(): Promise<string | null> {\n logger.debug(\"getAccessToken - Entry point\");\n\n // Load auth data from storage if not yet loaded\n if (!authData.value) {\n authData.value = readAuthData();\n }\n\n // No auth data available\n if (!authData.value) {\n logger.debug(\"getAccessToken - No auth data available\");\n return null;\n }\n\n // Check if token is expired or about to expire (with buffer)\n const now = Date.now();\n const expiresAt = authData.value.expires_at;\n const shouldRefresh = expiresAt ? now >= expiresAt - TOKEN_REFRESH_BUFFER_MS : false;\n\n logger.debug(\"getAccessToken - Token status:\", {\n hasToken: !!authData.value.access_token,\n expiresAt: expiresAt ? new Date(expiresAt).toISOString() : \"not set\",\n now: new Date(now).toISOString(),\n shouldRefresh,\n hasRefreshToken: !!authData.value.refresh_token,\n });\n\n if (shouldRefresh && authData.value.refresh_token) {\n logger.debug(\"getAccessToken - Token expired or expiring soon, attempting refresh\");\n\n const tokenData = await fetchToken({\n grant_type: \"refresh_token\",\n refresh_token: authData.value.refresh_token,\n scope: \"offline_access\",\n });\n\n if (tokenData) {\n // Keep old refresh_token if new one not provided\n tokenData.refresh_token = tokenData.refresh_token ?? authData.value.refresh_token;\n authData.value = tokenData;\n storeAuthData(authData.value);\n logger.debug(\"getAccessToken - Token refreshed successfully, new expiry:\", {\n expiresAt: tokenData.expires_at ? new Date(tokenData.expires_at).toISOString() : \"not set\",\n });\n } else {\n // Refresh failed - log error but return existing token (it might still work)\n // Don't clear auth data - let the API call fail naturally if token is truly invalid\n logger.warn(\"getAccessToken - Failed to refresh token, returning existing token\");\n }\n }\n\n return authData.value?.access_token ?? authData.value?.token ?? null;\n }\n\n return {\n user: computed(() => user.value),\n loading: computed(() => loading.value),\n isAdministrator: computed(() => user.value?.isAdministrator),\n isAuthenticated,\n loadUser,\n signIn,\n signOut,\n validateToken,\n validatePassword,\n resetPasswordByToken,\n requestPasswordReset,\n changeUserPassword,\n getLoginType,\n getAccessToken,\n };\n}\n\n// Single shared instance across the entire application.\n// All callers of useUser()/useUserManagement() observe the same internals.\n// NOTE: createSharedComposable reference-counts subscribers via tryOnScopeDispose and\n// disposes the factory when the count drops to zero. Our app bootstrap calls\n// useUserManagement() from the interceptor registration (outside any component scope),\n// which pins the singleton: a no-scope subscriber is never decremented, so the\n// instance survives component mount/unmount cycles for the lifetime of the app.\nexport const _sharedInternalUserLogic = createSharedComposable(_createInternalUserLogic);\n\nexport const useUser = (): UseUserReturn => {\n const internals = _sharedInternalUserLogic();\n return {\n user: internals.user,\n loading: internals.loading,\n isAuthenticated: internals.isAuthenticated,\n isAdministrator: internals.isAdministrator,\n loadUser: internals.loadUser,\n signOut: internals.signOut,\n getAccessToken: internals.getAccessToken,\n };\n};\n","import { Router } from \"vue-router\";\nimport { Component, Ref, InjectionKey, ComputedRef, VNode } from \"vue\";\nimport type { MenuItemConfig, MenuItemBadgeConfig } from \"@core/types/menu-types\";\nimport type { Breadcrumbs } from \"@core/types/breadcrumbs\";\n\nexport type CoreDynamicBladeComponentProps = {\n model?: any;\n composables?: any;\n};\n\n// ─── defineBlade types ────────────────────────────────────────────────────────\n\n/**\n * Menu item configuration for defineBlade().\n * Clean subset of MenuItemConfig — deprecated fields (group, groupIcon, inGroupPriority) excluded.\n */\nexport interface BladeMenuItemConfig {\n title: string;\n icon: string;\n priority: number;\n groupConfig?: {\n id: string;\n title?: string;\n icon?: string;\n priority?: number;\n permissions?: string | string[];\n badge?: MenuItemBadgeConfig;\n };\n permissions?: string | string[];\n badge?: MenuItemBadgeConfig;\n}\n\n/**\n * Full blade definition passed to defineBlade().\n * Includes `name` — the Vite plugin splits it: name → defineOptions, rest → registry.\n */\nexport interface BladeDefinition {\n name: string;\n url?: `/${string}`;\n isWorkspace?: boolean;\n routable?: boolean;\n permissions?: string | string[];\n menuItem?: BladeMenuItemConfig;\n}\n\n/**\n * Blade config stored in the global registry (BladeDefinition minus name).\n */\nexport type BladeConfig = Omit<BladeDefinition, \"name\">;\n\n// ─── Adapter stubs (kept for backward compatibility in adapter layer) ────────\n// These are simplified stubs of the former complex deprecated types.\n// New code should NOT use them — use BladeDescriptor / BladeOpenEvent / useBlade() instead.\n\n/** @deprecated Stub — use `Record<string, any>` or blade's own exposed type */\nexport type CoreBladeExposed = Record<string, any>;\n\n/** @deprecated Stub — use `useBlade().callParent()` instead of `parent:call` events */\nexport interface IParentCallArgs {\n method: string;\n args?: unknown;\n callback?: (args: unknown) => void;\n}\n\n/** @deprecated Stub — use `Component` directly */\n\nexport type BladeInstanceConstructor<_T extends Component = Component> = Component & {\n menuItem?: MenuItemConfig;\n [key: string]: any;\n};\n\n/** @deprecated Stub — use `BladeOpenEvent` instead */\nexport interface IBladeEvent<T extends Component = Component> {\n blade: BladeInstanceConstructor<T> | { name: string } | undefined;\n options?: Record<string, any>;\n param?: string;\n onOpen?: () => void;\n onClose?: () => void;\n replaceCurrentBlade?: boolean;\n}\n\nexport interface BladeNavigationPlugin {\n router: Router;\n}\n\n/** @deprecated Stub — use blade registry data instead */\nexport interface BladeRoutesRecord {\n component: Component;\n name: string;\n isWorkspace: boolean;\n route: string;\n}\n\n/** @deprecated Stub — used only in adapter shims, not real VNodes */\nexport interface BladeVNode {\n props: {\n navigation: {\n onOpen?: () => void;\n onClose?: () => void;\n onBeforeClose?: () => Promise<boolean | undefined>;\n error?: Ref<Error | null>;\n instance: CoreBladeExposed | undefined | null;\n idx: number;\n isVisible?: boolean;\n };\n param?: string;\n options?: Record<string, any>;\n expanded?: boolean;\n closable?: boolean;\n };\n type: { name?: string; url?: string; [key: string]: any };\n}\n\n// ─── New Blade Navigation Types (BladeStack architecture) ─────────────────────\n\n/**\n * Plain data descriptor for a blade instance in the stack. Purely reactive data.\n */\nexport interface BladeDescriptor {\n /** Unique per open blade instance (generated at open time) */\n id: string;\n /** Registered component name (e.g. \"OrderDetails\") from defineOptions */\n name: string;\n /** URL segment (e.g. \"/order\") from defineOptions — used for URL construction */\n url?: string;\n /** Entity ID — appears in URL path */\n param?: string;\n /** Small key-value pairs — serialized to URL query params */\n query?: Record<string, string>;\n /** Large context data — stored in history.state only, not in URL */\n options?: Record<string, unknown>;\n /** ID of the blade that opened this one (undefined for workspace) */\n parentId?: string;\n /** Whether this blade is currently visible */\n visible: boolean;\n /** Error state for this blade */\n error?: unknown;\n /** Blade title — populated at runtime by VcBlade via setBladeTitle() */\n title?: string;\n /** Whether this blade is maximized (fullscreen) — set by VcBladeSlot */\n maximized?: boolean;\n /** Navigation breadcrumbs — set by VcBladeSlot */\n breadcrumbs?: Breadcrumbs[];\n}\n\n/**\n * Event object for opening a blade.\n * Used by BladeStack.openBlade, openWorkspace, replaceCurrentBlade.\n */\nexport interface BladeOpenEvent {\n /** Registered component name — resolved via BladeRegistry */\n name: string;\n /** Entity ID for the blade */\n param?: string;\n /** Small key-value pairs for URL query */\n query?: Record<string, string>;\n /** Large context data — stored in history.state only */\n options?: Record<string, unknown>;\n /** Called after the blade is opened */\n onOpen?: () => void;\n /** Called after the blade is closed */\n onClose?: () => void;\n /** If true, replaces current blade instead of opening a new one */\n replaceCurrentBlade?: boolean;\n}\n\n/**\n * Result of parsing a blade URL into its segments.\n */\nexport interface ParsedBladeUrl {\n /** Workspace URL segment (e.g. \"orders\") */\n workspaceUrl?: string;\n /** Child blade URL segment (e.g. \"order\") */\n bladeUrl?: string;\n /** Entity ID from the URL path */\n param?: string;\n}\n\n/**\n * Public interface for the BladeStack state machine.\n */\nexport interface IBladeStack {\n /** The workspace blade (first in stack) */\n readonly workspace: ComputedRef<BladeDescriptor | undefined>;\n /** All blades in the stack (including workspace at [0]) */\n readonly blades: ComputedRef<readonly BladeDescriptor[]>;\n /** The last visible blade */\n readonly activeBlade: ComputedRef<BladeDescriptor | undefined>;\n\n /** Switch to a different workspace — clears all existing blades */\n openWorkspace(event: BladeOpenEvent): Promise<void>;\n /** Open a new blade as a child of the active blade */\n openBlade(event: BladeOpenEvent & { parentId?: string }): Promise<void>;\n /** Close a blade by ID. Returns true if close was prevented by a guard. */\n closeBlade(bladeId: string): Promise<boolean>;\n /** Replace the current active blade — destroys old, creates new at same position */\n replaceCurrentBlade(event: BladeOpenEvent & { parentId?: string }): Promise<void>;\n /** Cover the current blade — hides it and opens a new blade on top (closing reveals the hidden blade) */\n coverCurrentBlade(event: BladeOpenEvent & { parentId?: string }): Promise<void>;\n /** Close all children of a blade (deepest first, respecting guards) */\n closeChildren(parentId: string): Promise<void>;\n\n /**\n * Register a before-close guard for a blade.\n *\n * Guard semantics (NEW API): return `true` to PREVENT close, `false` to ALLOW.\n *\n * **Note**: The legacy `onBeforeClose` callback has INVERTED semantics:\n * return `false` to prevent, `undefined`/`true` to allow.\n * The adapter in `useBladeNavigationAdapter.ts` handles this inversion.\n */\n registerBeforeClose(bladeId: string, guard: () => Promise<boolean>): void;\n /** Unregister a before-close guard */\n unregisterBeforeClose(bladeId: string): void;\n\n /** Set an error on a blade */\n setBladeError(bladeId: string, error: unknown): void;\n /** Clear a blade's error */\n clearBladeError(bladeId: string): void;\n\n /** Update a blade's title (called by VcBlade when title prop changes) */\n setBladeTitle(bladeId: string, title: string | undefined): void;\n\n /** Restore stack from descriptors (used by HistoryManager — bypasses guards) */\n _restoreStack(descriptors: BladeDescriptor[]): void;\n}\n\n/**\n * Public interface for inter-blade messaging.\n */\nexport interface IBladeMessaging {\n /** Expose methods to child blades */\n exposeToChildren(bladeId: string, methods: Record<string, (...args: any[]) => any>): void;\n /** Call a method exposed by the parent blade */\n callParent<T = unknown>(callerBladeId: string, method: string, args?: unknown): Promise<T>;\n /** Remove all exposed methods for a blade (cleanup on close) */\n cleanup(bladeId: string): void;\n}\n\n// ─── Injection Keys for new BladeStack architecture ───────────────────────────\n\nexport const BladeStackKey: InjectionKey<IBladeStack> = Symbol(\"BladeStack\");\nexport const BladeMessagingKey: InjectionKey<IBladeMessaging> = Symbol(\"BladeMessaging\");\nexport const BladeDescriptorKey: InjectionKey<ComputedRef<BladeDescriptor>> = Symbol(\"BladeDescriptor\");\nexport const BladeMaximizedKey: InjectionKey<Ref<boolean>> = Symbol(\"BladeMaximized\");\nexport const BladeDataKey: InjectionKey<ComputedRef<Record<string, unknown>> | Ref<Record<string, unknown>>> =\n Symbol(\"BladeData\");\n\n// ─── Blade Banners ────────────────────────────────────────────────────────────\n\n/**\n * A banner displayed at the top of a blade (between header and toolbar).\n * Used for error, warning, info, and success messages.\n */\nexport interface IBladeBanner {\n /** Unique identifier (auto-generated by addBanner) */\n id: string;\n /** Visual variant — determines color scheme and default icon */\n variant: \"danger\" | \"warning\" | \"info\" | \"success\";\n /** Plain text message */\n message?: string;\n /** Custom render function for complex content (takes priority over message) */\n render?: () => VNode;\n /** Whether the user can dismiss this banner (default: false) */\n dismissible?: boolean;\n /** Override the default variant icon (lucide icon name) */\n icon?: string;\n /** Optional action button displayed on the right */\n action?: {\n label: string;\n handler: () => void;\n };\n /** @internal System banners (error/modified) — protected from clearBanners() */\n _system?: boolean;\n}\n\nexport const BladeBannersKey: InjectionKey<Ref<IBladeBanner[]>> = Symbol(\"BladeBanners\");\n","import { InjectionKey, ComputedRef, type Component, type Ref } from \"vue\";\nimport { BladeDataKey } from \"@core/blade-navigation/types\";\nimport type { BladeRoutesRecord } from \"@core/blade-navigation/types\";\nimport type { NotificationStore } from \"@core/notifications/store\";\nimport { IToolbarService } from \"@core/services/toolbar-service\";\nimport { IAiAgentService } from \"@core/plugins/ai-agent/types\";\nimport type { BladeFormInjection } from \"@core/composables/useBladeForm/types\";\n\nimport type { IWidgetService } from \"@core/services/widget-service\";\nimport type { IWidgetScope } from \"@core/services/widget-service\";\nimport type { IDashboardService } from \"@core/services/dashboard-service\";\nimport type { GlobalSearchState as _GlobalSearchState } from \"@core/services/global-search-service\";\nimport type { MenuService } from \"@core/services/menu-service\";\nimport type { ISettingsMenuService } from \"@core/services/settings-menu-service\";\nimport type { IAppBarWidgetService } from \"@core/services/app-bar-menu-service\";\nimport type { IAppBarMobileButtonsService } from \"@core/services/app-bar-mobile-buttons-service\";\nimport type { ILanguageService } from \"@core/services/language-service\";\n\n// Blade navigation keys\nexport const BladeBackButtonKey: InjectionKey<Component | undefined> = Symbol(\"BladeBackButton\");\nexport { BladeDataKey };\n\n// Notification keys\nexport const NotificationStoreKey: InjectionKey<NotificationStore> = Symbol(\"NotificationStore\");\n\n// Service keys\nexport const WidgetServiceKey: InjectionKey<IWidgetService> = Symbol(\"WidgetService\");\nexport const DashboardServiceKey: InjectionKey<IDashboardService> = Symbol(\"DashboardService\");\nexport const MenuServiceKey: InjectionKey<MenuService> = Symbol(\"MenuService\");\nexport const SettingsMenuServiceKey: InjectionKey<ISettingsMenuService> = Symbol(\"SettingsMenuService\");\nexport const AppBarWidgetServiceKey: InjectionKey<IAppBarWidgetService> = Symbol(\"AppBarWidgetService\");\nexport const AppBarMobileButtonsServiceKey: InjectionKey<IAppBarMobileButtonsService> =\n Symbol(\"AppBarMobileButtonsService\");\nexport const LanguageServiceKey: InjectionKey<ILanguageService> = Symbol(\"LanguageService\");\nexport const ToolbarServiceKey: InjectionKey<IToolbarService> = Symbol(\"ToolbarService\");\n\n/**\n * Registry of dynamic modules available via provide/inject.\n * Consumers can extend this interface via declaration merging:\n *\n * @example\n * ```typescript\n * declare module '@vc-shell/framework' {\n * interface DynamicModuleRegistry {\n * myModule: MyModuleApi;\n * }\n * }\n * ```\n */\nexport interface DynamicModuleRegistry {\n [key: string]: unknown;\n}\n\n// Module keys\nexport const DynamicModulesKey: InjectionKey<DynamicModuleRegistry | undefined> = Symbol(\"DynamicModules\");\n\n// Module loading completion state (Phase 2: two-phase bootstrap)\nexport const ModulesReadyKey: InjectionKey<Ref<boolean>> = Symbol(\"ModulesReady\");\n\n// Module loading total failure state (Phase 2: all modules failed to load)\nexport const ModulesLoadErrorKey: InjectionKey<Ref<boolean>> = Symbol(\"ModulesLoadError\");\n\n// App root element key (for scoped Teleport targets)\nexport const AppRootElementKey: InjectionKey<Ref<HTMLElement | undefined>> = Symbol(\"AppRootElement\");\n\n// App mode keys\nexport const EmbeddedModeKey: InjectionKey<boolean> = Symbol(\"EmbeddedMode\");\n\n// Shell indicators (computed boolean for SidebarHeader unread dot)\nexport const ShellIndicatorsKey: InjectionKey<ComputedRef<boolean>> = Symbol(\"ShellIndicators\");\n\n// AI Agent keys\nexport const AiAgentServiceKey: InjectionKey<IAiAgentService> = Symbol(\"AiAgentService\");\n\n// Breakpoint keys\nexport const IsMobileKey: InjectionKey<Ref<boolean>> = Symbol(\"IsMobile\");\nexport const IsDesktopKey: InjectionKey<Ref<boolean>> = Symbol(\"IsDesktop\");\nexport const IsPhoneKey: InjectionKey<Ref<boolean>> = Symbol(\"IsPhone\");\nexport const IsTabletKey: InjectionKey<Ref<boolean>> = Symbol(\"IsTablet\");\nexport const IsTouchKey: InjectionKey<boolean> = Symbol(\"IsTouch\");\n\n// Routing keys\nexport const BladeRoutesKey: InjectionKey<BladeRoutesRecord[]> = Symbol(\"BladeRoutes\");\nexport const InternalRoutesKey: InjectionKey<BladeRoutesRecord[]> = Symbol(\"InternalRoutes\");\n\n// Settings menu close callback\nexport const CloseSettingsMenuKey: InjectionKey<() => void> = Symbol(\"CloseSettingsMenu\");\n\n// Blade context (data exposed by blade for external widgets / extensions)\nexport const BladeContextKey: InjectionKey<ComputedRef<Record<string, unknown>>> = Symbol(\"BladeContext\");\n\n// Widget scope (provided by WidgetContainer for component-based widgets)\nexport const WidgetScopeKey: InjectionKey<IWidgetScope> = Symbol(\"WidgetScope\");\n\n// Blade form keys\nexport const BladeFormKey: InjectionKey<BladeFormInjection> = Symbol(\"BladeForm\");\n\n// Blade loading state (skeleton mode for child components)\nexport const BladeLoadingKey: InjectionKey<Ref<boolean>> = Symbol(\"BladeLoading\");\n","import type { IAiAgentConfig, ISuggestion } from \"@core/plugins/ai-agent/types\";\n\n/**\n * Default configuration for AI agent panel\n */\nexport const DEFAULT_AI_AGENT_CONFIG: IAiAgentConfig = {\n url: \"\",\n title: \"Virto OZ\",\n width: 362,\n expandedWidth: 500,\n allowedOrigins: [\"*\"],\n};\n\n/**\n * Environment variable name for AI agent URL\n */\nexport const AI_AGENT_URL_ENV_KEY = \"APP_AI_AGENT_URL\";\n\n/**\n * Message types for Shell -> Chat communication\n */\nexport const SHELL_TO_CHAT_MESSAGE_TYPES = {\n INIT_CONTEXT: \"INIT_CONTEXT\",\n UPDATE_CONTEXT: \"UPDATE_CONTEXT\",\n} as const;\n\n/**\n * Message types for Chat -> Shell communication\n */\nexport const CHAT_TO_SHELL_MESSAGE_TYPES = {\n CHAT_READY: \"CHAT_READY\",\n NAVIGATE_TO_APP: \"NAVIGATE_TO_APP\",\n EXPAND_IN_CHAT: \"EXPAND_IN_CHAT\",\n RELOAD_BLADE: \"RELOAD_BLADE\",\n PREVIEW_CHANGES: \"PREVIEW_CHANGES\",\n APPLY_CHANGES: \"APPLY_CHANGES\",\n DOWNLOAD_FILE: \"DOWNLOAD_FILE\",\n SHOW_MORE: \"SHOW_MORE\",\n CHAT_ERROR: \"CHAT_ERROR\",\n} as const;\n\n/**\n * Message types for Embedded App -> Host Shell communication\n */\nexport const EMBEDDED_TO_HOST_MESSAGE_TYPES = {\n EMBEDDED_APP_READY: \"EMBEDDED_APP_READY\",\n AI_TOGGLE_PANEL: \"AI_TOGGLE_PANEL\",\n AI_CONTEXT_UPDATE: \"AI_CONTEXT_UPDATE\",\n AI_CONTEXT_CLEAR: \"AI_CONTEXT_CLEAR\",\n} as const;\n\n/**\n * Message types for Host Shell -> Embedded App communication\n */\nexport const HOST_TO_EMBEDDED_MESSAGE_TYPES = {\n EMBEDDED_HOST_READY: \"EMBEDDED_HOST_READY\",\n AI_CHAT_MESSAGE: \"AI_CHAT_MESSAGE\",\n} as const;\n\n/**\n * Default suggestions when no custom suggestions provided\n */\nexport const DEFAULT_SUGGESTIONS: ISuggestion[] = [\n {\n id: \"generate-report\",\n title: \"Generate a report\",\n icon: \"analytics-01\",\n iconColor: \"#57AB79\",\n prompt: \"Generate a report\",\n },\n {\n id: \"find-sales\",\n title: \"Find sales statistics\",\n icon: \"progress-02\",\n iconColor: \"#FFBA35\",\n prompt: \"Find sales statistics\",\n },\n {\n id: \"translate\",\n title: \"Translate description\",\n icon: \"translation\",\n iconColor: \"#FF4A4A\",\n prompt: \"Translate description\",\n },\n {\n id: \"top-sales\",\n title: \"Find top sales report\",\n icon: \"analytics-up\",\n iconColor: \"#319ED4\",\n prompt: \"Find top sales report\",\n },\n];\n\n/**\n * Default toolbar button ID for AI agent\n */\nexport const AI_AGENT_TOOLBAR_BUTTON_ID = \"ai-agent-toggle\";\n\n/**\n * Default toolbar button icon\n */\nexport const AI_AGENT_TOOLBAR_BUTTON_ICON = \"lucide-sparkles\";\n\n/**\n * Default toolbar button title\n */\nexport const AI_AGENT_TOOLBAR_BUTTON_TITLE = \"AI Assistant\";\n","import { ref, computed, type Ref, type ComputedRef } from \"vue\";\nimport { createLogger } from \"@core/utilities\";\nimport type { AiAgentPanelState } from \"@core/plugins/ai-agent/types\";\n\nconst logger = createLogger(\"ai-agent-panel\");\n\nexport interface PanelController {\n panelState: Ref<AiAgentPanelState>;\n isOpen: ComputedRef<boolean>;\n isExpanded: ComputedRef<boolean>;\n isInitialized: Ref<boolean>;\n open: () => void;\n close: () => void;\n toggle: () => void;\n expand: () => void;\n collapse: () => void;\n resetInitialized: () => void;\n}\n\nexport function createPanelController(): PanelController {\n const panelState = ref<AiAgentPanelState>(\"closed\");\n const isInitialized = ref(false);\n\n const isOpen = computed(() => panelState.value !== \"closed\");\n const isExpanded = computed(() => panelState.value === \"expanded\");\n\n const open = () => {\n if (panelState.value === \"closed\") {\n panelState.value = \"open\";\n logger.debug(\"Panel opened\");\n }\n };\n\n const close = () => {\n panelState.value = \"closed\";\n isInitialized.value = false;\n logger.debug(\"Panel closed, reset initialized state\");\n };\n\n const toggle = () => {\n if (panelState.value === \"closed\") {\n open();\n } else {\n close();\n }\n };\n\n const expand = () => {\n if (panelState.value === \"open\") {\n panelState.value = \"expanded\";\n logger.debug(\"Panel expanded\");\n }\n };\n\n const collapse = () => {\n if (panelState.value === \"expanded\") {\n panelState.value = \"open\";\n logger.debug(\"Panel collapsed\");\n }\n };\n\n return {\n panelState,\n isOpen,\n isExpanded,\n isInitialized,\n open,\n close,\n toggle,\n expand,\n collapse,\n resetInitialized: () => {\n isInitialized.value = false;\n },\n };\n}\n","import { ref, computed, type ComputedRef } from \"vue\";\nimport { cloneDeep } from \"lodash-es\";\nimport { createLogger } from \"@core/utilities\";\nimport type {\n AiAgentContextType,\n IAiAgentBladeContext,\n IAiAgentUserContext,\n IChatBladeContext,\n IInitContextPayload,\n IUpdateContextPayload,\n ISuggestion,\n} from \"@core/plugins/ai-agent/types\";\n\nconst logger = createLogger(\"ai-agent-context\");\n\nexport interface ContextManagerOptions {\n userGetter: () => IAiAgentUserContext | undefined;\n bladeGetter: () => IAiAgentBladeContext | null;\n localeGetter: () => string;\n tokenGetter?: () => Promise<string | null>;\n}\n\nexport interface ContextManager {\n contextItems: ComputedRef<Record<string, unknown>[]>;\n contextType: ComputedRef<AiAgentContextType>;\n contextSuggestions: ComputedRef<ISuggestion[] | undefined>;\n totalItemsCount: ComputedRef<number>;\n setContextData: (\n items: Record<string, unknown>[],\n type: AiAgentContextType,\n suggestions?: ISuggestion[],\n bladeId?: string,\n ) => { cleared: boolean };\n buildInitPayload: () => Promise<IInitContextPayload>;\n buildUpdatePayload: () => Promise<IUpdateContextPayload>;\n}\n\nfunction toBladeContext(blade: IAiAgentBladeContext | null): IChatBladeContext {\n if (!blade) {\n return { id: \"unknown\", name: \"unknown\", title: \"Unknown\" };\n }\n return {\n id: blade.id,\n name: blade.name,\n title: blade.title || blade.name,\n param: blade.param,\n };\n}\n\nexport function createContextManager(options: ContextManagerOptions): ContextManager {\n const { userGetter, bladeGetter, localeGetter, tokenGetter } = options;\n\n const bladeContexts = ref<\n Map<string, { items: Record<string, unknown>[]; type: AiAgentContextType; suggestions?: ISuggestion[] }>\n >(new Map());\n\n const getActiveBladeContext = () => {\n const activeBlade = bladeGetter();\n if (!activeBlade)\n return {\n items: [] as Record<string, unknown>[],\n type: \"list\" as AiAgentContextType,\n suggestions: undefined,\n };\n return (\n bladeContexts.value.get(activeBlade.id) ?? {\n items: [] as Record<string, unknown>[],\n type: \"list\" as AiAgentContextType,\n suggestions: undefined,\n }\n );\n };\n\n const contextItems = computed(() => getActiveBladeContext().items);\n const contextType = computed(() => getActiveBladeContext().type);\n const contextSuggestions = computed(() => getActiveBladeContext().suggestions);\n const totalItemsCount = computed(() => contextItems.value.length);\n\n const setContextData = (\n items: Record<string, unknown>[],\n type: AiAgentContextType,\n suggestions?: ISuggestion[],\n bladeId?: string,\n ): { cleared: boolean } => {\n // Always use bladeGetter().id as the Map key — it returns blade.type.name (e.g. \"offerslist\"),\n // which matches getActiveBladeContext() lookup. bladeId from BladeDescriptorKey is a runtime\n // unique ID (e.g. \"blade_1_abc\") that would cause a key mismatch.\n const targetBladeId = bladeGetter()?.id || bladeId;\n if (!targetBladeId) {\n logger.warn(\"Cannot set context data: no blade id available\");\n return { cleared: false };\n }\n\n if (items.length === 0 && !suggestions) {\n bladeContexts.value.delete(targetBladeId);\n logger.debug(`Context cleared for blade: ${targetBladeId}`);\n return { cleared: true };\n } else {\n bladeContexts.value.set(targetBladeId, { items, type, suggestions });\n logger.debug(`Context set for blade: ${targetBladeId}, items: ${items.length}, type: ${type}`);\n return { cleared: false };\n }\n };\n\n const buildInitPayload = async (): Promise<IInitContextPayload> => {\n const accessToken = tokenGetter ? ((await tokenGetter()) ?? undefined) : undefined;\n return {\n userId: userGetter()?.id || \"\",\n locale: localeGetter(),\n blade: toBladeContext(bladeGetter()),\n contextType: contextType.value,\n items: cloneDeep(contextItems.value),\n suggestions: contextSuggestions.value ? cloneDeep(contextSuggestions.value) : undefined,\n accessToken,\n };\n };\n\n const buildUpdatePayload = async (): Promise<IUpdateContextPayload> => {\n const accessToken = tokenGetter ? ((await tokenGetter()) ?? undefined) : undefined;\n return {\n blade: toBladeContext(bladeGetter()),\n contextType: contextType.value,\n items: cloneDeep(contextItems.value),\n suggestions: contextSuggestions.value ? cloneDeep(contextSuggestions.value) : undefined,\n locale: localeGetter(),\n accessToken,\n };\n };\n\n return {\n contextItems,\n contextType,\n contextSuggestions,\n totalItemsCount,\n setContextData,\n buildInitPayload,\n buildUpdatePayload,\n };\n}\n","import { ref, shallowRef, type ShallowRef } from \"vue\";\nimport { createLogger } from \"@core/utilities\";\nimport type {\n IAiAgentConfig,\n IAiAgentMessage,\n AiAgentMessageType,\n IPreviewChangesPayload,\n INavigateToAppPayload,\n IApplyChangesPayload,\n IDownloadFilePayload,\n IChatErrorPayload,\n IAiChatMessagePayload,\n} from \"@core/plugins/ai-agent/types\";\n\nconst logger = createLogger(\"ai-agent-transport\");\n\nexport interface MessageTransportOptions {\n getConfig: () => IAiAgentConfig;\n isEmbedded: boolean;\n navigateToBlade?: (bladeName: string, param?: string, options?: Record<string, unknown>) => void;\n reloadBlade?: () => void;\n}\n\nexport interface MessageTransport {\n iframeRef: ShallowRef<HTMLIFrameElement | null>;\n pendingInitContext: ReturnType<typeof ref<boolean>>;\n isListenerRegistered: ReturnType<typeof ref<boolean>>;\n setIframeRef: (iframe: HTMLIFrameElement | null) => void;\n sendToIframe: (message: { type: string; payload?: unknown }) => void;\n sendToParent: (message: { type: string; payload?: unknown }) => void;\n startListening: () => void;\n stopListening: () => void;\n onChatReady: (handler: () => void) => () => void;\n onPreviewChanges: (handler: (payload: IPreviewChangesPayload) => void) => () => void;\n onMessage: (handler: (event: IAiAgentMessage) => void) => () => void;\n}\n\nfunction downloadFile(payload: IDownloadFilePayload): void {\n try {\n const byteCharacters = atob(payload.content);\n const byteNumbers = new Array(byteCharacters.length);\n for (let i = 0; i < byteCharacters.length; i++) {\n byteNumbers[i] = byteCharacters.charCodeAt(i);\n }\n const blob = new Blob([new Uint8Array(byteNumbers)], { type: payload.contentType });\n const url = URL.createObjectURL(blob);\n const link = document.createElement(\"a\");\n link.href = url;\n link.download = payload.filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n logger.debug(`File downloaded: ${payload.filename}`);\n } catch (error) {\n logger.error(\"Failed to download file:\", error);\n }\n}\n\nexport function createMessageTransport(options: MessageTransportOptions): MessageTransport {\n const { getConfig, isEmbedded, navigateToBlade, reloadBlade } = options;\n\n const iframeRef: ShallowRef<HTMLIFrameElement | null> = shallowRef(null);\n const pendingInitContext = ref(false);\n const isListenerRegistered = ref(false);\n\n const messageHandlers = new Set<(event: IAiAgentMessage) => void>();\n const previewChangesHandlers = new Set<(payload: IPreviewChangesPayload) => void>();\n const chatReadyHandlers = new Set<() => void>();\n\n /** Shared handler for all chat protocol messages (used by both normal and embedded) */\n function handleChatMessage(type: string, payload: unknown): void {\n switch (type) {\n case \"PREVIEW_CHANGES\": {\n const previewPayload = payload as IPreviewChangesPayload;\n if (previewChangesHandlers.size === 0) {\n logger.warn(\"No preview changes handlers registered!\");\n }\n previewChangesHandlers.forEach((handler) => {\n try {\n handler(previewPayload);\n } catch (e) {\n logger.error(\"Error in preview handler:\", e);\n }\n });\n break;\n }\n case \"NAVIGATE_TO_APP\": {\n const navPayload = payload as INavigateToAppPayload;\n if (navigateToBlade && navPayload?.bladeName) {\n navigateToBlade(navPayload.bladeName, navPayload.param, navPayload.options);\n logger.debug(`Navigation requested to: ${navPayload.bladeName}`);\n }\n break;\n }\n case \"RELOAD_BLADE\":\n if (reloadBlade) {\n reloadBlade();\n logger.debug(\"Blade reload requested\");\n }\n break;\n case \"DOWNLOAD_FILE\": {\n const dlPayload = payload as IDownloadFilePayload;\n if (dlPayload) downloadFile(dlPayload);\n break;\n }\n case \"APPLY_CHANGES\": {\n const changesPayload = payload as IApplyChangesPayload;\n logger.warn(\"APPLY_CHANGES received but not implemented:\", changesPayload?.changes);\n break;\n }\n case \"CHAT_ERROR\": {\n const errPayload = payload as IChatErrorPayload;\n logger.error(`Chatbot error [${errPayload?.code}]: ${errPayload?.message}`);\n break;\n }\n default:\n break;\n }\n\n // Notify general message handlers\n const normalized: IAiAgentMessage = {\n type: type as AiAgentMessageType,\n payload,\n timestamp: Date.now(),\n };\n messageHandlers.forEach((handler) => {\n try {\n handler(normalized);\n } catch (e) {\n logger.error(\"Handler error:\", e);\n }\n });\n }\n\n function handleIncomingMessage(event: MessageEvent): void {\n const config = getConfig();\n const allowedOrigins = config.allowedOrigins || [\"*\"];\n if (!allowedOrigins.includes(\"*\") && !allowedOrigins.includes(event.origin)) {\n return;\n }\n\n const message = event.data;\n if (!message?.type || typeof message.type !== \"string\") return;\n\n logger.debug(`Message received: ${message.type}`);\n\n switch (message.type) {\n // Embedded: parent forwards chat messages wrapped in AI_CHAT_MESSAGE\n case \"AI_CHAT_MESSAGE\": {\n if (isEmbedded) {\n const chatMessage = message.payload as IAiChatMessagePayload;\n if (chatMessage?.type) {\n handleChatMessage(chatMessage.type, chatMessage.payload);\n }\n }\n return;\n }\n // Normal: chatbot signals it's ready\n case \"CHAT_READY\":\n chatReadyHandlers.forEach((h) => {\n try {\n h();\n } catch (e) {\n logger.error(\"ChatReady handler error:\", e);\n }\n });\n break;\n // Normal: direct chat protocol messages\n default:\n handleChatMessage(message.type, message.payload);\n break;\n }\n }\n\n return {\n iframeRef,\n pendingInitContext,\n isListenerRegistered,\n\n setIframeRef(iframe: HTMLIFrameElement | null) {\n iframeRef.value = iframe;\n logger.debug(\"Iframe ref set:\", iframe ? \"available\" : \"null\");\n },\n\n sendToIframe(message: { type: string; payload?: unknown }) {\n if (!iframeRef.value?.contentWindow) {\n logger.warn(\"Cannot send message: iframe not available\");\n return;\n }\n const config = getConfig();\n const targetOrigin = config.allowedOrigins?.[0] || \"*\";\n iframeRef.value.contentWindow.postMessage(message, targetOrigin);\n logger.debug(`Sent to iframe: ${message.type}`);\n },\n\n sendToParent(message: { type: string; payload?: unknown }) {\n if (!window.parent || window.parent === window) {\n logger.warn(\"Cannot send to parent: not in iframe\");\n return;\n }\n window.parent.postMessage(message, \"*\");\n logger.debug(`Sent to parent: ${message.type}`);\n },\n\n startListening() {\n if (!isListenerRegistered.value) {\n window.addEventListener(\"message\", handleIncomingMessage);\n isListenerRegistered.value = true;\n }\n },\n\n stopListening() {\n if (isListenerRegistered.value) {\n window.removeEventListener(\"message\", handleIncomingMessage);\n isListenerRegistered.value = false;\n }\n },\n\n onChatReady(handler: () => void) {\n chatReadyHandlers.add(handler);\n return () => {\n chatReadyHandlers.delete(handler);\n };\n },\n\n onPreviewChanges(handler: (payload: IPreviewChangesPayload) => void) {\n previewChangesHandlers.add(handler);\n return () => {\n previewChangesHandlers.delete(handler);\n };\n },\n\n onMessage(handler: (event: IAiAgentMessage) => void) {\n messageHandlers.add(handler);\n return () => {\n messageHandlers.delete(handler);\n };\n },\n };\n}\n","import { ref, computed, watch, type ShallowRef } from \"vue\";\nimport { createLogger } from \"@core/utilities\";\nimport type {\n IAiAgentService,\n IAiAgentConfig,\n IAiAgentContext,\n AiAgentMessageType,\n IPreviewChangesPayload,\n ISuggestion,\n AiAgentContextType,\n IAiAgentBladeContext,\n IAiAgentUserContext,\n} from \"@core/plugins/ai-agent/types\";\nimport { DEFAULT_AI_AGENT_CONFIG } from \"@core/plugins/ai-agent/constants\";\nimport { createPanelController } from \"./panel-controller\";\nimport { createContextManager } from \"./context-manager\";\nimport { createMessageTransport } from \"./message-transport\";\n\nconst logger = createLogger(\"ai-agent-service\");\n\n/**\n * Options for creating the AI agent service\n */\nexport interface CreateAiAgentServiceOptions {\n /** Function to get current user information */\n userGetter: () => IAiAgentUserContext | undefined;\n /** Function to get current blade context */\n bladeGetter: () => IAiAgentBladeContext | null;\n /** Function to get user locale */\n localeGetter: () => string;\n /** Function to get access token (handles automatic refresh) */\n tokenGetter?: () => Promise<string | null>;\n /** Function to navigate to blade */\n navigateToBlade?: (bladeName: string, param?: string, options?: Record<string, unknown>) => void;\n /** Function to reload current blade */\n reloadBlade?: () => void;\n /** Initial configuration */\n initialConfig?: Partial<IAiAgentConfig>;\n /** Whether the app is running in embedded mode (inside OneShell iframe) */\n isEmbedded?: boolean;\n}\n\n/**\n * Extended AI Agent Service with internal methods for component use\n */\nexport interface IAiAgentServiceInternal extends IAiAgentService {\n /** Reference to the iframe element (set by component) */\n iframeRef: ShallowRef<HTMLIFrameElement | null>;\n /** Set the iframe reference (called by component) */\n _setIframeRef: (iframe: HTMLIFrameElement | null) => void;\n /** Start listening for postMessage events */\n _startListening: () => void;\n /** Stop listening for postMessage events */\n _stopListening: () => void;\n /** Update context data for a blade (called by useAiAgentContext) */\n _setContextData: (\n items: Record<string, unknown>[],\n type: AiAgentContextType,\n suggestions?: ISuggestion[],\n bladeId?: string,\n ) => void;\n /** Register preview changes handler */\n _onPreviewChanges: (handler: (payload: IPreviewChangesPayload) => void) => () => void;\n}\n\n/**\n * Creates an AI agent service by composing panel-controller, context-manager, and message-transport.\n */\nexport function createAiAgentService(options: CreateAiAgentServiceOptions): IAiAgentServiceInternal {\n const {\n userGetter,\n bladeGetter,\n localeGetter,\n tokenGetter,\n navigateToBlade,\n reloadBlade,\n initialConfig,\n isEmbedded = false,\n } = options;\n\n const config = ref<IAiAgentConfig>({ ...DEFAULT_AI_AGENT_CONFIG, ...initialConfig });\n\n // Compose sub-modules\n const panel = createPanelController();\n\n const contextManager = createContextManager({\n userGetter,\n bladeGetter,\n localeGetter,\n tokenGetter,\n });\n\n const transport = createMessageTransport({\n getConfig: () => config.value,\n isEmbedded,\n navigateToBlade,\n reloadBlade,\n });\n\n // Context computed (no timestamp — clean dependency tracking)\n const context = computed<IAiAgentContext>(() => ({\n user: userGetter(),\n currentBlade: bladeGetter(),\n items: contextManager.contextItems.value,\n }));\n\n // --- Wiring: connect modules together ---\n\n // Shared helper: flush pending INIT_CONTEXT when iframe becomes available\n const flushPendingInit = async () => {\n if (transport.pendingInitContext.value && transport.iframeRef.value?.contentWindow) {\n transport.pendingInitContext.value = false;\n panel.isInitialized.value = true;\n const payload = await contextManager.buildInitPayload();\n transport.sendToIframe({ type: \"INIT_CONTEXT\", payload });\n logger.debug(\"Flushed pending INIT_CONTEXT\");\n }\n };\n\n // CHAT_READY → send INIT_CONTEXT (or mark pending if iframe ref not yet available)\n transport.onChatReady(() => {\n if (transport.iframeRef.value?.contentWindow) {\n panel.isInitialized.value = true;\n contextManager.buildInitPayload().then((payload) => {\n transport.sendToIframe({ type: \"INIT_CONTEXT\", payload });\n logger.info(\"Chatbot ready, sent INIT_CONTEXT\");\n });\n } else {\n transport.pendingInitContext.value = true;\n logger.info(\"Chatbot ready, iframe ref not available yet — pending INIT_CONTEXT\");\n }\n });\n\n // Watch iframe ref — flush pending INIT_CONTEXT when iframe becomes available\n watch(transport.iframeRef, () => flushPendingInit());\n\n // Watch context changes → UPDATE_CONTEXT (normal) or AI_CONTEXT_UPDATE (embedded)\n watch(\n () => ({ currentBlade: context.value.currentBlade, items: context.value.items }),\n async () => {\n if (isEmbedded) {\n const payload = await contextManager.buildInitPayload();\n transport.sendToParent({ type: \"AI_CONTEXT_UPDATE\", payload });\n return;\n }\n if (panel.isOpen.value && panel.isInitialized.value && transport.iframeRef.value?.contentWindow) {\n const payload = await contextManager.buildUpdatePayload();\n transport.sendToIframe({ type: \"UPDATE_CONTEXT\", payload });\n }\n },\n { deep: true },\n );\n\n // Panel control — delegate to parent in embedded mode\n const openPanel = () => (isEmbedded ? transport.sendToParent({ type: \"AI_TOGGLE_PANEL\" }) : panel.open());\n const closePanel = () => (isEmbedded ? transport.sendToParent({ type: \"AI_TOGGLE_PANEL\" }) : panel.close());\n const togglePanel = () => (isEmbedded ? transport.sendToParent({ type: \"AI_TOGGLE_PANEL\" }) : panel.toggle());\n\n // _setIframeRef with pending context check\n const _setIframeRef = (iframe: HTMLIFrameElement | null) => {\n transport.setIframeRef(iframe);\n flushPendingInit();\n };\n\n // _setContextData with embedded clear notification\n const _setContextData = (\n items: Record<string, unknown>[],\n type: AiAgentContextType,\n suggestions?: ISuggestion[],\n bladeId?: string,\n ) => {\n const { cleared } = contextManager.setContextData(items, type, suggestions, bladeId);\n if (isEmbedded && cleared) {\n transport.sendToParent({ type: \"AI_CONTEXT_CLEAR\" });\n }\n };\n\n // Auto-start listener\n transport.startListening();\n\n // Embedded: notify parent\n if (isEmbedded) {\n transport.sendToParent({\n type: \"EMBEDDED_APP_READY\",\n payload: { supportedFeatures: [\"ai-agent\"] },\n });\n logger.info(\"Embedded mode: sent EMBEDDED_APP_READY to parent\");\n }\n\n return {\n // State\n panelState: panel.panelState,\n config,\n context,\n isOpen: computed(() => !isEmbedded && panel.isOpen.value),\n isExpanded: panel.isExpanded,\n totalItemsCount: contextManager.totalItemsCount,\n\n // Panel control\n openPanel,\n closePanel,\n togglePanel,\n expandPanel: () => panel.expand(),\n collapsePanel: () => panel.collapse(),\n\n // Configuration\n setConfig: (newConfig: Partial<IAiAgentConfig>) => {\n config.value = { ...config.value, ...newConfig };\n },\n\n // Communication\n sendMessage: (type: AiAgentMessageType, payload: unknown) => {\n transport.sendToIframe({ type, payload });\n },\n onMessage: transport.onMessage,\n\n // Internal API\n iframeRef: transport.iframeRef,\n _setIframeRef,\n _startListening: transport.startListening,\n _stopListening: transport.stopListening,\n _setContextData,\n _onPreviewChanges: transport.onPreviewChanges,\n };\n}\n","import type { IBladeStack, IBladeMessaging, BladeNavigationPlugin } from \"@core/blade-navigation/types\";\nimport type { IBladeRegistry } from \"@core/composables/useBladeRegistry\";\n\n/**\n * Module-level singletons — accessible without inject().\n * Shell's blade-navigation plugin calls the setters during install().\n * Core composables (useBlade, useBladeNavigationAdapter) read via exported variables.\n *\n * Limitation: only one Vue app per JS context is supported.\n * Call _resetBladeNavigationSingletons() in test teardown.\n */\n\nexport let bladeNavigationInstance: BladeNavigationPlugin | undefined;\nexport let bladeStackInstance: IBladeStack | undefined;\nexport let bladeMessagingInstance: IBladeMessaging | undefined;\nexport let bladeRegistryInstance: IBladeRegistry | undefined;\n\nexport function setBladeNavigationInstance(instance: BladeNavigationPlugin): void {\n bladeNavigationInstance = instance;\n}\n\nexport function setBladeStackInstance(instance: IBladeStack): void {\n bladeStackInstance = instance;\n}\n\nexport function setBladeMessagingInstance(instance: IBladeMessaging): void {\n bladeMessagingInstance = instance;\n}\n\nexport function setBladeRegistryInstance(instance: IBladeRegistry): void {\n bladeRegistryInstance = instance;\n}\n\n/** @internal Test teardown only */\nexport function _resetBladeNavigationSingletons(): void {\n bladeNavigationInstance = undefined;\n bladeStackInstance = undefined;\n bladeMessagingInstance = undefined;\n bladeRegistryInstance = undefined;\n}\n","import type { Router } from \"vue-router\";\nimport type { BladeDescriptor, IBladeStack, ParsedBladeUrl } from \"@core/blade-navigation/types\";\n\n/**\n * Build a URL path from the current blade stack.\n *\n * URL format: /<tenantPrefix>/<workspaceUrl>/<bladeUrl>/<param>\n * - tenantPrefix: optional seller/tenant ID\n * - workspaceUrl: from workspace blade's `url` (e.g. \"/orders\" → \"orders\")\n * - bladeUrl: from active child blade's `url` (e.g. \"/order\" → \"order\")\n * - param: entity ID\n *\n * @param tenantPrefix - Tenant/seller ID segment (empty string if none)\n * @param stack - Current blade stack\n * @returns path string and merged query params\n */\nexport function buildUrlFromStack(\n tenantPrefix: string,\n stack: readonly BladeDescriptor[],\n): { path: string; query: Record<string, string> } {\n if (stack.length === 0) {\n return { path: tenantPrefix ? `/${tenantPrefix}` : \"/\", query: {} };\n }\n\n const workspace = stack[0];\n const wsUrl = normalizeSegment(workspace.url);\n\n // Find the last visible child blade (not the workspace)\n let activeBlade: BladeDescriptor | undefined;\n for (let i = stack.length - 1; i >= 1; i--) {\n if (stack[i].visible) {\n activeBlade = stack[i];\n break;\n }\n }\n\n // Build path: /tenant/workspace or /tenant/workspace/blade/param\n let path = tenantPrefix ? `/${tenantPrefix}` : \"\";\n\n if (wsUrl) {\n path += `/${wsUrl}`;\n }\n\n if (activeBlade) {\n const bladeUrl = normalizeSegment(activeBlade.url);\n if (bladeUrl) {\n path += `/${bladeUrl}`;\n }\n if (activeBlade.param) {\n path += `/${activeBlade.param}`;\n }\n }\n\n // Merge query params from all visible blades\n const query: Record<string, string> = {};\n for (const blade of stack) {\n if (blade.visible && blade.query) {\n Object.assign(query, blade.query);\n }\n }\n\n return { path: path || \"/\", query };\n}\n\n/**\n * Parse a URL path into workspace, blade, and param segments.\n *\n * Handles both with and without tenant prefix:\n * /orders → { workspaceUrl: \"orders\" }\n * /orders/order/uuid → { workspaceUrl: \"orders\", bladeUrl: \"order\", param: \"uuid\" }\n * /tenant-id/orders → { workspaceUrl: \"orders\" } (after stripping tenant)\n * /tenant-id/orders/order/id → { workspaceUrl: \"orders\", bladeUrl: \"order\", param: \"id\" }\n *\n * @param hashPath - The path portion after the hash (e.g. \"/orders/order/uuid\")\n * @param tenantPrefix - Optional tenant/seller ID to strip from the beginning\n */\nexport function parseBladeUrl(hashPath: string, tenantPrefix?: string): ParsedBladeUrl {\n let segments = hashPath.split(\"/\").filter(Boolean);\n\n // Strip tenant prefix if present\n if (tenantPrefix && segments.length > 0 && segments[0] === tenantPrefix) {\n segments = segments.slice(1);\n }\n\n if (segments.length === 0) {\n return {};\n }\n\n return {\n workspaceUrl: segments[0],\n bladeUrl: segments[1],\n param: segments[2],\n };\n}\n\n/**\n * Build query string from a record of key-value pairs.\n * Returns empty string if no params.\n */\nexport function buildQueryString(query: Record<string, string>): string {\n const entries = Object.entries(query).filter(([, v]) => v !== undefined && v !== \"\");\n if (entries.length === 0) return \"\";\n return \"?\" + entries.map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join(\"&\");\n}\n\n/**\n * Normalize a URL segment by removing leading/trailing slashes.\n * \"/orders/\" → \"orders\", \"orders\" → \"orders\", undefined → undefined\n */\nfunction normalizeSegment(url: string | undefined): string | undefined {\n if (!url) return undefined;\n return url.replace(/^\\/+|\\/+$/g, \"\") || undefined;\n}\n\n// ── Centralized URL sync helpers ──────────────────────────────────────────────\n\n/**\n * Extract the tenant prefix from the current route params.\n * Convention: first string param value (e.g. sellerId segment).\n */\nexport function getTenantPrefix(router: Router): string {\n const params = router.currentRoute.value.params;\n return (Object.values(params).find((v) => typeof v === \"string\" && v) as string) || \"\";\n}\n\n/**\n * Creates URL sync helpers bound to a specific router and blade stack.\n * Eliminates duplication between VcBladeNavigation and useBladeNavigationAdapter.\n *\n * @param router - Vue Router instance\n * @param bladeStack - BladeStack state machine\n */\nexport function createUrlSync(router: Router, bladeStack: IBladeStack) {\n /**\n * Push URL to create a browser history entry (for blade open).\n */\n function syncUrlPush(): void {\n const { path, query } = buildUrlFromStack(getTenantPrefix(router), bladeStack.blades.value);\n router.push({ path, query });\n }\n\n /**\n * Replace URL without creating a history entry (for blade close, cleanup).\n */\n function syncUrlReplace(): void {\n const { path, query } = buildUrlFromStack(getTenantPrefix(router), bladeStack.blades.value);\n router.replace({ path, query });\n }\n\n return { syncUrlPush, syncUrlReplace };\n}\n","import { inject, computed, getCurrentInstance, provide, ref, isRef, watch, type ComputedRef, type MaybeRef } from \"vue\";\nimport {\n BladeDescriptorKey,\n BladeStackKey,\n BladeMessagingKey,\n BladeDataKey,\n BladeBannersKey,\n} from \"@core/blade-navigation/types\";\nimport type { BladeOpenEvent, IBladeStack, IBladeBanner } from \"@core/blade-navigation/types\";\nexport type { IBladeBanner } from \"@core/blade-navigation/types\";\nimport { bladeStackInstance, bladeMessagingInstance, bladeNavigationInstance } from \"@core/blade-navigation/singletons\";\nimport { createUrlSync } from \"@core/blade-navigation/utils/urlSync\";\n\nexport interface UseBladeReturn<TOptions = Record<string, unknown>> {\n // Identity (read-only) — runtime error outside blade context\n readonly id: ComputedRef<string>;\n readonly param: ComputedRef<string | undefined>;\n readonly options: ComputedRef<TOptions | undefined>;\n readonly query: ComputedRef<Record<string, string> | undefined>;\n readonly closable: ComputedRef<boolean>;\n readonly expanded: ComputedRef<boolean>;\n readonly name: ComputedRef<string>;\n /** @deprecated Use `defineBladeContext()` instead */\n provideBladeData(data: MaybeRef<Record<string, unknown>>): void;\n // Navigation — works everywhere\n openBlade(event: BladeOpenEvent & { isWorkspace?: boolean }): Promise<void>;\n // Actions — runtime error outside blade context\n closeSelf(): Promise<boolean>;\n closeChildren(): Promise<void>;\n replaceWith(event: BladeOpenEvent): Promise<void>;\n coverWith(event: BladeOpenEvent): Promise<void>;\n // Communication — runtime error outside blade context\n callParent<T = unknown>(method: string, args?: unknown): Promise<T>;\n\n exposeToChildren(methods: Record<string, (...args: any[]) => any>): void;\n // Guards — runtime error outside blade context\n onBeforeClose(guard: () => Promise<boolean>): void;\n // Lifecycle — runtime error outside blade context\n onActivated(callback: () => void): void;\n onDeactivated(callback: () => void): void;\n // Error management — runtime error outside blade context\n setError(error: unknown): void;\n clearError(): void;\n // Banner management — runtime error outside blade context\n addBanner(options: Omit<IBladeBanner, \"id\" | \"_system\">): string;\n removeBanner(id: string): void;\n clearBanners(): void;\n}\n\nconst CONTEXT_ERROR_SUFFIX =\n \"useBlade() was called outside a blade. Navigation methods (openBlade) work everywhere, \" +\n \"but blade-specific methods require the component to be rendered inside VcBladeSlot.\";\n\nfunction requireContext(method: string): never {\n throw new Error(`[vc-shell] ${method} requires blade context.\\n${CONTEXT_ERROR_SUFFIX}`);\n}\n\n/**\n * Unified blade composable — works **everywhere**.\n *\n * Inside a blade (rendered by VcBladeSlot): full API — identity, navigation,\n * communication, guards, error management.\n *\n * Outside a blade (dashboard cards, notification templates, composables):\n * navigation methods (openBlade) work via singletons; blade-specific methods\n * throw a descriptive runtime error on invocation.\n *\n * @example Inside blade\n * ```ts\n * const { id, param, openBlade, closeSelf, callParent } = useBlade();\n * openBlade({ name: \"OrderDetails\", param: orderId });\n * const result = await callParent(\"reload\");\n * closeSelf();\n * ```\n *\n * @example Outside blade (dashboard card)\n * ```ts\n * const { openBlade } = useBlade();\n * openBlade({ name: \"OrderDetails\", param: orderId });\n * ```\n */\nexport function useBlade<TOptions = Record<string, unknown>>(): UseBladeReturn<TOptions> {\n // Navigation — always available via inject (preferred) or singletons (fallback)\n const _stack: IBladeStack | undefined =\n (getCurrentInstance() ? inject(BladeStackKey, undefined) : undefined) ?? bladeStackInstance;\n const _messaging =\n (getCurrentInstance() ? inject(BladeMessagingKey, undefined) : undefined) ?? bladeMessagingInstance;\n\n if (!_stack || !_messaging) {\n throw new Error(\n \"[vc-shell] useBlade() failed: BladeStack or BladeMessaging not available. \" +\n \"Ensure BladeNavigationPlugin (plugin-v2) is installed.\",\n );\n }\n\n // After the guard above, these are guaranteed non-null\n const bladeStack = _stack;\n const messaging = _messaging;\n\n // Blade context — optional (via inject, no error if missing)\n const descriptor = getCurrentInstance() ? inject(BladeDescriptorKey, undefined) : undefined;\n\n // Blade banners — optional (via inject, no error if missing)\n const bannersRef = getCurrentInstance() ? inject(BladeBannersKey, undefined) : undefined;\n\n // ── URL sync (lazy — only created if router available) ────────────────────\n let _urlSync: ReturnType<typeof createUrlSync> | undefined;\n\n function getUrlSync() {\n if (_urlSync) return _urlSync;\n const router = bladeNavigationInstance?.router;\n if (router) {\n _urlSync = createUrlSync(router, bladeStack);\n }\n return _urlSync;\n }\n\n // ── Identity (read-only) ────────────────────────────────────────────────\n const id = computed(() => {\n if (!descriptor) requireContext(\"id\");\n return descriptor!.value.id;\n });\n const param = computed(() => {\n if (!descriptor) requireContext(\"param\");\n return descriptor!.value.param;\n });\n const options = computed(() => {\n if (!descriptor) requireContext(\"options\");\n return descriptor!.value.options as TOptions | undefined;\n });\n const query = computed(() => {\n if (!descriptor) requireContext(\"query\");\n return descriptor!.value.query;\n });\n const closable = computed(() => {\n if (!descriptor) requireContext(\"closable\");\n return descriptor!.value.parentId !== undefined;\n });\n const expanded = computed(() => {\n if (!descriptor) requireContext(\"expanded\");\n const active = bladeStack.activeBlade.value;\n return active?.id === descriptor!.value.id;\n });\n const name = computed(() => {\n if (!descriptor) requireContext(\"name\");\n return descriptor!.value.name;\n });\n\n // ── Blade Data ──────────────────────────────────────────────────────────\n\n let _bladeDataProvided = false;\n\n function provideBladeData(data: MaybeRef<Record<string, unknown>>): void {\n if (_bladeDataProvided) {\n console.warn(\n \"[vc-shell] provideBladeData() called more than once in the same blade. \" + \"Only the first call takes effect.\",\n );\n return;\n }\n _bladeDataProvided = true;\n\n const reactiveData = isRef(data) ? data : ref(data);\n provide(BladeDataKey, reactiveData);\n }\n\n // ── Navigation (works everywhere) ─────────────────────────────────────\n\n async function openBlade(event: BladeOpenEvent & { isWorkspace?: boolean }): Promise<void> {\n const { isWorkspace, ...bladeEvent } = event;\n\n if (isWorkspace) {\n // Workspace: close all blades, open as root\n await bladeStack.openWorkspace(bladeEvent);\n } else {\n const parentId = descriptor?.value.id;\n if (parentId) {\n // Inside blade: open as child\n await bladeStack.openBlade({ ...bladeEvent, parentId });\n } else {\n // Outside blade: open with active blade as parent (or workspace)\n await bladeStack.openBlade(bladeEvent);\n }\n }\n\n // URL sync\n const openedBlade = bladeStack.activeBlade.value;\n if (openedBlade?.url) {\n getUrlSync()?.syncUrlPush();\n }\n }\n\n // ── Actions ──────────────────────────────────────────────────────────────\n\n async function closeSelf(): Promise<boolean> {\n if (!descriptor) requireContext(\"closeSelf()\");\n const result = await bladeStack.closeBlade(descriptor!.value.id);\n if (!result) {\n // Blade was closed — sync URL\n getUrlSync()?.syncUrlReplace();\n }\n return result;\n }\n\n async function closeChildren(): Promise<void> {\n if (!descriptor) requireContext(\"closeChildren()\");\n await bladeStack.closeChildren(descriptor!.value.id);\n getUrlSync()?.syncUrlReplace();\n }\n\n async function replaceWith(event: BladeOpenEvent): Promise<void> {\n if (!descriptor) requireContext(\"replaceWith()\");\n await bladeStack.replaceCurrentBlade({\n ...event,\n parentId: descriptor!.value.parentId,\n });\n const openedBlade = bladeStack.activeBlade.value;\n if (openedBlade?.url) {\n getUrlSync()?.syncUrlReplace();\n }\n }\n\n async function coverWith(event: BladeOpenEvent): Promise<void> {\n if (!descriptor) requireContext(\"coverWith()\");\n await bladeStack.coverCurrentBlade({\n ...event,\n parentId: descriptor!.value.parentId,\n });\n const openedBlade = bladeStack.activeBlade.value;\n if (openedBlade?.url) {\n getUrlSync()?.syncUrlPush();\n }\n }\n\n // ── Communication ───────────────────────────────────────────────────────\n\n async function callParent<T = unknown>(method: string, args?: unknown): Promise<T> {\n if (!descriptor) requireContext(\"callParent()\");\n return messaging.callParent<T>(descriptor!.value.id, method, args);\n }\n\n function exposeToChildren(methods: Record<string, (...args: any[]) => any>): void {\n if (!descriptor) requireContext(\"exposeToChildren()\");\n messaging.exposeToChildren(descriptor!.value.id, methods);\n }\n\n // ── Guards ───────────────────────────────────────────────────────────────\n\n function onBeforeClose(guard: () => Promise<boolean>): void {\n if (!descriptor) requireContext(\"onBeforeClose()\");\n bladeStack.registerBeforeClose(descriptor!.value.id, guard);\n }\n\n // ── Error management ────────────────────────────────────────────────────\n\n function setError(error: unknown): void {\n if (!descriptor) requireContext(\"setError()\");\n bladeStack.setBladeError(descriptor!.value.id, error);\n }\n\n function clearError(): void {\n if (!descriptor) requireContext(\"clearError()\");\n bladeStack.clearBladeError(descriptor!.value.id);\n }\n\n // ── Banner management ─────────────────────────────────────────────────\n\n let _bannerCounter = 0;\n\n function addBanner(options: Omit<IBladeBanner, \"id\" | \"_system\">): string {\n if (!bannersRef) requireContext(\"addBanner()\");\n const id = `banner-${descriptor!.value.id}-${++_bannerCounter}`;\n bannersRef!.value.push({\n ...options,\n id,\n dismissible: options.dismissible ?? false,\n });\n return id;\n }\n\n function removeBanner(id: string): void {\n if (!bannersRef) requireContext(\"removeBanner()\");\n bannersRef!.value = bannersRef!.value.filter((b) => b.id !== id);\n }\n\n function clearBanners(): void {\n if (!bannersRef) requireContext(\"clearBanners()\");\n bannersRef!.value = bannersRef!.value.filter((b) => b._system);\n }\n\n // ── Lifecycle hooks ─────────────────────────────────────────────────────\n\n let _activatedRegistered = false;\n let _deactivatedRegistered = false;\n\n function onActivated(callback: () => void): void {\n if (!descriptor) requireContext(\"onActivated()\");\n if (_activatedRegistered) {\n console.warn(\"[useBlade] onActivated() already registered in this blade.\");\n return;\n }\n _activatedRegistered = true;\n watch(expanded, (val) => {\n if (val) callback();\n });\n }\n\n function onDeactivated(callback: () => void): void {\n if (!descriptor) requireContext(\"onDeactivated()\");\n if (_deactivatedRegistered) {\n console.warn(\"[useBlade] onDeactivated() already registered in this blade.\");\n return;\n }\n _deactivatedRegistered = true;\n watch(expanded, (val) => {\n if (!val) callback();\n });\n }\n\n return {\n id,\n param,\n options,\n query,\n closable,\n expanded,\n name,\n provideBladeData,\n openBlade,\n closeSelf,\n closeChildren,\n replaceWith,\n coverWith,\n callParent,\n exposeToChildren,\n onBeforeClose,\n onActivated,\n onDeactivated,\n setError,\n clearError,\n addBanner,\n removeBanner,\n clearBanners,\n };\n}\n","import { ref, computed, inject } from \"vue\";\nimport type { IBladeRegistry } from \"@core/composables/useBladeRegistry\";\nimport type { BladeDescriptor, BladeOpenEvent, IBladeStack } from \"@core/blade-navigation/types\";\nimport { BladeStackKey } from \"@core/blade-navigation/types\";\n\nlet _idCounter = 0;\n\n/** Generate a unique blade instance ID */\nfunction generateBladeId(): string {\n return `blade_${++_idCounter}_${Math.random().toString(36).slice(2, 8)}`;\n}\n\n/**\n * Creates the BladeStack state machine.\n *\n * The stack manages an ordered list of BladeDescriptor objects (plain data).\n * All mutations go through explicit actions — no direct VNode manipulation.\n *\n * @param bladeRegistry - Registry for resolving blade names → components\n * @internal\n */\nexport function createBladeStack(\n bladeRegistry: IBladeRegistry,\n hasAccess?: (permissions: string | string[] | undefined) => boolean,\n): IBladeStack {\n // ── Internal State ────────────────────────────────────────────────────────\n const _blades = ref<BladeDescriptor[]>([]);\n\n // Guards: bladeId → guard function (returns true to PREVENT close)\n const _beforeCloseGuards = new Map<string, () => Promise<boolean>>();\n\n // Lifecycle callbacks stored per blade\n const _onOpenCallbacks = new Map<string, () => void>();\n const _onCloseCallbacks = new Map<string, () => void>();\n\n // ── Computed (readonly) ───────────────────────────────────────────────────\n const workspace = computed(() => _blades.value[0]);\n\n const blades = computed<readonly BladeDescriptor[]>(() => _blades.value);\n\n const activeBlade = computed(() => {\n for (let i = _blades.value.length - 1; i >= 0; i--) {\n if (_blades.value[i].visible) return _blades.value[i];\n }\n return undefined;\n });\n\n // ── Internal Helpers ──────────────────────────────────────────────────────\n\n function _cleanupBlade(bladeId: string): void {\n _beforeCloseGuards.delete(bladeId);\n _onOpenCallbacks.delete(bladeId);\n _onCloseCallbacks.delete(bladeId);\n }\n\n function _resolveUrl(name: string): string | undefined {\n const registration = bladeRegistry.getBlade(name);\n if (!registration) return undefined;\n // registration.route holds the URL segment (e.g. \"/orders\")\n return registration.route;\n }\n\n /**\n * Check guards for a list of blades (deepest first).\n * Returns true if any guard prevented the close.\n */\n async function _checkGuards(bladesToClose: BladeDescriptor[]): Promise<boolean> {\n // Reverse: check deepest blade first\n for (let i = bladesToClose.length - 1; i >= 0; i--) {\n const guard = _beforeCloseGuards.get(bladesToClose[i].id);\n if (guard) {\n const prevented = await guard();\n if (prevented) return true;\n }\n }\n return false;\n }\n\n /**\n * Fire onClose callbacks and cleanup for a list of blades.\n */\n function _closeBladesCleanup(bladesToClose: BladeDescriptor[]): void {\n for (const blade of bladesToClose) {\n _onCloseCallbacks.get(blade.id)?.();\n _cleanupBlade(blade.id);\n }\n }\n\n // ── Actions ───────────────────────────────────────────────────────────────\n\n async function openWorkspace(event: BladeOpenEvent): Promise<void> {\n const currentWorkspace = workspace.value;\n\n // Same workspace — no-op\n if (currentWorkspace?.name === event.name) return;\n\n // Validate blade exists in registry\n const bladeData = bladeRegistry.getBlade(event.name);\n if (!bladeData) {\n throw new Error(`[BladeStack] Blade '${event.name}' not found in registry`);\n }\n\n // Permission check (workspace only)\n if (hasAccess && bladeData.permissions && !hasAccess(bladeData.permissions)) {\n console.warn(`[BladeStack] Access denied to workspace '${event.name}'`);\n return;\n }\n\n // Close all existing blades (no guards — workspace switch is unconditional)\n _closeBladesCleanup([..._blades.value]);\n\n // Create workspace descriptor\n const descriptor: BladeDescriptor = {\n id: generateBladeId(),\n name: event.name,\n url: _resolveUrl(event.name),\n // workspace blades don't have param when opened first\n query: event.query,\n options: event.options,\n visible: true,\n };\n\n _blades.value = [descriptor];\n\n if (event.onOpen) _onOpenCallbacks.set(descriptor.id, event.onOpen);\n if (event.onClose) _onCloseCallbacks.set(descriptor.id, event.onClose);\n\n event.onOpen?.();\n }\n\n async function openBlade(event: BladeOpenEvent & { parentId?: string }): Promise<void> {\n // Validate blade exists in registry\n if (!bladeRegistry.getBlade(event.name)) {\n throw new Error(`[BladeStack] Blade '${event.name}' not found in registry`);\n }\n\n const parentId = event.parentId ?? activeBlade.value?.id ?? workspace.value?.id;\n if (!parentId) {\n throw new Error(\"[BladeStack] Cannot open blade: no parent blade found\");\n }\n\n const parentIndex = _blades.value.findIndex((b) => b.id === parentId);\n if (parentIndex === -1) {\n throw new Error(`[BladeStack] Parent blade '${parentId}' not found in stack`);\n }\n\n // Blades after the parent will be closed\n const bladesToClose = _blades.value.slice(parentIndex + 1);\n\n // Check guards (deepest first)\n if (bladesToClose.length > 0) {\n const prevented = await _checkGuards(bladesToClose);\n if (prevented) return;\n }\n\n // Cleanup closing blades\n _closeBladesCleanup(bladesToClose);\n\n // Create new blade descriptor\n const descriptor: BladeDescriptor = {\n id: generateBladeId(),\n name: event.name,\n url: _resolveUrl(event.name),\n param: event.param,\n query: event.query,\n options: event.options,\n parentId,\n visible: true,\n };\n\n // Replace blades: keep up to parent (inclusive), append new\n _blades.value = [..._blades.value.slice(0, parentIndex + 1), descriptor];\n\n if (event.onOpen) _onOpenCallbacks.set(descriptor.id, event.onOpen);\n if (event.onClose) _onCloseCallbacks.set(descriptor.id, event.onClose);\n\n event.onOpen?.();\n }\n\n async function closeBlade(bladeId: string): Promise<boolean> {\n const index = _blades.value.findIndex((b) => b.id === bladeId);\n if (index === -1) return false;\n\n // Cannot close the workspace blade\n if (index === 0) return false;\n\n // Everything from this blade onwards will be closed\n const bladesToClose = _blades.value.slice(index);\n\n // Check guards (deepest first)\n const prevented = await _checkGuards(bladesToClose);\n if (prevented) return true;\n\n // Cleanup and fire onClose callbacks\n _closeBladesCleanup(bladesToClose);\n\n // Remove from stack\n _blades.value = _blades.value.slice(0, index);\n\n // Restore visibility of blade hidden by replaceCurrentBlade\n const lastIndex = _blades.value.length - 1;\n if (lastIndex > 0 && !_blades.value[lastIndex].visible) {\n const updated = [..._blades.value];\n updated[lastIndex] = { ...updated[lastIndex], visible: true };\n _blades.value = updated;\n }\n\n return false;\n }\n\n async function replaceCurrentBlade(event: BladeOpenEvent & { parentId?: string }): Promise<void> {\n const current = activeBlade.value;\n if (!current) {\n throw new Error(\"[BladeStack] No active blade to replace\");\n }\n\n // Validate blade exists in registry\n if (!bladeRegistry.getBlade(event.name)) {\n throw new Error(`[BladeStack] Blade '${event.name}' not found in registry`);\n }\n\n const currentIndex = _blades.value.findIndex((b) => b.id === current.id);\n if (currentIndex === -1) {\n throw new Error(`[BladeStack] Active blade '${current.id}' not found in stack`);\n }\n\n // Close any blades after the current one first\n const bladesToClose = _blades.value.slice(currentIndex + 1);\n if (bladesToClose.length > 0) {\n const prevented = await _checkGuards(bladesToClose);\n if (prevented) return;\n _closeBladesCleanup(bladesToClose);\n }\n\n // Create replacement descriptor — keeps the SAME parent as the replaced blade,\n // so the new blade occupies the exact same position in the hierarchy.\n const descriptor: BladeDescriptor = {\n id: generateBladeId(),\n name: event.name,\n url: _resolveUrl(event.name),\n param: event.param,\n query: event.query,\n options: event.options,\n parentId: current.parentId,\n visible: true,\n };\n\n // Destroy old blade and put new one at the same index\n _closeBladesCleanup([current]);\n const updated = [..._blades.value.slice(0, currentIndex), descriptor, ..._blades.value.slice(currentIndex + 1)];\n _blades.value = updated;\n\n if (event.onOpen) _onOpenCallbacks.set(descriptor.id, event.onOpen);\n if (event.onClose) _onCloseCallbacks.set(descriptor.id, event.onClose);\n\n event.onOpen?.();\n }\n\n async function coverCurrentBlade(event: BladeOpenEvent & { parentId?: string }): Promise<void> {\n const current = activeBlade.value;\n if (!current) {\n throw new Error(\"[BladeStack] No active blade to cover\");\n }\n\n // Validate blade exists in registry\n if (!bladeRegistry.getBlade(event.name)) {\n throw new Error(`[BladeStack] Blade '${event.name}' not found in registry`);\n }\n\n const currentIndex = _blades.value.findIndex((b) => b.id === current.id);\n if (currentIndex === -1) {\n throw new Error(`[BladeStack] Active blade '${current.id}' not found in stack`);\n }\n\n // Close any blades after the current one first\n const bladesToClose = _blades.value.slice(currentIndex + 1);\n if (bladesToClose.length > 0) {\n const prevented = await _checkGuards(bladesToClose);\n if (prevented) return;\n _closeBladesCleanup(bladesToClose);\n }\n\n // Create covering descriptor — parent is the HIDDEN blade (not its parent),\n // so callParent from the covering blade reaches the hidden blade's methods.\n const descriptor: BladeDescriptor = {\n id: generateBladeId(),\n name: event.name,\n url: _resolveUrl(event.name),\n param: event.param,\n query: event.query,\n options: event.options,\n parentId: current.id,\n visible: true,\n };\n\n // Hide current blade (don't destroy it) and append new blade after it\n const updated: BladeDescriptor[] = _blades.value.slice(0, currentIndex);\n updated.push({ ...current, visible: false });\n updated.push(descriptor);\n _blades.value = updated;\n\n if (event.onOpen) _onOpenCallbacks.set(descriptor.id, event.onOpen);\n if (event.onClose) _onCloseCallbacks.set(descriptor.id, event.onClose);\n\n event.onOpen?.();\n }\n\n // ── Close Children ──────────────────────────────────────────────────────\n\n async function closeChildren(parentId: string): Promise<void> {\n const parentIndex = _blades.value.findIndex((b) => b.id === parentId);\n if (parentIndex === -1) return;\n\n const children = _blades.value.slice(parentIndex + 1);\n if (children.length === 0) return;\n\n // Check guards (deepest first)\n const prevented = await _checkGuards(children);\n if (prevented) return;\n\n // Cleanup and remove\n _closeBladesCleanup(children);\n _blades.value = _blades.value.slice(0, parentIndex + 1);\n }\n\n // ── Guards ────────────────────────────────────────────────────────────────\n\n function registerBeforeClose(bladeId: string, guard: () => Promise<boolean>): void {\n _beforeCloseGuards.set(bladeId, guard);\n }\n\n function unregisterBeforeClose(bladeId: string): void {\n _beforeCloseGuards.delete(bladeId);\n }\n\n // ── Error Management ──────────────────────────────────────────────────────\n\n function setBladeError(bladeId: string, error: unknown): void {\n const index = _blades.value.findIndex((b) => b.id === bladeId);\n if (index === -1) return;\n\n // Immutable update: create new array with updated descriptor\n const updated = [..._blades.value];\n updated[index] = { ...updated[index], error };\n _blades.value = updated;\n }\n\n function clearBladeError(bladeId: string): void {\n const index = _blades.value.findIndex((b) => b.id === bladeId);\n if (index === -1) return;\n\n const updated = [..._blades.value];\n updated[index] = { ...updated[index], error: undefined };\n _blades.value = updated;\n }\n\n // ── Title Management ───────────────────────────────────────────────────────\n\n function setBladeTitle(bladeId: string, title: string | undefined): void {\n const index = _blades.value.findIndex((b) => b.id === bladeId);\n if (index === -1) return;\n if (_blades.value[index].title === title) return; // no-op if unchanged\n\n const updated = [..._blades.value];\n updated[index] = { ...updated[index], title };\n _blades.value = updated;\n }\n\n // ── Internal: Restore (used by HistoryManager) ────────────────────────────\n\n function _restoreStack(descriptors: BladeDescriptor[]): void {\n // Clear all existing callbacks/guards\n for (const blade of _blades.value) {\n _cleanupBlade(blade.id);\n }\n _blades.value = descriptors;\n }\n\n // ── Public API ────────────────────────────────────────────────────────────\n\n return {\n workspace,\n blades,\n activeBlade,\n openWorkspace,\n openBlade,\n closeBlade,\n closeChildren,\n replaceCurrentBlade,\n coverCurrentBlade,\n registerBeforeClose,\n unregisterBeforeClose,\n setBladeError,\n clearBladeError,\n setBladeTitle,\n _restoreStack,\n };\n}\n\n/**\n * Composable for accessing the BladeStack from within a component.\n * Must be used after BladeStack is provided via BladeStackKey.\n * @internal\n */\nexport function useBladeStack(): IBladeStack {\n const stack = inject(BladeStackKey);\n if (!stack) {\n throw new Error(\"[useBladeStack] BladeStack not found. Ensure BladeNavigationPlugin is installed.\");\n }\n return stack;\n}\n","import { inject, provide } from \"vue\";\nimport { createAiAgentService, type IAiAgentServiceInternal } from \"@core/plugins/ai-agent/services/ai-agent-service\";\nimport { AiAgentServiceKey, LanguageServiceKey, ToolbarServiceKey } from \"@framework/injection-keys\";\nimport type {\n IAiAgentService,\n IAiAgentConfig,\n IAiAgentMessage,\n IAiAgentBladeContext,\n} from \"@core/plugins/ai-agent/types\";\nimport { createLogger, InjectionError } from \"@core/utilities\";\nimport { useUser } from \"@core/composables/useUser\";\nimport { useBlade } from \"@core/composables/useBlade\";\nimport { useBladeStack } from \"@core/blade-navigation\";\nimport {\n AI_AGENT_TOOLBAR_BUTTON_ID,\n AI_AGENT_TOOLBAR_BUTTON_ICON,\n AI_AGENT_TOOLBAR_BUTTON_TITLE,\n} from \"@core/plugins/ai-agent/constants\";\nimport type { IToolbarService } from \"@core/services/toolbar-service\";\n\nconst logger = createLogger(\"use-ai-agent\");\n\n/**\n * Options for providing the AI agent service\n */\nexport interface ProvideAiAgentServiceOptions {\n /** Initial configuration for the AI agent */\n config?: Partial<IAiAgentConfig>;\n /**\n * Whether to add the AI button to all blade toolbars automatically.\n * Default: true\n */\n addGlobalToolbarButton?: boolean;\n isEmbedded?: boolean;\n}\n\n/**\n * Provides the AI agent service at the current component level.\n * Should be called once at the app level (in VcApp or plugin install).\n *\n * @param options - Configuration options\n */\nexport function provideAiAgentService(options?: ProvideAiAgentServiceOptions): IAiAgentServiceInternal {\n const languageService = inject(LanguageServiceKey);\n const { user, getAccessToken } = useUser();\n const { openBlade } = useBlade();\n const { blades, activeBlade, replaceCurrentBlade } = useBladeStack();\n const isEmbedded = options?.isEmbedded;\n\n // Create the service\n const service = createAiAgentService({\n userGetter: () => {\n if (!user.value) return undefined;\n return {\n id: user.value.id,\n userName: user.value.userName,\n isAdministrator: user.value.isAdministrator,\n permissions: user.value.permissions,\n };\n },\n bladeGetter: (): IAiAgentBladeContext | null => {\n const currentBlade = activeBlade.value ?? blades.value[blades.value.length - 1];\n if (!currentBlade) return null;\n\n return {\n id: currentBlade.id,\n name: currentBlade.name,\n title: currentBlade.title,\n param: currentBlade.param,\n options: currentBlade.options,\n };\n },\n localeGetter: () => languageService?.currentLocale.value ?? \"en\",\n tokenGetter: getAccessToken,\n navigateToBlade: (bladeName: string, param?: string, bladeOptions?: Record<string, unknown>) => {\n openBlade({ name: bladeName, param, options: bladeOptions })\n .then(() => {\n logger.debug(`Navigated to blade: ${bladeName}`);\n })\n .catch((error) => {\n logger.warn(`Blade not found or cannot be opened: ${bladeName}`, error);\n });\n },\n reloadBlade: () => {\n const currentBlade = activeBlade.value;\n if (!currentBlade) return;\n\n replaceCurrentBlade({\n name: currentBlade.name,\n param: currentBlade.param,\n query: currentBlade.query,\n options: currentBlade.options,\n })\n .then(() => {\n logger.debug(\"Current blade reloaded\");\n })\n .catch((error) => {\n logger.warn(\"Failed to reload current blade\", error);\n });\n },\n initialConfig: options?.config,\n isEmbedded,\n });\n\n provide(AiAgentServiceKey, service);\n logger.debug(\"AiAgentService provided\");\n\n // Register global toolbar button with wildcard \"*\" if enabled\n const addGlobalToolbarButton = options?.addGlobalToolbarButton ?? true;\n if (addGlobalToolbarButton) {\n // Get toolbar service from injection (already created by VcShell plugin)\n const toolbarService = inject<IToolbarService | null>(ToolbarServiceKey, null);\n if (toolbarService) {\n toolbarService.registerToolbarItem(\n {\n id: AI_AGENT_TOOLBAR_BUTTON_ID,\n icon: AI_AGENT_TOOLBAR_BUTTON_ICON,\n title: AI_AGENT_TOOLBAR_BUTTON_TITLE,\n clickHandler: () => {\n service.togglePanel();\n },\n },\n \"*\", // Wildcard for all blades\n );\n logger.debug(\"Global AI toolbar button registered with wildcard '*'\");\n } else {\n logger.warn(\"Toolbar service not available, AI button not registered\");\n }\n }\n\n return service;\n}\n\n/**\n * Return type for useAiAgent composable\n */\nexport interface UseAiAgentReturn {\n /** Current panel state (\"closed\" | \"open\" | \"expanded\") */\n panelState: IAiAgentService[\"panelState\"];\n /** Panel configuration */\n config: IAiAgentService[\"config\"];\n /** Current context (reactive) */\n context: IAiAgentService[\"context\"];\n /** Whether panel is open (not closed) */\n isOpen: IAiAgentService[\"isOpen\"];\n /** Whether panel is in expanded state */\n isExpanded: IAiAgentService[\"isExpanded\"];\n /** Total count of items in current context */\n totalItemsCount: IAiAgentService[\"totalItemsCount\"];\n /** Open the AI panel */\n openPanel: () => void;\n /** Close the AI panel */\n closePanel: () => void;\n /** Toggle panel open/close */\n togglePanel: () => void;\n /** Expand the panel to larger width */\n expandPanel: () => void;\n /** Collapse panel to normal width */\n collapsePanel: () => void;\n /** Update configuration */\n setConfig: (config: Partial<IAiAgentConfig>) => void;\n /** Send message to AI agent iframe */\n sendMessage: IAiAgentService[\"sendMessage\"];\n /** Register message handler, returns unsubscribe function */\n onMessage: (handler: (event: IAiAgentMessage) => void) => () => void;\n}\n\n/**\n * Composable for interacting with the AI agent panel.\n *\n * @example\n * ```typescript\n * const { togglePanel, isOpen, onMessage } = useAiAgent();\n *\n * // Toggle AI panel\n * const handleAiClick = () => togglePanel();\n *\n * // Listen for messages from AI agent\n * onMessage((message) => {\n * if (message.type === 'PREVIEW_CHANGES') {\n * // Handle preview changes\n * }\n * });\n * ```\n */\nexport function useAiAgent(): UseAiAgentReturn {\n const service = inject(AiAgentServiceKey);\n if (!service) {\n logger.error(\"AiAgentService not found. Did you forget to call provideAiAgentService()?\");\n throw new InjectionError(\"AiAgentService\");\n }\n\n return {\n // State\n panelState: service.panelState,\n config: service.config,\n context: service.context,\n isOpen: service.isOpen,\n isExpanded: service.isExpanded,\n totalItemsCount: service.totalItemsCount,\n\n // Panel control\n openPanel: service.openPanel,\n closePanel: service.closePanel,\n togglePanel: service.togglePanel,\n expandPanel: service.expandPanel,\n collapsePanel: service.collapsePanel,\n\n // Configuration\n setConfig: service.setConfig,\n\n // Communication\n sendMessage: service.sendMessage,\n onMessage: service.onMessage,\n };\n}\n\n/**\n * @deprecated The AI toolbar button is registered automatically by provideAiAgentService().\n * If you need a custom button, use useAiAgent().togglePanel directly.\n */\nexport function createAiAgentToolbarButton(options?: { title?: string; icon?: string }) {\n return {\n id: \"ai-agent-toggle\",\n icon: options?.icon ?? \"lucide-sparkles\",\n title: options?.title ?? \"AI Assistant\",\n clickHandler: () => {\n console.warn(\"[ai-agent] createAiAgentToolbarButton is deprecated. Use useAiAgent().togglePanel instead.\");\n },\n };\n}\n","<template>\n <svg\n :width=\"width\"\n :height=\"height\"\n viewBox=\"0 0 99 108\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"vc-virto-oz-logo\"\n >\n <!-- White hexagon background -->\n <path\n d=\"M40.1199 2.41576C45.6989 -0.805254 52.5724 -0.805253 58.1514 2.41576L89.2556 20.3738C94.8345 23.5948 98.2713 29.5475 98.2713 35.9895V71.9055C98.2713 78.3475 94.8345 84.3002 89.2556 87.5212L58.1514 105.479C52.5724 108.7 45.6989 108.7 40.1199 105.479L9.01574 87.5212C3.43678 84.3002 0 78.3475 0 71.9055V35.9895C0 29.5475 3.43678 23.5948 9.01574 20.3738L40.1199 2.41576Z\"\n fill=\"white\"\n />\n\n <!-- Static gradient spiral pattern (using foreignObject with conic-gradient) -->\n <g\n v-if=\"!animated\"\n :clip-path=\"`url(#${clipPathId})`\"\n >\n <g transform=\"matrix(0 -0.161514 0.160417 0 49.1357 53.9479)\">\n <foreignObject\n x=\"-334.01\"\n y=\"-334.01\"\n width=\"668.02\"\n height=\"668.02\"\n >\n <div\n xmlns=\"http://www.w3.org/1999/xhtml\"\n style=\"\n background: conic-gradient(\n from 90deg,\n rgba(255, 149, 51, 1) 0deg,\n rgba(255, 79, 187, 1) 43.2deg,\n rgba(234, 255, 79, 1) 143.654deg,\n rgba(28, 145, 252, 1) 252.692deg,\n rgba(154, 45, 248, 1) 316.8deg,\n rgba(255, 149, 51, 1) 360deg\n );\n height: 100%;\n width: 100%;\n opacity: 1;\n \"\n />\n </foreignObject>\n </g>\n </g>\n\n <!-- Animated gradient spiral pattern (using linearGradient with animate) -->\n <path\n v-else\n d=\"M72.9199 46.4165C73.2527 46.9495 73.5831 47.4996 73.9092 48.0679C78.4022 55.8976 79.0605 66.3551 76.7793 76.6079C74.5635 86.5668 69.6096 96.1504 62.9795 102.692L58.1514 105.48C52.5725 108.701 45.699 108.701 40.1201 105.48L21.665 94.8247C29.1398 95.4723 37.0781 94.4072 44.3848 91.9233C54.5984 88.4512 63.7463 82.1497 68.6807 73.6548C75.124 62.5619 75.4351 53.2694 72.9199 46.4165ZM56.5205 29.5093C65.5697 29.5331 75.1259 33.9964 83.0215 40.8853C89.9848 46.9608 95.5441 54.8286 98.2715 62.9478V71.9058C98.2715 78.3478 94.8348 84.301 89.2559 87.522L69.4658 98.9468C74.0688 92.6731 77.4601 84.9996 79.207 77.1479C81.5723 66.517 80.9666 55.3703 76.0654 46.8296C69.6817 35.7054 61.7917 30.789 54.6006 29.5396C55.2271 29.5179 55.867 29.5076 56.5205 29.5093ZM0 50.688C3.16812 57.476 8.04614 63.7935 13.8389 68.853C21.9305 75.9204 31.9368 80.6465 41.7578 80.6724C54.5833 80.706 62.7851 76.3308 67.4629 70.728C67.1684 71.2812 66.8584 71.8408 66.5303 72.4058C61.9844 80.2318 53.417 86.2251 43.584 89.5679C34.4355 92.6779 24.3375 93.4401 15.6328 91.3423L9.01562 87.522C3.43667 84.301 0 78.3478 0 71.9058V50.688ZM26.7559 10.1313C22.5672 16.2131 19.6599 23.483 18.2695 30.9126C16.3077 41.3962 17.3358 52.3558 22.2188 60.8647C28.6034 71.9905 36.4946 76.9061 43.6865 78.1548C43.0594 78.1765 42.4188 78.1868 41.7646 78.1851C32.7113 78.1612 23.2602 73.7801 15.4746 66.98C8.2197 60.6434 2.52684 52.3035 0 43.7075V35.9897C6.33247e-05 29.5479 3.43687 23.5955 9.01562 20.3745L26.7559 10.1313ZM51.2432 31.6978C54.0287 31.7659 57.0796 32.4389 60.1875 33.9976C58.8529 33.7029 57.5584 33.677 56.3965 33.9722L57.0088 36.3833C58.4774 36.0102 60.6741 36.4134 63.0332 37.8237C65.3553 39.212 67.6865 41.4953 69.375 44.5923C70.7081 47.0376 71.6489 50.015 71.8535 53.4839C71.4414 52.1828 70.818 51.0505 69.9824 50.1929L68.2012 51.9282C69.2585 53.0135 70.0076 55.1176 69.9658 57.8657C69.9246 60.5708 69.1121 63.731 67.2744 66.7417C65.8225 69.1203 63.7129 71.4251 60.8086 73.3374C61.7311 72.329 62.4012 71.2217 62.7266 70.0679L60.333 69.3931C59.9218 70.8514 58.4742 72.5523 56.0732 73.8901C53.71 75.207 50.5672 76.0837 47.041 75.9976C44.2551 75.9294 41.204 75.2549 38.0957 73.6958C39.4307 73.9907 40.7254 74.0184 41.8877 73.7231L41.2754 71.312C39.8069 71.6851 37.6101 71.2818 35.251 69.8716C32.9289 68.4834 30.5977 66.2 28.9092 63.103C27.5754 60.6565 26.6337 57.6775 26.4297 54.2065C26.8418 55.5096 27.4661 56.6438 28.3027 57.5024L30.084 55.7661C29.0267 54.6807 28.2775 52.5767 28.3193 49.8286C28.3606 47.1236 29.173 43.9633 31.0107 40.9526C32.4621 38.5751 34.5702 36.2706 37.4727 34.3589C36.5514 35.3666 35.8827 36.4736 35.5576 37.6265L37.9512 38.3013C38.3625 36.8429 39.8101 35.142 42.2109 33.8042C44.5742 32.4874 47.717 31.6116 51.2432 31.6978ZM40.1201 2.4165C45.6991 -0.804509 52.5724 -0.804509 58.1514 2.4165L75.6777 12.5356C68.4683 12.0708 60.8765 13.1991 53.8691 15.6333C43.6671 19.1774 34.5353 25.5492 29.6035 34.0396C23.1612 45.1305 22.8486 54.4223 25.3623 61.2749C25.0301 60.7429 24.7004 60.1936 24.375 59.6265C19.8639 51.765 18.8286 41.4457 20.7139 31.3706C22.4486 22.1007 26.633 13.1734 32.6709 6.71631L40.1201 2.4165ZM54.6855 17.9829C63.3703 14.966 72.9092 14.0715 81.3008 15.7817L89.2559 20.3745C94.8346 23.5955 98.2714 29.5479 98.2715 35.9897V56.4692C95.0606 49.9731 90.2759 43.9144 84.6562 39.0112C76.4636 31.8632 66.3524 27.0488 56.5273 27.0229C43.6978 26.9893 35.4935 31.3659 30.8164 36.9712C31.1117 36.4161 31.4247 35.8554 31.7539 35.2886C36.3024 27.4582 44.8633 21.395 54.6855 17.9829Z\"\n fill=\"url(#virto-oz-gradient-animated)\"\n />\n\n <!-- White center circle -->\n <path\n d=\"M72.1266 54.0945C72.1266 60.0873 74.3028 71.0379 60.6238 82.8517C65.2871 73.0587 55.8339 77.1002 49.1209 77.1002C36.4152 77.1002 26.1152 66.8002 26.1152 54.0945C26.1152 41.3889 36.4152 31.0889 49.1209 31.0889C61.8266 31.0889 72.1266 41.3889 72.1266 54.0945Z\"\n fill=\"white\"\n />\n\n <!-- Center dots (eyes) -->\n <ellipse\n cx=\"49.12\"\n cy=\"54.09\"\n rx=\"4.05\"\n ry=\"4.05\"\n fill=\"#6C6C6C\"\n />\n <ellipse\n cx=\"60.62\"\n cy=\"54.09\"\n rx=\"4.05\"\n ry=\"4.05\"\n fill=\"#6C6C6C\"\n />\n <ellipse\n cx=\"37.62\"\n cy=\"54.09\"\n rx=\"4.05\"\n ry=\"4.05\"\n fill=\"#6C6C6C\"\n />\n\n <!-- Definitions -->\n <defs>\n <!-- Clip path for static conic gradient (spiral shape) -->\n <clipPath\n v-if=\"!animated\"\n :id=\"clipPathId\"\n >\n <path\n d=\"M72.9199 46.4165C73.2527 46.9495 73.5831 47.4996 73.9092 48.0679C78.4022 55.8976 79.0605 66.3551 76.7793 76.6079C74.5635 86.5668 69.6096 96.1504 62.9795 102.692L58.1514 105.48C52.5725 108.701 45.699 108.701 40.1201 105.48L21.665 94.8247C29.1398 95.4723 37.0781 94.4072 44.3848 91.9233C54.5984 88.4512 63.7463 82.1497 68.6807 73.6548C75.124 62.5619 75.4351 53.2694 72.9199 46.4165ZM56.5205 29.5093C65.5697 29.5331 75.1259 33.9964 83.0215 40.8853C89.9848 46.9608 95.5441 54.8286 98.2715 62.9478V71.9058C98.2715 78.3478 94.8348 84.301 89.2559 87.522L69.4658 98.9468C74.0688 92.6731 77.4601 84.9996 79.207 77.1479C81.5723 66.517 80.9666 55.3703 76.0654 46.8296C69.6817 35.7054 61.7917 30.789 54.6006 29.5396C55.2271 29.5179 55.867 29.5076 56.5205 29.5093ZM0 50.688C3.16812 57.476 8.04614 63.7935 13.8389 68.853C21.9305 75.9204 31.9368 80.6465 41.7578 80.6724C54.5833 80.706 62.7851 76.3308 67.4629 70.728C67.1684 71.2812 66.8584 71.8408 66.5303 72.4058C61.9844 80.2318 53.417 86.2251 43.584 89.5679C34.4355 92.6779 24.3375 93.4401 15.6328 91.3423L9.01562 87.522C3.43667 84.301 0 78.3478 0 71.9058V50.688ZM26.7559 10.1313C22.5672 16.2131 19.6599 23.483 18.2695 30.9126C16.3077 41.3962 17.3358 52.3558 22.2188 60.8647C28.6034 71.9905 36.4946 76.9061 43.6865 78.1548C43.0594 78.1765 42.4188 78.1868 41.7646 78.1851C32.7113 78.1612 23.2602 73.7801 15.4746 66.98C8.2197 60.6434 2.52684 52.3035 0 43.7075V35.9897C6.33247e-05 29.5479 3.43687 23.5955 9.01562 20.3745L26.7559 10.1313ZM51.2432 31.6978C54.0287 31.7659 57.0796 32.4389 60.1875 33.9976C58.8529 33.7029 57.5584 33.677 56.3965 33.9722L57.0088 36.3833C58.4774 36.0102 60.6741 36.4134 63.0332 37.8237C65.3553 39.212 67.6865 41.4953 69.375 44.5923C70.7081 47.0376 71.6489 50.015 71.8535 53.4839C71.4414 52.1828 70.818 51.0505 69.9824 50.1929L68.2012 51.9282C69.2585 53.0135 70.0076 55.1176 69.9658 57.8657C69.9246 60.5708 69.1121 63.731 67.2744 66.7417C65.8225 69.1203 63.7129 71.4251 60.8086 73.3374C61.7311 72.329 62.4012 71.2217 62.7266 70.0679L60.333 69.3931C59.9218 70.8514 58.4742 72.5523 56.0732 73.8901C53.71 75.207 50.5672 76.0837 47.041 75.9976C44.2551 75.9294 41.204 75.2549 38.0957 73.6958C39.4307 73.9907 40.7254 74.0184 41.8877 73.7231L41.2754 71.312C39.8069 71.6851 37.6101 71.2818 35.251 69.8716C32.9289 68.4834 30.5977 66.2 28.9092 63.103C27.5754 60.6565 26.6337 57.6775 26.4297 54.2065C26.8418 55.5096 27.4661 56.6438 28.3027 57.5024L30.084 55.7661C29.0267 54.6807 28.2775 52.5767 28.3193 49.8286C28.3606 47.1236 29.173 43.9633 31.0107 40.9526C32.4621 38.5751 34.5702 36.2706 37.4727 34.3589C36.5514 35.3666 35.8827 36.4736 35.5576 37.6265L37.9512 38.3013C38.3625 36.8429 39.8101 35.142 42.2109 33.8042C44.5742 32.4874 47.717 31.6116 51.2432 31.6978ZM40.1201 2.4165C45.6991 -0.804509 52.5724 -0.804509 58.1514 2.4165L75.6777 12.5356C68.4683 12.0708 60.8765 13.1991 53.8691 15.6333C43.6671 19.1774 34.5353 25.5492 29.6035 34.0396C23.1612 45.1305 22.8486 54.4223 25.3623 61.2749C25.0301 60.7429 24.7004 60.1936 24.375 59.6265C19.8639 51.765 18.8286 41.4457 20.7139 31.3706C22.4486 22.1007 26.633 13.1734 32.6709 6.71631L40.1201 2.4165ZM54.6855 17.9829C63.3703 14.966 72.9092 14.0715 81.3008 15.7817L89.2559 20.3745C94.8346 23.5955 98.2714 29.5479 98.2715 35.9897V56.4692C95.0606 49.9731 90.2759 43.9144 84.6562 39.0112C76.4636 31.8632 66.3524 27.0488 56.5273 27.0229C43.6978 26.9893 35.4935 31.3659 30.8164 36.9712C31.1117 36.4161 31.4247 35.8554 31.7539 35.2886C36.3024 27.4582 44.8633 21.395 54.6855 17.9829Z\"\n />\n </clipPath>\n\n <!-- Animated gradient -->\n <linearGradient\n v-if=\"animated\"\n id=\"virto-oz-gradient-animated\"\n gradientUnits=\"userSpaceOnUse\"\n x1=\"0\"\n y1=\"0\"\n x2=\"99\"\n y2=\"108\"\n >\n <stop\n offset=\"0%\"\n stop-color=\"#FF9533\"\n >\n <animate\n attributeName=\"stop-color\"\n values=\"#FF9533;#FF4FBB;#EAFF4F;#1C91FC;#9A2DF8;#FF9533\"\n dur=\"4s\"\n repeatCount=\"indefinite\"\n />\n </stop>\n <stop\n offset=\"25%\"\n stop-color=\"#FF4FBB\"\n >\n <animate\n attributeName=\"stop-color\"\n values=\"#FF4FBB;#EAFF4F;#1C91FC;#9A2DF8;#FF9533;#FF4FBB\"\n dur=\"4s\"\n repeatCount=\"indefinite\"\n />\n </stop>\n <stop\n offset=\"50%\"\n stop-color=\"#EAFF4F\"\n >\n <animate\n attributeName=\"stop-color\"\n values=\"#EAFF4F;#1C91FC;#9A2DF8;#FF9533;#FF4FBB;#EAFF4F\"\n dur=\"4s\"\n repeatCount=\"indefinite\"\n />\n </stop>\n <stop\n offset=\"75%\"\n stop-color=\"#1C91FC\"\n >\n <animate\n attributeName=\"stop-color\"\n values=\"#1C91FC;#9A2DF8;#FF9533;#FF4FBB;#EAFF4F;#1C91FC\"\n dur=\"4s\"\n repeatCount=\"indefinite\"\n />\n </stop>\n <stop\n offset=\"100%\"\n stop-color=\"#9A2DF8\"\n >\n <animate\n attributeName=\"stop-color\"\n values=\"#9A2DF8;#FF9533;#FF4FBB;#EAFF4F;#1C91FC;#9A2DF8\"\n dur=\"4s\"\n repeatCount=\"indefinite\"\n />\n </stop>\n </linearGradient>\n </defs>\n </svg>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\n\nexport interface Props {\n /** Width in pixels */\n width?: number;\n /** Height in pixels */\n height?: number;\n /** Enable animated gradient */\n animated?: boolean;\n}\n\nwithDefaults(defineProps<Props>(), {\n width: 22,\n height: 24,\n animated: false,\n});\n\n// Generate unique ID for clip path to avoid conflicts when multiple logos are rendered\nconst clipPathId = computed(() => `virto-oz-clip-${Math.random().toString(36).substring(2, 11)}`);\n</script>\n\n<style lang=\"scss\">\n.vc-virto-oz-logo {\n display: block;\n}\n</style>\n","<template>\n <span\n :class=\"[\n 'vc-material-icon',\n 'material-symbols-' + type,\n !hasCustomSize && `vc-material-icon--${size}`,\n variant ? `vc-material-icon--${variant}` : '',\n ]\"\n :style=\"customSizeStyle\"\n aria-hidden=\"true\"\n >\n {{ icon }}\n </span>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, onMounted } from \"vue\";\nimport type { IconSize, IconVariant } from \"@ui/components/atoms/vc-icon/types\";\n\ninterface Props {\n /**\n * @deprecated Material icons are deprecated. Use Lucide icons instead (e.g. \"lucide-settings\").\n * Material icon name (e.g., \"home\", \"settings\", \"account_circle\")\n */\n icon: string;\n\n /**\n * Icon size\n */\n size?: IconSize;\n\n /**\n * Type of the Material icon (outlined, rounded, sharp)\n */\n type?: \"outlined\" | \"rounded\" | \"sharp\";\n\n /**\n * Icon color variant\n */\n variant?: IconVariant;\n\n /**\n * Custom size in pixels\n */\n customSize?: number;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n size: \"m\",\n type: \"outlined\",\n});\n\nconst hasCustomSize = computed(() => typeof props.customSize === \"number\" && props.customSize > 0);\n\n// Direct custom size style — no scaling factors, no transform: scale()\nconst customSizeStyle = computed(() => (props.customSize ? { fontSize: `${props.customSize}px` } : undefined));\n\n// Deprecation warning (dev-only)\nonMounted(() => {\n if (import.meta.env.DEV) {\n console.warn(\n `[VcIcon] Material icon \"${props.icon}\" is deprecated. ` +\n `Migrate to Lucide: use \"lucide-{name}\" instead (e.g. \"lucide-settings\" instead of \"material-settings\"). ` +\n `See https://lucide.dev/icons for available icons.`,\n );\n }\n});\n</script>\n\n<style lang=\"scss\">\n.vc-material-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-feature-settings: \"liga\"; // Enable ligatures for icons\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-height: 1;\n text-transform: none;\n white-space: nowrap;\n word-wrap: normal;\n -webkit-font-smoothing: antialiased;\n text-rendering: optimizeLegibility;\n\n // Sizes\n &--xs {\n font-size: var(--icon-size-xs);\n }\n\n &--s {\n font-size: var(--icon-size-s);\n }\n\n &--m {\n font-size: var(--icon-size-m);\n }\n\n &--l {\n font-size: var(--icon-size-l);\n }\n\n &--xl {\n font-size: var(--icon-size-xl);\n }\n\n &--xxl {\n font-size: var(--icon-size-xxl);\n }\n\n &--xxxl {\n font-size: var(--icon-size-xxxl);\n }\n\n // Variants\n &--warning {\n color: var(--icon-color-warning);\n }\n\n &--danger {\n color: var(--icon-color-danger);\n }\n\n &--success {\n color: var(--icon-color-success);\n }\n}\n\n// Base class provided by the @material-symbols/font-300 package\n.material-symbols-outlined,\n.material-symbols-rounded,\n.material-symbols-sharp {\n font-family: \"Material Symbols Outlined\", \"Material Symbols Rounded\", \"Material Symbols Sharp\";\n}\n</style>\n","<template>\n <i\n :class=\"[\n 'vc-bootstrap-icon',\n !hasCustomSize && `vc-bootstrap-icon--${size}`,\n iconClass,\n variant ? `vc-bootstrap-icon--${variant}` : '',\n ]\"\n :style=\"customSizeStyle\"\n aria-hidden=\"true\"\n ></i>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, onMounted } from \"vue\";\nimport type { IconSize, IconVariant } from \"@ui/components/atoms/vc-icon/types\";\n\ninterface Props {\n /**\n * @deprecated Bootstrap icons are deprecated. Use Lucide icons instead (e.g. \"lucide-house\").\n * Bootstrap icon name (e.g. \"bi-house\" or \"house\")\n */\n icon: string;\n\n /**\n * Icon size\n */\n size?: IconSize;\n\n /**\n * Icon color variant\n */\n variant?: IconVariant;\n\n /**\n * Custom size in pixels\n */\n customSize?: number;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n size: \"m\",\n});\n\n// Check if using custom size to conditionally apply CSS class\nconst hasCustomSize = computed(() => typeof props.customSize === \"number\" && props.customSize > 0);\n\n// Direct custom size style — no scaling factors\nconst customSizeStyle = computed(() => (props.customSize ? { fontSize: `${props.customSize}px` } : undefined));\n\n// Deprecation warning (dev-only)\nonMounted(() => {\n if (import.meta.env.DEV) {\n console.warn(\n `[VcIcon] Bootstrap icon \"${props.icon}\" is deprecated. ` +\n `Migrate to Lucide: use \"lucide-{name}\" instead (e.g. \"lucide-house\" instead of \"bi-house\"). ` +\n `See https://lucide.dev/icons for available icons.`,\n );\n }\n});\n\n// Compute proper Bootstrap icon class\nconst iconClass = computed(() => {\n if (!props.icon) return \"\";\n\n const icon = props.icon.startsWith(\"bi-\") ? props.icon.substring(3) : props.icon;\n return `bi-${icon}`;\n});\n</script>\n\n<style lang=\"scss\">\n.vc-bootstrap-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: inherit;\n\n &--xs {\n font-size: var(--icon-size-xs);\n }\n\n &--s {\n font-size: var(--icon-size-s);\n }\n\n &--m {\n font-size: var(--icon-size-m);\n }\n\n &--l {\n font-size: var(--icon-size-l);\n }\n\n &--xl {\n font-size: var(--icon-size-xl);\n }\n\n &--xxl {\n font-size: var(--icon-size-xxl);\n }\n\n &--xxxl {\n font-size: var(--icon-size-xxxl);\n }\n\n &--warning {\n color: var(--icon-color-warning);\n }\n\n &--danger {\n color: var(--icon-color-danger);\n }\n\n &--success {\n color: var(--icon-color-success);\n }\n}\n</style>\n","<template>\n <component\n :is=\"resolvedIconComponent\"\n v-if=\"resolvedIconComponent\"\n :stroke-width=\"props.strokeWidth\"\n :class=\"[\n 'vc-lucide-icon',\n !hasCustomSize && `vc-lucide-icon--${size}`,\n variant ? `vc-lucide-icon--${variant}` : '',\n ]\"\n :style=\"computedStyle\"\n aria-hidden=\"true\"\n />\n <span\n v-else\n :class=\"['vc-lucide-icon', !hasCustomSize && `vc-lucide-icon--${size}`]\"\n >\n <i class=\"vc-lucide-icon__fallback\"></i>\n </span>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, markRaw } from \"vue\";\nimport type { Component } from \"vue\";\nimport type { IconSize, IconVariant } from \"@ui/components/atoms/vc-icon/types\";\nimport * as LucideIcons from \"lucide-vue-next\";\nimport { createLogger } from \"@core/utilities\";\n\nconst logger = createLogger(\"vc-lucide-icon\");\n\ninterface Props {\n /**\n * Lucide icon name or reference\n */\n icon: string;\n\n /**\n * Icon size\n */\n size?: IconSize;\n\n /**\n * Icon color variant\n */\n variant?: IconVariant;\n\n /**\n * Stroke width for SVG\n */\n strokeWidth?: number;\n\n /**\n * Custom size in pixels\n */\n customSize?: number;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n size: \"m\",\n strokeWidth: 2,\n});\n\n// Check if using custom size to conditionally apply CSS class\nconst hasCustomSize = computed(() => typeof props.customSize === \"number\" && props.customSize > 0);\n\n// Normalize the icon name for Lucide: \"lucide-arrow-right\" → \"ArrowRightIcon\"\nconst normalizedIconName = computed(() => {\n if (!props.icon) return \"HelpCircleIcon\";\n\n let name = props.icon;\n if (name.startsWith(\"lucide-\")) {\n name = name.substring(7);\n }\n\n // Strip trailing \"Icon\" or \"icon\" suffix (case-insensitive) to avoid double-suffix\n if (name.toLowerCase().endsWith(\"icon\")) {\n name = name.slice(0, -4);\n }\n\n // Convert to PascalCase if kebab-case\n if (name.includes(\"-\")) {\n name = name\n .split(\"-\")\n .map((part) => part.charAt(0).toUpperCase() + part.slice(1))\n .join(\"\");\n }\n\n // Ensure first letter is capitalized and append Icon suffix\n return name.charAt(0).toUpperCase() + name.slice(1) + \"Icon\";\n});\n\n// Synchronous component resolution from static import\nconst resolvedIconComponent = computed(() => {\n const iconName = normalizedIconName.value;\n const icon = (LucideIcons as Record<string, unknown>)[iconName];\n\n if (!icon || (typeof icon !== \"object\" && typeof icon !== \"function\")) {\n logger.warn(`Lucide icon not found: ${iconName}`);\n return null;\n }\n\n return markRaw(icon as Component);\n});\n\n// Computed styles: customSize override only (strokeWidth is passed as a prop to Lucide component)\nconst computedStyle = computed(() => {\n if (hasCustomSize.value && props.customSize) {\n return {\n width: `${props.customSize}px`,\n height: `${props.customSize}px`,\n };\n }\n return {};\n});\n</script>\n\n<style lang=\"scss\">\n.vc-lucide-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n font-size: inherit;\n\n &--xs {\n width: var(--icon-size-xs);\n height: var(--icon-size-xs);\n }\n\n &--s {\n width: var(--icon-size-s);\n height: var(--icon-size-s);\n }\n\n &--m {\n width: var(--icon-size-m);\n height: var(--icon-size-m);\n }\n\n &--l {\n width: var(--icon-size-l);\n height: var(--icon-size-l);\n }\n\n &--xl {\n width: var(--icon-size-xl);\n height: var(--icon-size-xl);\n }\n\n &--xxl {\n width: var(--icon-size-xxl);\n height: var(--icon-size-xxl);\n }\n\n &--xxxl {\n width: var(--icon-size-xxxl);\n height: var(--icon-size-xxxl);\n }\n\n &--warning {\n color: var(--icon-color-warning);\n }\n\n &--danger {\n color: var(--icon-color-danger);\n }\n\n &--success {\n color: var(--icon-color-success);\n }\n\n &__fallback {\n font-style: normal;\n color: currentColor;\n }\n}\n</style>\n","<template>\n <i\n :class=\"[\n 'vc-fa-icon',\n !hasCustomSize && `vc-fa-icon--${size}`,\n iconClasses,\n variant ? `vc-fa-icon--${variant}` : '',\n ]\"\n :style=\"customSizeStyle\"\n aria-hidden=\"true\"\n ></i>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, onMounted } from \"vue\";\nimport type { IconSize, IconVariant } from \"@ui/components/atoms/vc-icon/types\";\n\ninterface Props {\n /**\n * @deprecated FontAwesome icons are deprecated. Use Lucide icons instead (e.g. \"lucide-home\").\n * Font Awesome icon class name (e.g. \"fas fa-user\" or \"fa-user\").\n */\n icon: string;\n\n /**\n * Icon size\n */\n size?: IconSize;\n\n /**\n * Icon color variant\n */\n variant?: IconVariant;\n\n /**\n * Custom size in pixels\n */\n customSize?: number;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n size: \"m\",\n});\n\n// Check if using custom size to conditionally apply CSS class\nconst hasCustomSize = computed(() => typeof props.customSize === \"number\" && props.customSize > 0);\n\n// Direct custom size style — no scaling factors\nconst customSizeStyle = computed(() => (props.customSize ? { fontSize: `${props.customSize}px` } : undefined));\n\n// Deprecation warning (dev-only)\nonMounted(() => {\n if (import.meta.env.DEV) {\n console.warn(\n `[VcIcon] FontAwesome icon \"${props.icon}\" is deprecated. ` +\n `Migrate to Lucide: use \"lucide-{name}\" instead (e.g. \"lucide-home\" instead of \"fa-home\"). ` +\n `See https://lucide.dev/icons for available icons.`,\n );\n }\n});\n\n// Compute the FontAwesome class from the icon string\nconst iconClasses = computed(() => {\n // If icon already has a style prefix (fas, far, fal, fab), use it as is\n if (\n props.icon.startsWith(\"fas \") ||\n props.icon.startsWith(\"far \") ||\n props.icon.startsWith(\"fal \") ||\n props.icon.startsWith(\"fab \") ||\n props.icon.startsWith(\"fad \")\n ) {\n return props.icon;\n }\n\n // If icon starts with fa-, add the default style prefix\n if (props.icon.startsWith(\"fa-\")) {\n return `fas ${props.icon}`;\n }\n\n // If icon contains fa- but doesn't start with a style prefix, assume the style prefix is included\n if (props.icon.includes(\"fa-\")) {\n return props.icon;\n }\n\n // Otherwise, assume it's a bare icon name and add both the style prefix and fa- prefix\n return `fas fa-${props.icon}`;\n});\n</script>\n\n<style lang=\"scss\">\n.vc-fa-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: inherit;\n\n &--xs {\n font-size: var(--icon-size-xs);\n }\n\n &--s {\n font-size: var(--icon-size-s);\n }\n\n &--m {\n font-size: var(--icon-size-m);\n }\n\n &--l {\n font-size: var(--icon-size-l);\n }\n\n &--xl {\n font-size: var(--icon-size-xl);\n }\n\n &--xxl {\n font-size: var(--icon-size-xxl);\n }\n\n &--xxxl {\n font-size: var(--icon-size-xxxl);\n }\n\n &--warning {\n color: var(--icon-color-warning);\n }\n\n &--danger {\n color: var(--icon-color-danger);\n }\n\n &--success {\n color: var(--icon-color-success);\n }\n}\n</style>\n","<template>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n :class=\"['vc-svg-icon', !hasCustomSize && `vc-svg-icon--${size}`, variant ? `vc-svg-icon--${variant}` : '']\"\n :style=\"computedStyle\"\n v-bind=\"$attrs\"\n >\n <use\n v-if=\"resolvedIconPath\"\n :xlink:href=\"resolvedIconPath\"\n />\n </svg>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { IconSize, IconVariant } from \"@ui/components/atoms/vc-icon/types\";\n\ndefineOptions({\n inheritAttrs: false,\n});\n\ninterface Props {\n /**\n * Path to SVG icon or sprite\n */\n icon: string;\n\n /**\n * Icon size\n */\n size?: IconSize;\n\n /**\n * Variant for special coloring\n */\n variant?: IconVariant;\n\n /**\n * Base path prepended to icon path\n */\n basePath?: string;\n\n /**\n * Custom size in pixels\n */\n customSize?: number;\n\n /**\n * Stroke width for SVG icons\n */\n strokeWidth?: number;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n size: \"m\",\n basePath: \"/assets/icons\",\n});\n\n// Check if using custom size to conditionally apply CSS class\nconst hasCustomSize = computed(() => typeof props.customSize === \"number\" && props.customSize > 0);\n\n// Compute the full path to the icon\nconst resolvedIconPath = computed(() => {\n // Check if the icon is already a complete path\n if (props.icon.startsWith(\"/\") || props.icon.includes(\"://\") || props.icon.startsWith(\"#\")) {\n return props.icon;\n }\n\n // Check if the icon is a reference to a sprite (contains #)\n const hashIndex = props.icon.indexOf(\"#\");\n if (hashIndex > -1) {\n const spritePath = props.icon.substring(0, hashIndex);\n const iconId = props.icon.substring(hashIndex);\n return `${props.basePath}/${spritePath}${iconId}`;\n }\n\n // Apply basePath for relative paths\n return `${props.basePath}/${props.icon}`;\n});\n\n// Direct style computation — no scaling factors\nconst computedStyle = computed(() => {\n const styles: Record<string, string> = {};\n\n if (props.customSize) {\n styles.width = `${props.customSize}px`;\n styles.height = `${props.customSize}px`;\n }\n\n if (props.strokeWidth) {\n styles.strokeWidth = `${props.strokeWidth}`;\n }\n\n return styles;\n});\n</script>\n\n<style lang=\"scss\">\n.vc-svg-icon {\n display: inline-block;\n width: 1em;\n height: 1em;\n stroke-width: 0;\n stroke: currentColor;\n fill: currentColor;\n vertical-align: middle;\n flex-shrink: 0;\n font-size: inherit;\n\n &--xs {\n width: var(--icon-size-xs);\n height: var(--icon-size-xs);\n }\n\n &--s {\n width: var(--icon-size-s);\n height: var(--icon-size-s);\n }\n\n &--m {\n width: var(--icon-size-m);\n height: var(--icon-size-m);\n }\n\n &--l {\n width: var(--icon-size-l);\n height: var(--icon-size-l);\n }\n\n &--xl {\n width: var(--icon-size-xl);\n height: var(--icon-size-xl);\n }\n\n &--xxl {\n width: var(--icon-size-xxl);\n height: var(--icon-size-xxl);\n }\n\n &--xxxl {\n width: var(--icon-size-xxxl);\n height: var(--icon-size-xxxl);\n }\n\n &--warning {\n color: var(--icon-color-warning);\n }\n\n &--danger {\n color: var(--icon-color-danger);\n }\n\n &--success {\n color: var(--icon-color-success);\n }\n}\n</style>\n","<template>\n <div\n v-if=\"useContainer\"\n :class=\"['vc-icon-container', `vc-icon-container--${size}`]\"\n :style=\"containerStyle\"\n :aria-hidden=\"ariaLabel ? undefined : 'true'\"\n :aria-label=\"ariaLabel || undefined\"\n :role=\"ariaLabel ? 'img' : undefined\"\n v-bind=\"$attrs\"\n >\n <component\n :is=\"renderComponent\"\n :class=\"[\n 'vc-icon',\n `vc-icon--${size}`,\n variant ? `vc-icon--${variant}` : '',\n !isCustomIcon && !isMaterialIcon && !isLucideIcon && !isBootstrapIcon && !isFontAwesomeIcon\n ? (icon as string).toLowerCase()\n : '',\n ]\"\n :style=\"iconStyle\"\n v-bind=\"componentProps\"\n />\n </div>\n\n <component\n :is=\"renderComponent\"\n v-else\n :class=\"[\n 'vc-icon',\n `vc-icon--${size}`,\n variant ? `vc-icon--${variant}` : '',\n !isCustomIcon && !isMaterialIcon && !isLucideIcon && !isBootstrapIcon && !isFontAwesomeIcon\n ? (icon as string).toLowerCase()\n : '',\n ]\"\n :style=\"iconStyle\"\n :aria-hidden=\"ariaLabel ? undefined : 'true'\"\n :aria-label=\"ariaLabel || undefined\"\n :role=\"ariaLabel ? 'img' : undefined\"\n v-bind=\"{ ...componentProps, ...$attrs }\"\n />\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, markRaw, onMounted, resolveComponent } from \"vue\";\nimport type { Component } from \"vue\";\nimport VcMaterialIcon from \"@ui/components/atoms/vc-icon/vc-material-icon.vue\";\nimport VcBootstrapIcon from \"@ui/components/atoms/vc-icon/vc-bootstrap-icon.vue\";\nimport VcLucideIcon from \"@ui/components/atoms/vc-icon/vc-lucide-icon.vue\";\nimport VcFontawesomeIcon from \"@ui/components/atoms/vc-icon/vc-fontawesome-icon.vue\";\nimport VcSvgIcon from \"@ui/components/atoms/vc-icon/vc-svg-icon.vue\";\n\nexport type IconType = \"fontawesome\" | \"material\" | \"bootstrap\" | \"lucide\" | \"custom\" | \"svg\";\nexport type IconSize = \"xs\" | \"s\" | \"m\" | \"l\" | \"xl\" | \"xxl\" | \"xxxl\";\nexport type IconVariant = \"warning\" | \"danger\" | \"success\";\n\nexport interface Props {\n /**\n * Icon to display. Can be a string identifier or a component instance.\n * For string identifiers, use the following format:\n * - \"fa-*\" or \"fas fa-*\" for Font Awesome icons (e.g. \"fa-home\")\n * - \"bi-*\" for Bootstrap icons (e.g. \"bi-house\")\n * - \"material-*\" for Material icons (e.g. \"material-home\")\n * - \"lucide-*\" for Lucide icons (e.g. \"lucide-home\")\n * - \"svg:path/to/icon.svg\" for SVG icons\n * All icons must use the corresponding prefix to determine their type.\n */\n icon?: string | Component;\n\n /**\n * Icon size. The component provides predefined sizes from xs to xxxl.\n * Each size corresponds to a specific size in pixels, as defined in the CSS variables.\n */\n size?: IconSize;\n\n /**\n * Color variant for the icon. Applies predefined colors from the design system.\n * Available variants include warning (yellow), danger (red), and success (green).\n */\n variant?: IconVariant;\n\n /**\n * @deprecated The container wrapper is deprecated and will be removed in a future version.\n * Icons render correctly without a container. Remove this prop from your usage.\n * Whether to wrap the icon in a fixed-size container.\n */\n useContainer?: boolean;\n\n /**\n * Custom size in pixels. If provided, this will override the size prop.\n * This is useful when you need a specific size that's not in the predefined sizes.\n */\n customSize?: number;\n\n /**\n * Base path to SVG icons (only for SVG icons)\n */\n basePath?: string;\n\n /**\n * Accessible label for meaningful (non-decorative) icons.\n * When provided, the icon gets role=\"img\" and aria-label instead of aria-hidden=\"true\".\n */\n ariaLabel?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n icon: \"lucide-square\",\n size: \"m\",\n useContainer: false,\n basePath: \"/assets/icons\",\n});\n\n// Deprecation warning for useContainer (dev-only)\nonMounted(() => {\n if (import.meta.env.DEV && props.useContainer) {\n console.warn(\n '[VcIcon] The \"useContainer\" prop is deprecated and will be removed in a future version. ' +\n \"Remove it from your usage — the icon renders correctly without a container wrapper.\",\n );\n }\n});\n\n// Sizes in px for each size value\nconst sizeMap = {\n xs: 12,\n s: 14,\n m: 18,\n l: 20,\n xl: 22,\n xxl: 30,\n xxxl: 64,\n} as const;\n\n// Function to detect icon type if not explicitly specified\nconst detectIconType = computed((): IconType => {\n if (typeof props.icon !== \"string\") {\n return \"custom\";\n }\n\n // Icon package prefixes\n if (props.icon.startsWith(\"fa-\") || props.icon.includes(\"fa-\")) {\n return \"fontawesome\";\n }\n\n if (props.icon.startsWith(\"bi-\")) {\n return \"bootstrap\";\n }\n\n if (props.icon.startsWith(\"lucide-\")) {\n return \"lucide\";\n }\n\n if (props.icon.startsWith(\"material-\")) {\n return \"material\";\n }\n\n // SVG icon prefix\n if (props.icon.startsWith(\"svg:\")) {\n return \"svg\";\n }\n\n // For backward compatibility with Lucide icons ending with Icon\n if (props.icon.endsWith(\"Icon\")) {\n return \"lucide\";\n }\n\n return \"custom\";\n});\n\n// Get the normalized icon name without prefix\nconst normalizedIconName = computed(() => {\n if (typeof props.icon !== \"string\") {\n return props.icon;\n }\n\n if (detectIconType.value === \"material\" && props.icon.startsWith(\"material-\")) {\n return props.icon.replace(/^material-/, \"\");\n }\n\n if (detectIconType.value === \"lucide\" && props.icon.startsWith(\"lucide-\")) {\n const baseName = props.icon.replace(/^lucide-/, \"\");\n return baseName.endsWith(\"Icon\") ? baseName : `${baseName}Icon`;\n }\n\n return props.icon;\n});\n\n// Check if icon is a Material Design symbol\nconst isMaterialIcon = computed(() => detectIconType.value === \"material\");\n\n// Check if icon is a Bootstrap Icon\nconst isBootstrapIcon = computed(() => detectIconType.value === \"bootstrap\");\n\n// Check if icon is a Lucide Icon\nconst isLucideIcon = computed(() => detectIconType.value === \"lucide\");\n\n// Check if icon is a Font Awesome Icon\nconst isFontAwesomeIcon = computed(() => detectIconType.value === \"fontawesome\");\n\n// Check if the icon is a component or can be resolved as a component\nconst isCustomIcon = computed(() => {\n if (typeof props.icon !== \"string\") {\n return true; // Component instance passed directly\n }\n\n // Skip for known icon libraries with prefixes\n if (\n [\"fontawesome\", \"bootstrap\"].includes(detectIconType.value) ||\n (detectIconType.value === \"material\" && props.icon.startsWith(\"material-\")) ||\n (detectIconType.value === \"lucide\" && props.icon.startsWith(\"lucide-\"))\n ) {\n return false;\n }\n\n // Check for Lucide icons - they could be resolved as components\n if (isLucideIcon.value) {\n try {\n const iconName =\n typeof normalizedIconName.value === \"string\" ? normalizedIconName.value : String(normalizedIconName.value);\n const resolved = resolveComponent(iconName);\n return resolved !== iconName;\n } catch (_e) {\n return false;\n }\n }\n\n // Check if string is a component name that can be resolved\n try {\n const resolved = resolveComponent(props.icon);\n return resolved !== props.icon; // If resolved is different from original string, it's a component name\n } catch (_e) {\n return false;\n }\n});\n\n// Get the component instance for rendering\nconst safeIcon = computed(() => {\n if (typeof props.icon !== \"string\") {\n return markRaw(props.icon); // Use markRaw for direct component instances\n }\n\n // Skip resolveComponent for known icon types, they are handled by specialized components\n if ([\"fontawesome\", \"bootstrap\", \"material\"].includes(detectIconType.value)) {\n return \"i\";\n }\n\n // Try to resolve component by name (mostly for Lucide icons)\n try {\n const iconName =\n typeof normalizedIconName.value === \"string\" ? normalizedIconName.value : String(normalizedIconName.value);\n const resolved = resolveComponent(iconName);\n return resolved !== iconName ? resolved : \"i\"; // Return resolved component or fallback to 'i'\n } catch (_e) {\n return \"i\";\n }\n});\n\n// Determine which component to render\nconst renderComponent = computed(() => {\n if (isMaterialIcon.value) {\n return VcMaterialIcon;\n }\n\n if (isBootstrapIcon.value) {\n return VcBootstrapIcon;\n }\n\n if (isLucideIcon.value) {\n return VcLucideIcon;\n }\n\n if (isFontAwesomeIcon.value) {\n return VcFontawesomeIcon;\n }\n\n if (isSvgIcon.value) {\n return VcSvgIcon;\n }\n\n return isCustomIcon.value ? safeIcon.value : \"i\";\n});\n\n// Calculate the actual pixel size based on props\nconst calculatedSize = computed(() => {\n if (props.customSize) {\n return props.customSize;\n }\n return sizeMap[props.size];\n});\n\n// Icon styles — sizing is now handled by sub-components and CSS classes.\n// This computed only provides styles for the wrapper element level.\nconst iconStyle = computed(() => {\n const styles: Record<string, string> = {};\n\n if (isCustomIcon.value && props.customSize) {\n styles.width = `${props.customSize}px`;\n styles.height = `${props.customSize}px`;\n }\n\n return styles;\n});\n\n// Container styles\nconst containerStyle = computed(() => {\n if (props.customSize) {\n return {\n fontSize: `${props.customSize}px`,\n };\n }\n return {};\n});\n\n// Prepare props for the rendered component\nconst componentProps = computed(() => {\n if (isMaterialIcon.value) {\n // Clean the name from possible suffixes of the icon type\n const cleanIconName =\n typeof normalizedIconName.value === \"string\"\n ? normalizedIconName.value.replace(/-outlined$|-rounded$|-sharp$/, \"\")\n : normalizedIconName.value;\n\n return {\n icon: cleanIconName,\n size: props.size,\n variant: props.variant,\n type: \"outlined\",\n fill: 0,\n weight: 300,\n grade: 0,\n customSize: props.customSize, // Set custom size without scaling\n };\n }\n\n if (isBootstrapIcon.value) {\n // For Bootstrap icons\n const iconName = typeof props.icon === \"string\" ? props.icon : \"\";\n\n return {\n icon: iconName,\n size: props.size,\n variant: props.variant,\n customSize: props.customSize, // Set custom size without scaling\n };\n }\n\n if (isLucideIcon.value) {\n // For Lucide icons\n const iconName =\n typeof normalizedIconName.value === \"string\" ? normalizedIconName.value : String(normalizedIconName.value);\n\n return {\n icon: iconName,\n size: props.size,\n variant: props.variant,\n strokeWidth: 1.5,\n customSize: props.customSize, // Set custom size without scaling\n };\n }\n\n if (isFontAwesomeIcon.value) {\n // For Font Awesome icons\n return {\n icon: typeof props.icon === \"string\" ? props.icon : \"\",\n size: props.size,\n variant: props.variant,\n customSize: props.customSize, // Set custom size without scaling\n };\n }\n\n if (isSvgIcon.value) {\n return {\n icon: svgPath.value,\n size: props.size,\n variant: props.variant,\n customSize: props.customSize,\n basePath: props.basePath,\n };\n }\n\n if (isCustomIcon.value) {\n return {\n size: props.size,\n width: calculatedSize.value,\n height: calculatedSize.value,\n color: props.variant ? `var(--icon-color-${props.variant})` : \"currentColor\",\n };\n }\n\n return {};\n});\n\n// Check if icon is an SVG icon\nconst isSvgIcon = computed(() => detectIconType.value === \"svg\");\n\n// Get the path to the SVG if it's an SVG icon\nconst svgPath = computed(() => {\n if (!isSvgIcon.value || typeof props.icon !== \"string\") {\n return \"\";\n }\n\n // Remove the svg: prefix if present\n return props.icon.startsWith(\"svg:\") ? props.icon.substring(4) : props.icon;\n});\n</script>\n\n<style lang=\"scss\">\n/* Base sizes */\n:root {\n /* Define icon sizes */\n --icon-size-xs: 12px;\n --icon-size-s: 14px;\n --icon-size-m: 18px;\n --icon-size-l: 20px;\n --icon-size-xl: 22px;\n --icon-size-xxl: 30px;\n --icon-size-xxxl: 64px;\n\n /* Colors for variants */\n --icon-color-success: var(--success-500);\n --icon-color-danger: var(--danger-500);\n --icon-color-warning: var(--warning-500);\n}\n\n/* Base styles for all icons */\n.vc-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n line-height: 1;\n\n /* Ensure SVG icons respect font-size */\n svg {\n width: 1em;\n height: 1em;\n display: block;\n }\n}\n\n/* Size classes - these use CSS variables */\n.vc-icon--xs {\n font-size: var(--icon-size-xs);\n}\n\n.vc-icon--s {\n font-size: var(--icon-size-s);\n}\n\n.vc-icon--m {\n font-size: var(--icon-size-m);\n}\n\n.vc-icon--l {\n font-size: var(--icon-size-l);\n}\n\n.vc-icon--xl {\n font-size: var(--icon-size-xl);\n}\n\n.vc-icon--xxl {\n font-size: var(--icon-size-xxl);\n}\n\n.vc-icon--xxxl {\n font-size: var(--icon-size-xxxl);\n}\n\n/* Variants */\n.vc-icon--warning {\n color: var(--icon-color-warning);\n}\n\n.vc-icon--danger {\n color: var(--icon-color-danger);\n}\n\n.vc-icon--success {\n color: var(--icon-color-success);\n}\n\n/* Styles for the container */\n.vc-icon-container {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n line-height: 1;\n font-size: inherit; /* Inherit font-size from the parent */\n}\n\n.vc-icon-container--xs {\n min-width: calc(var(--icon-size-xs) * 1.33);\n min-height: calc(var(--icon-size-xs) * 1.33);\n font-size: var(--icon-size-xs); /* Set font-size for the container */\n}\n\n.vc-icon-container--s {\n min-width: calc(var(--icon-size-s) * 1.33);\n min-height: calc(var(--icon-size-s) * 1.33);\n font-size: var(--icon-size-s); /* Set font-size for the container */\n}\n\n.vc-icon-container--m {\n min-width: calc(var(--icon-size-m) * 1.33);\n min-height: calc(var(--icon-size-m) * 1.33);\n font-size: var(--icon-size-m); /* Set font-size for the container */\n}\n\n.vc-icon-container--l {\n min-width: calc(var(--icon-size-l) * 1.33);\n min-height: calc(var(--icon-size-l) * 1.33);\n font-size: var(--icon-size-l); /* Set font-size for the container */\n}\n\n.vc-icon-container--xl {\n min-width: calc(var(--icon-size-xl) * 1.33);\n min-height: calc(var(--icon-size-xl) * 1.33);\n font-size: var(--icon-size-xl); /* Set font-size for the container */\n}\n\n.vc-icon-container--xxl {\n min-width: calc(var(--icon-size-xxl) * 1.33);\n min-height: calc(var(--icon-size-xxl) * 1.33);\n font-size: var(--icon-size-xxl); /* Set font-size for the container */\n}\n\n.vc-icon-container--xxxl {\n min-width: calc(var(--icon-size-xxxl) * 1.33);\n min-height: calc(var(--icon-size-xxxl) * 1.33);\n font-size: var(--icon-size-xxxl); /* Set font-size for the container */\n}\n\n/* Material Icons specific styles */\n.material-symbols-outlined,\n.material-symbols-rounded,\n.material-symbols-sharp {\n font-family: \"Material Symbols Outlined\";\n font-weight: normal;\n font-style: normal;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n font-feature-settings: \"liga\";\n -webkit-font-feature-settings: \"liga\";\n -webkit-font-smoothing: antialiased;\n}\n\n/* Bootstrap Icons specific styles */\n[class^=\"bi-\"],\n[class*=\" bi-\"] {\n font-family: bootstrap-icons !important;\n font-style: normal;\n font-weight: normal !important;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* Font Awesome Icons */\n[class^=\"fa-\"],\n[class*=\" fa-\"],\n[class~=\"fas\"],\n[class~=\"far\"],\n[class~=\"fal\"],\n[class~=\"fab\"],\n[class~=\"fad\"] {\n font-family: \"Font Awesome 6 Free\", \"Font Awesome 6 Brands\", \"Font Awesome 6 Duotone\", \"Font Awesome 6 Pro\";\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* Font weight adjustments for Font Awesome */\n.fas,\n.fa-solid {\n font-weight: 900;\n}\n\n.far,\n.fa-regular {\n font-weight: 400;\n}\n\n.fal,\n.fa-light {\n font-weight: 300;\n}\n\n.fab,\n.fa-brands {\n font-family: \"Font Awesome 6 Brands\";\n}\n</style>\n","<template>\n <div class=\"vc-ai-agent-header\">\n <div class=\"vc-ai-agent-header__icon\">\n <VcVirtoOzLogo\n :width=\"22\"\n :height=\"24\"\n show-dots\n />\n </div>\n\n <div class=\"vc-ai-agent-header__wrapper\">\n <div class=\"vc-ai-agent-header__content\">\n <div class=\"vc-ai-agent-header__title\">\n {{ title }}\n </div>\n </div>\n </div>\n\n <div class=\"vc-ai-agent-header__controls\">\n <div\n v-if=\"isExpanded\"\n class=\"vc-ai-agent-header__button\"\n title=\"Collapse\"\n @click=\"$emit('collapse')\"\n >\n <VcIcon icon=\"lucide-minus\" />\n </div>\n <div\n v-else\n class=\"vc-ai-agent-header__button\"\n title=\"Expand\"\n @click=\"$emit('expand')\"\n >\n <VcIcon icon=\"lucide-panel-top\" />\n </div>\n <div\n class=\"vc-ai-agent-header__button\"\n title=\"Close\"\n @click=\"$emit('close')\"\n >\n <VcIcon icon=\"lucide-x\" />\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport VcVirtoOzLogo from \"@core/plugins/ai-agent/components/_internal/VcVirtoOzLogo.vue\";\nimport { VcIcon } from \"@ui/components/atoms/vc-icon\";\n\ndefineProps<{\n title?: string;\n isExpanded: boolean;\n itemsCount?: number;\n}>();\n\ndefineEmits<{\n (e: \"close\"): void;\n (e: \"expand\"): void;\n (e: \"collapse\"): void;\n}>();\n</script>\n\n<style lang=\"scss\">\n.vc-ai-agent-header {\n @apply tw-shrink-0 tw-flex tw-items-center tw-py-0 tw-px-6 tw-border-solid tw-border-b;\n height: var(--blade-header-height, 70px);\n background-color: var(--blade-header-background-color, var(--additional-50));\n border-color: var(--blade-header-border-color, var(--neutrals-200));\n\n &__left {\n @apply tw-flex tw-flex-row tw-items-center;\n }\n\n &__icon {\n @apply tw-mr-3;\n color: var(--primary-500);\n }\n\n &__wrapper {\n @apply tw-flex tw-items-center tw-justify-between tw-grow tw-basis-0 tw-overflow-hidden;\n }\n\n &__content {\n @apply tw-overflow-hidden;\n }\n\n &__title {\n @apply tw-truncate tw-font-semibold;\n color: var(--blade-header-title-color, var(--neutrals-950));\n font-size: var(--blade-header-title-font-size, 19px);\n }\n\n &__controls {\n @apply tw-flex tw-items-center;\n }\n\n &__button {\n @apply tw-ml-2.5 tw-cursor-pointer;\n color: var(--blade-header-button-color, var(--neutrals-400));\n\n &:hover {\n color: var(--blade-header-button-color-hover, var(--neutrals-500));\n }\n }\n\n &__badge {\n @apply tw-ml-2 tw-text-xs tw-font-medium tw-px-1.5 tw-py-0.5 tw-rounded-full;\n background-color: var(--ai-panel-badge-bg);\n color: var(--ai-panel-badge-color);\n }\n}\n</style>\n","<template>\r\n <div class=\"vc-ai-agent-loader\">\r\n <div class=\"vc-ai-agent-loader__content\">\r\n <div class=\"vc-ai-agent-loader__logo\">\r\n <VcVirtoOzLogo\r\n :width=\"80\"\r\n :height=\"87\"\r\n animated\r\n />\r\n </div>\r\n <p\r\n v-if=\"text\"\r\n class=\"vc-ai-agent-loader__text\"\r\n >\r\n {{ text }}\r\n </p>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport VcVirtoOzLogo from \"@core/plugins/ai-agent/components/_internal/VcVirtoOzLogo.vue\";\r\n\r\nexport interface Props {\r\n /** Loading text to display */\r\n text?: string;\r\n}\r\n\r\ndefineProps<Props>();\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n@keyframes virto-oz-float {\r\n 0%,\r\n 100% {\r\n transform: translateY(0);\r\n }\r\n 50% {\r\n transform: translateY(-6px);\r\n }\r\n}\r\n\r\n@keyframes virto-oz-glow {\r\n 0%,\r\n 100% {\r\n filter: drop-shadow(0 4px 15px rgba(255, 149, 51, 0.4));\r\n }\r\n 25% {\r\n filter: drop-shadow(0 4px 15px rgba(255, 79, 187, 0.4));\r\n }\r\n 50% {\r\n filter: drop-shadow(0 4px 15px rgba(28, 145, 252, 0.4));\r\n }\r\n 75% {\r\n filter: drop-shadow(0 4px 15px rgba(154, 45, 248, 0.4));\r\n }\r\n}\r\n\r\n.vc-ai-agent-loader {\r\n @apply tw-absolute tw-inset-0 tw-flex tw-items-center tw-justify-center tw-z-[var(--z-local-sticky)];\r\n background: linear-gradient(135deg, var(--additional-50) 0%, var(--neutrals-50) 100%);\r\n\r\n &__content {\r\n @apply tw-flex tw-flex-col tw-items-center tw-gap-5;\r\n }\r\n\r\n &__logo {\r\n animation:\r\n virto-oz-float 2.5s ease-in-out infinite,\r\n virto-oz-glow 4s linear infinite;\r\n }\r\n\r\n &__text {\r\n @apply tw-text-sm tw-m-0 tw-font-medium;\r\n color: var(--neutrals-600);\r\n }\r\n}\r\n</style>\r\n","<template>\n <div class=\"vc-ai-agent-iframe\">\n <!-- Loading overlay -->\n <Transition name=\"fade\">\n <VcAiAgentLoader\n v-if=\"isLoading && url\"\n :text=\"$t('AI_AGENT.LOADING')\"\n />\n </Transition>\n\n <iframe\n v-if=\"url\"\n ref=\"iframeRef\"\n :src=\"url\"\n class=\"vc-ai-agent-iframe__frame\"\n :class=\"{ 'vc-ai-agent-iframe__frame--loading': isLoading }\"\n sandbox=\"allow-scripts allow-same-origin allow-forms allow-popups allow-popups-to-escape-sandbox\"\n allow=\"clipboard-read; clipboard-write\"\n @load=\"onLoad\"\n />\n <div\n v-else\n class=\"vc-ai-agent-iframe__placeholder\"\n >\n <VcIcon\n icon=\"lucide-sparkles\"\n size=\"xl\"\n class=\"vc-ai-agent-iframe__placeholder-icon\"\n />\n <p class=\"vc-ai-agent-iframe__placeholder-text\">AI Agent URL not configured</p>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ref, watch } from \"vue\";\nimport VcAiAgentLoader from \"@core/plugins/ai-agent/components/_internal/VcAiAgentLoader.vue\";\nimport { createLogger } from \"@core/utilities\";\nimport { VcIcon } from \"@ui/components/atoms/vc-icon\";\n\nconst logger = createLogger(\"ai-agent-iframe\");\n\nconst props = defineProps<{\n url: string;\n}>();\n\nconst emit = defineEmits<{\n (e: \"iframe-ready\", iframe: HTMLIFrameElement): void;\n}>();\n\nconst iframeRef = ref<HTMLIFrameElement | null>(null);\nconst isLoading = ref(true);\n\n// Emit iframe ref as soon as it's available in the DOM (before @load)\n// This is critical because chatbot sends CHAT_READY before @load fires\nwatch(\n iframeRef,\n (iframe) => {\n if (iframe) {\n emit(\"iframe-ready\", iframe);\n }\n },\n { immediate: true },\n);\n\nconst onLoad = () => {\n // Hide loader after iframe loads\n isLoading.value = false;\n logger.debug(\"Iframe loaded\");\n};\n\n// Reset loading state when URL changes\nwatch(\n () => props.url,\n () => {\n isLoading.value = true;\n },\n);\n</script>\n\n<style lang=\"scss\">\n// Fade transition\n.fade-enter-active,\n.fade-leave-active {\n transition: opacity 0.3s ease;\n}\n\n.fade-enter-from,\n.fade-leave-to {\n opacity: 0;\n}\n\n.vc-ai-agent-iframe {\n @apply tw-w-full tw-h-full tw-flex tw-flex-col tw-relative;\n\n &__frame {\n @apply tw-w-full tw-h-full tw-border-0 tw-flex-1;\n background-color: var(--ai-panel-iframe-bg, var(--additional-50));\n transition: opacity 0.3s ease;\n\n &--loading {\n opacity: 0;\n }\n }\n\n &__placeholder {\n @apply tw-w-full tw-h-full tw-flex tw-flex-col tw-items-center tw-justify-center tw-gap-4;\n background-color: var(--ai-panel-placeholder-bg, var(--neutrals-50));\n }\n\n &__placeholder-icon {\n color: var(--ai-panel-placeholder-icon-color, var(--neutrals-300));\n }\n\n &__placeholder-text {\n @apply tw-text-sm tw-m-0;\n color: var(--ai-panel-placeholder-text-color, var(--neutrals-500));\n }\n}\n</style>\n","<template>\n <Transition name=\"ai-panel-slide\">\n <div\n v-if=\"isOpen\"\n class=\"vc-ai-agent-panel\"\n :class=\"{\n 'vc-ai-agent-panel--expanded': isExpanded,\n }\"\n :style=\"panelStyle\"\n >\n <VcAiAgentHeader\n :title=\"config.title\"\n :is-expanded=\"isExpanded\"\n :items-count=\"totalItemsCount\"\n @close=\"closePanel\"\n @expand=\"expandPanel\"\n @collapse=\"collapsePanel\"\n />\n\n <div class=\"vc-ai-agent-panel__content\">\n <VcAiAgentIframe\n :url=\"config.url\"\n @iframe-ready=\"onIframeReady\"\n />\n </div>\n </div>\n </Transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, onUnmounted, inject } from \"vue\";\nimport { AiAgentServiceKey, EmbeddedModeKey } from \"@framework/injection-keys\";\nimport type { IAiAgentServiceInternal } from \"@core/plugins/ai-agent/services/ai-agent-service\";\nimport VcAiAgentHeader from \"@core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue\";\nimport VcAiAgentIframe from \"@core/plugins/ai-agent/components/_internal/VcAiAgentIframe.vue\";\n\n// Inject AI agent service\nconst aiAgentService = inject(AiAgentServiceKey) as IAiAgentServiceInternal | undefined;\nconst isEmbedded = inject(EmbeddedModeKey, false);\n\nif (!aiAgentService) {\n console.error(\"[VcAiAgentPanel] AiAgentService not provided\");\n}\n\n// Destructure service properties\nconst config = computed(\n () => aiAgentService?.config.value ?? { url: \"\", title: \"AI Assistant\", width: 362, expandedWidth: 500 },\n);\nconst isOpen = computed(() => !isEmbedded && (aiAgentService?.isOpen.value ?? false));\nconst isExpanded = computed(() => aiAgentService?.isExpanded.value ?? false);\nconst totalItemsCount = computed(() => aiAgentService?.totalItemsCount.value ?? 0);\n\n// Panel style with dynamic width\nconst panelStyle = computed(() => ({\n width: isExpanded.value ? `${config.value.expandedWidth ?? 500}px` : `${config.value.width ?? 362}px`,\n}));\n\n// Panel control methods\nconst closePanel = () => aiAgentService?.closePanel();\nconst expandPanel = () => aiAgentService?.expandPanel();\nconst collapsePanel = () => aiAgentService?.collapsePanel();\n\n// Handle iframe ready event\nconst onIframeReady = (iframe: HTMLIFrameElement) => {\n aiAgentService?._setIframeRef(iframe);\n};\n\n// Clean up iframe ref on unmount\nonUnmounted(() => {\n aiAgentService?._setIframeRef(null);\n});\n</script>\n\n<style lang=\"scss\">\n:root {\n --ai-panel-bg: var(--additional-50);\n --ai-panel-border-color: var(--neutrals-200);\n --ai-panel-shadow: -4px 0 12px rgba(0, 0, 0, 0.08);\n --ai-panel-header-bg: var(--primary-50);\n --ai-panel-header-border: var(--neutrals-200);\n --ai-panel-icon-color: var(--primary-500);\n --ai-panel-title-color: var(--secondary-950);\n --ai-panel-badge-bg: var(--primary-100);\n --ai-panel-badge-color: var(--primary-700);\n --ai-panel-button-color: var(--neutrals-600);\n --ai-panel-button-hover-bg: var(--neutrals-100);\n --ai-panel-button-hover-color: var(--neutrals-900);\n --ai-panel-iframe-bg: var(--additional-50);\n --ai-panel-placeholder-bg: var(--neutrals-50);\n --ai-panel-placeholder-icon-color: var(--neutrals-300);\n --ai-panel-placeholder-text-color: var(--neutrals-500);\n}\n\n// Slide transition for panel\n.ai-panel-slide-enter-active,\n.ai-panel-slide-leave-active {\n transition: transform var(--app-panel-transition-duration, 0.3s)\n var(--app-panel-transition-timing, cubic-bezier(0.4, 0, 0.2, 1));\n}\n\n.ai-panel-slide-enter-from,\n.ai-panel-slide-leave-to {\n transform: translateX(100%);\n}\n\n.vc-ai-agent-panel {\n @apply tw-flex tw-flex-col tw-h-full tw-shrink-0;\n background-color: var(--ai-panel-bg);\n box-shadow: var(--ai-panel-shadow);\n // Width transition for expand/collapse\n transition: width var(--app-panel-transition-duration, 0.3s)\n var(--app-panel-transition-timing, cubic-bezier(0.4, 0, 0.2, 1));\n overflow: hidden;\n border-width: 1px;\n border-style: solid;\n border-color: var(--ai-panel-border-color);\n\n &--expanded {\n // Additional expanded styles if needed\n }\n\n &__content {\n @apply tw-flex-1 tw-overflow-hidden tw-flex tw-flex-col tw-pt-3;\n }\n}\n</style>\n"],"names":["ISO_DATE_PATTERN","dateReviver","key","value","date","AuthApiBase","defaultUrl","baseUrl","token","options","ExternalSignInClient","http","authenticationType","returnUrl","storeId","oidcUrl","callbackUrl","url_","options_","transformedOptions_","_response","response","status","_headers","v","k","_responseText","throwException","result200","AppsClient","AuthorizationClient","body","result400","ChangeLogClient","scope","type","start","end","DeveloperToolsClient","DiagnosticsClient","DynamicPropertiesClient","id","propertyIds","item","propertyId","ids","JobsClient","LocalizableSettingsClient","name","language","values","ModulesClient","OAuthAppsClient","clientIds","PushNotificationClient","SecurityClient","userId","roleName","userName","email","loginProvider","providerKey","loginOrEmail","names","newEmail","tokenProvider","purpose","SettingClient","DynamicPropertyValueType","EntryState","JsonValueKind","ProgressMessageLevel","SettingValueType","SortDirection","DynamicObjectPropertyValueType","DynamicPropertyValueType2","DynamicPropertyObjectValueValueType","JsonElementValueKind","ObjectSettingEntryValueType","OperationLogOperationType","ProgressMessageLevel2","SortInfoSortDirection","ApiException","message","headers","result","obj","LOG_LEVELS","defaultConfig","createLogger","context","config","prefix","shouldLog","level","args","childContext","enabled","logger","loggers","FrameworkError","code","ValidationError","ServiceError","InjectionError","serviceName","RegistrationError","componentName","reason","BladeError","bladeId","ModuleLoadError","moduleId","isFrameworkError","error","wrapError","VC_EXTERNAL_AUTH_DATA_KEY","useExternalProvider","externalSecurityClient","externalSignInStorage","useLocalStorage","getReturnUrlValue","searchParams","externalSignIn","origin","finalReturnUrl","url","e","externalSignOut","getExternalLoginProviders","AUTH_STORAGE_KEY","readAuthData","stored","storeAuthData","data","clearAuthData","fetchToken","params","errorBody","accessToken","refreshToken","expiresIn","expiresAt","_createInternalUserLogic","loading","ref","user","authData","securityClient","isAuthenticated","computed","validateToken","validatePassword","password","resetPasswordByToken","signIn","username","tokenData","userInfo","signOut","loadUserPromise","loadUser","userDetail","getAccessToken","requestPasswordReset","changeUserPassword","oldPassword","newPassword","command","getLoginType","TOKEN_REFRESH_BUFFER_MS","now","shouldRefresh","_sharedInternalUserLogic","createSharedComposable","useUser","internals","BladeStackKey","BladeMessagingKey","BladeDescriptorKey","BladeMaximizedKey","BladeDataKey","BladeBannersKey","BladeBackButtonKey","NotificationStoreKey","WidgetServiceKey","DashboardServiceKey","MenuServiceKey","SettingsMenuServiceKey","AppBarWidgetServiceKey","AppBarMobileButtonsServiceKey","LanguageServiceKey","ToolbarServiceKey","DynamicModulesKey","ModulesReadyKey","ModulesLoadErrorKey","AppRootElementKey","EmbeddedModeKey","ShellIndicatorsKey","AiAgentServiceKey","IsMobileKey","IsDesktopKey","IsPhoneKey","IsTabletKey","IsTouchKey","BladeRoutesKey","InternalRoutesKey","CloseSettingsMenuKey","BladeContextKey","WidgetScopeKey","BladeFormKey","BladeLoadingKey","DEFAULT_AI_AGENT_CONFIG","AI_AGENT_URL_ENV_KEY","EMBEDDED_TO_HOST_MESSAGE_TYPES","HOST_TO_EMBEDDED_MESSAGE_TYPES","AI_AGENT_TOOLBAR_BUTTON_ID","AI_AGENT_TOOLBAR_BUTTON_ICON","AI_AGENT_TOOLBAR_BUTTON_TITLE","createPanelController","panelState","isInitialized","isOpen","isExpanded","open","close","toBladeContext","blade","createContextManager","userGetter","bladeGetter","localeGetter","tokenGetter","bladeContexts","getActiveBladeContext","activeBlade","contextItems","contextType","contextSuggestions","totalItemsCount","items","suggestions","targetBladeId","cloneDeep","downloadFile","payload","byteCharacters","byteNumbers","i","blob","link","createMessageTransport","getConfig","isEmbedded","navigateToBlade","reloadBlade","iframeRef","shallowRef","pendingInitContext","isListenerRegistered","messageHandlers","previewChangesHandlers","chatReadyHandlers","handleChatMessage","previewPayload","handler","navPayload","dlPayload","changesPayload","errPayload","normalized","handleIncomingMessage","event","allowedOrigins","chatMessage","h","iframe","targetOrigin","createAiAgentService","initialConfig","panel","contextManager","transport","flushPendingInit","watch","openPanel","closePanel","togglePanel","_setIframeRef","_setContextData","cleared","newConfig","bladeNavigationInstance","bladeStackInstance","bladeMessagingInstance","bladeRegistryInstance","setBladeNavigationInstance","instance","setBladeStackInstance","setBladeMessagingInstance","setBladeRegistryInstance","buildUrlFromStack","tenantPrefix","stack","workspace","wsUrl","normalizeSegment","path","bladeUrl","query","parseBladeUrl","hashPath","segments","getTenantPrefix","router","createUrlSync","bladeStack","syncUrlPush","syncUrlReplace","CONTEXT_ERROR_SUFFIX","requireContext","method","useBlade","_stack","getCurrentInstance","inject","_messaging","messaging","descriptor","bannersRef","_urlSync","getUrlSync","param","closable","expanded","_bladeDataProvided","provideBladeData","reactiveData","isRef","provide","openBlade","isWorkspace","bladeEvent","parentId","closeSelf","closeChildren","replaceWith","coverWith","callParent","exposeToChildren","methods","onBeforeClose","guard","setError","clearError","_bannerCounter","addBanner","removeBanner","b","clearBanners","_activatedRegistered","_deactivatedRegistered","onActivated","callback","val","onDeactivated","_idCounter","generateBladeId","createBladeStack","bladeRegistry","hasAccess","_blades","_beforeCloseGuards","_onOpenCallbacks","_onCloseCallbacks","blades","_cleanupBlade","_resolveUrl","registration","_checkGuards","bladesToClose","_closeBladesCleanup","openWorkspace","bladeData","parentIndex","closeBlade","index","lastIndex","updated","replaceCurrentBlade","current","currentIndex","coverCurrentBlade","children","registerBeforeClose","unregisterBeforeClose","setBladeError","clearBladeError","setBladeTitle","title","_restoreStack","descriptors","useBladeStack","provideAiAgentService","languageService","service","currentBlade","bladeName","bladeOptions","toolbarService","useAiAgent","createAiAgentToolbarButton","clipPathId","_createElementBlock","__props","_createElementVNode","_openBlock","_hoisted_3","_hoisted_5","_cache","props","hasCustomSize","customSizeStyle","onMounted","_normalizeClass","iconClass","normalizedIconName","part","resolvedIconComponent","iconName","icon","LucideIcons","markRaw","computedStyle","_createBlock","_resolveDynamicComponent","iconClasses","resolvedIconPath","hashIndex","spritePath","iconId","styles","_mergeProps","$attrs","sizeMap","detectIconType","baseName","isMaterialIcon","isBootstrapIcon","isLucideIcon","isFontAwesomeIcon","isCustomIcon","resolveComponent","safeIcon","resolved","renderComponent","VcMaterialIcon","VcBootstrapIcon","VcLucideIcon","VcFontawesomeIcon","isSvgIcon","VcSvgIcon","calculatedSize","iconStyle","containerStyle","componentProps","svgPath","_hoisted_1","_hoisted_2","_createVNode","VcVirtoOzLogo","_hoisted_4","_toDisplayString","_hoisted_6","$emit","_unref","VcIcon","emit","__emit","isLoading","onLoad","_Transition","VcAiAgentLoader","$t","aiAgentService","panelStyle","expandPanel","collapsePanel","onIframeReady","onUnmounted","VcAiAgentHeader","VcAiAgentIframe"],"mappings":"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"}
|