@taon-dev/ui 21.0.28 → 21.0.30
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/VERIFIED-BUILD-DATA.jsonc +3 -3
- package/assets/.gitkeep +0 -0
- package/assets/css/primeicons/fonts/primeicons.ttf +0 -0
- package/assets/css/primeicons/fonts/primeicons.woff +0 -0
- package/assets/css/primeicons/fonts/primeicons.woff2 +0 -0
- package/assets/generated/pwa/android-chrome-144x144.png +0 -0
- package/assets/generated/pwa/android-chrome-192x192.png +0 -0
- package/assets/generated/pwa/android-chrome-256x256.png +0 -0
- package/assets/generated/pwa/android-chrome-36x36.png +0 -0
- package/assets/generated/pwa/android-chrome-384x384.png +0 -0
- package/assets/generated/pwa/android-chrome-48x48.png +0 -0
- package/assets/generated/pwa/android-chrome-512x512.png +0 -0
- package/assets/generated/pwa/android-chrome-72x72.png +0 -0
- package/assets/generated/pwa/android-chrome-96x96.png +0 -0
- package/assets/generated/pwa/apple-touch-icon-1024x1024.png +0 -0
- package/assets/generated/pwa/apple-touch-icon-114x114.png +0 -0
- package/assets/generated/pwa/apple-touch-icon-120x120.png +0 -0
- package/assets/generated/pwa/apple-touch-icon-144x144.png +0 -0
- package/assets/generated/pwa/apple-touch-icon-152x152.png +0 -0
- package/assets/generated/pwa/apple-touch-icon-167x167.png +0 -0
- package/assets/generated/pwa/apple-touch-icon-180x180.png +0 -0
- package/assets/generated/pwa/apple-touch-icon-57x57.png +0 -0
- package/assets/generated/pwa/apple-touch-icon-60x60.png +0 -0
- package/assets/generated/pwa/apple-touch-icon-72x72.png +0 -0
- package/assets/generated/pwa/apple-touch-icon-76x76.png +0 -0
- package/assets/generated/pwa/apple-touch-icon-precomposed.png +0 -0
- package/assets/generated/pwa/apple-touch-icon.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-1125x2436.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-1136x640.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-1170x2532.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-1179x2556.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-1242x2208.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-1242x2688.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-1284x2778.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-1290x2796.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-1334x750.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-1488x2266.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-1536x2048.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-1620x2160.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-1640x2160.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-1668x2224.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-1668x2388.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-1792x828.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-2048x1536.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-2048x2732.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-2160x1620.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-2160x1640.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-2208x1242.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-2224x1668.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-2266x1488.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-2388x1668.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-2436x1125.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-2532x1170.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-2556x1179.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-2688x1242.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-2732x2048.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-2778x1284.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-2796x1290.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-640x1136.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-750x1334.png +0 -0
- package/assets/generated/pwa/apple-touch-startup-image-828x1792.png +0 -0
- package/assets/generated/pwa/browserconfig.xml +12 -0
- package/assets/generated/pwa/favicon-16x16.png +0 -0
- package/assets/generated/pwa/favicon-32x32.png +0 -0
- package/assets/generated/pwa/favicon-48x48.png +0 -0
- package/assets/generated/pwa/favicon.ico +0 -0
- package/assets/generated/pwa/manifest.webmanifest +69 -0
- package/assets/generated/pwa/mstile-144x144.png +0 -0
- package/assets/generated/pwa/mstile-150x150.png +0 -0
- package/assets/generated/pwa/mstile-310x150.png +0 -0
- package/assets/generated/pwa/mstile-310x310.png +0 -0
- package/assets/generated/pwa/mstile-70x70.png +0 -0
- package/assets/generated/pwa/yandex-browser-50x50.png +0 -0
- package/assets/generated/pwa/yandex-browser-manifest.json +9 -0
- package/browser/fesm2022/{ui-browser-taon-datatable.component.html.de-DE.i18n.data-BoSFa5hw.mjs → ui-browser-taon-datatable.component.html.de-DE.i18n.data-B32eyQrC.mjs} +11 -1
- package/browser/fesm2022/ui-browser-taon-datatable.component.html.de-DE.i18n.data-B32eyQrC.mjs.map +1 -0
- package/browser/fesm2022/{ui-browser-taon-datatable.component.html.en-US.i18n.data-BaRVxYHq.mjs → ui-browser-taon-datatable.component.html.en-US.i18n.data-g0yz1Mvf.mjs} +9 -1
- package/browser/fesm2022/ui-browser-taon-datatable.component.html.en-US.i18n.data-g0yz1Mvf.mjs.map +1 -0
- package/browser/fesm2022/{ui-browser-taon-datatable.component.html.pl-PL.i18n.data-7lC0y8ph.mjs → ui-browser-taon-datatable.component.html.pl-PL.i18n.data-DoZK624P.mjs} +11 -1
- package/browser/fesm2022/ui-browser-taon-datatable.component.html.pl-PL.i18n.data-DoZK624P.mjs.map +1 -0
- package/browser/fesm2022/{ui-browser-taon-draggable-button-panel.component.html.de-DE.i18n.data-Dp-lgypr.mjs → ui-browser-taon-draggable-button-panel.component.html.de-DE.i18n.data-DbYTKTcs.mjs} +21 -1
- package/browser/fesm2022/ui-browser-taon-draggable-button-panel.component.html.de-DE.i18n.data-DbYTKTcs.mjs.map +1 -0
- package/browser/fesm2022/{ui-browser-taon-draggable-button-panel.component.html.en-US.i18n.data-ltFpAkGt.mjs → ui-browser-taon-draggable-button-panel.component.html.en-US.i18n.data-D3WcN08m.mjs} +17 -1
- package/browser/fesm2022/ui-browser-taon-draggable-button-panel.component.html.en-US.i18n.data-D3WcN08m.mjs.map +1 -0
- package/browser/fesm2022/{ui-browser-taon-draggable-button-panel.component.html.pl-PL.i18n.data-CnRrSOL1.mjs → ui-browser-taon-draggable-button-panel.component.html.pl-PL.i18n.data-CmCnFnpQ.mjs} +21 -1
- package/browser/fesm2022/ui-browser-taon-draggable-button-panel.component.html.pl-PL.i18n.data-CmCnFnpQ.mjs.map +1 -0
- package/browser/fesm2022/{ui-browser-taon-error-details-dialog.component.html.de-DE.i18n.data-CdhZ2dpV.mjs → ui-browser-taon-error-details-dialog.component.html.de-DE.i18n.data-DhCPFQ4t.mjs} +6 -1
- package/browser/fesm2022/ui-browser-taon-error-details-dialog.component.html.de-DE.i18n.data-DhCPFQ4t.mjs.map +1 -0
- package/browser/fesm2022/{ui-browser-taon-error-details-dialog.component.html.en-US.i18n.data-CHP-fao9.mjs → ui-browser-taon-error-details-dialog.component.html.en-US.i18n.data-DH-3BUSv.mjs} +6 -1
- package/browser/fesm2022/ui-browser-taon-error-details-dialog.component.html.en-US.i18n.data-DH-3BUSv.mjs.map +1 -0
- package/browser/fesm2022/{ui-browser-taon-error-details-dialog.component.html.pl-PL.i18n.data-BHT-hqYY.mjs → ui-browser-taon-error-details-dialog.component.html.pl-PL.i18n.data-B-fmxohJ.mjs} +6 -1
- package/browser/fesm2022/ui-browser-taon-error-details-dialog.component.html.pl-PL.i18n.data-B-fmxohJ.mjs.map +1 -0
- package/browser/fesm2022/ui-browser-taon-loading-content.component.html.de-DE.i18n.data-BwQ54bh1.mjs +16 -0
- package/browser/fesm2022/ui-browser-taon-loading-content.component.html.de-DE.i18n.data-BwQ54bh1.mjs.map +1 -0
- package/browser/fesm2022/ui-browser-taon-loading-content.component.html.en-US.i18n.data-C0OHry1U.mjs +15 -0
- package/browser/fesm2022/ui-browser-taon-loading-content.component.html.en-US.i18n.data-C0OHry1U.mjs.map +1 -0
- package/browser/fesm2022/ui-browser-taon-loading-content.component.html.pl-PL.i18n.data-DUcfWlGc.mjs +16 -0
- package/browser/fesm2022/ui-browser-taon-loading-content.component.html.pl-PL.i18n.data-DUcfWlGc.mjs.map +1 -0
- package/browser/fesm2022/ui-browser-taon-loading-content.component.ts.de-DE.i18n.data-RTZRgC6v.mjs +10 -0
- package/browser/fesm2022/ui-browser-taon-loading-content.component.ts.de-DE.i18n.data-RTZRgC6v.mjs.map +1 -0
- package/browser/fesm2022/ui-browser-taon-loading-content.component.ts.en-US.i18n.data-BUg_3rgf.mjs +10 -0
- package/browser/fesm2022/ui-browser-taon-loading-content.component.ts.en-US.i18n.data-BUg_3rgf.mjs.map +1 -0
- package/browser/fesm2022/ui-browser-taon-loading-content.component.ts.pl-PL.i18n.data-DgpVz69y.mjs +10 -0
- package/browser/fesm2022/ui-browser-taon-loading-content.component.ts.pl-PL.i18n.data-DgpVz69y.mjs.map +1 -0
- package/browser/fesm2022/ui-browser.mjs +109 -29
- package/browser/fesm2022/ui-browser.mjs.map +1 -1
- package/browser/package.json +1 -1
- package/browser/types/ui-browser.d.ts +21 -2
- package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.html.de-DE.i18n.data-BPCPpfL1.mjs → ui-browser-prod-taon-datatable.component.html.de-DE.i18n.data-C7Wn3D_f.mjs} +11 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-datatable.component.html.de-DE.i18n.data-C7Wn3D_f.mjs.map +1 -0
- package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.html.en-US.i18n.data-CljILnW8.mjs → ui-browser-prod-taon-datatable.component.html.en-US.i18n.data-rg5or0Yl.mjs} +9 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-datatable.component.html.en-US.i18n.data-rg5or0Yl.mjs.map +1 -0
- package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.html.pl-PL.i18n.data-BwA3pgv9.mjs → ui-browser-prod-taon-datatable.component.html.pl-PL.i18n.data-B0Detn7t.mjs} +11 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-datatable.component.html.pl-PL.i18n.data-B0Detn7t.mjs.map +1 -0
- package/browser-prod/fesm2022/{ui-browser-prod-taon-draggable-button-panel.component.html.de-DE.i18n.data-DoXOSPLK.mjs → ui-browser-prod-taon-draggable-button-panel.component.html.de-DE.i18n.data-Bw4vC17M.mjs} +21 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-draggable-button-panel.component.html.de-DE.i18n.data-Bw4vC17M.mjs.map +1 -0
- package/browser-prod/fesm2022/{ui-browser-prod-taon-draggable-button-panel.component.html.en-US.i18n.data-ChHpYYp5.mjs → ui-browser-prod-taon-draggable-button-panel.component.html.en-US.i18n.data-dFuoEufV.mjs} +17 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-draggable-button-panel.component.html.en-US.i18n.data-dFuoEufV.mjs.map +1 -0
- package/browser-prod/fesm2022/ui-browser-prod-taon-draggable-button-panel.component.html.pl-PL.i18n.data-CMrGfqX8.mjs +36 -0
- package/browser-prod/fesm2022/ui-browser-prod-taon-draggable-button-panel.component.html.pl-PL.i18n.data-CMrGfqX8.mjs.map +1 -0
- package/browser-prod/fesm2022/{ui-browser-prod-taon-error-details-dialog.component.html.de-DE.i18n.data-B0nY7sKQ.mjs → ui-browser-prod-taon-error-details-dialog.component.html.de-DE.i18n.data-B66FyJFt.mjs} +6 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-error-details-dialog.component.html.de-DE.i18n.data-B66FyJFt.mjs.map +1 -0
- package/browser-prod/fesm2022/{ui-browser-prod-taon-error-details-dialog.component.html.en-US.i18n.data-BcBT5bvZ.mjs → ui-browser-prod-taon-error-details-dialog.component.html.en-US.i18n.data-FqvNirhu.mjs} +6 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-error-details-dialog.component.html.en-US.i18n.data-FqvNirhu.mjs.map +1 -0
- package/browser-prod/fesm2022/{ui-browser-prod-taon-error-details-dialog.component.html.pl-PL.i18n.data-BezLaTYz.mjs → ui-browser-prod-taon-error-details-dialog.component.html.pl-PL.i18n.data-CpAitnyG.mjs} +6 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-error-details-dialog.component.html.pl-PL.i18n.data-CpAitnyG.mjs.map +1 -0
- package/browser-prod/fesm2022/ui-browser-prod-taon-loading-content.component.html.de-DE.i18n.data-AfhtQMVb.mjs +16 -0
- package/browser-prod/fesm2022/ui-browser-prod-taon-loading-content.component.html.de-DE.i18n.data-AfhtQMVb.mjs.map +1 -0
- package/browser-prod/fesm2022/ui-browser-prod-taon-loading-content.component.html.en-US.i18n.data-Dv3UjHs8.mjs +15 -0
- package/browser-prod/fesm2022/ui-browser-prod-taon-loading-content.component.html.en-US.i18n.data-Dv3UjHs8.mjs.map +1 -0
- package/browser-prod/fesm2022/ui-browser-prod-taon-loading-content.component.html.pl-PL.i18n.data-CPhu_VAe.mjs +16 -0
- package/browser-prod/fesm2022/ui-browser-prod-taon-loading-content.component.html.pl-PL.i18n.data-CPhu_VAe.mjs.map +1 -0
- package/browser-prod/fesm2022/ui-browser-prod-taon-loading-content.component.ts.de-DE.i18n.data-CexekjCM.mjs +10 -0
- package/browser-prod/fesm2022/ui-browser-prod-taon-loading-content.component.ts.de-DE.i18n.data-CexekjCM.mjs.map +1 -0
- package/browser-prod/fesm2022/ui-browser-prod-taon-loading-content.component.ts.en-US.i18n.data-C7p1lMAB.mjs +10 -0
- package/browser-prod/fesm2022/ui-browser-prod-taon-loading-content.component.ts.en-US.i18n.data-C7p1lMAB.mjs.map +1 -0
- package/browser-prod/fesm2022/ui-browser-prod-taon-loading-content.component.ts.pl-PL.i18n.data-BPn8xslp.mjs +10 -0
- package/browser-prod/fesm2022/ui-browser-prod-taon-loading-content.component.ts.pl-PL.i18n.data-BPn8xslp.mjs.map +1 -0
- package/browser-prod/fesm2022/ui-browser-prod.mjs +109 -29
- package/browser-prod/fesm2022/ui-browser-prod.mjs.map +1 -1
- package/browser-prod/package.json +1 -1
- package/browser-prod/types/ui-browser-prod.d.ts +21 -2
- package/full-dts/build-info._auto-generated_.d.ts +1 -1
- package/full-dts/index._auto-generated_.d.ts +2 -0
- package/full-dts/plugins/ngx-editor-table.d.ts +7 -0
- package/full-dts/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.d.ts +2 -0
- package/full-dts/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.d.ts +8 -2
- package/full-dts/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.d.ts +2 -0
- package/full-dts/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.i18n.data.d.ts +4 -0
- package/full-dts/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.i18n.data.d.ts +10 -2
- package/full-dts/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.i18n.data.d.ts +4 -0
- package/full-dts/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.i18n.data.d.ts +17 -0
- package/full-dts/taon-loading-content/i18n/taon-loading-content.component.html.en-US.i18n.data.d.ts +16 -0
- package/full-dts/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.i18n.data.d.ts +17 -0
- package/full-dts/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.i18n.data.d.ts +9 -0
- package/full-dts/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.i18n.data.d.ts +9 -0
- package/full-dts/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.i18n.data.d.ts +9 -0
- package/full-dts/taon-loading-content/i18n/taon-loading-content.translation.d.ts +9 -0
- package/full-dts/taon-loading-content/taon-loading-content.component.d.ts +12 -0
- package/html/assets/generated/pwa/html-pwa.html +53 -53
- package/html/lib/taon-loading-content/taon-loading-content.component.html +12 -0
- package/i18n/app.ts.de-DE.po +9 -0
- package/i18n/app.ts.en-US.po +9 -0
- package/i18n/app.ts.pl-PL.po +9 -0
- package/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib/build-info._auto-generated_.js +1 -1
- package/lib/i18n/my-organization-proj.ts.de-DE.po +9 -0
- package/lib/i18n/my-organization-proj.ts.en-US.po +9 -0
- package/lib/i18n/my-organization-proj.ts.pl-PL.po +9 -0
- package/lib/i18n/start-cli.ts.de-DE.po +9 -0
- package/lib/i18n/start-cli.ts.en-US.po +9 -0
- package/lib/i18n/start-cli.ts.pl-PL.po +9 -0
- package/lib/index._auto-generated_.d.ts +1 -0
- package/lib/index._auto-generated_.js +2 -0
- package/lib/index._auto-generated_.js.map +1 -1
- package/lib/lib-info.md +8 -0
- package/lib/migrations/migrations-info.md +6 -0
- package/lib/package.json +1 -1
- package/lib/plugins/ngx-editor-table.d.ts +6 -0
- package/lib/plugins/ngx-editor-table.js +51 -0
- package/lib/plugins/ngx-editor-table.js.map +1 -0
- package/lib/taon-admin-layout/i18n/taon-admin-layout.component.html.de-DE.po +13 -0
- package/lib/taon-admin-layout/i18n/taon-admin-layout.component.html.en-US.po +13 -0
- package/lib/taon-admin-layout/i18n/taon-admin-layout.component.html.pl-PL.po +13 -0
- package/lib/taon-admin-layout/i18n/taon-admin-layout.component.ts.de-DE.po +5 -0
- package/lib/taon-admin-layout/i18n/taon-admin-layout.component.ts.en-US.po +5 -0
- package/lib/taon-admin-layout/i18n/taon-admin-layout.component.ts.pl-PL.po +5 -0
- package/lib/taon-admin-layout/index.d.ts +1 -1
- package/lib/taon-admin-layout/index.js +2 -2
- package/lib/taon-admin-welcome/i18n/taon-admin-welcome.component.html.de-DE.po +9 -0
- package/lib/taon-admin-welcome/i18n/taon-admin-welcome.component.html.en-US.po +9 -0
- package/lib/taon-admin-welcome/i18n/taon-admin-welcome.component.html.pl-PL.po +9 -0
- package/lib/taon-admin-welcome/i18n/taon-admin-welcome.component.ts.de-DE.po +5 -0
- package/lib/taon-admin-welcome/i18n/taon-admin-welcome.component.ts.en-US.po +5 -0
- package/lib/taon-admin-welcome/i18n/taon-admin-welcome.component.ts.pl-PL.po +5 -0
- package/lib/taon-admin-welcome/index.d.ts +1 -1
- package/lib/taon-admin-welcome/index.js +2 -2
- package/lib/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.de-DE.po +9 -0
- package/lib/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.en-US.po +9 -0
- package/lib/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.pl-PL.po +9 -0
- package/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.de-DE.i18n.data.js +8 -3
- package/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.de-DE.i18n.data.js.map +1 -1
- package/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.de-DE.po +26 -0
- package/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.en-US.i18n.data.js +8 -3
- package/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.en-US.i18n.data.js.map +1 -1
- package/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.en-US.po +26 -0
- package/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.pl-PL.i18n.data.js +8 -3
- package/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.pl-PL.i18n.data.js.map +1 -1
- package/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.pl-PL.po +26 -0
- package/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.ts.de-DE.po +5 -0
- package/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.ts.en-US.po +5 -0
- package/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.ts.pl-PL.po +5 -0
- package/lib/taon-backoffice-notifications/i18n/taon-error-toast.component.ts.de-DE.po +9 -0
- package/lib/taon-backoffice-notifications/i18n/taon-error-toast.component.ts.en-US.po +9 -0
- package/lib/taon-backoffice-notifications/i18n/taon-error-toast.component.ts.pl-PL.po +9 -0
- package/lib/taon-confirm-dialog/i18n/taon-confirm-dialog.component.html.de-DE.po +13 -0
- package/lib/taon-confirm-dialog/i18n/taon-confirm-dialog.component.html.en-US.po +13 -0
- package/lib/taon-confirm-dialog/i18n/taon-confirm-dialog.component.html.pl-PL.po +13 -0
- package/lib/taon-confirm-dialog/i18n/taon-confirm-dialog.component.ts.de-DE.po +5 -0
- package/lib/taon-confirm-dialog/i18n/taon-confirm-dialog.component.ts.en-US.po +5 -0
- package/lib/taon-confirm-dialog/i18n/taon-confirm-dialog.component.ts.pl-PL.po +5 -0
- package/lib/taon-confirm-dialog/taon-confirm-dialog.md +34 -0
- package/lib/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.d.ts +2 -0
- package/lib/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.js +10 -0
- package/lib/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.js.map +1 -1
- package/lib/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +33 -0
- package/lib/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.d.ts +8 -2
- package/lib/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.js +8 -0
- package/lib/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.js.map +1 -1
- package/lib/taon-datatable/i18n/taon-datatable.component.html.en-US.po +33 -0
- package/lib/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.d.ts +2 -0
- package/lib/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.js +10 -0
- package/lib/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.js.map +1 -1
- package/lib/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +33 -0
- package/lib/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +17 -0
- package/lib/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +17 -0
- package/lib/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +17 -0
- package/lib/taon-datatable/index.d.ts +1 -1
- package/lib/taon-datatable/index.js +2 -2
- package/lib/taon-detachable-dialog-content/i18n/taon-detached-window-content.component.ts.de-DE.po +9 -0
- package/lib/taon-detachable-dialog-content/i18n/taon-detached-window-content.component.ts.en-US.po +9 -0
- package/lib/taon-detachable-dialog-content/i18n/taon-detached-window-content.component.ts.pl-PL.po +9 -0
- package/lib/taon-detachable-dialog-content/taon-detachable-dialog-content.md +429 -0
- package/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.i18n.data.d.ts +4 -0
- package/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.i18n.data.js +20 -0
- package/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.i18n.data.js.map +1 -1
- package/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.po +25 -0
- package/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.i18n.data.d.ts +10 -2
- package/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.i18n.data.js +16 -0
- package/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.i18n.data.js.map +1 -1
- package/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.po +25 -0
- package/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.i18n.data.d.ts +4 -0
- package/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.i18n.data.js +20 -0
- package/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.i18n.data.js.map +1 -1
- package/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.po +25 -0
- package/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.ts.de-DE.po +9 -0
- package/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.ts.en-US.po +9 -0
- package/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.ts.pl-PL.po +9 -0
- package/lib/taon-draggable-button-panel/index.d.ts +1 -1
- package/lib/taon-draggable-button-panel/index.js +2 -2
- package/lib/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.i18n.data.d.ts +16 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.i18n.data.js +16 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.i18n.data.js.map +1 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.po +9 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.html.en-US.i18n.data.d.ts +15 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.html.en-US.i18n.data.js +15 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.html.en-US.i18n.data.js.map +1 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.html.en-US.po +9 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.i18n.data.d.ts +16 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.i18n.data.js +16 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.i18n.data.js.map +1 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.po +9 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.i18n.data.d.ts +8 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.i18n.data.js +10 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.i18n.data.js.map +1 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.po +5 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.i18n.data.d.ts +8 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.i18n.data.js +10 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.i18n.data.js.map +1 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.po +5 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.i18n.data.d.ts +8 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.i18n.data.js +10 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.i18n.data.js.map +1 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.po +5 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.translation.d.ts +8 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.translation.js +5 -0
- package/lib/taon-loading-content/i18n/taon-loading-content.translation.js.map +1 -0
- package/lib/taon-purchase-status/i18n/taon-purchase-status.dialog.component.html.de-DE.po +19 -0
- package/lib/taon-purchase-status/i18n/taon-purchase-status.dialog.component.html.en-US.po +19 -0
- package/lib/taon-purchase-status/i18n/taon-purchase-status.dialog.component.html.pl-PL.po +19 -0
- package/lib/taon-purchase-status/i18n/taon-purchase-status.dialog.component.ts.de-DE.po +5 -0
- package/lib/taon-purchase-status/i18n/taon-purchase-status.dialog.component.ts.en-US.po +5 -0
- package/lib/taon-purchase-status/i18n/taon-purchase-status.dialog.component.ts.pl-PL.po +5 -0
- package/lib/taon-under-construction/i18n/taon-under-construction.component.html.de-DE.po +9 -0
- package/lib/taon-under-construction/i18n/taon-under-construction.component.html.en-US.po +9 -0
- package/lib/taon-under-construction/i18n/taon-under-construction.component.html.pl-PL.po +9 -0
- package/lib/taon-under-construction/i18n/taon-under-construction.component.ts.de-DE.po +13 -0
- package/lib/taon-under-construction/i18n/taon-under-construction.component.ts.en-US.po +13 -0
- package/lib/taon-under-construction/i18n/taon-under-construction.component.ts.pl-PL.po +13 -0
- package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib-esm/lib/build-info._auto-generated_.js +1 -1
- package/lib-esm/lib/index._auto-generated_.d.ts +1 -0
- package/lib-esm/lib/index._auto-generated_.js +2 -0
- package/lib-esm/lib/index._auto-generated_.js.map +1 -1
- package/lib-esm/lib/plugins/ngx-editor-table.d.ts +6 -0
- package/lib-esm/lib/plugins/ngx-editor-table.js +46 -0
- package/lib-esm/lib/plugins/ngx-editor-table.js.map +1 -0
- package/lib-esm/lib/taon-admin-layout/index.d.ts +1 -1
- package/lib-esm/lib/taon-admin-layout/index.js +1 -1
- package/lib-esm/lib/taon-admin-welcome/index.d.ts +1 -1
- package/lib-esm/lib/taon-admin-welcome/index.js +1 -1
- package/lib-esm/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.de-DE.i18n.data.js +8 -3
- package/lib-esm/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.de-DE.i18n.data.js.map +1 -1
- package/lib-esm/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.en-US.i18n.data.js +8 -3
- package/lib-esm/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.en-US.i18n.data.js.map +1 -1
- package/lib-esm/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.pl-PL.i18n.data.js +8 -3
- package/lib-esm/lib/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.pl-PL.i18n.data.js.map +1 -1
- package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.d.ts +2 -0
- package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.js +10 -0
- package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.js.map +1 -1
- package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.d.ts +8 -2
- package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.js +8 -0
- package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.js.map +1 -1
- package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.d.ts +2 -0
- package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.js +10 -0
- package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.js.map +1 -1
- package/lib-esm/lib/taon-datatable/index.d.ts +1 -1
- package/lib-esm/lib/taon-datatable/index.js +1 -1
- package/lib-esm/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.i18n.data.d.ts +4 -0
- package/lib-esm/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.i18n.data.js +20 -0
- package/lib-esm/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.i18n.data.js.map +1 -1
- package/lib-esm/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.i18n.data.d.ts +10 -2
- package/lib-esm/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.i18n.data.js +16 -0
- package/lib-esm/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.i18n.data.js.map +1 -1
- package/lib-esm/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.i18n.data.d.ts +4 -0
- package/lib-esm/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.i18n.data.js +20 -0
- package/lib-esm/lib/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.i18n.data.js.map +1 -1
- package/lib-esm/lib/taon-draggable-button-panel/index.d.ts +1 -1
- package/lib-esm/lib/taon-draggable-button-panel/index.js +1 -1
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.i18n.data.d.ts +16 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.i18n.data.js +14 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.i18n.data.js.map +1 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.html.en-US.i18n.data.d.ts +15 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.html.en-US.i18n.data.js +13 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.html.en-US.i18n.data.js.map +1 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.i18n.data.d.ts +16 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.i18n.data.js +14 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.i18n.data.js.map +1 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.i18n.data.d.ts +8 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.i18n.data.js +8 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.i18n.data.js.map +1 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.i18n.data.d.ts +8 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.i18n.data.js +8 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.i18n.data.js.map +1 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.i18n.data.d.ts +8 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.i18n.data.js +8 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.i18n.data.js.map +1 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.translation.d.ts +8 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.translation.js +4 -0
- package/lib-esm/lib/taon-loading-content/i18n/taon-loading-content.translation.js.map +1 -0
- package/lib-prod/build-info._auto-generated_.d.ts +1 -1
- package/lib-prod/build-info._auto-generated_.js +1 -1
- package/lib-prod/index._auto-generated_.d.ts +1 -0
- package/lib-prod/index._auto-generated_.js +2 -0
- package/lib-prod/index._auto-generated_.js.map +1 -1
- package/lib-prod/package.json +1 -1
- package/lib-prod/plugins/ngx-editor-table.d.ts +6 -0
- package/lib-prod/plugins/ngx-editor-table.js +46 -0
- package/lib-prod/plugins/ngx-editor-table.js.map +1 -0
- package/lib-prod/taon-admin-layout/index.d.ts +1 -1
- package/lib-prod/taon-admin-layout/index.js +1 -1
- package/lib-prod/taon-admin-welcome/index.d.ts +1 -1
- package/lib-prod/taon-admin-welcome/index.js +1 -1
- package/lib-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.de-DE.i18n.data.js +8 -3
- package/lib-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.de-DE.i18n.data.js.map +1 -1
- package/lib-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.en-US.i18n.data.js +8 -3
- package/lib-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.en-US.i18n.data.js.map +1 -1
- package/lib-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.pl-PL.i18n.data.js +8 -3
- package/lib-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.pl-PL.i18n.data.js.map +1 -1
- package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.d.ts +2 -0
- package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.js +10 -0
- package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.js.map +1 -1
- package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.d.ts +8 -2
- package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.js +8 -0
- package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.js.map +1 -1
- package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.d.ts +2 -0
- package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.js +10 -0
- package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.js.map +1 -1
- package/lib-prod/taon-datatable/index.d.ts +1 -1
- package/lib-prod/taon-datatable/index.js +1 -1
- package/lib-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.i18n.data.d.ts +4 -0
- package/lib-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.i18n.data.js +20 -0
- package/lib-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.i18n.data.js.map +1 -1
- package/lib-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.i18n.data.d.ts +10 -2
- package/lib-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.i18n.data.js +16 -0
- package/lib-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.i18n.data.js.map +1 -1
- package/lib-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.i18n.data.d.ts +4 -0
- package/lib-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.i18n.data.js +20 -0
- package/lib-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.i18n.data.js.map +1 -1
- package/lib-prod/taon-draggable-button-panel/index.d.ts +1 -1
- package/lib-prod/taon-draggable-button-panel/index.js +1 -1
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.i18n.data.d.ts +16 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.i18n.data.js +14 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.i18n.data.js.map +1 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.html.en-US.i18n.data.d.ts +15 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.html.en-US.i18n.data.js +13 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.html.en-US.i18n.data.js.map +1 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.i18n.data.d.ts +16 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.i18n.data.js +14 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.i18n.data.js.map +1 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.i18n.data.d.ts +8 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.i18n.data.js +8 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.i18n.data.js.map +1 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.i18n.data.d.ts +8 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.i18n.data.js +8 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.i18n.data.js.map +1 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.i18n.data.d.ts +8 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.i18n.data.js +8 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.i18n.data.js.map +1 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.translation.d.ts +8 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.translation.js +4 -0
- package/lib-prod/taon-loading-content/i18n/taon-loading-content.translation.js.map +1 -0
- package/package.json +1 -1
- package/scss/lib/taon-admin-layout/taon-admin-layout.component.scss +4 -0
- package/scss/lib/taon-loading-content/taon-loading-content.component.scss +56 -0
- package/ts-source/browser-code/build-info._auto-generated_.ts +1 -1
- package/ts-source/browser-code/index._auto-generated_.ts +2 -0
- package/ts-source/browser-code/plugins/ngx-editor-table.ts +57 -0
- package/ts-source/browser-code/taon-admin-layout/taon-admin-layout.component.scss +4 -0
- package/ts-source/browser-code/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.de-DE.i18n.data.ts +5 -0
- package/ts-source/browser-code/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.de-DE.po +5 -4
- package/ts-source/browser-code/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.en-US.i18n.data.ts +5 -0
- package/ts-source/browser-code/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.en-US.po +5 -4
- package/ts-source/browser-code/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.pl-PL.i18n.data.ts +5 -0
- package/ts-source/browser-code/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.pl-PL.po +5 -4
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.ts +12 -0
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +8 -0
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.ts +10 -0
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.en-US.po +8 -0
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.ts +12 -0
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +8 -0
- package/ts-source/browser-code/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.i18n.data.ts +24 -0
- package/ts-source/browser-code/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.po +16 -0
- package/ts-source/browser-code/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.i18n.data.ts +20 -0
- package/ts-source/browser-code/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.po +16 -0
- package/ts-source/browser-code/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.i18n.data.ts +24 -0
- package/ts-source/browser-code/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.po +16 -0
- package/ts-source/browser-code/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.i18n.data.ts +29 -0
- package/ts-source/browser-code/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.po +9 -0
- package/ts-source/browser-code/taon-loading-content/i18n/taon-loading-content.component.html.en-US.i18n.data.ts +28 -0
- package/ts-source/browser-code/taon-loading-content/i18n/taon-loading-content.component.html.en-US.po +9 -0
- package/ts-source/browser-code/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.i18n.data.ts +29 -0
- package/ts-source/browser-code/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.po +9 -0
- package/ts-source/browser-code/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.i18n.data.ts +19 -0
- package/ts-source/browser-code/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.po +5 -0
- package/ts-source/browser-code/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.i18n.data.ts +19 -0
- package/ts-source/browser-code/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.po +5 -0
- package/ts-source/browser-code/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.i18n.data.ts +19 -0
- package/ts-source/browser-code/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.po +5 -0
- package/ts-source/browser-code/taon-loading-content/i18n/taon-loading-content.translation.ts +21 -0
- package/ts-source/browser-code/taon-loading-content/taon-loading-content.component.html +25 -0
- package/ts-source/browser-code/taon-loading-content/taon-loading-content.component.scss +67 -0
- package/ts-source/browser-code/taon-loading-content/taon-loading-content.component.ts +43 -0
- package/ts-source/browser-code-prod/build-info._auto-generated_.ts +1 -1
- package/ts-source/browser-code-prod/i18n/lib.translation.ts +1 -1
- package/ts-source/browser-code-prod/index._auto-generated_.ts +2 -0
- package/ts-source/browser-code-prod/plugins/ngx-editor-table.split-namespaces.json +4 -0
- package/ts-source/browser-code-prod/plugins/ngx-editor-table.ts +57 -0
- package/ts-source/browser-code-prod/taon-admin-layout/i18n/taon-admin-layout.translation.ts +1 -1
- package/ts-source/browser-code-prod/taon-admin-layout/taon-admin-layout.component.scss +4 -0
- package/ts-source/browser-code-prod/taon-admin-welcome/i18n/taon-admin-welcome.translation.ts +1 -1
- package/ts-source/browser-code-prod/taon-backoffice-notifications/i18n/taon-backoffice-notifications.translation.ts +1 -1
- package/ts-source/browser-code-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.de-DE.i18n.data.ts +5 -0
- package/ts-source/browser-code-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.de-DE.po +5 -4
- package/ts-source/browser-code-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.en-US.i18n.data.ts +5 -0
- package/ts-source/browser-code-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.en-US.po +5 -4
- package/ts-source/browser-code-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.pl-PL.i18n.data.ts +5 -0
- package/ts-source/browser-code-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.pl-PL.po +5 -4
- package/ts-source/browser-code-prod/taon-confirm-dialog/i18n/taon-confirm-dialog.translation.ts +1 -1
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.ts +12 -0
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +8 -0
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.ts +10 -0
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.po +8 -0
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.ts +12 -0
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +8 -0
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.translation.ts +1 -1
- package/ts-source/browser-code-prod/taon-detachable-dialog-content/i18n/taon-detachable-dialog-content.translation.ts +1 -1
- package/ts-source/browser-code-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.i18n.data.ts +24 -0
- package/ts-source/browser-code-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.po +16 -0
- package/ts-source/browser-code-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.i18n.data.ts +20 -0
- package/ts-source/browser-code-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.po +16 -0
- package/ts-source/browser-code-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.i18n.data.ts +24 -0
- package/ts-source/browser-code-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.po +16 -0
- package/ts-source/browser-code-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.translation.ts +1 -1
- package/ts-source/browser-code-prod/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.i18n.data.ts +29 -0
- package/ts-source/browser-code-prod/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.po +9 -0
- package/ts-source/browser-code-prod/taon-loading-content/i18n/taon-loading-content.component.html.en-US.i18n.data.ts +28 -0
- package/ts-source/browser-code-prod/taon-loading-content/i18n/taon-loading-content.component.html.en-US.po +9 -0
- package/ts-source/browser-code-prod/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.i18n.data.ts +29 -0
- package/ts-source/browser-code-prod/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.po +9 -0
- package/ts-source/browser-code-prod/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.i18n.data.ts +19 -0
- package/ts-source/browser-code-prod/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.po +5 -0
- package/ts-source/browser-code-prod/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.i18n.data.ts +19 -0
- package/ts-source/browser-code-prod/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.po +5 -0
- package/ts-source/browser-code-prod/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.i18n.data.ts +19 -0
- package/ts-source/browser-code-prod/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.po +5 -0
- package/ts-source/browser-code-prod/taon-loading-content/i18n/taon-loading-content.translation.split-namespaces.json +4 -0
- package/ts-source/browser-code-prod/taon-loading-content/i18n/taon-loading-content.translation.ts +21 -0
- package/ts-source/browser-code-prod/taon-loading-content/taon-loading-content.component.html +25 -0
- package/ts-source/browser-code-prod/taon-loading-content/taon-loading-content.component.scss +67 -0
- package/ts-source/browser-code-prod/taon-loading-content/taon-loading-content.component.split-namespaces.json +4 -0
- package/ts-source/browser-code-prod/taon-loading-content/taon-loading-content.component.ts +43 -0
- package/ts-source/browser-code-prod/taon-purchase-status/i18n/taon-purchase-status.translation.ts +1 -1
- package/ts-source/browser-code-prod/taon-under-construction/i18n/taon-under-construction.translation.ts +1 -1
- package/ts-source/websql-code/build-info._auto-generated_.ts +1 -1
- package/ts-source/websql-code/index._auto-generated_.ts +2 -0
- package/ts-source/websql-code/plugins/ngx-editor-table.ts +57 -0
- package/ts-source/websql-code/taon-admin-layout/taon-admin-layout.component.scss +4 -0
- package/ts-source/websql-code/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.de-DE.i18n.data.ts +8 -3
- package/ts-source/websql-code/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.de-DE.po +5 -4
- package/ts-source/websql-code/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.en-US.i18n.data.ts +8 -3
- package/ts-source/websql-code/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.en-US.po +5 -4
- package/ts-source/websql-code/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.pl-PL.i18n.data.ts +8 -3
- package/ts-source/websql-code/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.pl-PL.po +5 -4
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.ts +12 -0
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +8 -0
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.ts +10 -0
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.en-US.po +8 -0
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.ts +12 -0
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +8 -0
- package/ts-source/websql-code/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.i18n.data.ts +24 -0
- package/ts-source/websql-code/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.po +16 -0
- package/ts-source/websql-code/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.i18n.data.ts +20 -0
- package/ts-source/websql-code/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.po +16 -0
- package/ts-source/websql-code/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.i18n.data.ts +24 -0
- package/ts-source/websql-code/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.po +16 -0
- package/ts-source/websql-code/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.i18n.data.ts +29 -0
- package/ts-source/websql-code/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.po +9 -0
- package/ts-source/websql-code/taon-loading-content/i18n/taon-loading-content.component.html.en-US.i18n.data.ts +28 -0
- package/ts-source/websql-code/taon-loading-content/i18n/taon-loading-content.component.html.en-US.po +9 -0
- package/ts-source/websql-code/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.i18n.data.ts +29 -0
- package/ts-source/websql-code/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.po +9 -0
- package/ts-source/websql-code/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.i18n.data.ts +19 -0
- package/ts-source/websql-code/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.po +5 -0
- package/ts-source/websql-code/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.i18n.data.ts +19 -0
- package/ts-source/websql-code/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.po +5 -0
- package/ts-source/websql-code/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.i18n.data.ts +19 -0
- package/ts-source/websql-code/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.po +5 -0
- package/ts-source/websql-code/taon-loading-content/i18n/taon-loading-content.translation.ts +21 -0
- package/ts-source/websql-code/taon-loading-content/taon-loading-content.component.html +25 -0
- package/ts-source/websql-code/taon-loading-content/taon-loading-content.component.scss +67 -0
- package/ts-source/websql-code/taon-loading-content/taon-loading-content.component.ts +43 -0
- package/ts-source/websql-code-prod/build-info._auto-generated_.ts +1 -1
- package/ts-source/websql-code-prod/i18n/lib.translation.ts +1 -1
- package/ts-source/websql-code-prod/index._auto-generated_.ts +2 -0
- package/ts-source/websql-code-prod/plugins/ngx-editor-table.split-namespaces.json +4 -0
- package/ts-source/websql-code-prod/plugins/ngx-editor-table.ts +57 -0
- package/ts-source/websql-code-prod/taon-admin-layout/i18n/taon-admin-layout.translation.ts +1 -1
- package/ts-source/websql-code-prod/taon-admin-layout/taon-admin-layout.component.scss +4 -0
- package/ts-source/websql-code-prod/taon-admin-welcome/i18n/taon-admin-welcome.translation.ts +1 -1
- package/ts-source/websql-code-prod/taon-backoffice-notifications/i18n/taon-backoffice-notifications.translation.ts +1 -1
- package/ts-source/websql-code-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.de-DE.i18n.data.ts +8 -3
- package/ts-source/websql-code-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.de-DE.po +5 -4
- package/ts-source/websql-code-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.en-US.i18n.data.ts +8 -3
- package/ts-source/websql-code-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.en-US.po +5 -4
- package/ts-source/websql-code-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.pl-PL.i18n.data.ts +8 -3
- package/ts-source/websql-code-prod/taon-backoffice-notifications/i18n/taon-error-details-dialog.component.html.pl-PL.po +5 -4
- package/ts-source/websql-code-prod/taon-confirm-dialog/i18n/taon-confirm-dialog.translation.ts +1 -1
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.ts +12 -0
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +8 -0
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.ts +10 -0
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.po +8 -0
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.ts +12 -0
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +8 -0
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.translation.ts +1 -1
- package/ts-source/websql-code-prod/taon-detachable-dialog-content/i18n/taon-detachable-dialog-content.translation.ts +1 -1
- package/ts-source/websql-code-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.i18n.data.ts +24 -0
- package/ts-source/websql-code-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.de-DE.po +16 -0
- package/ts-source/websql-code-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.i18n.data.ts +20 -0
- package/ts-source/websql-code-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.en-US.po +16 -0
- package/ts-source/websql-code-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.i18n.data.ts +24 -0
- package/ts-source/websql-code-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.component.html.pl-PL.po +16 -0
- package/ts-source/websql-code-prod/taon-draggable-button-panel/i18n/taon-draggable-button-panel.translation.ts +1 -1
- package/ts-source/websql-code-prod/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.i18n.data.ts +29 -0
- package/ts-source/websql-code-prod/taon-loading-content/i18n/taon-loading-content.component.html.de-DE.po +9 -0
- package/ts-source/websql-code-prod/taon-loading-content/i18n/taon-loading-content.component.html.en-US.i18n.data.ts +28 -0
- package/ts-source/websql-code-prod/taon-loading-content/i18n/taon-loading-content.component.html.en-US.po +9 -0
- package/ts-source/websql-code-prod/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.i18n.data.ts +29 -0
- package/ts-source/websql-code-prod/taon-loading-content/i18n/taon-loading-content.component.html.pl-PL.po +9 -0
- package/ts-source/websql-code-prod/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.i18n.data.ts +19 -0
- package/ts-source/websql-code-prod/taon-loading-content/i18n/taon-loading-content.component.ts.de-DE.po +5 -0
- package/ts-source/websql-code-prod/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.i18n.data.ts +19 -0
- package/ts-source/websql-code-prod/taon-loading-content/i18n/taon-loading-content.component.ts.en-US.po +5 -0
- package/ts-source/websql-code-prod/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.i18n.data.ts +19 -0
- package/ts-source/websql-code-prod/taon-loading-content/i18n/taon-loading-content.component.ts.pl-PL.po +5 -0
- package/ts-source/websql-code-prod/taon-loading-content/i18n/taon-loading-content.translation.split-namespaces.json +4 -0
- package/ts-source/websql-code-prod/taon-loading-content/i18n/taon-loading-content.translation.ts +21 -0
- package/ts-source/websql-code-prod/taon-loading-content/taon-loading-content.component.html +25 -0
- package/ts-source/websql-code-prod/taon-loading-content/taon-loading-content.component.scss +67 -0
- package/ts-source/websql-code-prod/taon-loading-content/taon-loading-content.component.split-namespaces.json +4 -0
- package/ts-source/websql-code-prod/taon-loading-content/taon-loading-content.component.ts +43 -0
- package/ts-source/websql-code-prod/taon-purchase-status/i18n/taon-purchase-status.translation.ts +1 -1
- package/ts-source/websql-code-prod/taon-under-construction/i18n/taon-under-construction.translation.ts +1 -1
- package/websql/fesm2022/{ui-websql-taon-datatable.component.html.de-DE.i18n.data-akWKK_zH.mjs → ui-websql-taon-datatable.component.html.de-DE.i18n.data-BpUbnKZa.mjs} +11 -1
- package/websql/fesm2022/ui-websql-taon-datatable.component.html.de-DE.i18n.data-BpUbnKZa.mjs.map +1 -0
- package/websql/fesm2022/{ui-websql-taon-datatable.component.html.en-US.i18n.data-BQRO2MVj.mjs → ui-websql-taon-datatable.component.html.en-US.i18n.data-D1WuVzwM.mjs} +9 -1
- package/websql/fesm2022/ui-websql-taon-datatable.component.html.en-US.i18n.data-D1WuVzwM.mjs.map +1 -0
- package/websql/fesm2022/{ui-websql-taon-datatable.component.html.pl-PL.i18n.data-cEIoFPC7.mjs → ui-websql-taon-datatable.component.html.pl-PL.i18n.data-CKwMH0_q.mjs} +11 -1
- package/websql/fesm2022/ui-websql-taon-datatable.component.html.pl-PL.i18n.data-CKwMH0_q.mjs.map +1 -0
- package/websql/fesm2022/{ui-websql-taon-draggable-button-panel.component.html.de-DE.i18n.data-DLRjU_wF.mjs → ui-websql-taon-draggable-button-panel.component.html.de-DE.i18n.data-CIgCBJGc.mjs} +21 -1
- package/websql/fesm2022/ui-websql-taon-draggable-button-panel.component.html.de-DE.i18n.data-CIgCBJGc.mjs.map +1 -0
- package/websql/fesm2022/{ui-websql-taon-draggable-button-panel.component.html.en-US.i18n.data-BUeoHyR8.mjs → ui-websql-taon-draggable-button-panel.component.html.en-US.i18n.data-BJAXt2Hw.mjs} +17 -1
- package/websql/fesm2022/ui-websql-taon-draggable-button-panel.component.html.en-US.i18n.data-BJAXt2Hw.mjs.map +1 -0
- package/websql/fesm2022/{ui-websql-taon-draggable-button-panel.component.html.pl-PL.i18n.data-YnhCecSB.mjs → ui-websql-taon-draggable-button-panel.component.html.pl-PL.i18n.data-DhqUC5k2.mjs} +21 -1
- package/websql/fesm2022/ui-websql-taon-draggable-button-panel.component.html.pl-PL.i18n.data-DhqUC5k2.mjs.map +1 -0
- package/websql/fesm2022/{ui-websql-taon-error-details-dialog.component.html.de-DE.i18n.data-CUhM-Pw6.mjs → ui-websql-taon-error-details-dialog.component.html.de-DE.i18n.data-BUOwZs5C.mjs} +9 -4
- package/websql/fesm2022/ui-websql-taon-error-details-dialog.component.html.de-DE.i18n.data-BUOwZs5C.mjs.map +1 -0
- package/websql/fesm2022/{ui-websql-taon-error-details-dialog.component.html.en-US.i18n.data-CSVK8QB0.mjs → ui-websql-taon-error-details-dialog.component.html.en-US.i18n.data-FXBP15Ep.mjs} +9 -4
- package/websql/fesm2022/ui-websql-taon-error-details-dialog.component.html.en-US.i18n.data-FXBP15Ep.mjs.map +1 -0
- package/websql/fesm2022/{ui-websql-taon-error-details-dialog.component.html.pl-PL.i18n.data-Bu-go0fr.mjs → ui-websql-taon-error-details-dialog.component.html.pl-PL.i18n.data-B-KG9sgo.mjs} +9 -4
- package/websql/fesm2022/ui-websql-taon-error-details-dialog.component.html.pl-PL.i18n.data-B-KG9sgo.mjs.map +1 -0
- package/websql/fesm2022/ui-websql-taon-loading-content.component.html.de-DE.i18n.data-BaGhUyeA.mjs +16 -0
- package/websql/fesm2022/ui-websql-taon-loading-content.component.html.de-DE.i18n.data-BaGhUyeA.mjs.map +1 -0
- package/websql/fesm2022/ui-websql-taon-loading-content.component.html.en-US.i18n.data-VdrckhQr.mjs +15 -0
- package/websql/fesm2022/ui-websql-taon-loading-content.component.html.en-US.i18n.data-VdrckhQr.mjs.map +1 -0
- package/websql/fesm2022/ui-websql-taon-loading-content.component.html.pl-PL.i18n.data-22D59NDT.mjs +16 -0
- package/websql/fesm2022/ui-websql-taon-loading-content.component.html.pl-PL.i18n.data-22D59NDT.mjs.map +1 -0
- package/websql/fesm2022/ui-websql-taon-loading-content.component.ts.de-DE.i18n.data-BYguurxl.mjs +10 -0
- package/websql/fesm2022/ui-websql-taon-loading-content.component.ts.de-DE.i18n.data-BYguurxl.mjs.map +1 -0
- package/websql/fesm2022/ui-websql-taon-loading-content.component.ts.en-US.i18n.data-YIx_3zz_.mjs +10 -0
- package/websql/fesm2022/ui-websql-taon-loading-content.component.ts.en-US.i18n.data-YIx_3zz_.mjs.map +1 -0
- package/websql/fesm2022/ui-websql-taon-loading-content.component.ts.pl-PL.i18n.data-9vCDmDc4.mjs +10 -0
- package/websql/fesm2022/ui-websql-taon-loading-content.component.ts.pl-PL.i18n.data-9vCDmDc4.mjs.map +1 -0
- package/websql/fesm2022/ui-websql.mjs +109 -29
- package/websql/fesm2022/ui-websql.mjs.map +1 -1
- package/websql/package.json +1 -1
- package/websql/types/ui-websql.d.ts +21 -2
- package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.html.de-DE.i18n.data-AkYh86KE.mjs → ui-websql-prod-taon-datatable.component.html.de-DE.i18n.data-BJYcKIpc.mjs} +11 -1
- package/websql-prod/fesm2022/ui-websql-prod-taon-datatable.component.html.de-DE.i18n.data-BJYcKIpc.mjs.map +1 -0
- package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.html.en-US.i18n.data-D3-rvqAh.mjs → ui-websql-prod-taon-datatable.component.html.en-US.i18n.data-CMdnPM9W.mjs} +9 -1
- package/websql-prod/fesm2022/ui-websql-prod-taon-datatable.component.html.en-US.i18n.data-CMdnPM9W.mjs.map +1 -0
- package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.html.pl-PL.i18n.data-BLkNn4wK.mjs → ui-websql-prod-taon-datatable.component.html.pl-PL.i18n.data-EHVuMwak.mjs} +11 -1
- package/websql-prod/fesm2022/ui-websql-prod-taon-datatable.component.html.pl-PL.i18n.data-EHVuMwak.mjs.map +1 -0
- package/websql-prod/fesm2022/{ui-websql-prod-taon-draggable-button-panel.component.html.de-DE.i18n.data-DwOIg2Oj.mjs → ui-websql-prod-taon-draggable-button-panel.component.html.de-DE.i18n.data-DpWLfYw7.mjs} +21 -1
- package/websql-prod/fesm2022/ui-websql-prod-taon-draggable-button-panel.component.html.de-DE.i18n.data-DpWLfYw7.mjs.map +1 -0
- package/websql-prod/fesm2022/{ui-websql-prod-taon-draggable-button-panel.component.html.en-US.i18n.data-l8gDdKzO.mjs → ui-websql-prod-taon-draggable-button-panel.component.html.en-US.i18n.data-DSe88B8S.mjs} +17 -1
- package/websql-prod/fesm2022/ui-websql-prod-taon-draggable-button-panel.component.html.en-US.i18n.data-DSe88B8S.mjs.map +1 -0
- package/websql-prod/fesm2022/ui-websql-prod-taon-draggable-button-panel.component.html.pl-PL.i18n.data-DTnAWW5r.mjs +36 -0
- package/websql-prod/fesm2022/ui-websql-prod-taon-draggable-button-panel.component.html.pl-PL.i18n.data-DTnAWW5r.mjs.map +1 -0
- package/websql-prod/fesm2022/{ui-websql-prod-taon-error-details-dialog.component.html.de-DE.i18n.data-C9ZFXZaT.mjs → ui-websql-prod-taon-error-details-dialog.component.html.de-DE.i18n.data-D9UMfhqQ.mjs} +9 -4
- package/websql-prod/fesm2022/ui-websql-prod-taon-error-details-dialog.component.html.de-DE.i18n.data-D9UMfhqQ.mjs.map +1 -0
- package/websql-prod/fesm2022/{ui-websql-prod-taon-error-details-dialog.component.html.en-US.i18n.data-7LmP7zap.mjs → ui-websql-prod-taon-error-details-dialog.component.html.en-US.i18n.data-tem6hl3K.mjs} +9 -4
- package/websql-prod/fesm2022/ui-websql-prod-taon-error-details-dialog.component.html.en-US.i18n.data-tem6hl3K.mjs.map +1 -0
- package/websql-prod/fesm2022/{ui-websql-prod-taon-error-details-dialog.component.html.pl-PL.i18n.data-C9neWe6s.mjs → ui-websql-prod-taon-error-details-dialog.component.html.pl-PL.i18n.data-feRNKP6a.mjs} +9 -4
- package/websql-prod/fesm2022/ui-websql-prod-taon-error-details-dialog.component.html.pl-PL.i18n.data-feRNKP6a.mjs.map +1 -0
- package/websql-prod/fesm2022/ui-websql-prod-taon-loading-content.component.html.de-DE.i18n.data-TZC7T8iP.mjs +16 -0
- package/websql-prod/fesm2022/ui-websql-prod-taon-loading-content.component.html.de-DE.i18n.data-TZC7T8iP.mjs.map +1 -0
- package/websql-prod/fesm2022/ui-websql-prod-taon-loading-content.component.html.en-US.i18n.data-1w3HACQi.mjs +15 -0
- package/websql-prod/fesm2022/ui-websql-prod-taon-loading-content.component.html.en-US.i18n.data-1w3HACQi.mjs.map +1 -0
- package/websql-prod/fesm2022/ui-websql-prod-taon-loading-content.component.html.pl-PL.i18n.data-BRJ5_a8S.mjs +16 -0
- package/websql-prod/fesm2022/ui-websql-prod-taon-loading-content.component.html.pl-PL.i18n.data-BRJ5_a8S.mjs.map +1 -0
- package/websql-prod/fesm2022/ui-websql-prod-taon-loading-content.component.ts.de-DE.i18n.data-BmFD7ijK.mjs +10 -0
- package/websql-prod/fesm2022/ui-websql-prod-taon-loading-content.component.ts.de-DE.i18n.data-BmFD7ijK.mjs.map +1 -0
- package/websql-prod/fesm2022/ui-websql-prod-taon-loading-content.component.ts.en-US.i18n.data-BbI2My0c.mjs +10 -0
- package/websql-prod/fesm2022/ui-websql-prod-taon-loading-content.component.ts.en-US.i18n.data-BbI2My0c.mjs.map +1 -0
- package/websql-prod/fesm2022/ui-websql-prod-taon-loading-content.component.ts.pl-PL.i18n.data-BulVzTHY.mjs +10 -0
- package/websql-prod/fesm2022/ui-websql-prod-taon-loading-content.component.ts.pl-PL.i18n.data-BulVzTHY.mjs.map +1 -0
- package/websql-prod/fesm2022/ui-websql-prod.mjs +109 -29
- package/websql-prod/fesm2022/ui-websql-prod.mjs.map +1 -1
- package/websql-prod/package.json +1 -1
- package/websql-prod/types/ui-websql-prod.d.ts +21 -2
- package/browser/fesm2022/ui-browser-taon-datatable.component.html.de-DE.i18n.data-BoSFa5hw.mjs.map +0 -1
- package/browser/fesm2022/ui-browser-taon-datatable.component.html.en-US.i18n.data-BaRVxYHq.mjs.map +0 -1
- package/browser/fesm2022/ui-browser-taon-datatable.component.html.pl-PL.i18n.data-7lC0y8ph.mjs.map +0 -1
- package/browser/fesm2022/ui-browser-taon-draggable-button-panel.component.html.de-DE.i18n.data-Dp-lgypr.mjs.map +0 -1
- package/browser/fesm2022/ui-browser-taon-draggable-button-panel.component.html.en-US.i18n.data-ltFpAkGt.mjs.map +0 -1
- package/browser/fesm2022/ui-browser-taon-draggable-button-panel.component.html.pl-PL.i18n.data-CnRrSOL1.mjs.map +0 -1
- package/browser/fesm2022/ui-browser-taon-error-details-dialog.component.html.de-DE.i18n.data-CdhZ2dpV.mjs.map +0 -1
- package/browser/fesm2022/ui-browser-taon-error-details-dialog.component.html.en-US.i18n.data-CHP-fao9.mjs.map +0 -1
- package/browser/fesm2022/ui-browser-taon-error-details-dialog.component.html.pl-PL.i18n.data-BHT-hqYY.mjs.map +0 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-datatable.component.html.de-DE.i18n.data-BPCPpfL1.mjs.map +0 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-datatable.component.html.en-US.i18n.data-CljILnW8.mjs.map +0 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-datatable.component.html.pl-PL.i18n.data-BwA3pgv9.mjs.map +0 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-draggable-button-panel.component.html.de-DE.i18n.data-DoXOSPLK.mjs.map +0 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-draggable-button-panel.component.html.en-US.i18n.data-ChHpYYp5.mjs.map +0 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-draggable-button-panel.component.html.pl-PL.i18n.data-BvneRsSP.mjs +0 -16
- package/browser-prod/fesm2022/ui-browser-prod-taon-draggable-button-panel.component.html.pl-PL.i18n.data-BvneRsSP.mjs.map +0 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-error-details-dialog.component.html.de-DE.i18n.data-B0nY7sKQ.mjs.map +0 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-error-details-dialog.component.html.en-US.i18n.data-BcBT5bvZ.mjs.map +0 -1
- package/browser-prod/fesm2022/ui-browser-prod-taon-error-details-dialog.component.html.pl-PL.i18n.data-BezLaTYz.mjs.map +0 -1
- package/websql/fesm2022/ui-websql-taon-datatable.component.html.de-DE.i18n.data-akWKK_zH.mjs.map +0 -1
- package/websql/fesm2022/ui-websql-taon-datatable.component.html.en-US.i18n.data-BQRO2MVj.mjs.map +0 -1
- package/websql/fesm2022/ui-websql-taon-datatable.component.html.pl-PL.i18n.data-cEIoFPC7.mjs.map +0 -1
- package/websql/fesm2022/ui-websql-taon-draggable-button-panel.component.html.de-DE.i18n.data-DLRjU_wF.mjs.map +0 -1
- package/websql/fesm2022/ui-websql-taon-draggable-button-panel.component.html.en-US.i18n.data-BUeoHyR8.mjs.map +0 -1
- package/websql/fesm2022/ui-websql-taon-draggable-button-panel.component.html.pl-PL.i18n.data-YnhCecSB.mjs.map +0 -1
- package/websql/fesm2022/ui-websql-taon-error-details-dialog.component.html.de-DE.i18n.data-CUhM-Pw6.mjs.map +0 -1
- package/websql/fesm2022/ui-websql-taon-error-details-dialog.component.html.en-US.i18n.data-CSVK8QB0.mjs.map +0 -1
- package/websql/fesm2022/ui-websql-taon-error-details-dialog.component.html.pl-PL.i18n.data-Bu-go0fr.mjs.map +0 -1
- package/websql-prod/fesm2022/ui-websql-prod-taon-datatable.component.html.de-DE.i18n.data-AkYh86KE.mjs.map +0 -1
- package/websql-prod/fesm2022/ui-websql-prod-taon-datatable.component.html.en-US.i18n.data-D3-rvqAh.mjs.map +0 -1
- package/websql-prod/fesm2022/ui-websql-prod-taon-datatable.component.html.pl-PL.i18n.data-BLkNn4wK.mjs.map +0 -1
- package/websql-prod/fesm2022/ui-websql-prod-taon-draggable-button-panel.component.html.de-DE.i18n.data-DwOIg2Oj.mjs.map +0 -1
- package/websql-prod/fesm2022/ui-websql-prod-taon-draggable-button-panel.component.html.en-US.i18n.data-l8gDdKzO.mjs.map +0 -1
- package/websql-prod/fesm2022/ui-websql-prod-taon-draggable-button-panel.component.html.pl-PL.i18n.data-BiDEZEQC.mjs +0 -16
- package/websql-prod/fesm2022/ui-websql-prod-taon-draggable-button-panel.component.html.pl-PL.i18n.data-BiDEZEQC.mjs.map +0 -1
- package/websql-prod/fesm2022/ui-websql-prod-taon-error-details-dialog.component.html.de-DE.i18n.data-C9ZFXZaT.mjs.map +0 -1
- package/websql-prod/fesm2022/ui-websql-prod-taon-error-details-dialog.component.html.en-US.i18n.data-7LmP7zap.mjs.map +0 -1
- package/websql-prod/fesm2022/ui-websql-prod-taon-error-details-dialog.component.html.pl-PL.i18n.data-C9neWe6s.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-websql-prod.mjs","sources":["../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/migrations/migrations_index._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/migrations/index.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/my-organization-proj.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/start-cli.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/directives/taon-horizontal-wheel-scrolling.directive.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-layout/taon-admin-content-footer.service.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-layout/taon-admin-layout.models.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-layout/taon-admin-menu-context.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-layout/taon-admin-page-tabs.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-layout/taon-admin-page-tabs.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-layout/taon-admin-layout.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-layout/taon-admin-layout.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-layout/taon-base-admin-page.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-welcome/taon-admin-welcome.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-welcome/taon-admin-welcome.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-welcome/taon-admin-welcome.models.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-welcome/taon-admin-welcome.routes.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-backoffice-notifications/taon-error-toast.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-backoffice-notifications/taon-backoffice-notifications.service.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-backoffice-notifications/taon-backoffice-notifications.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-backoffice-notifications/taon-backoffice-notifications.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-confirm-dialog/taon-confirm-dialog.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-confirm-dialog/taon-confirm-dialog.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-confirm-dialog/taon-confirm-dialog.models.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-datatable/taon-datatable.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-datatable/taon-datatable.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-datatable/taon-datatable.models.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-datatable/taon-datatable.routes.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-detachable-dialog-content/taon-detached-window-content.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-draggable-button-panel/taon-draggable-button-panel.models.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-draggable-button-panel/taon-draggable-button-panel.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-draggable-button-panel/taon-draggable-button-panel.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-draggable-button-panel/taon-draggable-button-panel.routes.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-items-hamburger/taon-items-hamburger.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-items-hamburger/taon-items-hamburger.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-purchase-status/taon-purchase-status.dialog.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-purchase-status/taon-purchase-status.dialog.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-under-construction/taon-under-construction.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-under-construction/taon-under-construction.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/index.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/ui-websql-prod.ts"],"sourcesContent":["// THIS FILE IS GENERATED - DO NOT MODIFY\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","//@ts-nocheck\nexport * from './migrations_index._auto-generated_';\n","// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.ui';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = '@taon-dev/ui';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.28';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","import { Translation } from \"@taon-dev/i18n/websql-prod\";\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from \"taon/websql-prod\";\n\nconst t = Translation.for('src/lib/my-organization-proj.ts', {\"src/lib/my-organization-proj.ts\":{\"en-US\":async () => (await import('./i18n/my-organization-proj.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/my-organization-proj.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/my-organization-proj.ts.de-DE.i18n.data')).default},\"src/lib/start-cli.ts\":{\"en-US\":async () => (await import('./i18n/start-cli.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/start-cli.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/start-cli.ts.de-DE.i18n.data')).default}} as any);\n\nexport function myOrgProj() {\n t.gettext('My Translated Company Name!')\n}","//#region tnp-helpers cli template\nimport { UtilsJson__NS__AttrJsoncProp, UtilsJson__NS__getAtrributiesFromJsonWithComments, UtilsJson__NS__getAttributiesFromComment, UtilsJson__NS__getValue, UtilsJson__NS__readJson, UtilsJson__NS__readJsonWithComments, UtilsJson__NS__setValue, UtilsJson__NS__validateLodashPath } from 'tnp-core/websql-prod';\nimport { BaseCommandLineFeature, Helpers__NS___fixCommand, Helpers__NS__ActionInstance, Helpers__NS__actionStarted, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsVerboseModeOrTnp, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logTaskDone, Helpers__NS__logTaskStarted, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-helpers/websql-prod';\n/* */ \nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n//#endregion\n\nconst t = Translation.for('src/lib/start-cli.ts', {\"src/lib/my-organization-proj.ts\":{\"en-US\":async () => (await import('./i18n/my-organization-proj.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/my-organization-proj.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/my-organization-proj.ts.de-DE.i18n.data')).default},\"src/lib/start-cli.ts\":{\"en-US\":async () => (await import('./i18n/start-cli.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/start-cli.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/start-cli.ts.de-DE.i18n.data')).default}} as any);\n\n//#region CLI / global scope\n/**\n * This class is for handling global arguments. *\n * Cli engine will parse: hello:world:from:global:arg to helloWorldFromGlobalArg\n * (lower case, camel case) .. so you don't need to worry about misspelling\n * arguments\n */\nclass $Global extends BaseCommandLineFeature<{}> {\n /**\n * When you execute cli without arguments:`$ cli`\n */\n public _() {\n console.log(`Hello world from cli`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli hello:world:from:global:arg`\n * (or `$ cli helloWorldFromGlobalArg`)\n */\n helloWorldFromGlobalArg() {\n console.log('hello world from global argument!');\n this._exit(0);\n }\n}\n//#endregion\n\n//#region CLI / Version Scope\n/**\n *\n */\nclass $Version extends BaseCommandLineFeature<{\n anyCLIparamsHere: string;\n}> {\n /**\n * When you execute: `$ cli version`\n */\n public _() {\n console.log(`Hello world from version argument`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli version:getFromPackageJson`\n */\n public getFromPackageJson() {\n const ver = UtilsJson__NS__getValue(\n this.project.pathFor('package.json'),\n 'version',\n {\n defaultValue: '<not defined>',\n },\n );\n console.log(`Version from packageJson ${ver}`);\n this._exit(0);\n }\n}\n//#endregion\n\n/**\n *\n * @param argsv process.argsv\n * @param filename needed if you want ipc communicaiton\n */\nexport async function startCli(\n argsv: string[],\n filename: string,\n): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}\n\nexport default startCli;","//#region imports\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n inject,\n OnDestroy,\n} from '@angular/core';\n//#endregion\n\n@Directive({\n selector: '[taonHorizontalWheelScroll]',\n standalone: true,\n})\nexport class TaonHorizontalWheelScrollDirective\n implements AfterViewInit, OnDestroy\n{\n //#region fields\n\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n private wheelAccumulator = 0;\n\n /**\n * Amount of wheel movement required before triggering\n * Material's previous/next pagination.\n */\n private readonly wheelThreshold = 40;\n\n //#endregion\n\n //#region lifecycle\n\n ngAfterViewInit(): void {\n this.elementRef.nativeElement.addEventListener('wheel', this.onWheel, {\n passive: false,\n });\n }\n\n ngOnDestroy(): void {\n this.elementRef.nativeElement.removeEventListener('wheel', this.onWheel);\n }\n\n //#endregion\n\n //#region wheel\n\n private readonly onWheel = (event: WheelEvent): void => {\n const delta =\n Math.abs(event.deltaX) > Math.abs(event.deltaY)\n ? event.deltaX\n : event.deltaY;\n\n if (!delta) {\n return;\n }\n\n this.wheelAccumulator += delta;\n\n if (Math.abs(this.wheelAccumulator) < this.wheelThreshold) {\n return;\n }\n\n const direction = this.wheelAccumulator > 0 ? 'after' : 'before';\n\n this.wheelAccumulator = 0;\n\n // @ts-ignore\n const pagination = this.elementRef.nativeElement.querySelector<HTMLElement>(\n `.mat-mdc-tab-header-pagination-${direction}`,\n );\n\n if (!pagination) {\n return;\n }\n\n const disabled = pagination.classList.contains(\n 'mat-mdc-tab-header-pagination-disabled',\n );\n\n if (disabled) {\n return;\n }\n\n event.preventDefault();\n\n pagination.click();\n };\n\n //#endregion\n}\n","import { Injectable, TemplateRef, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class TaonAdminContentFooterService {\n readonly currentTemplate = signal<TemplateRef<unknown> | undefined>(\n undefined,\n );\n\n setTemplate(template?: TemplateRef<unknown>): void {\n this.currentTemplate.set(template);\n }\n}\n","import type { Signal } from '@angular/core';\nimport type { MatIcon } from '@angular/material/icon'; // @browser\nimport { Route } from '@angular/router';\n\nexport interface TaonAdminRoute extends Route {\n /**\n * Used only by TaonAdminLayout to discover lazy navigation children.\n *\n * This loads route metadata, NOT page components.\n */\n loadAdminChildren?: () => Promise<TaonAdminRoutes>;\n}\n\nexport type TaonAdminRoutes = TaonAdminRoute[];\n\nexport interface TaonAdminMenuCallbacks<TContext = unknown> {\n isDisabled?: (params: { context: TContext }) => boolean;\n isDisabledTooltip?: (params: { context: TContext }) => string;\n isVisible?: (params: { context: TContext }) => boolean;\n}\n\nexport interface TaonAdminRouteOptions<\n TContext = unknown,\n> extends TaonAdminMenuCallbacks<TContext> {\n path: string;\n color?: string;\n loader: () => Promise<TaonAdminRoutes>;\n\n menuItem?: string | (() => string) | Signal<string>;\n\n //#region @browser\n icon?: MatIcon['fontIcon'];\n //#endregion\n\n expandable?: boolean;\n\n hideInNavigation?: boolean;\n}\n\nexport const TaonBaselineBackofficeOutletName = 'admin';\n\nexport function resolveTaonAdminMenuItem(\n menuItem: TaonAdminRouteOptions['menuItem'],\n): string | undefined {\n return typeof menuItem === 'function' ? menuItem() : menuItem;\n}\n\n//#region @browser\nexport function adminLazyRoute<TContext = unknown>(\n options: TaonAdminRouteOptions<TContext>,\n): TaonAdminRoute {\n const {\n path,\n loader,\n menuItem,\n icon,\n color,\n expandable,\n hideInNavigation,\n isDisabled,\n isDisabledTooltip,\n isVisible,\n } = options;\n\n return {\n path,\n\n data: {\n menuItem,\n color,\n icon,\n expandable,\n hideInNavigation,\n isDisabled,\n isDisabledTooltip,\n isVisible,\n },\n\n loadChildren: loader,\n loadAdminChildren: loader,\n };\n}\n//#endregion\n","import { Injectable, signal } from '@angular/core';\nimport { Route } from '@angular/router';\n\nimport { TaonAdminMenuCallbacks } from './taon-admin-layout.models';\n\n@Injectable()\nexport class TaonAdminMenuContext {\n readonly context = signal<unknown>(undefined);\n\n isVisible(route: Route): boolean {\n return (\n !route.data?.['hideInNavigation'] &&\n this.callbacks(route)?.isVisible?.({ context: this.context() }) !== false\n );\n }\n\n isDisabled(route: Route): boolean {\n return (\n this.callbacks(route)?.isDisabled?.({ context: this.context() }) === true\n );\n }\n\n disabledTooltip(route: Route): string {\n return this.isDisabled(route)\n ? (this.callbacks(route)?.isDisabledTooltip?.({\n context: this.context(),\n }) ?? '')\n : '';\n }\n\n private callbacks(route: Route): TaonAdminMenuCallbacks | undefined {\n // Angular Route.data erases the application's context type at the router boundary.\n return route.data as TaonAdminMenuCallbacks | undefined;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n OnInit,\n signal,\n} from '@angular/core';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { NavigationEnd, Route, Router, Routes } from '@angular/router';\nimport { filter } from 'rxjs';\n\nimport {\n resolveTaonAdminMenuItem,\n TaonAdminRoute,\n} from './taon-admin-layout.models';\nimport { TaonAdminMenuContext } from './taon-admin-menu-context';\n\nexport interface TaonAdminTabLevel {\n level: number;\n routes: Routes;\n\n /**\n * URL segments before routes from this tab level.\n *\n * Example:\n *\n * ['main', 'session', 'providers']\n */\n baseSegments: string[];\n}\n\n@Component({\n selector: 'taon-admin-page-tabs',\n standalone: true,\n imports: [MatTabsModule, MatTooltipModule],\n templateUrl: './taon-admin-page-tabs.component.html',\n styleUrl: './taon-admin-page-tabs.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TaonAdminPageTabsComponent implements OnInit {\n protected readonly menuContext =\n inject(TaonAdminMenuContext, { optional: true }) ??\n new TaonAdminMenuContext();\n\n private _routes: Routes = [];\n\n @Input({ required: true })\n set routes(routes: Routes) {\n this._routes = routes.filter(f => !f.redirectTo);\n }\n\n get routes(): Routes {\n return this._routes;\n }\n\n @Input()\n basePath = '';\n\n /**\n * Undefined:\n * normal primary routing\n *\n * \"admin\":\n * auxiliary admin outlet\n */\n @Input()\n outlet?: string;\n\n protected readonly levels = signal<TaonAdminTabLevel[]>([]);\n\n constructor(private readonly router: Router) {}\n\n async ngOnInit(): Promise<void> {\n // console.log(this.routes);\n await this.refresh();\n\n this.router.events\n .pipe(filter(event => event instanceof NavigationEnd))\n .subscribe(async () => {\n await this.refresh();\n });\n }\n\n // ===========================================================================\n // UI\n // ===========================================================================\n\n protected label(route: Route): string {\n return (\n resolveTaonAdminMenuItem(route.data?.['menuItem']) ??\n this.startCase(route.path ?? '')\n );\n }\n\n protected isActive(level: TaonAdminTabLevel, route: Route): boolean {\n if (!route.path) {\n return false;\n }\n\n const expected = [...level.baseSegments, route.path];\n\n const current = this.currentOutletSegments();\n\n if (current.length < expected.length) {\n return false;\n }\n\n return expected.every((segment, index) => current[index] === segment);\n }\n\n protected async tabClicked(\n level: TaonAdminTabLevel,\n route: Route,\n ): Promise<void> {\n if (\n !route.path ||\n !this.menuContext.isVisible(route) ||\n this.menuContext.isDisabled(route)\n ) {\n return;\n }\n\n await this.navigateTo([\n ...level.baseSegments.slice(this.basePathSegments.length),\n route.path,\n ]);\n }\n\n // ===========================================================================\n // NAVIGATION\n // ===========================================================================\n\n private outletBaseMatrixParams(): Record<string, string> {\n if (!this.outlet) {\n return {};\n }\n\n const tree = this.router.parseUrl(this.router.url);\n\n const outletGroup = tree.root.children[this.outlet];\n\n return {\n ...outletGroup?.segments[0]?.parameters,\n };\n }\n\n private async navigateTo(routeSegments: string[]): Promise<boolean> {\n const segments = [...this.basePathSegments, ...routeSegments];\n\n /**\n * Auxiliary / named outlet.\n *\n * Example:\n *\n * /products/42(admin:main/session/providers/settings)\n */\n if (this.outlet) {\n const [firstSegment, ...remainingSegments] = segments;\n\n if (!firstSegment) {\n return false;\n }\n\n const matrixParams = this.outletBaseMatrixParams();\n\n return this.router.navigate([\n {\n outlets: {\n [this.outlet]: [\n firstSegment,\n\n /**\n * Angular interprets an object following\n * a segment as matrix parameters.\n */\n matrixParams,\n\n ...remainingSegments,\n ],\n },\n },\n ]);\n }\n\n /**\n * Normal primary outlet.\n *\n * Example:\n *\n * /main/session/providers/settings\n */\n return this.router.navigate(['/', ...segments]);\n }\n\n // ===========================================================================\n // BUILD TAB LEVELS\n // ===========================================================================\n\n private async refresh(): Promise<void> {\n const current = this.currentOutletSegments();\n\n const base = this.basePathSegments;\n\n /**\n * Example:\n *\n * current:\n * main/session/providers/settings\n *\n * base:\n * main\n *\n * relative:\n * session/providers/settings\n */\n const relative = current.slice(base.length);\n\n const levels: TaonAdminTabLevel[] = [];\n\n await this.walk(this.routes, relative, base, 1, levels);\n\n /**\n * Levels:\n *\n * 1 -> aside expansion panel\n * 2 -> aside item\n * 3+ -> tabs\n */\n this.levels.set(levels.filter(level => level.level >= 3));\n }\n\n private async walk(\n routes: Routes,\n remainingUrl: string[],\n baseSegments: string[],\n level: number,\n result: TaonAdminTabLevel[],\n ): Promise<void> {\n /**\n * Important:\n *\n * Taon lazy route files commonly look like:\n *\n * [\n * {\n * path: '',\n * component: SomeContainer,\n * children: [...]\n * }\n * ]\n *\n * path:'' is structural and DOES NOT represent\n * another navigation level.\n */\n routes = this.unwrapEmptyPathRoutes(routes);\n\n const visibleRoutes = this.navigationRoutes(routes);\n\n /**\n * Level 3+ becomes tabs.\n */\n if (level >= 3 && visibleRoutes.length > 0) {\n result.push({\n level,\n routes: visibleRoutes,\n baseSegments,\n });\n }\n\n const currentSegment = remainingUrl[0];\n\n if (!currentSegment) {\n return;\n }\n\n const activeRoute = routes.find(route => route.path === currentSegment);\n\n if (!activeRoute) {\n return;\n }\n\n let children = await this.loadChildren(activeRoute);\n\n children = this.unwrapEmptyPathRoutes(children).filter(f => !!f.data);\n\n if (!children.length) {\n return;\n }\n\n await this.walk(\n children,\n remainingUrl.slice(1),\n [...baseSegments, currentSegment],\n level + 1,\n result,\n );\n }\n\n // ===========================================================================\n // LAZY ROUTES\n // ===========================================================================\n\n private async loadChildren(route: Route): Promise<Routes> {\n if (route.children) {\n return route.children;\n }\n\n const adminRoute = route as TaonAdminRoute;\n\n if (adminRoute.loadAdminChildren) {\n return await adminRoute.loadAdminChildren();\n }\n\n return [];\n }\n\n /**\n * Removes transparent path:'' containers.\n *\n * Example:\n *\n * [\n * {\n * path: '',\n * component: ProvidersComponent,\n * children: [\n * { path: 'info' },\n * { path: 'items' },\n * ],\n * },\n * ]\n *\n * becomes:\n *\n * [\n * { path: 'info' },\n * { path: 'items' },\n * ]\n */\n private unwrapEmptyPathRoutes(routes: Routes): Routes {\n const result: Routes = [];\n\n for (const route of routes) {\n if (route.path === '' && route.children) {\n result.push(...this.unwrapEmptyPathRoutes(route.children));\n\n continue;\n }\n\n result.push(route);\n }\n\n return result;\n }\n\n private navigationRoutes(routes: Routes): Routes {\n return routes.filter(\n route =>\n !!route.path &&\n route.redirectTo === undefined &&\n !route.data?.['hideInNavigation'],\n );\n }\n\n // ===========================================================================\n // CURRENT ROUTE\n // ===========================================================================\n\n private currentOutletSegments(): string[] {\n const tree = this.router.parseUrl(this.router.url);\n\n const outletName = this.outlet || 'primary';\n\n const group = tree.root.children[outletName];\n\n if (!group) {\n return [];\n }\n\n return group.segments.map(segment => segment.path);\n }\n\n private get basePathSegments(): string[] {\n return this.basePath.split('/').filter(Boolean);\n }\n\n // ===========================================================================\n // HELPERS\n // ===========================================================================\n\n private startCase(value: string): string {\n return value\n .replace(/[-_]+/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n }\n}\n","@if (levels().length) {\n <div class=\"shrink-0 border-b border-gray-200 bg-white\">\n @for (level of levels(); track level.level) {\n <nav\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\">\n @for (route of level.routes; track route.path) {\n @if (menuContext.isVisible(route)) {\n <a\n mat-tab-link\n class=\"cursor-pointer\"\n [disabled]=\"menuContext.isDisabled(route)\"\n [class.admin-tab-disabled]=\"menuContext.isDisabled(route)\"\n [matTooltip]=\"menuContext.disabledTooltip(route)\"\n [active]=\"isActive(level, route)\"\n (click)=\"tabClicked(level, route)\">\n {{ label(route) }}\n </a>\n }\n }\n </nav>\n }\n </div>\n}\n\n<mat-tab-nav-panel #tabPanel> </mat-tab-nav-panel>\n","//#region imports\nimport { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n inject,\n Input,\n OnDestroy,\n OnInit,\n signal,\n} from '@angular/core';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport {\n NavigationEnd,\n Route,\n Router,\n RouterLink,\n RouterOutlet,\n Routes,\n} from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { filter, Subscription } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonAdminContentFooterService } from './taon-admin-content-footer.service';\nimport {\n resolveTaonAdminMenuItem,\n TaonAdminRoute,\n} from './taon-admin-layout.models';\nimport { TaonAdminMenuContext } from './taon-admin-menu-context';\nimport { TaonAdminPageTabsComponent } from './taon-admin-page-tabs.component';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-admin-layout/taon-admin-layout.component.ts', {\"src/lib/taon-admin-layout/taon-admin-layout.component.html\":{\"en-US\":async () => (await import('./i18n/taon-admin-layout.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-admin-layout.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-admin-layout.component.html.de-DE.i18n.data')).default},\"src/lib/taon-admin-layout/taon-admin-layout.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-admin-layout.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-admin-layout.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-admin-layout.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-admin-layout',\n standalone: true,\n imports: [\n CommonModule,\n RouterOutlet,\n RouterLink,\n\n MatExpansionModule,\n MatIconModule,\n MatTooltipModule,\n\n TaonAdminPageTabsComponent,\n ],\n templateUrl: './taon-admin-layout.component.html',\n styleUrls: ['./taon-admin-layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TaonAdminLayoutComponent\n implements OnInit, AfterViewInit, OnDestroy\n{\n //#region fields and getters\n\n protected readonly t = t.for(this);\n\n protected readonly menuContext =\n inject(TaonAdminMenuContext, { optional: true }) ??\n new TaonAdminMenuContext();\n\n protected readonly taonAdminContentFooterService = inject(\n TaonAdminContentFooterService,\n );\n\n private _routes: Routes = [];\n\n @Input({ required: true })\n set routes(routes: Routes) {\n this._routes = routes.filter(f => !f.redirectTo);\n }\n\n\n\n get routes(): Routes {\n return this._routes;\n }\n\n @Input()\n basePath = '';\n\n @Input()\n outlet!: string;\n\n protected readonly layoutWidth = signal<number | undefined>(undefined);\n\n protected readonly layoutHeight = signal<number | undefined>(undefined);\n\n protected readonly level2Routes = signal(new Map<Route, Routes>());\n\n protected readonly currentUrl = signal('');\n\n protected readonly loadingRoutes = signal(new Set<Route>());\n\n protected readonly asideOpened = signal(window.innerWidth >= 768);\n\n private resizeObserver?: ResizeObserver;\n\n private mutationObserver?: MutationObserver;\n\n private resizing = false;\n\n private resizeStartX = 0;\n\n private resizeStartY = 0;\n\n private resizeStartWidth = 0;\n\n private resizeStartHeight = 0;\n\n readonly sub = new Subscription();\n\n private readonly cdr = inject(ChangeDetectorRef);\n\n private readonly minDialogWidth = 500;\n\n private readonly minDialogHeight = 350;\n\n protected get isDialogMode(): boolean {\n const windowElement = this.getWindowElement();\n\n if (!windowElement) {\n return false;\n }\n\n return !windowElement.classList.contains('taon-fullscreen');\n }\n\n private get basePathSegments(): string[] {\n return this.basePath.split('/').filter(Boolean);\n }\n\n protected get normalizedBasePath(): string {\n const value = '/' + this.basePath.split('/').filter(Boolean).join('/');\n\n return value === '/' ? '/' : value;\n }\n\n //#endregion\n\n //#region constructor\n\n constructor(\n private readonly router: Router,\n private readonly hostElement: ElementRef<HTMLElement>,\n ) {}\n\n //#endregion\n\n //#region lifecycle\n\n async ngOnInit(): Promise<void> {\n await this.loadCurrentLevel1Route();\n\n this.router.events\n .pipe(filter(event => event instanceof NavigationEnd))\n .subscribe(async () => {\n await this.loadCurrentLevel1Route();\n });\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n const windowElement = this.getWindowElement();\n // console.log('[windowElement] should not be undefined', windowElement);\n this.updateLayoutSize();\n this.startWindowObservers();\n\n // TODO @LAST issue with reloading transation without setOneLanguagePernament\n // this.sub.add(\n // this.t.isLoadingLang$.subscribe(() => {\n // setTimeout(() => {\n // console.log('RERENDER! after timeout', Translation.manager);\n // this.cdr.detectChanges();\n // }, 1000);\n // }),\n // );\n }, 500); // TODO QUICK_FIX\n }\n\n // private waitForWindowElement(\n // callback: (windowElement: HTMLElement) => void,\n // ): void {\n // const check = () => {\n // console.log('Waiting for window element...');\n // const windowElement = this.getWindowElement();\n\n // if (windowElement) {\n // callback(windowElement);\n // return;\n // }\n\n // requestAnimationFrame(check);\n // };\n\n // check();\n // }\n\n ngOnDestroy(): void {\n this.resizeObserver?.disconnect();\n this.mutationObserver?.disconnect();\n\n window.removeEventListener('pointermove', this.resize);\n\n window.removeEventListener('pointerup', this.stopResize);\n }\n\n //#endregion\n\n //#region window / layout\n\n private getWindowElement(): HTMLElement | undefined {\n return (\n document.querySelector<HTMLElement>('.taon-window') ??\n document.querySelector<HTMLElement>('.taon-window-full') ??\n undefined\n );\n }\n\n private getDraggablePanelElement(): HTMLElement | undefined {\n return (\n document.querySelector<HTMLElement>('.taon-draggable-panel') ?? undefined\n );\n }\n\n private startWindowObservers(): void {\n this.resizeObserver?.disconnect();\n this.mutationObserver?.disconnect();\n\n const host = this.hostElement.nativeElement;\n\n const windowElement = this.getWindowElement();\n\n // console.log('WINDOW', this.getWindowElement());\n\n // console.log('PANEL', this.getDraggablePanelElement());\n\n // ================================================================\n // SIZE CHANGES\n // ================================================================\n\n const observedElement = windowElement ?? host.parentElement;\n\n if (observedElement) {\n this.resizeObserver = new ResizeObserver(() => {\n this.updateLayoutSize();\n });\n\n this.resizeObserver.observe(observedElement);\n }\n\n // ================================================================\n // DIALOG <-> FULLSCREEN STATE CHANGES\n // ================================================================\n\n if (windowElement) {\n this.mutationObserver = new MutationObserver(mutations => {\n const classChanged = mutations.some(\n mutation =>\n mutation.type === 'attributes' &&\n mutation.attributeName === 'class',\n );\n // console.log('Class changed:', classChanged);\n\n if (!classChanged) {\n return;\n }\n\n this.windowModeChanged(windowElement);\n });\n\n this.mutationObserver.observe(windowElement, {\n attributes: true,\n attributeFilter: ['class'],\n });\n }\n }\n\n private windowModeChanged(windowElement: HTMLElement): void {\n const fullscreen = windowElement.classList.contains('taon-fullscreen');\n\n if (fullscreen) {\n this.clearWindowResize(windowElement);\n }\n\n requestAnimationFrame(() => {\n this.updateLayoutSize();\n });\n }\n\n private clearWindowResize(windowElement: HTMLElement): void {\n windowElement.style.removeProperty('width');\n\n windowElement.style.removeProperty('height');\n }\n\n @HostListener('window:resize')\n protected windowResized(): void {\n this.updateLayoutSize();\n }\n\n private updateLayoutSize(): void {\n const host = this.hostElement.nativeElement;\n\n const hostRect = host.getBoundingClientRect();\n\n const windowElement = this.getWindowElement();\n\n const dialogMode =\n !!windowElement && !windowElement.classList.contains('taon-fullscreen');\n\n // ================================================================\n // NORMAL / FULLSCREEN\n // ================================================================\n\n if (!dialogMode) {\n this.layoutWidth.set(Math.floor(hostRect.width));\n\n this.layoutHeight.set(\n Math.max(0, Math.floor(window.innerHeight - hostRect.top)),\n );\n\n return;\n }\n\n // ================================================================\n // DIALOG\n // ================================================================\n\n const windowRect = windowElement.getBoundingClientRect();\n\n this.layoutWidth.set(\n Math.max(0, Math.floor(windowRect.right - hostRect.left)),\n );\n\n this.layoutHeight.set(\n Math.max(0, Math.floor(windowRect.bottom - hostRect.top)),\n );\n }\n\n //#endregion\n\n //#region dialog resizing\n\n protected startResize(event: PointerEvent): void {\n if (!this.isDialogMode) {\n return;\n }\n\n const windowElement = this.getWindowElement();\n\n if (!windowElement) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const windowRect = windowElement.getBoundingClientRect();\n\n this.resizing = true;\n\n this.resizeStartX = event.clientX;\n\n this.resizeStartY = event.clientY;\n\n this.resizeStartWidth = windowRect.width;\n\n this.resizeStartHeight = windowRect.height;\n\n window.addEventListener('pointermove', this.resize);\n\n window.addEventListener('pointerup', this.stopResize);\n }\n\n private readonly resize = (event: PointerEvent): void => {\n if (!this.resizing) {\n return;\n }\n\n const windowElement = this.getWindowElement();\n\n if (!windowElement) {\n return;\n }\n\n const windowRect = windowElement.getBoundingClientRect();\n\n const deltaX = event.clientX - this.resizeStartX;\n\n const deltaY = event.clientY - this.resizeStartY;\n\n const maxWidth = window.innerWidth - windowRect.left;\n\n const maxHeight = window.innerHeight - windowRect.top;\n\n const width = Math.min(\n maxWidth,\n Math.max(this.minDialogWidth, this.resizeStartWidth + deltaX),\n );\n\n const height = Math.min(\n maxHeight,\n Math.max(this.minDialogHeight, this.resizeStartHeight + deltaY),\n );\n\n windowElement.style.width = `${width}px`;\n\n windowElement.style.height = `${height}px`;\n };\n\n private readonly stopResize = (): void => {\n if (!this.resizing) {\n return;\n }\n\n this.resizing = false;\n\n window.removeEventListener('pointermove', this.resize);\n\n window.removeEventListener('pointerup', this.stopResize);\n };\n\n //#endregion\n\n //#region aside\n\n protected toggleAside(): void {\n this.asideOpened.update(opened => !opened);\n }\n\n protected closeAside(): void {\n this.asideOpened.set(false);\n }\n\n private closeAsideOnMobile(): void {\n if (window.innerWidth < 768) {\n this.closeAside();\n }\n }\n\n //#endregion\n\n //#region level 1\n\n protected async level1Clicked(route: Route): Promise<void> {\n if (\n !route.path ||\n !this.menuContext.isVisible(route) ||\n this.menuContext.isDisabled(route)\n ) {\n return;\n }\n\n await this.navigateTo([route.path]);\n\n await this.ensureLevel2Loaded(route);\n\n if (!this.isExpandable(route)) {\n this.closeAsideOnMobile();\n }\n }\n\n protected async panelExpanded(\n route: Route,\n expanded: boolean,\n ): Promise<void> {\n if (\n !expanded ||\n !this.menuContext.isVisible(route) ||\n this.menuContext.isDisabled(route)\n ) {\n return;\n }\n\n await this.ensureLevel2Loaded(route);\n }\n\n protected isLevel1Active(route: Route): boolean {\n if (!route.path) {\n return false;\n }\n\n return this.isPathActive([route.path]);\n }\n\n //#endregion\n\n //#region level 2\n\n protected async level2Clicked(level1: Route, level2: Route): Promise<void> {\n if (\n !level1.path ||\n !level2.path ||\n !this.menuContext.isVisible(level1) ||\n this.menuContext.isDisabled(level1) ||\n !this.menuContext.isVisible(level2) ||\n this.menuContext.isDisabled(level2)\n ) {\n return;\n }\n\n await this.navigateTo([level1.path, level2.path]);\n\n this.closeAsideOnMobile();\n }\n\n protected getLevel2Routes(route: Route): Routes {\n return this.level2Routes().get(route) ?? [];\n }\n\n protected isLevel2Active(level1: Route, level2: Route): boolean {\n if (!level1.path || !level2.path) {\n return false;\n }\n\n return this.isPathActive([level1.path, level2.path]);\n }\n\n protected level2Link(level1: Route, level2: Route): string[] {\n return [this.normalizedBasePath, level1.path!, level2.path!];\n }\n\n //#endregion\n\n //#region navigation\n\n private outletBaseMatrixParams(): Record<string, string> {\n if (!this.outlet) {\n return {};\n }\n\n const tree = this.router.parseUrl(this.router.url);\n\n const outletGroup = tree.root.children[this.outlet];\n\n return {\n ...outletGroup?.segments[0]?.parameters,\n };\n }\n\n private async navigateTo(routeSegments: string[]): Promise<boolean> {\n const segments = [...this.basePathSegments, ...routeSegments];\n\n if (this.outlet) {\n const [firstSegment, ...remainingSegments] = segments;\n\n if (!firstSegment) {\n return false;\n }\n\n const matrixParams = this.outletBaseMatrixParams();\n\n return this.router.navigate([\n {\n outlets: {\n [this.outlet]: [firstSegment, matrixParams, ...remainingSegments],\n },\n },\n ]);\n }\n\n return this.router.navigate(['/', ...segments]);\n }\n\n //#endregion\n\n //#region route loading\n\n private async ensureLevel2Loaded(level1: Route): Promise<void> {\n if (this.level2Routes().has(level1)) {\n return;\n }\n\n if (this.loadingRoutes().has(level1)) {\n return;\n }\n\n this.setLoading(level1, true);\n\n try {\n const lazyRoutes = await this.loadRouteChildren(level1);\n\n const level2 = this.unwrapEmptyPathRoutes(lazyRoutes);\n\n const map = new Map(this.level2Routes());\n\n map.set(level1, level2);\n\n this.level2Routes.set(map);\n } finally {\n this.setLoading(level1, false);\n }\n }\n\n private async loadRouteChildren(route: Route): Promise<Routes> {\n if (route.children) {\n return route.children;\n }\n\n const adminRoute = route as TaonAdminRoute;\n\n if (adminRoute.loadAdminChildren) {\n return await adminRoute.loadAdminChildren();\n }\n\n return [];\n }\n\n private unwrapEmptyPathRoutes(routes: Routes): Routes {\n const result: Routes = [];\n\n for (const route of routes) {\n if (route.path === '' && route.children) {\n result.push(...this.unwrapEmptyPathRoutes(route.children));\n\n continue;\n }\n\n if (route.redirectTo !== undefined || route.data?.['hideInNavigation']) {\n continue;\n }\n\n result.push(route);\n }\n\n return result;\n }\n\n //#endregion\n\n //#region direct url support\n\n private async loadCurrentLevel1Route(): Promise<void> {\n const relativeSegments = this.currentRelativeSegments();\n\n const level1Path = relativeSegments[0];\n\n if (!level1Path) {\n return;\n }\n\n const level1 = this.routes.find(route => route.path === level1Path);\n\n if (level1) {\n await this.ensureLevel2Loaded(level1);\n }\n }\n\n //#endregion\n\n //#region helpers\n\n protected label(route: Route): string {\n return (\n resolveTaonAdminMenuItem(route.data?.['menuItem']) ??\n this.startCase(route.path ?? '')\n );\n }\n\n protected color(route: Route): string {\n return route.data?.['color'];\n }\n\n protected icon(route: Route): string | undefined {\n return route.data?.['icon'];\n }\n\n protected isLoading(route: Route): boolean {\n return this.loadingRoutes().has(route);\n }\n\n protected isExpandable(route: Route): boolean {\n return route.data?.['expandable'] !== false;\n }\n\n private isPathActive(routeSegments: string[]): boolean {\n const current = this.currentRelativeSegments();\n\n if (current.length < routeSegments.length) {\n return false;\n }\n\n return routeSegments.every((segment, index) => current[index] === segment);\n }\n\n private currentRelativeSegments(): string[] {\n const current = this.currentOutletSegments();\n\n return current.slice(this.basePathSegments.length);\n }\n\n private currentOutletSegments(): string[] {\n const tree = this.router.parseUrl(this.router.url);\n\n const outletName = this.outlet || 'primary';\n\n const group = tree.root.children[outletName];\n\n if (!group) {\n return [];\n }\n\n return group.segments.map(segment => segment.path);\n }\n\n private setLoading(route: Route, loading: boolean): void {\n const set = new Set(this.loadingRoutes());\n\n if (loading) {\n set.add(route);\n } else {\n set.delete(route);\n }\n\n this.loadingRoutes.set(set);\n }\n\n private startCase(value: string): string {\n return value\n .replace(/[-_]+/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n }\n\n //#endregion\n}","<div\n #layout\n class=\"admin-layout\"\n [class.admin-layout-dialog]=\"isDialogMode\"\n [style.width.px]=\"layoutWidth() || null\"\n [style.height.px]=\"layoutHeight() || null\">\n <!-- ============================================================= -->\n <!-- HEADER -->\n <!-- ============================================================= -->\n\n <header class=\"admin-header\">\n <button\n mat-icon-button\n type=\"button\"\n [attr.aria-label]=\"t.gettext('Toggle admin menu')\"\n class=\"admin-menu-button\"\n (click)=\"toggleAside()\">\n <mat-icon>menu</mat-icon>\n </button>\n\n <div class=\"admin-header-content\">\n <ng-content select=\"[header]\" />\n </div>\n </header>\n\n <!-- ============================================================= -->\n <!-- BODY -->\n <!-- ============================================================= -->\n\n <div class=\"admin-body\">\n <!-- =========================================================== -->\n <!-- MOBILE BACKDROP -->\n <!-- =========================================================== -->\n\n @if (asideOpened()) {\n <div\n class=\"admin-aside-backdrop\"\n (click)=\"closeAside()\"></div>\n }\n\n <!-- =========================================================== -->\n <!-- ASIDE -->\n <!-- =========================================================== -->\n\n <aside\n class=\"admin-aside\"\n [class.admin-aside-open]=\"asideOpened()\">\n <!-- ========================================================= -->\n <!-- SCROLLABLE ASIDE CONTENT -->\n <!-- ========================================================= -->\n\n <div class=\"admin-aside-content\">\n <mat-accordion class=\"admin-menu\">\n @for (level1 of routes; track level1.path) {\n @if (menuContext.isVisible(level1)) {\n @if (isExpandable(level1)) {\n <mat-expansion-panel\n [disabled]=\"menuContext.isDisabled(level1)\"\n [expanded]=\"\n isLevel1Active(level1) && !menuContext.isDisabled(level1)\n \"\n (expandedChange)=\"panelExpanded(level1, $event)\">\n <mat-expansion-panel-header\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level1)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level1)\"\n (click)=\"level1Clicked(level1)\">\n <mat-panel-title>\n <div class=\"admin-menu-item\">\n @if (icon(level1)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ icon(level1) }}\n </mat-icon>\n }\n\n <span\n [class.font-semibold]=\"isLevel1Active(level1)\"\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ label(level1) }}\n </span>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div class=\"admin-level2\">\n @if (isLoading(level1)) {\n <div class=\"admin-loading\">{{ t.gettext('Loading...') }}</div>\n } @else {\n @for (\n level2 of getLevel2Routes(level1);\n track level2.path\n ) {\n @if (menuContext.isVisible(level2)) {\n <a\n class=\"admin-level2-item\"\n role=\"button\"\n [attr.tabindex]=\"\n menuContext.isDisabled(level2) ? -1 : 0\n \"\n [attr.aria-disabled]=\"\n menuContext.isDisabled(level2)\n \"\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level2)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level2)\"\n [class.admin-level2-item-active]=\"\n isLevel2Active(level1, level2)\n \"\n (click)=\"level2Clicked(level1, level2)\"\n (keydown.enter)=\"level2Clicked(level1, level2)\"\n (keydown.space)=\"\n $event.preventDefault();\n level2Clicked(level1, level2)\n \">\n @if (icon(level2)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level2),\n }\">\n {{ icon(level2) }}\n </mat-icon>\n }\n\n <span\n [ngStyle]=\"{\n color: color(level2),\n }\">\n {{ label(level2) }}\n </span>\n </a>\n }\n }\n }\n </div>\n </mat-expansion-panel>\n } @else {\n <a\n class=\"admin-level1-item\"\n role=\"button\"\n [attr.tabindex]=\"menuContext.isDisabled(level1) ? -1 : 0\"\n [attr.aria-disabled]=\"menuContext.isDisabled(level1)\"\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level1)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level1)\"\n [class.admin-level1-item-active]=\"isLevel1Active(level1)\"\n (click)=\"level1Clicked(level1)\"\n (keydown.enter)=\"level1Clicked(level1)\"\n (keydown.space)=\"\n $event.preventDefault(); level1Clicked(level1)\n \">\n @if (icon(level1)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ icon(level1) }}\n </mat-icon>\n }\n\n <span\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ label(level1) }}\n </span>\n </a>\n }\n }\n }\n </mat-accordion>\n </div>\n\n <!-- ========================================================= -->\n <!-- ASIDE FOOTER -->\n <!-- ========================================================= -->\n\n <footer class=\"admin-aside-footer\">\n <ng-content select=\"[asideFooter]\" />\n </footer>\n </aside>\n\n <!-- =========================================================== -->\n <!-- MAIN -->\n <!-- =========================================================== -->\n\n <main class=\"admin-main\">\n <!-- ========================================================= -->\n <!-- LEVEL 3+ TABS -->\n <!-- ========================================================= -->\n\n <taon-admin-page-tabs\n class=\"admin-tabs\"\n [routes]=\"routes\"\n [basePath]=\"basePath\"\n [outlet]=\"outlet\" />\n\n <!-- ========================================================= -->\n <!-- SCROLLABLE CONTENT -->\n <!-- ========================================================= -->\n\n <div class=\"admin-content\">\n <router-outlet />\n </div>\n\n <!-- ========================================================= -->\n <!-- CONTENT FOOTER -->\n <!-- ========================================================= -->\n\n <footer class=\"admin-content-footer\">\n <ng-container\n [ngTemplateOutlet]=\"\n taonAdminContentFooterService.currentTemplate()\n \" />\n </footer>\n </main>\n </div>\n\n <!-- ============================================================= -->\n <!-- DIALOG RESIZE HANDLE -->\n <!-- ============================================================= -->\n\n @if (isDialogMode) {\n <div\n class=\"admin-resize-handle\"\n (pointerdown)=\"startResize($event)\"></div>\n }\n</div>\n","import { Component, ViewChild } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n template: '',\n})\nexport abstract class TaonBaseAdminLayoutPage {\n @ViewChild(RouterOutlet)\n routerOutlet!: RouterOutlet;\n\n get hasActiveChildRoute(): boolean {\n return this.routerOutlet?.isActivated ?? false;\n }\n}\n","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-admin-welcome/taon-admin-welcome.component.ts', {\"src/lib/taon-admin-welcome/taon-admin-welcome.component.html\":{\"en-US\":async () => (await import('./i18n/taon-admin-welcome.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-admin-welcome.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-admin-welcome.component.html.de-DE.i18n.data')).default},\"src/lib/taon-admin-welcome/taon-admin-welcome.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-admin-welcome.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-admin-welcome.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-admin-welcome.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'app-taon-admin-welcome',\n templateUrl: './taon-admin-welcome.component.html',\n styleUrls: ['./taon-admin-welcome.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonAdminWelcomeComponent {\n t = t.for(this);\n}","<!-- <router-outlet></router-outlet> -->\n<p>\n {{ t.gettext('Welcome to Taon Admin') }}\n</p>\n","//namespace TaonAdminWelcomeModels\n\n//end of namespace TaonAdminWelcomeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '../index';\n//#endregion\n\nexport const TaonAdminWelcomeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-admin-welcome.component').then(m => m.TaonAdminWelcomeComponent),\n\n // children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n // ],\n },\n];\n\n/**\n * By default exporting TaonAdminWelcomeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonAdminWelcomeRoutes;","//#region imports\nimport { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.ts', {\"src/lib/taon-backoffice-notifications/taon-backoffice-notifications.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.html\":{\"en-US\":async () => (await import('./i18n/taon-error-details-dialog.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-details-dialog.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-details-dialog.component.html.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-toast.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-error-toast.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-toast.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-toast.component.ts.de-DE.i18n.data')).default}} as any);\n\nexport interface TaonErrorDetailsDialogData {\n message: string;\n details: string;\n}\n\ntype TaonEditor = 'vscode' | 'vscodium';\n\ninterface TaonStackTraceLine {\n text: string;\n file?: string;\n line?: number;\n column?: number;\n}\n\n@Component({\n selector: 'taon-error-details-dialog',\n standalone: true,\n imports: [MatDialogModule, MatButtonModule, MatButtonToggleModule],\n templateUrl: './taon-error-details-dialog.component.html',\n styleUrls: ['./taon-error-details-dialog.component.scss'],\n})\nexport class TaonErrorDetailsDialogComponent {\n //#region injections\n readonly t = t.for(this);\n\n readonly data = inject<TaonErrorDetailsDialogData>(MAT_DIALOG_DATA);\n //#endregion\n\n //#region constants\n private readonly editorStorageKey = 'taon-error-details-editor';\n //#endregion\n\n //#region state\n editor: TaonEditor = this.loadEditor();\n\n readonly stackLines = this.parseStackTrace(this.data.details);\n //#endregion\n\n //#region editor\n setEditor(editor: TaonEditor): void {\n this.editor = editor;\n\n localStorage.setItem(this.editorStorageKey, editor);\n }\n\n private loadEditor(): TaonEditor {\n const editor = localStorage.getItem(this.editorStorageKey);\n\n if (editor === 'vscode' || editor === 'vscodium') {\n return editor;\n }\n\n return 'vscode';\n }\n //#endregion\n\n //#region stack trace\n private parseStackTrace(stack: string): TaonStackTraceLine[] {\n return stack\n .split('\\n')\n .map(text => text.trimEnd())\n .filter(text => text.trim().length > 0)\n .map(text => this.parseStackTraceLine(text));\n }\n\n private parseStackTraceLine(text: string): TaonStackTraceLine {\n /**\n * Matches:\n *\n * /Users/test/file.ts:10:20\n *\n * C:\\projects\\test\\file.ts:10:20\n *\n * at something (/Users/test/file.ts:10:20)\n */\n const match = text.match(/((?:[A-Za-z]:[\\\\/]|\\/)[^()\\n]+?):(\\d+):(\\d+)/);\n\n if (!match) {\n return {\n text,\n };\n }\n\n return {\n text,\n file: match[1],\n line: Number(match[2]),\n column: Number(match[3]),\n };\n }\n //#endregion\n\n //#region open editor\n openStackLine(stackLine: TaonStackTraceLine): void {\n if (!stackLine.file || !stackLine.line) {\n return;\n }\n\n const url = this.createEditorUrl(\n stackLine.file,\n stackLine.line,\n stackLine.column,\n );\n\n window.location.href = url;\n }\n\n private createEditorUrl(file: string, line: number, column?: number): string {\n const protocol = this.editor === 'vscodium' ? 'vscodium' : 'vscode';\n\n const location = [file, line, column]\n .filter(value => value !== undefined)\n .join(':');\n\n return `${protocol}://file${location}`;\n }\n //#endregion\n}","<h2 mat-dialog-title>{{ t.gettext('Error details') }}</h2>\n\n<mat-dialog-content>\n <div class=\"error-message\">\n {{ data.message }}\n </div>\n\n <div class=\"editor-selector\">\n <span class=\"editor-selector-label\">{{ t.gettext('I am using editor:') }}</span>\n\n <mat-button-toggle-group\n [value]=\"editor\"\n (change)=\"setEditor($event.value)\"\n [attr.aria-label]=\"t.gettext('Code editor')\">\n <mat-button-toggle value=\"vscode\"> VS Code </mat-button-toggle>\n\n <mat-button-toggle value=\"vscodium\"> VSCodium </mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n\n <pre\n class=\"error-details\"><code>@for (stackLine of stackLines; track $index) {\n@if (stackLine.file) {<a\n class=\"stack-link\"\n [title]=\"\n t.gettext('Open [[ file ]]:[[ line ]]:[[ column ]]', {\n file: stackLine.file,\n line: stackLine.line,\n column: stackLine.column,\n })\n \"\n (click)=\"openStackLine(stackLine)\">{{ stackLine.text }}</a>} @else {{{ stackLine.text }}}{{ '\\n' }}\n}</code></pre>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\">\n <button\n mat-button\n mat-dialog-close>\n {{ t.gettext('Close') }}\n </button>\n</mat-dialog-actions>\n","import { Component, inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { HotToastRef } from '@ngneat/hot-toast';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonErrorDetailsDialogComponent } from './taon-error-details-dialog.component';\n\nconst t = Translation.for('src/lib/taon-backoffice-notifications/taon-error-toast.component.ts', {\"src/lib/taon-backoffice-notifications/taon-backoffice-notifications.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.html\":{\"en-US\":async () => (await import('./i18n/taon-error-details-dialog.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-details-dialog.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-details-dialog.component.html.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-toast.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-error-toast.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-toast.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-toast.component.ts.de-DE.i18n.data')).default}} as any);\n\nexport interface TaonErrorToastData {\n title: string;\n details: string;\n}\n\n@Component({\n selector: 'taon-error-toast',\n standalone: true,\n template: `\n <div\n class=\"taon-error-toast\"\n (click)=\"showDetails()\">\n <div>{{ data.title }}</div>\n\n <small>{{ t.gettext('Click for details') }}</small>\n </div>\n `,\n styles: [\n `\n .taon-error-toast {\n cursor: pointer;\n }\n\n small {\n display: block;\n margin-top: 4px;\n opacity: 0.7;\n }\n `,\n ],\n})\nexport class TaonErrorToastComponent {\n readonly t = t.for(this);\n\n private readonly toastRef =\n inject<HotToastRef<TaonErrorToastData>>(HotToastRef);\n\n private readonly dialog = inject(MatDialog);\n\n readonly data = this.toastRef.data;\n\n showDetails(): void {\n this.dialog.open(TaonErrorDetailsDialogComponent, {\n width: '800px',\n maxWidth: '95vw',\n data: {\n message: this.data.title,\n details: this.data.details,\n },\n });\n\n this.toastRef.close();\n }\n}","//#region imports\nimport { inject, Injectable } from '@angular/core';\nimport { HotToastService } from '@ngneat/hot-toast';\n\nimport {\n TaonNotificationInput,\n TaonNotificationOptions,\n} from './taon-backoffice-notifications.models';\nimport {\n TaonErrorToastComponent,\n TaonErrorToastData,\n} from './taon-error-toast.component';\n//#endregion\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TaonBackofficeNotificationsService {\n //#region injections\n private readonly toast = inject(HotToastService);\n //#endregion\n\n constructor() {\n this.toast.defaultConfig.dismissible = true;\n }\n\n //#region private methods\n private normalize(input: TaonNotificationInput): TaonNotificationOptions {\n return typeof input === 'string' ? { title: input } : input;\n }\n //#endregion\n\n //#region notifications\n success(input: TaonNotificationInput) {\n const { title } = this.normalize(input);\n\n return this.toast.success(title);\n }\n\n error(input: TaonNotificationInput) {\n const { title, details } = this.normalize(input);\n\n // Normal error - exactly as before\n if (!details) {\n return this.toast.error(title);\n }\n\n // Error with clickable details\n return this.toast.error<TaonErrorToastData>(TaonErrorToastComponent, {\n data: {\n title,\n details,\n },\n });\n }\n\n warn(input: TaonNotificationInput) {\n const { title } = this.normalize(input);\n\n return this.toast.warning(title);\n }\n\n info(input: TaonNotificationInput) {\n const { title } = this.normalize(input);\n\n return this.toast.info(title);\n }\n //#endregion\n}\n","//#region imports\nimport { Component, DestroyRef, inject, Input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { HttpResponseError, RestErrorResponseWrapper, Resource__NS__Cookies, Resource__NS__create, Resource__NS__globalInterceptors, Resource__NS__listenErrors, Resource__NS__methodsInterceptors } from 'ng2-rest/websql-prod';\nimport { getHttpStatus, TaonAdminService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonBackofficeNotificationsService } from './taon-backoffice-notifications.service';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-backoffice-notifications/taon-backoffice-notifications.component.ts', {\"src/lib/taon-backoffice-notifications/taon-backoffice-notifications.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.html\":{\"en-US\":async () => (await import('./i18n/taon-error-details-dialog.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-details-dialog.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-details-dialog.component.html.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-toast.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-error-toast.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-toast.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-toast.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-backoffice-notifications',\n standalone: true,\n templateUrl: './taon-backoffice-notifications.component.html',\n styleUrls: ['./taon-backoffice-notifications.component.scss'],\n})\nexport class TaonBackofficeNotificationsComponent {\n //#region injections\n t = t.for(this);\n\n private readonly notification = inject(TaonBackofficeNotificationsService);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly taonAdminService = inject(TaonAdminService);\n\n @Input() filter: (\n err: HttpResponseError<RestErrorResponseWrapper>,\n ) => HttpResponseError<RestErrorResponseWrapper>;\n\n private readonly shownNotifications = new Set<string>();\n\n private showErrorNotification(title: string, details?: string): void {\n const key = JSON.stringify([title, details]);\n\n if (this.shownNotifications.has(key)) {\n return;\n }\n\n this.shownNotifications.add(key);\n\n this.notification.error({\n title,\n details,\n });\n }\n\n //#endregion\n\n //#region constructor\n constructor() {\n Resource__NS__listenErrors\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((error: HttpResponseError<RestErrorResponseWrapper>) => {\n if (___NS__isFunction(this.filter)) {\n error = this.filter(error);\n }\n\n const jsonMsg = error?.body?.json;\n\n if (!jsonMsg?.message) {\n console.log({ error });\n }\n\n const statusCode = jsonMsg.status ?? error.statusCode;\n\n const code = jsonMsg?.code || getHttpStatus(statusCode);\n if (this.taonAdminService.shouldSkipShowingError(code as any)) {\n console.log(\n `[@taon-dev/sudo] Skipping notificaiton for message \"${jsonMsg.message}\" (code=${statusCode})`,\n );\n } else {\n const title =\n t.translate(jsonMsg.message) || t.gettext('Unknown error');\n\n const details = jsonMsg?.details;\n\n this.showErrorNotification(title, details);\n }\n });\n }\n //#endregion\n}","<!-- <p>\n notyfications works!\n</p> -->\n","import { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nexport interface TaonConfirmDialogData {\n title: string;\n message?: string;\n confirmText?: string;\n cancelText?: string;\n}\n\nconst t = Translation.for('src/lib/taon-confirm-dialog/taon-confirm-dialog.component.ts', {\"src/lib/taon-confirm-dialog/taon-confirm-dialog.component.html\":{\"en-US\":async () => (await import('./i18n/taon-confirm-dialog.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-confirm-dialog.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-confirm-dialog.component.html.de-DE.i18n.data')).default},\"src/lib/taon-confirm-dialog/taon-confirm-dialog.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-confirm-dialog.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-confirm-dialog.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-confirm-dialog.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-confirm-dialog',\n standalone: true,\n imports: [MatDialogModule, MatButtonModule],\n templateUrl: './taon-confirm-dialog.component.html',\n})\nexport class TaonConfirmDialogComponent {\n readonly t = t.for(this);\n\n readonly data = inject<TaonConfirmDialogData>(MAT_DIALOG_DATA);\n\n private readonly dialogRef = inject(MatDialogRef<TaonConfirmDialogComponent>);\n\n cancel(): void {\n this.dialogRef.close(false);\n }\n\n confirm(): void {\n this.dialogRef.close(true);\n }\n}","<div\n class=\"flex min-w-[320px] max-w-[560px] flex-col gap-6 p-6 text-gray-900 dark:text-gray-100 sm:p-7\">\n <!-- Header -->\n <h2 class=\"m-0 text-xl leading-snug font-medium sm:text-2xl\">\n {{ data.title }}\n </h2>\n\n <!-- Message -->\n @if (data.message) {\n <p\n class=\"m-0 whitespace-pre-line text-base leading-relaxed text-gray-600 dark:text-gray-300 sm:text-lg\">\n {{ data.message }}\n </p>\n }\n\n <!-- Actions -->\n <div class=\"flex flex-wrap items-center justify-end gap-3\">\n <button\n mat-button\n type=\"button\"\n (click)=\"cancel()\">\n {{ data.cancelText || t.gettext('Cancel') }}\n </button>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n class=\"!rounded-full !px-6\"\n (click)=\"confirm()\">\n {{ data.confirmText || t.gettext('OK') }}\n </button>\n </div>\n</div>\n","//namespace TaonConfirmDialogModels\n\n//end of namespace TaonConfirmDialogModels\n","//#region imports\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatPaginatorModule, PageEvent } from '@angular/material/paginator';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MtxGridColumn, MtxGridModule } from '@ng-matero/extensions/grid';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { getDefaultModel } from 'ng2-rest/websql-prod';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n catchError,\n debounceTime,\n distinctUntilChanged,\n finalize,\n from,\n map,\n of,\n startWith,\n switchMap,\n tap,\n} from 'rxjs';\nimport { TaonBaseCrudController, TaonBaseEntity, TaonPaginationSort, TaonPaginationQuery, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Symbols__NS__classMethodsNames as TaonSymbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj as TaonSymbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty as TaonSymbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata__NS__className as TaonSymbols__NS__metadata__NS__className, Symbols__NS__metadata__NS__options__NS__controller as TaonSymbols__NS__metadata__NS__options__NS__controller, Symbols__NS__metadata__NS__options__NS__entity as TaonSymbols__NS__metadata__NS__options__NS__entity, Symbols__NS__metadata__NS__options__NS__migration as TaonSymbols__NS__metadata__NS__options__NS__migration, Symbols__NS__metadata__NS__options__NS__provider as TaonSymbols__NS__metadata__NS__options__NS__provider, Symbols__NS__metadata__NS__options__NS__repository as TaonSymbols__NS__metadata__NS__options__NS__repository, Symbols__NS__metadata__NS__options__NS__subscriber as TaonSymbols__NS__metadata__NS__options__NS__subscriber, Symbols__NS__old__NS__CIRCURAL_OBJECTS_MAP_BODY_PARAM as TaonSymbols__NS__old__NS__CIRCURAL_OBJECTS_MAP_BODY_PARAM, Symbols__NS__old__NS__CIRCURAL_OBJECTS_MAP_QUERY_PARAM as TaonSymbols__NS__old__NS__CIRCURAL_OBJECTS_MAP_QUERY_PARAM, Symbols__NS__old__NS__CLASS_DECORATOR_CONTEXT as TaonSymbols__NS__old__NS__CLASS_DECORATOR_CONTEXT, Symbols__NS__old__NS__ENDPOINT_META_CONFIG as TaonSymbols__NS__old__NS__ENDPOINT_META_CONFIG, Symbols__NS__old__NS__ERROR_MESSAGES_CLASS_NAME_MATCH as TaonSymbols__NS__old__NS__ERROR_MESSAGES_CLASS_NAME_MATCH, Symbols__NS__old__NS__HAS_TABLE_IN_DB as TaonSymbols__NS__old__NS__HAS_TABLE_IN_DB, Symbols__NS__old__NS__MAPPING_CONFIG_HEADER as TaonSymbols__NS__old__NS__MAPPING_CONFIG_HEADER, Symbols__NS__old__NS__MAPPING_CONFIG_HEADER_BODY_PARAMS as TaonSymbols__NS__old__NS__MAPPING_CONFIG_HEADER_BODY_PARAMS, Symbols__NS__old__NS__MAPPING_CONFIG_HEADER_QUERY_PARAMS as TaonSymbols__NS__old__NS__MAPPING_CONFIG_HEADER_QUERY_PARAMS, Symbols__NS__old__NS__MDC_KEY as TaonSymbols__NS__old__NS__MDC_KEY, Symbols__NS__old__NS__SOCKET_MSG as TaonSymbols__NS__old__NS__SOCKET_MSG, Symbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN as TaonSymbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN, Symbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN_DONE as TaonSymbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN_DONE, Symbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN_START as TaonSymbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN_START, Symbols__NS__old__NS__WEBSQL_REST_PROGRESS_TIMEOUT as TaonSymbols__NS__old__NS__WEBSQL_REST_PROGRESS_TIMEOUT, Symbols__NS__old__NS__X_TOTAL_COUNT as TaonSymbols__NS__old__NS__X_TOTAL_COUNT, Symbols__NS__orignalClassClonesObj as TaonSymbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME as TaonSymbols__NS__REALTIME, Symbols__NS__taonInstanceId as TaonSymbols__NS__taonInstanceId, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { TaonStor__NS__awaitAll, TaonStor__NS__inFile, TaonStor__NS__inIndexedDbStorage, TaonStor__NS__inJson, TaonStor__NS__inLocalstorage, TaonStor__NS__inSessionStorage } from 'taon-storage/websql-prod';\nimport { json5, ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-datatable/taon-datatable.component.ts', {\"src/lib/taon-datatable/taon-datatable.component.html\":{\"en-US\":async () => (await import('./i18n/taon-datatable.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-datatable.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-datatable.component.html.de-DE.i18n.data')).default},\"src/lib/taon-datatable/taon-datatable.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-datatable.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-datatable.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-datatable.component.ts.de-DE.i18n.data')).default}} as any);\n\nconst defaultColumns: MtxGridColumn[] = [\n {\n header: t.gettext('ID'),\n field: 'id',\n },\n {\n header: t.gettext('NAME'),\n field: 'name',\n },\n];\n\ntype SearchMode = 'simple' | 'advanced';\n\ntype TablePaginationPersistence =\n | 'none'\n | 'query-params'\n | 'local-storage'\n | 'session-storage';\n\ntype TableFilterPersistence = 'none' | 'query-params';\n\ninterface TablePaginationState {\n pageNumber: number;\n pageSize: number;\n}\n\ninterface TablePaginationStorage {\n (): TablePaginationState;\n ready(): Promise<void>;\n set(value: TablePaginationState): Promise<void>;\n}\n\n@Component({\n selector: 'taon-datatable',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatPaginatorModule,\n MatSelectModule,\n\n MtxGridModule,\n ],\n templateUrl: './taon-datatable.component.html',\n styleUrls: ['./taon-datatable.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TaonDatatableComponent implements OnInit {\n //#region fields & getters\n readonly t = t.for(this);\n\n private readonly cdr = inject(ChangeDetectorRef);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly route = inject(ActivatedRoute);\n\n private readonly router = inject(Router);\n\n //#region inputs\n\n @Input()\n pageNumber = 1;\n\n @Input()\n pageSize = 10;\n\n @Input()\n pageSizeOptions: number[] = [5, 10, 20, 50, 100];\n\n noResultText = this.t.gettext('No records found');\n\n @Input()\n allowedColumns: string[] = [];\n\n @Input()\n expansionTemplate?: TemplateRef<any>;\n\n @Input()\n entityCrudController?: TaonBaseCrudController<any>;\n\n @Input()\n columns: MtxGridColumn[] = defaultColumns;\n\n @Input()\n hideSearch = false;\n\n @Input()\n hideAddButton = false;\n\n @Input()\n safe = false;\n\n @Input()\n searchMode: SearchMode = 'advanced';\n\n @Input()\n filtersTemplate?: TemplateRef<unknown>;\n\n @Input()\n storeTablePagination: TablePaginationPersistence = 'none';\n\n @Input()\n storeTableFilters: TableFilterPersistence = 'none';\n\n @Input()\n tableId?: string;\n\n /**\n * Optional custom backend pagination method.\n */\n @Input()\n callQueryMethod?: string;\n\n private _data?: any[];\n\n @Input()\n set data(value: any[] | undefined | null) {\n this._data = value ?? undefined;\n\n if (this._data) {\n this.pageNumber = 1;\n this.reload();\n }\n }\n\n get data(): any[] | undefined {\n return this._data;\n }\n\n get offlineMode(): boolean {\n return this.data !== undefined;\n }\n\n //#endregion\n\n //#region outputs\n\n @Output()\n readonly expansionChange = new EventEmitter<any>();\n\n @Output()\n readonly addingItem = new EventEmitter<void>();\n\n //#endregion\n\n //#region fields\n\n rows: any[] = [];\n\n totalElements = 0;\n\n isLoading = false;\n\n expandable = false;\n\n @Input() showPaginator: boolean;\n\n advancedSearchOpened = false;\n\n searchValue = '';\n\n columnFilters: Record<string, string> = {};\n\n sort?: TaonPaginationSort;\n\n private readonly reload$ = new BehaviorSubject<void>(undefined);\n\n private readonly searchChange$ = new Subject<string>();\n\n readonly data$: Observable<any[]> = this.reload$.pipe(\n switchMap(() => this.loadData()),\n );\n\n expandedRows = new Set<any>();\n\n private paginationStorage?: TablePaginationStorage;\n\n //#endregion\n\n //#region getters\n\n get entity(): typeof TaonBaseEntity | undefined {\n return this.entityCrudController?.entityClassResolveFn();\n }\n\n get filterableColumns(): MtxGridColumn[] {\n return this.columns.filter(column => Boolean(column.field));\n }\n\n //#endregion\n\n //#endregion\n\n //#region expansion\n onExpansionChange(event: any) {\n // console.log(event);\n // adapt this depending on exact MtxGrid event shape\n if (event.expanded) {\n this.expandedRows.add(event.data);\n } else {\n this.expandedRows.delete(event.data);\n }\n\n this.expansionChange.emit(event);\n }\n\n isExpanded(row: any): boolean {\n return this.expandedRows.has(row);\n }\n\n //#endregion\n\n //#region hooks\n\n ngOnInit(): void {\n this.prepareColumns();\n this.expandable = Boolean(this.expansionTemplate);\n\n this.showPaginator = ___NS__isBoolean(this.showPaginator)\n ? this.showPaginator\n : Boolean(this.entity) || this.offlineMode;\n\n if (this.storeTableFilters === 'query-params') {\n this.columnFilters = this.readQueryFilters();\n }\n\n void this.restorePagination().then(() => this.subscribeToData());\n }\n\n private subscribeToData(): void {\n this.searchChange$\n .pipe(\n debounceTime(400),\n distinctUntilChanged(),\n tap(search => {\n this.searchValue = search;\n this.pageNumber = 1;\n this.persistPagination();\n this.reload();\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n\n this.data$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(rows => {\n this.rows = rows;\n this.cdr.markForCheck();\n });\n }\n\n //#endregion\n\n //#region search\n\n searchChanged(value: string): void {\n this.searchChange$.next(value);\n }\n\n clearSearch(): void {\n this.searchValue = '';\n this.columnFilters = {};\n this.pageNumber = 1;\n\n this.persistCurrentTableState();\n this.reload();\n }\n\n applyAdvancedFilters(): void {\n this.pageNumber = 1;\n this.persistCurrentTableState();\n this.reload();\n }\n\n toggleAdvancedSearch(): void {\n this.advancedSearchOpened = !this.advancedSearchOpened;\n }\n\n //#endregion\n\n //#region pagination\n\n getNextPage(event: PageEvent): void {\n this.pageNumber = event.pageIndex + 1;\n\n this.pageSize = event.pageSize;\n\n this.persistPagination();\n this.reload();\n }\n\n private get tableIdentity(): string {\n const explicitId = this.tableId?.trim();\n if (explicitId) {\n return explicitId;\n }\n\n const routePath = this.route.pathFromRoot\n .map(route => route.snapshot.url.map(segment => segment.path).join('/'))\n .filter(Boolean)\n .join('/');\n const entityName = this.entity ? ClassHelpers__NS__getName(this.entity) : 'table';\n return `${entityName}-${routePath || 'root'}`;\n }\n\n private get queryParamPrefix(): string {\n return `dt.${encodeURIComponent(this.tableIdentity)}`;\n }\n\n private async restorePagination(): Promise<void> {\n const prefix = this.queryParamPrefix;\n\n if (this.storeTablePagination === 'query-params') {\n const pageNumber = Number(\n this.route.snapshot.queryParamMap.get(`${prefix}.page`),\n );\n const pageSize = Number(\n this.route.snapshot.queryParamMap.get(`${prefix}.pageSize`),\n );\n if (Number.isSafeInteger(pageNumber) && pageNumber > 0) {\n this.pageNumber = pageNumber;\n }\n if (Number.isSafeInteger(pageSize) && pageSize > 0) {\n this.pageSize = pageSize;\n }\n return;\n }\n\n if (\n this.storeTablePagination !== 'local-storage' &&\n this.storeTablePagination !== 'session-storage'\n ) {\n return;\n }\n\n const options = {\n keyOrPath: `datatable-${this.tableIdentity}-pagination`,\n defaultValue: {\n pageNumber: this.pageNumber,\n pageSize: this.pageSize,\n },\n };\n this.paginationStorage =\n this.storeTablePagination === 'local-storage'\n ? TaonStor__NS__inLocalstorage(options, TaonDatatableComponent)\n : TaonStor__NS__inSessionStorage(options, TaonDatatableComponent);\n\n try {\n await this.paginationStorage.ready();\n const state = this.paginationStorage();\n if (Number.isSafeInteger(state.pageNumber) && state.pageNumber > 0) {\n this.pageNumber = state.pageNumber;\n }\n if (Number.isSafeInteger(state.pageSize) && state.pageSize > 0) {\n this.pageSize = state.pageSize;\n }\n } catch (error) {\n console.error(\n '[taon-datatable] Unable to restore pagination state',\n error,\n );\n }\n }\n\n private persistPagination(): void {\n const state = {\n pageNumber: this.pageNumber,\n pageSize: this.pageSize,\n };\n\n if (this.storeTablePagination === 'query-params') {\n this.updateQueryParams({\n [`${this.queryParamPrefix}.page`]: String(state.pageNumber),\n [`${this.queryParamPrefix}.pageSize`]: String(state.pageSize),\n });\n } else if (this.paginationStorage) {\n void this.paginationStorage.set(state).catch(error => {\n console.error(\n '[taon-datatable] Unable to persist pagination state',\n error,\n );\n });\n }\n }\n\n private readQueryFilters(): Record<string, string> {\n const filterPrefix = `${this.queryParamPrefix}.filter.`;\n const filters: Record<string, string> = {};\n\n for (const key of this.route.snapshot.queryParamMap.keys) {\n if (!key.startsWith(filterPrefix)) {\n continue;\n }\n try {\n const field = decodeURIComponent(key.slice(filterPrefix.length));\n const value = this.route.snapshot.queryParamMap.get(key);\n if (field && value !== null) {\n filters[field] = value;\n }\n } catch (error) {\n console.error('[taon-datatable] Invalid filter query parameter', error);\n }\n }\n\n return filters;\n }\n\n private persistFilters(): void {\n if (this.storeTableFilters !== 'query-params') {\n return;\n }\n\n this.updateQueryParams(this.filterQueryUpdates());\n }\n\n private persistCurrentTableState(): void {\n if (\n this.storeTablePagination === 'query-params' &&\n this.storeTableFilters === 'query-params'\n ) {\n this.updateQueryParams({\n [`${this.queryParamPrefix}.page`]: String(this.pageNumber),\n [`${this.queryParamPrefix}.pageSize`]: String(this.pageSize),\n ...this.filterQueryUpdates(),\n });\n return;\n }\n\n this.persistPagination();\n this.persistFilters();\n }\n\n private filterQueryUpdates(): Record<string, string | null> {\n const filterPrefix = `${this.queryParamPrefix}.filter.`;\n const updates: Record<string, string | null> = {};\n for (const key of this.route.snapshot.queryParamMap.keys) {\n if (key.startsWith(filterPrefix)) {\n updates[key] = null;\n }\n }\n for (const [field, value] of Object.entries(\n this.cleanFilters(this.columnFilters),\n )) {\n updates[`${filterPrefix}${encodeURIComponent(field)}`] = value;\n }\n return updates;\n }\n\n private updateQueryParams(queryParams: Record<string, string | null>): void {\n void this.router\n .navigate([], {\n relativeTo: this.route,\n queryParams,\n queryParamsHandling: 'merge',\n replaceUrl: true,\n })\n .catch(error => {\n console.error(\n '[taon-datatable] Unable to update table query parameters',\n error,\n );\n });\n }\n\n //#endregion\n\n //#region sorting\n\n sortChanged(event: any): void {\n const field = event?.active ?? event?.field;\n\n const direction = event?.direction ?? '';\n\n this.sort = {\n field,\n direction,\n };\n\n this.pageNumber = 1;\n\n this.reload();\n }\n\n //#endregion\n\n //#region data\n\n reload(): void {\n this.reload$.next();\n }\n\n private getFieldValue(row: any, field: string): unknown {\n return field.split('.').reduce((value, key) => value?.[key], row);\n }\n\n private loadOfflineData(): any[] {\n let rows = [...(this.data ?? [])];\n\n //#region global search\n\n const search = this.searchValue.trim().toLowerCase();\n\n if (search) {\n rows = rows.filter(row =>\n this.columns.some(column => {\n if (!column.field) {\n return false;\n }\n\n const value = this.getFieldValue(row, String(column.field));\n\n return String(value ?? '')\n .toLowerCase()\n .includes(search);\n }),\n );\n }\n\n //#endregion\n\n //#region column filters\n\n const filters = this.cleanFilters(this.columnFilters);\n\n for (const [field, filterValue] of Object.entries(filters)) {\n const normalizedFilter = filterValue.toLowerCase();\n\n rows = rows.filter(row => {\n const value = this.getFieldValue(row, field);\n\n return String(value ?? '')\n .toLowerCase()\n .includes(normalizedFilter);\n });\n }\n\n //#endregion\n\n //#region sorting\n\n if (this.sort?.field && this.sort.direction) {\n const field = String(this.sort.field);\n const direction = this.sort.direction === 'desc' ? -1 : 1;\n\n rows.sort((a, b) => {\n const aValue = this.getFieldValue(a, field);\n const bValue = this.getFieldValue(b, field);\n\n if (aValue === bValue) {\n return 0;\n }\n\n if (aValue === undefined || aValue === null) {\n return -1 * direction;\n }\n\n if (bValue === undefined || bValue === null) {\n return 1 * direction;\n }\n\n if (typeof aValue === 'number' && typeof bValue === 'number') {\n return (aValue - bValue) * direction;\n }\n\n return (\n String(aValue).localeCompare(String(bValue), undefined, {\n numeric: true,\n sensitivity: 'base',\n }) * direction\n );\n });\n }\n\n //#endregion\n\n //#region pagination\n\n this.totalElements = rows.length;\n\n const start = (this.pageNumber - 1) * this.pageSize;\n const end = start + this.pageSize;\n\n return this.prepareRows(rows.slice(start, end));\n\n //#endregion\n }\n\n private loadData(): Observable<any[]> {\n if (this.offlineMode) {\n return of(this.loadOfflineData());\n }\n\n if (!this.entity || !this.entityCrudController) {\n this.totalElements = 0;\n return of([]);\n }\n\n this.isLoading = true;\n this.cdr.markForCheck();\n\n const query: TaonPaginationQuery = {\n pageNumber: this.pageNumber,\n pageSize: this.pageSize,\n search: this.searchValue,\n filters: this.cleanFilters(this.columnFilters),\n sort: this.sort,\n callQueryMethod: this.callQueryMethod as any,\n };\n\n //#region handle info when not allowed method on controller level\n\n if (!this.safe && !this.entityCrudController.paginationQuery(query)) {\n throw new Error(\n `Please enable paginationQuery() method in your\n controller ${ClassHelpers__NS__getName(this.entityCrudController)}\n\n @Controller({ allowedMethods: ['paginationQuery'] })\n class ${ClassHelpers__NS__getName(this.entityCrudController)} ..\n `,\n );\n }\n\n if (this.safe && !this.entityCrudController.paginationQuerySafe(query)) {\n throw new Error(\n `Please enable paginationQuerySafe() method in your controller\n ${ClassHelpers__NS__getName(this.entityCrudController)}\n\n @Controller({ allowedMethods: ['paginationQuerySafe'] })\n class ${ClassHelpers__NS__getName(this.entityCrudController)} ..\n `,\n );\n }\n\n //#endregion\n\n return from(\n (this.safe\n ? this.entityCrudController.paginationQuerySafe\n : this.entityCrudController.paginationQuery)(query).request()\n .observable,\n ).pipe(\n tap(response => {\n this.totalElements =\n Number(response.headers.get(TaonSymbols__NS__old__NS__X_TOTAL_COUNT)) || 0;\n }),\n\n map(response => this.prepareRows(response.body.json)),\n\n catchError(error => {\n console.error(\n `[taon-datatable] Unable to load data from ` +\n `${ClassHelpers__NS__getName(this.entityCrudController)} ${\n this.safe ? 'paginationQuerySafe' : 'paginationQuery'\n }`,\n error,\n );\n\n return of([]);\n }),\n\n finalize(() => {\n this.isLoading = false;\n this.cdr.markForCheck();\n }),\n );\n }\n\n //#endregion\n\n //#region helpers\n\n private cleanFilters(\n filters: Record<string, string>,\n ): Record<string, string> {\n return Object.fromEntries(\n Object.entries(filters)\n .filter(\n ([, value]) =>\n value !== undefined &&\n value !== null &&\n String(value).trim() !== '',\n )\n .map(([key, value]) => [key, String(value).trim()]),\n );\n }\n\n private prepareRows(rows: any[]): any[] {\n return rows.map(row => {\n // const result = {\n // ...row,\n // };\n\n // for (const key of Object.keys(result)) {\n // if (___NS__isObject(result[key])) {\n // result[key] = json5.stringify(result[key]);\n // }\n // }\n\n return row;\n });\n }\n\n private prepareColumns(): void {\n const entityClass = this.entity;\n\n if (!entityClass) {\n return;\n }\n\n const usingDefaultColumns = ___NS__isEqual(this.columns, defaultColumns);\n\n if (!usingDefaultColumns) {\n return;\n }\n\n try {\n const props = Object.keys(getDefaultModel(entityClass as Function) || {});\n\n let columns = props\n .filter(prop =>\n this.allowedColumns.length > 0\n ? this.allowedColumns.includes(prop)\n : true,\n )\n .map(\n prop =>\n ({\n header: ___NS__upperCase(prop),\n field: prop,\n }) as MtxGridColumn,\n );\n\n const extra = this.allowedColumns.filter(field => !props.includes(field));\n\n columns = [\n ...columns,\n ...extra.map(\n field =>\n ({\n header: ___NS__upperCase(field),\n field,\n }) as MtxGridColumn,\n ),\n ];\n\n this.columns = columns;\n } catch (error) {\n console.error('[taon-datatable] Unable to generate columns', error);\n }\n }\n\n //#endregion\n}","<div class=\"flex w-full flex-col gap-3\">\n <!-- #region toolbar -->\n @if (!hideSearch) {\n <div\n class=\"flex w-full flex-col gap-2 rounded-lg border border-gray-200 bg-white p-3 shadow-sm dark:border-gray-700 dark:bg-gray-900 md:flex-row md:items-center\">\n <!-- global search -->\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"min-w-0 flex-1\">\n <mat-icon matPrefix> search </mat-icon>\n\n <input\n matInput\n [placeholder]=\"t.gettext('Search...')\"\n [value]=\"searchValue\"\n (input)=\"searchChanged($any($event.target).value)\" />\n\n @if (searchValue) {\n <button\n mat-icon-button\n matSuffix\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n\n <!-- advanced search -->\n @if (searchMode === 'advanced') {\n <button\n mat-stroked-button\n type=\"button\"\n (click)=\"toggleAdvancedSearch()\">\n <mat-icon> tune </mat-icon>\n\n {{ t.gettext('Filters') }}\n\n @if (advancedSearchOpened) {\n <mat-icon> expand_less </mat-icon>\n } @else {\n <mat-icon> expand_more </mat-icon>\n }\n </button>\n }\n\n <!-- refresh -->\n <button\n mat-icon-button\n type=\"button\"\n [title]=\"t.gettext('Refresh')\"\n (click)=\"reload()\">\n <mat-icon> refresh </mat-icon>\n </button>\n\n <!-- add -->\n @if (!hideAddButton) {\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"addingItem.emit()\">\n <mat-icon> add </mat-icon>\n\n {{ t.gettext('Add') }}\n </button>\n }\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region advanced filters -->\n @if (!hideSearch && searchMode === 'advanced' && advancedSearchOpened) {\n <div\n class=\"grid grid-cols-1 gap-3 rounded-lg border border-gray-200 bg-gray-50 p-4 shadow-sm dark:border-gray-700 dark:bg-gray-800 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4\">\n @if (filtersTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"filtersTemplate\"\n [ngTemplateOutletContext]=\"{ filters: columnFilters }\">\n </ng-container>\n } @else {\n @for (column of filterableColumns; track column.field) {\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"w-full\">\n <mat-label>\n {{ column.header }}\n </mat-label>\n\n <input\n matInput\n [(ngModel)]=\"columnFilters[$any(column.field)]\"\n (keyup.enter)=\"applyAdvancedFilters()\" />\n </mat-form-field>\n }\n }\n\n <div\n class=\"flex items-center justify-end gap-2 md:col-span-2 lg:col-span-3 xl:col-span-4\">\n <button\n mat-button\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon> filter_alt_off </mat-icon>\n\n {{ t.gettext('Clear') }}\n </button>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"applyAdvancedFilters()\">\n <mat-icon> filter_alt </mat-icon>\n\n {{ t.gettext('Apply filters') }}\n </button>\n </div>\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region grid -->\n <div\n class=\"relative min-h-[250px] overflow-hidden rounded-lg border border-gray-200 bg-white shadow-sm dark:border-gray-700 dark:bg-gray-900\">\n @if (isLoading) {\n <div\n class=\"absolute inset-0 z-10 flex items-center justify-center bg-white/60 backdrop-blur-[1px] dark:bg-gray-900/60\">\n <div\n class=\"flex items-center gap-2 rounded-md bg-white px-4 py-2 shadow dark:bg-gray-800\">\n <mat-icon class=\"animate-spin\"> refresh </mat-icon>\n\n {{ t.gettext('Loading...') }}\n </div>\n </div>\n }\n\n <mtx-grid\n [data]=\"rows\"\n [columns]=\"columns\"\n [expandable]=\"expandable\"\n [expansionTemplate]=\"lazyExpansionTemplate\"\n [length]=\"totalElements\"\n [pageOnFront]=\"false\"\n [pageIndex]=\"pageNumber - 1\"\n [pageSize]=\"pageSize\"\n [noResultText]=\"noResultText\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showPaginator]=\"showPaginator\"\n (expansionChange)=\"onExpansionChange($event)\"\n (page)=\"getNextPage($event)\"\n (sortChange)=\"sortChanged($event)\">\n </mtx-grid>\n\n <ng-template\n #lazyExpansionTemplate\n let-row>\n @if (isExpanded(row)) {\n <ng-container\n [ngTemplateOutlet]=\"expansionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row }\">\n </ng-container>\n }\n </ng-template>\n </div>\n <!-- #endregion -->\n</div>\n","//namespace TaonDatatableModels\n\n//end of namespace TaonDatatableModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '../index';\n//#endregion\n\nexport const TaonDatatableRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-datatable.component').then(m => m.TaonDatatableComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonDatatableRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonDatatableRoutes;","//#region imports\nimport { CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ApplicationRef,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n EnvironmentInjector,\n Injectable,\n InjectionToken,\n Injector,\n Input,\n OnDestroy,\n Type,\n ViewChild,\n createComponent,\n inject,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport {\n ActivatedRoute,\n ActivatedRouteSnapshot,\n Params,\n Router,\n} from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { BehaviorSubject } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-detachable-dialog-content/taon-detached-window-content.component.ts', {\"src/lib/taon-detachable-dialog-content/taon-detached-window-content.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-detached-window-content.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-detached-window-content.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-detached-window-content.component.ts.de-DE.i18n.data')).default}} as any);\n\n//#region tokens\nexport const TAON_IS_DETACHED_WINDOW = new InjectionToken<boolean>(\n 'TAON_IS_DETACHED_WINDOW',\n {\n factory: () => false,\n },\n);\n//#endregion\n\n//#region models\nexport interface TaonDetachedRouteState {\n url: string;\n\n params: Params;\n\n queryParams: Params;\n\n fragment: string | null;\n\n data: Record<string, any>;\n}\n\nexport interface TaonDetachedWindow {\n id: string;\n\n title: string;\n\n component: Type<any>;\n\n routeState: TaonDetachedRouteState;\n\n /**\n * Current stacking order of the window.\n *\n * Higher value = window is closer to the user.\n */\n zIndex: number;\n\n componentRef?: ComponentRef<any>;\n}\n//#endregion\n\n//#region helpers\nfunction cloneObject<T extends Record<string, any>>(value: T | undefined): T {\n return {\n ...(value || {}),\n } as T;\n}\n\nfunction createDetachedActivatedRoute(\n state: TaonDetachedRouteState,\n): ActivatedRoute {\n const params$ = new BehaviorSubject<Params>(cloneObject(state.params));\n\n const queryParams$ = new BehaviorSubject<Params>(\n cloneObject(state.queryParams),\n );\n\n const fragment$ = new BehaviorSubject<string | null>(state.fragment);\n\n const data$ = new BehaviorSubject<Record<string, any>>(\n cloneObject(state.data),\n );\n\n const snapshot = {\n params: cloneObject(state.params),\n\n queryParams: cloneObject(state.queryParams),\n\n fragment: state.fragment,\n\n data: cloneObject(state.data),\n\n paramMap: undefined,\n\n queryParamMap: undefined,\n } as unknown as ActivatedRouteSnapshot;\n\n return {\n snapshot,\n\n params: params$.asObservable(),\n\n queryParams: queryParams$.asObservable(),\n\n fragment: fragment$.asObservable(),\n\n data: data$.asObservable(),\n } as unknown as ActivatedRoute;\n}\n//#endregion\n\n//#region detached windows service\n@Injectable({\n providedIn: 'root',\n})\nexport class TaonDetachedWindowsService {\n //#region fields\n\n /**\n * Base z-index for all detached windows.\n */\n private readonly baseZIndex = 10000;\n\n /**\n * Monotonically increasing focus counter.\n *\n * Every time a window receives focus it gets the next value.\n */\n private zIndexCounter = this.baseZIndex;\n\n readonly windows = signal<TaonDetachedWindow[]>([]);\n\n //#endregion\n\n //#region open\n open(options: {\n title: string;\n component: Type<any>;\n routeState: TaonDetachedRouteState;\n }): string {\n const id =\n typeof crypto !== 'undefined' && crypto.randomUUID\n ? crypto.randomUUID()\n : `taon-window-${Date.now()}-${Math.random().toString(36).slice(2)}`;\n\n const zIndex = ++this.zIndexCounter;\n\n this.windows.update(windows => [\n ...windows,\n {\n id,\n\n title: options.title,\n\n component: options.component,\n\n routeState: options.routeState,\n\n zIndex,\n },\n ]);\n\n return id;\n }\n //#endregion\n\n //#region focus\n focus(id: string): void {\n const windows = this.windows();\n\n const windowToFocus = windows.find(window => window.id === id);\n\n if (!windowToFocus) {\n return;\n }\n\n /**\n * Don't create a new signal value if this window\n * is already the top-most window.\n */\n const highestZIndex = Math.max(...windows.map(window => window.zIndex));\n\n if (windowToFocus.zIndex === highestZIndex) {\n return;\n }\n\n const zIndex = ++this.zIndexCounter;\n\n this.windows.update(currentWindows =>\n currentWindows.map(window =>\n window.id === id\n ? {\n ...window,\n zIndex,\n }\n : window,\n ),\n );\n }\n //#endregion\n\n //#region close\n close(id: string): void {\n const detachedWindow = this.windows().find(current => current.id === id);\n\n if (detachedWindow?.componentRef) {\n detachedWindow.componentRef.destroy();\n }\n\n this.windows.update(windows =>\n windows.filter(current => current.id !== id),\n );\n }\n //#endregion\n\n //#region register component ref\n registerComponentRef(id: string, componentRef: ComponentRef<any>): void {\n this.windows.update(windows =>\n windows.map(window =>\n window.id === id\n ? {\n ...window,\n componentRef,\n }\n : window,\n ),\n );\n }\n //#endregion\n}\n//#endregion\n\n//#region detached window\n@Component({\n selector: 'taon-detached-window',\n standalone: true,\n imports: [\n CommonModule,\n CdkDrag,\n CdkDragHandle,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [\n `\n :host {\n display: block;\n }\n\n .taon-detached-window {\n position: absolute;\n\n top: 80px;\n left: 80px;\n\n width: min(900px, calc(100vw - 80px));\n height: min(700px, calc(100vh - 80px));\n\n min-width: 320px;\n min-height: 200px;\n\n display: flex;\n flex-direction: column;\n\n background: var(--mat-sys-surface, white);\n\n color: var(--mat-sys-on-surface, black);\n\n border: 1px solid var(--mat-sys-outline-variant, #ccc);\n\n border-radius: 8px;\n\n box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);\n\n overflow: hidden;\n\n resize: both;\n }\n\n .taon-detached-window-header {\n height: 40px;\n\n flex: 0 0 40px;\n\n display: flex;\n align-items: center;\n\n padding-left: 12px;\n\n border-bottom: 1px solid var(--mat-sys-outline-variant, #ccc);\n\n user-select: none;\n }\n\n .taon-detached-window-drag-handle {\n flex: 1;\n\n height: 100%;\n\n display: flex;\n align-items: center;\n\n cursor: move;\n\n overflow: hidden;\n }\n\n .taon-detached-window-title {\n overflow: hidden;\n\n white-space: nowrap;\n\n text-overflow: ellipsis;\n\n font-weight: 500;\n }\n\n .taon-detached-window-actions {\n display: flex;\n\n align-items: center;\n\n padding-right: 4px;\n }\n\n .taon-detached-window-body {\n flex: 1;\n\n min-height: 0;\n\n overflow: auto;\n }\n\n .taon-detached-window-component-host {\n display: block;\n\n min-height: 100%;\n }\n `,\n ],\n template: `\n <div\n class=\"taon-detached-window\"\n cdkDrag\n [style.z-index]=\"window.zIndex\"\n (pointerdown)=\"focus()\">\n <header class=\"taon-detached-window-header\">\n <div\n class=\"taon-detached-window-drag-handle\"\n cdkDragHandle>\n <span class=\"taon-detached-window-title\">\n {{ window.title }}\n </span>\n </div>\n\n <div class=\"taon-detached-window-actions\">\n <button\n mat-icon-button\n type=\"button\"\n matTooltip=\"Close\"\n (click)=\"close()\">\n <mat-icon> close </mat-icon>\n </button>\n </div>\n </header>\n\n <main class=\"taon-detached-window-body\">\n <div\n #componentHost\n class=\"taon-detached-window-component-host\"></div>\n </main>\n </div>\n `,\n})\nexport class TaonDetachedWindowComponent implements AfterViewInit, OnDestroy {\n //#region injections\n private readonly windowsService = inject(TaonDetachedWindowsService);\n\n private readonly appRef = inject(ApplicationRef);\n\n private readonly environmentInjector = inject(EnvironmentInjector);\n\n private readonly injector = inject(Injector);\n //#endregion\n\n //#region inputs\n @Input({\n required: true,\n })\n window!: TaonDetachedWindow;\n //#endregion\n\n //#region view children\n @ViewChild('componentHost', {\n static: true,\n })\n componentHost!: ElementRef<HTMLElement>;\n //#endregion\n\n //#region fields\n private componentRef?: ComponentRef<any>;\n //#endregion\n\n //#region lifecycle\n ngAfterViewInit(): void {\n this.createDetachedComponent();\n }\n\n ngOnDestroy(): void {\n this.destroyDetachedComponent();\n }\n //#endregion\n\n //#region focus\n focus(): void {\n this.windowsService.focus(this.window.id);\n }\n //#endregion\n\n //#region create detached component\n private createDetachedComponent(): void {\n const detachedActivatedRoute = createDetachedActivatedRoute(\n this.window.routeState,\n );\n\n const detachedInjector = Injector.create({\n parent: this.injector,\n\n providers: [\n {\n provide: ActivatedRoute,\n useValue: detachedActivatedRoute,\n },\n {\n provide: TAON_IS_DETACHED_WINDOW,\n useValue: true,\n },\n ],\n });\n\n const componentRef = createComponent(this.window.component, {\n environmentInjector: this.environmentInjector,\n\n elementInjector: detachedInjector,\n\n hostElement: this.componentHost.nativeElement,\n });\n\n this.componentRef = componentRef;\n\n this.appRef.attachView(componentRef.hostView);\n\n componentRef.changeDetectorRef.detectChanges();\n\n this.windowsService.registerComponentRef(this.window.id, componentRef);\n }\n //#endregion\n\n //#region destroy detached component\n private destroyDetachedComponent(): void {\n if (!this.componentRef) {\n return;\n }\n\n try {\n this.appRef.detachView(this.componentRef.hostView);\n } catch {}\n\n if (!this.componentRef.hostView.destroyed) {\n this.componentRef.destroy();\n }\n\n this.componentRef = undefined;\n }\n //#endregion\n\n //#region close\n close(): void {\n this.windowsService.close(this.window.id);\n }\n //#endregion\n}\n//#endregion\n\n//#region detached windows host\n@Component({\n selector: 'taon-detached-windows-host',\n standalone: true,\n imports: [CommonModule, TaonDetachedWindowComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [\n `\n :host {\n position: fixed;\n\n inset: 0;\n\n pointer-events: none;\n\n /*\n * This only establishes the workspace stacking\n * context. Individual windows control their\n * own z-index.\n */\n z-index: 10000;\n }\n\n taon-detached-window {\n pointer-events: auto;\n }\n `,\n ],\n template: `\n @for (window of windowsService.windows(); track window.id) {\n <taon-detached-window [window]=\"window\" />\n }\n `,\n})\nexport class TaonDetachedWindowsHostComponent {\n readonly windowsService = inject(TaonDetachedWindowsService);\n}\n//#endregion\n\n//#region detachable dialog content\n@Component({\n selector: 'taon-detachable-dialog-content',\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule, MatTooltipModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [\n `\n :host {\n display: block;\n }\n\n .taon-detachable-content {\n display: flex;\n\n flex-direction: column;\n\n min-height: 0;\n }\n\n .taon-detachable-content-toolbar {\n min-height: 36px;\n\n display: flex;\n\n align-items: center;\n\n justify-content: flex-end;\n\n border-bottom: 1px solid var(--mat-sys-outline-variant, #ddd);\n }\n\n .taon-detachable-content-body {\n min-height: 0;\n }\n `,\n ],\n template: `\n <section class=\"taon-detachable-content\">\n @if (!isDetached) {\n <header class=\"taon-detachable-content-toolbar\">\n <button\n mat-icon-button\n type=\"button\"\n [matTooltip]=\"t.gettext('Detach')\"\n (click)=\"detach()\">\n <mat-icon> open_in_new </mat-icon>\n </button>\n </header>\n }\n\n <div class=\"taon-detachable-content-body\">\n <ng-content />\n </div>\n </section>\n `,\n})\nexport class TaonDetachableDialogContentComponent {\n //#region injections\n readonly t = t.for(this);\n\n private readonly route = inject(ActivatedRoute);\n\n private readonly router = inject(Router);\n\n private readonly windowsService = inject(TaonDetachedWindowsService);\n\n readonly isDetached = inject(TAON_IS_DETACHED_WINDOW);\n //#endregion\n\n //#region inputs\n @Input({\n required: true,\n })\n component!: Type<any>;\n\n @Input()\n title?: string;\n //#endregion\n\n //#region detach\n detach(): void {\n if (this.isDetached) {\n return;\n }\n\n const snapshot = this.route.snapshot;\n\n const routeState: TaonDetachedRouteState = {\n url: this.router.url,\n\n params: this.collectParams(snapshot),\n\n queryParams: cloneObject(snapshot.queryParams),\n\n fragment: snapshot.fragment,\n\n data: this.collectData(snapshot),\n };\n\n this.windowsService.open({\n title:\n this.title || this.component.name || this.t.gettext('Detached window'),\n\n component: this.component,\n\n routeState,\n });\n }\n //#endregion\n\n //#region route utils\n private collectParams(snapshot: ActivatedRouteSnapshot): Params {\n const params: Params = {};\n\n let current: ActivatedRouteSnapshot | null = snapshot;\n\n while (current) {\n Object.assign(params, current.params);\n\n current = current.parent;\n }\n\n return params;\n }\n\n private collectData(snapshot: ActivatedRouteSnapshot): Record<string, any> {\n const data: Record<string, any> = {};\n\n let current: ActivatedRouteSnapshot | null = snapshot;\n\n while (current) {\n Object.assign(data, current.data);\n\n current = current.parent;\n }\n\n return data;\n }\n //#endregion\n}\n//#endregion","export enum TaonDraggableButtonPanelState {\n CLICKABLE_BUTTON = 'CLICKABLE_BUTTON',\n\n WINDOW = 'WINDOW',\n\n FULL_SCREEN_DRAGGABLE = 'FULL_SCREEN_DRAGGABLE',\n\n FULL_SCREEN_LOCKED = 'FULL_SCREEN_LOCKED',\n}\n\n//namespace TaonDraggableButtonPanelModels\n\n//end of namespace TaonDraggableButtonPanelModels\n","//#region imports\nimport { CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n signal,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { filter, firstValueFrom, Subscription, take } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonAdminMenuContext } from '../taon-admin-layout/taon-admin-menu-context';\n\nimport { TaonDraggableButtonPanelState } from './taon-draggable-button-panel.models';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-draggable-button-panel/taon-draggable-button-panel.component.ts', {\"src/lib/taon-draggable-button-panel/taon-draggable-button-panel.component.html\":{\"en-US\":async () => (await import('./i18n/taon-draggable-button-panel.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-draggable-button-panel.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-draggable-button-panel.component.html.de-DE.i18n.data')).default},\"src/lib/taon-draggable-button-panel/taon-draggable-button-panel.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-draggable-button-panel.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-draggable-button-panel.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-draggable-button-panel.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-draggable-button-panel',\n standalone: true,\n imports: [\n CdkDrag,\n CdkDragHandle,\n NgIf,\n NgTemplateOutlet,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n ],\n templateUrl: './taon-draggable-button-panel.component.html',\n styleUrls: ['./taon-draggable-button-panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TaonAdminMenuContext],\n})\nexport class TaonDraggableButtonPanelComponent<TContext = unknown>\n implements OnInit, OnDestroy\n{\n //#region fields and getters\n readonly t = t.for(this);\n\n readonly State = TaonDraggableButtonPanelState;\n\n private readonly menuContext = inject(TaonAdminMenuContext);\n\n @Input()\n set context(context: TContext) {\n this.menuContext.context.set(context);\n }\n\n @ViewChild(CdkDrag)\n private drag?: CdkDrag;\n\n @Input()\n basePath = '';\n\n @Input()\n buttonIcon = 'admin_panel_settings';\n\n @Input()\n title = this.t.gettext('Admin');\n\n /**\n * Named outlet containing this panel's application.\n *\n * Example:\n *\n * outlet=\"admin\"\n *\n * /products/42(admin:main;state=WINDOW/session/providers)\n */\n @Input()\n outlet?: string;\n\n /**\n * Matrix parameter used for persisting the panel state.\n */\n @Input()\n stateParamName = 'state';\n\n @Input()\n set state(state: TaonDraggableButtonPanelState) {\n this.currentState.set(state);\n }\n\n @Input()\n initialState: TaonDraggableButtonPanelState =\n TaonDraggableButtonPanelState.WINDOW;\n\n @Output()\n readonly stateChange = new EventEmitter<TaonDraggableButtonPanelState>();\n\n protected readonly forceFullScreen = signal(window.innerWidth < 900);\n\n private readonly resizeListener = (): void => {\n const wasForceFullScreen = this.forceFullScreen();\n const forceFullScreen = window.innerWidth < 900;\n\n this.forceFullScreen.set(forceFullScreen);\n\n // Desktop -> mobile: remove old CDK drag x/y transform.\n if (!wasForceFullScreen && forceFullScreen) {\n this.resetDragPosition();\n }\n };\n\n protected readonly currentState = signal(\n TaonDraggableButtonPanelState.CLICKABLE_BUTTON,\n );\n\n private routerSubscription?: Subscription;\n\n @Input()\n autoHideIcon = true;\n\n @Input()\n iconTemplate?: TemplateRef<unknown>;\n\n @Input()\n headerCenterTemplate?: TemplateRef<unknown>;\n\n //#endregion\n\n //#region constructor\n constructor(private readonly router: Router) {}\n //#endregion\n\n //#region methods / ng on init\n async ngOnInit(): Promise<void> {\n window.addEventListener('resize', this.resizeListener);\n /**\n * IMPORTANT:\n *\n * The component may be created while Angular is still processing\n * the application's initial navigation.\n *\n * For example:\n *\n * / -> redirectTo: /app\n *\n * If we create:\n *\n * (admin:main)\n *\n * before that redirect finishes, the auxiliary outlet navigation\n * may effectively replace/interfere with the primary navigation,\n * producing:\n *\n * /(admin:main)\n *\n * instead of:\n *\n * /app(admin:main)\n */\n await this.waitForInitialNavigation();\n\n /**\n * Ensure the auxiliary outlet exists only AFTER the primary\n * application route has settled.\n */\n await this.ensureOutletBasePath();\n\n /**\n * The outlet may already contain persisted state, e.g.\n *\n * (admin:main;state=WINDOW/dashboard)\n */\n this.restoreStateFromUrl();\n\n /**\n * From this point on keep the component state synchronized\n * with subsequent router navigations.\n */\n this.routerSubscription = this.router.events\n .pipe(filter(event => event instanceof NavigationEnd))\n .subscribe(() => {\n this.restoreStateFromUrl();\n });\n }\n //#endregion\n\n //#region methods / ng on destroy\n ngOnDestroy(): void {\n window.removeEventListener('resize', this.resizeListener);\n this.routerSubscription?.unsubscribe();\n }\n //#endregion\n\n //#region methods / toogle fullscreen\n protected toogleFullscreen(event: Event) {\n event.stopImmediatePropagation();\n event.stopPropagation();\n event.preventDefault();\n if (this.forceFullScreen()) {\n return;\n }\n if (this.currentState() === TaonDraggableButtonPanelState.WINDOW) {\n this.resetDragPosition();\n void this.setState(TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED);\n } else if (\n [\n TaonDraggableButtonPanelState.FULL_SCREEN_DRAGGABLE,\n TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED,\n ].includes(this.currentState())\n ) {\n this.resetDragPosition();\n void this.setState(TaonDraggableButtonPanelState.WINDOW);\n }\n }\n //#endregion\n\n //#region methods / effective state\n protected effectiveState(): TaonDraggableButtonPanelState {\n if (\n this.forceFullScreen() &&\n this.currentState() !== TaonDraggableButtonPanelState.CLICKABLE_BUTTON\n ) {\n return TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED;\n }\n\n return this.currentState();\n }\n //#endregion\n\n // ===========================================================================\n // INITIAL ROUTING\n // ===========================================================================\n\n //#region methods / wait for initial navigation\n private async waitForInitialNavigation(): Promise<void> {\n /**\n * Router already completed at least one navigation.\n */\n if (this.router.navigated) {\n return;\n }\n\n /**\n * Wait until redirects/lazy routing/etc. belonging to the initial\n * navigation have settled.\n */\n await firstValueFrom(\n this.router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n take(1),\n ),\n );\n }\n //#endregion\n\n //#region methods / ensure outlet base path\n private async ensureOutletBasePath(): Promise<void> {\n if (!this.outlet || !this.basePath) {\n return;\n }\n\n /**\n * IMPORTANT:\n *\n * Parse the URL only AFTER initial navigation has completed.\n *\n * At this point:\n *\n * /\n *\n * may already have become:\n *\n * /app\n */\n const tree = this.router.parseUrl(this.router.url);\n\n /**\n * Outlet already exists — preserve it exactly as it is.\n *\n * Examples:\n *\n * /app(admin:main)\n *\n * /app(admin:main;state=WINDOW/dashboard)\n */\n if (tree.root.children[this.outlet]) {\n return;\n }\n\n const baseSegments = this.basePath.split('/').filter(Boolean);\n\n if (!baseSegments.length) {\n return;\n }\n\n /**\n * Add the auxiliary outlet while preserving the current\n * primary route.\n *\n * Example:\n *\n * /app\n *\n * becomes:\n *\n * /app(admin:main)\n */\n await this.router.navigate(\n [\n {\n outlets: {\n [this.outlet]: baseSegments,\n },\n },\n ],\n {\n replaceUrl: true,\n },\n );\n }\n //#endregion\n\n // ===========================================================================\n // STATE\n // ===========================================================================\n\n //#region methods / set state\n protected async setState(next: TaonDraggableButtonPanelState): Promise<void> {\n if (!this.isTransitionAllowed(next)) {\n return;\n }\n\n this.currentState.set(next);\n\n this.stateChange.emit(next);\n\n await this.saveStateToUrl(next);\n }\n //#endregion\n\n //#region methods / open\n protected open(): void {\n void this.setState(this.initialState);\n }\n\n protected toggle(): void {\n if (this.currentState() === this.State.CLICKABLE_BUTTON) {\n this.open();\n } else {\n this.returnToButton();\n }\n }\n //#endregion\n\n //#region methods / return to button\n protected returnToButton(): void {\n this.resetDragPosition();\n void this.setState(TaonDraggableButtonPanelState.CLICKABLE_BUTTON);\n }\n //#endregion\n\n //#region methods / window mode\n protected windowMode(): void {\n void this.setState(TaonDraggableButtonPanelState.WINDOW);\n }\n //#endregion\n\n //#region methods / full screen draggable\n protected fullScreenDraggable(): void {\n this.resetDragPosition();\n\n void this.setState(TaonDraggableButtonPanelState.FULL_SCREEN_DRAGGABLE);\n }\n //#endregion\n\n //#region methods / lock full screen\n protected lockFullScreen(): void {\n this.resetDragPosition();\n\n void this.setState(TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED);\n }\n //#endregion\n\n //#region methods / is dragging enabled\n protected isDraggingEnabled(): boolean {\n if (this.forceFullScreen()) {\n return false;\n }\n\n return (\n this.currentState() === TaonDraggableButtonPanelState.WINDOW ||\n this.currentState() ===\n TaonDraggableButtonPanelState.FULL_SCREEN_DRAGGABLE\n );\n }\n //#endregion\n\n // ===========================================================================\n // URL STATE\n // ===========================================================================\n\n //#region methods / restore state from url\n private restoreStateFromUrl(): void {\n if (!this.outlet) {\n return;\n }\n\n const tree = this.router.parseUrl(this.router.url);\n\n const outletGroup = tree.root.children[this.outlet];\n\n if (!outletGroup) {\n return;\n }\n\n /**\n * State is stored on the first auxiliary outlet segment:\n *\n * admin:\n *\n * main;state=WINDOW/dashboard\n * └────────────────┘\n */\n const rootSegment = outletGroup.segments[0];\n\n if (!rootSegment) {\n return;\n }\n\n const state = rootSegment.parameters[this.stateParamName];\n\n if (!this.isValidState(state)) {\n return;\n }\n\n /**\n * URL restoration should NOT go through the transition\n * state machine.\n *\n * A bookmarked/refreshed URL is authoritative.\n */\n this.currentState.set(state);\n\n /**\n * Fullscreen must never inherit an old CdkDrag transform.\n */\n if (\n state === TaonDraggableButtonPanelState.FULL_SCREEN_DRAGGABLE ||\n state === TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED\n ) {\n queueMicrotask(() => {\n this.resetDragPosition();\n });\n }\n }\n //#endregion\n\n //#region methods / save state to url\n private async saveStateToUrl(\n state: TaonDraggableButtonPanelState,\n ): Promise<void> {\n if (!this.outlet) {\n return;\n }\n\n const tree = this.router.parseUrl(this.router.url);\n\n const outletGroup = tree.root.children[this.outlet];\n\n /**\n * The outlet might not yet exist.\n *\n * In that case there is nowhere sensible to attach\n * its matrix parameter.\n */\n if (!outletGroup || outletGroup.segments.length === 0) {\n return;\n }\n\n const rootSegment = outletGroup.segments[0];\n\n /**\n * Preserve any existing matrix parameters.\n */\n rootSegment.parameters = {\n ...rootSegment.parameters,\n\n [this.stateParamName]: state,\n };\n\n await this.router.navigateByUrl(tree, {\n replaceUrl: true,\n });\n }\n //#endregion\n\n //#region methods / is valid state\n private isValidState(\n value: string | undefined,\n ): value is TaonDraggableButtonPanelState {\n return Object.values(TaonDraggableButtonPanelState).includes(\n value as TaonDraggableButtonPanelState,\n );\n }\n //#endregion\n\n // ===========================================================================\n // DRAG\n // ===========================================================================\n\n //#region methods / reset drag position\n private resetDragPosition(): void {\n this.drag?.reset();\n }\n //#endregion\n\n // ===========================================================================\n // TRANSITIONS\n // ===========================================================================\n\n //#region methods / is transition allowed\n private isTransitionAllowed(next: TaonDraggableButtonPanelState): boolean {\n const current = this.currentState();\n\n const transitions: Record<\n TaonDraggableButtonPanelState,\n TaonDraggableButtonPanelState[]\n > = {\n [TaonDraggableButtonPanelState.CLICKABLE_BUTTON]: [\n TaonDraggableButtonPanelState.WINDOW,\n TaonDraggableButtonPanelState.FULL_SCREEN_DRAGGABLE,\n TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED,\n ],\n\n [TaonDraggableButtonPanelState.WINDOW]: [\n TaonDraggableButtonPanelState.CLICKABLE_BUTTON,\n TaonDraggableButtonPanelState.FULL_SCREEN_DRAGGABLE,\n TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED,\n ],\n\n [TaonDraggableButtonPanelState.FULL_SCREEN_DRAGGABLE]: [\n TaonDraggableButtonPanelState.CLICKABLE_BUTTON,\n TaonDraggableButtonPanelState.WINDOW,\n TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED,\n ],\n\n [TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED]: [\n TaonDraggableButtonPanelState.CLICKABLE_BUTTON,\n TaonDraggableButtonPanelState.WINDOW,\n TaonDraggableButtonPanelState.FULL_SCREEN_DRAGGABLE,\n ],\n };\n\n return transitions[current].includes(next);\n }\n //#endregion\n}","@if (currentState() === State.CLICKABLE_BUTTON || !autoHideIcon) {\n @if (iconTemplate) {\n <ng-container [ngTemplateOutlet]=\"iconTemplate\" />\n } @else {\n <button\n class=\"taon-admin-panel-toogle-open-button\"\n [class.taon-admin-panel-toogle-button-dimmer-opacity]=\"\n effectiveState() !== State.CLICKABLE_BUTTON\n \"\n mat-icon-button\n type=\"button\"\n [matTooltip]=\"title\"\n (click)=\"toggle()\">\n <mat-icon>{{ buttonIcon }}</mat-icon>\n </button>\n }\n}\n\n<section\n cdkDrag\n [hidden]=\"currentState() === State.CLICKABLE_BUTTON\"\n [cdkDragDisabled]=\"!isDraggingEnabled()\"\n class=\"taon-draggable-panel\"\n [class.taon-window]=\"effectiveState() === State.WINDOW\"\n [class.taon-window-full]=\"effectiveState() !== State.WINDOW\"\n [class.taon-fullscreen]=\"\n effectiveState() === State.FULL_SCREEN_DRAGGABLE ||\n effectiveState() === State.FULL_SCREEN_LOCKED\n \">\n <header\n cdkDragHandle\n (dblclick)=\"toogleFullscreen($event)\"\n class=\"taon-window-bar\">\n <!-- LEFT -->\n <div class=\"flex min-w-0 flex-1 items-center gap-2\">\n <mat-icon class=\"text-gray-500\"> admin_panel_settings </mat-icon>\n\n <span class=\"truncate font-medium\">\n {{ title }}\n </span>\n </div>\n\n <!-- EXACT CENTER -->\n <div class=\"flex min-w-0 items-center justify-center\">\n @if (headerCenterTemplate) {\n <ng-container [ngTemplateOutlet]=\"headerCenterTemplate\" />\n }\n </div>\n\n <!-- #region window buttons -->\n <div class=\"flex shrink-0 items-center\">\n <!-- Desktop-only window/fullscreen controls -->\n @if (!forceFullScreen()) {\n @if (currentState() !== State.WINDOW) {\n <button\n mat-icon-button\n type=\"button\"\n [matTooltip]=\"t.gettext('Window mode')\"\n (click)=\"windowMode()\">\n <mat-icon>filter_none</mat-icon>\n </button>\n }\n\n @if (currentState() === State.WINDOW) {\n <button\n mat-icon-button\n type=\"button\"\n [matTooltip]=\"t.gettext('Full screen')\"\n (click)=\"fullScreenDraggable()\">\n <mat-icon>fullscreen</mat-icon>\n </button>\n }\n\n @if (currentState() !== State.FULL_SCREEN_LOCKED) {\n <button\n mat-icon-button\n type=\"button\"\n [matTooltip]=\"t.gettext('Lock full screen')\"\n (click)=\"lockFullScreen()\">\n <mat-icon>lock_open</mat-icon>\n </button>\n } @else {\n <button\n mat-icon-button\n type=\"button\"\n [matTooltip]=\"t.gettext('Unlock')\"\n (click)=\"fullScreenDraggable()\">\n <mat-icon>lock</mat-icon>\n </button>\n }\n }\n\n <!-- ALWAYS available -->\n <button\n mat-icon-button\n type=\"button\"\n [matTooltip]=\"t.gettext('Close admin panel')\"\n (click)=\"returnToButton()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <!-- #endregion -->\n </header>\n\n <div class=\"min-h-0 flex-1 overflow-hidden\">\n <ng-content />\n </div>\n</section>\n","//#region imports\nimport { Routes } from '@angular/router';\n\nimport { TaonDraggableButtonPanelComponent } from './taon-draggable-button-panel.component';\n//#endregion\n\nexport const TaonDraggableButtonPanelRoutes: Routes = [\n {\n path: '',\n component: TaonDraggableButtonPanelComponent,\n },\n // {\n // path: 'anothermodulepath',\n // loadChildren: () => import('anothermodule')\n // .then(m => m.AnotherLazyModule),\n // },\n];\n\n/**\n * By default exporting TaonDraggableButtonPanelRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\nexport default TaonDraggableButtonPanelRoutes;","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n inject,\n Input,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TaonAdminService } from 'taon/websql-prod';\n\n@Component({\n selector: 'taon-items-hamburger',\n standalone: true,\n imports: [MatButtonModule, MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n\n templateUrl: './taon-items-hamburger.component.html',\n\n styleUrl: './taon-items-hamburger.component.scss',\n})\nexport class TaonItemsHamburgerComponent {\n @Input() icon = 'menu';\n\n readonly taonAdminService = inject(TaonAdminService);\n\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly opened = signal(false);\n\n toggle(event: MouseEvent): void {\n event.stopPropagation();\n\n this.opened.update(opened => !opened);\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n const target = event.target as Node | null;\n\n if (\n this.opened() &&\n target &&\n !this.elementRef.nativeElement.contains(target)\n ) {\n this.opened.set(false);\n }\n }\n\n @HostListener('document:keydown.escape')\n onEscape(): void {\n this.opened.set(false);\n }\n}\n","@if (!taonAdminService.isDesktop()) {\n <button\n mat-icon-button\n type=\"button\"\n aria-label=\"Open menu\"\n [attr.aria-expanded]=\"opened()\"\n (click)=\"toggle($event)\">\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n}\n\n<div\n class=\"items\"\n [class.mobile]=\"!taonAdminService.isDesktop()\"\n [class.opened]=\"opened()\">\n <ng-content />\n</div>\n","import { Component, Inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nconst t = Translation.for('src/lib/taon-purchase-status/taon-purchase-status.dialog.component.ts', {\"src/lib/taon-purchase-status/taon-purchase-status.dialog.component.html\":{\"en-US\":async () => (await import('./i18n/taon-purchase-status.dialog.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-purchase-status.dialog.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-purchase-status.dialog.component.html.de-DE.i18n.data')).default},\"src/lib/taon-purchase-status/taon-purchase-status.dialog.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-purchase-status.dialog.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-purchase-status.dialog.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-purchase-status.dialog.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-purchase-status-dialog',\n standalone: true,\n imports: [MatDialogModule, MatButtonModule],\n templateUrl: './taon-purchase-status.dialog.component.html',\n})\nexport class TaonPurchaseStatusDialogComponent {\n readonly t = t.for(this);\n\n constructor(\n @Inject(MAT_DIALOG_DATA)\n public data: { success: boolean; message: string },\n ) {}\n}","<h2 mat-dialog-title>\n {{\n data.success\n ? t.gettext('Payment successful')\n : t.gettext('Payment cancelled')\n }}\n</h2>\n\n<div mat-dialog-content>{{ data.message }}</div>\n\n<div\n mat-dialog-actions\n align=\"end\">\n <button\n mat-button\n mat-dialog-close>\n {{ t.gettext('OK') }}\n </button>\n</div>\n","import { Component, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nconst t = Translation.for('src/lib/taon-under-construction/taon-under-construction.component.ts', {\"src/lib/taon-under-construction/taon-under-construction.component.html\":{\"en-US\":async () => (await import('./i18n/taon-under-construction.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-under-construction.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-under-construction.component.html.de-DE.i18n.data')).default},\"src/lib/taon-under-construction/taon-under-construction.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-under-construction.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-under-construction.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-under-construction.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-under-construction',\n standalone: true,\n imports: [MatIconModule, MatButtonModule],\n templateUrl: './taon-under-construction.component.html',\n styleUrl: './taon-under-construction.component.scss',\n})\nexport class TaonUnderConstructionComponent {\n t = t.for(this);\n\n title = input(t.gettext('Coming soon'));\n\n description = input(\n t.gettext(\n 'This section is currently under construction and will be available soon.',\n ),\n );\n\n icon = input('engineering');\n}","<div class=\"under-construction\">\n <div class=\"icon-wrapper\">\n <mat-icon>{{ icon() }}</mat-icon>\n </div>\n\n <h2>{{ title() }}</h2>\n\n <p>{{ description() }}</p>\n\n <div class=\"status\">\n <mat-icon>construction</mat-icon>\n {{ t.gettext('Work in progress') }}\n </div>\n</div>\n","// @ts-nocheck\n// This file is auto-generated during init process. Do not modify.\n// This disable this auto generate file.\n// set property \"shouldGenerateAutogenIndexFile: false\" \n// in taon.jsonc of your project. \nexport * from './build-info._auto-generated_'; \nexport * from './my-organization-proj'; \nexport * from './start-cli'; \nexport * from './directives/taon-horizontal-wheel-scrolling.directive'; // @browser\nexport * from './taon-admin-layout/taon-admin-content-footer.service'; // @browser\nexport * from './taon-admin-layout/taon-admin-layout.component'; // @browser\nexport * from './taon-admin-layout/taon-admin-layout.models'; \nexport * from './taon-admin-layout/taon-admin-menu-context'; \nexport * from './taon-admin-layout/taon-admin-page-tabs.component'; // @browser\nexport * from './taon-admin-layout/taon-base-admin-page.component'; // @browser\nexport * from './taon-admin-welcome/taon-admin-welcome.component'; // @browser\nexport * from './taon-admin-welcome/taon-admin-welcome.models'; \nexport * from './taon-admin-welcome/taon-admin-welcome.routes'; // @browser\nexport * from './taon-backoffice-notifications/taon-backoffice-notifications.component'; // @browser\nexport * from './taon-backoffice-notifications/taon-backoffice-notifications.models'; \nexport * from './taon-backoffice-notifications/taon-backoffice-notifications.service'; // @browser\nexport * from './taon-backoffice-notifications/taon-error-details-dialog.component'; // @browser\nexport * from './taon-backoffice-notifications/taon-error-toast.component'; // @browser\nexport * from './taon-confirm-dialog/taon-confirm-dialog.component'; // @browser\nexport * from './taon-confirm-dialog/taon-confirm-dialog.models'; \nexport * from './taon-datatable/taon-datatable.component'; // @browser\nexport * from './taon-datatable/taon-datatable.models'; \nexport * from './taon-datatable/taon-datatable.routes'; // @browser\nexport * from './taon-detachable-dialog-content/taon-detached-window-content.component'; // @browser\nexport * from './taon-draggable-button-panel/taon-draggable-button-panel.component'; // @browser\nexport * from './taon-draggable-button-panel/taon-draggable-button-panel.models'; \nexport * from './taon-draggable-button-panel/taon-draggable-button-panel.routes'; // @browser\nexport * from './taon-items-hamburger/taon-items-hamburger.component'; // @browser\nexport * from './taon-purchase-status/taon-purchase-status.dialog.component'; // @browser\nexport * from './taon-under-construction/taon-under-construction.component'; // @browser","export * from './migrations';\n/* */ \nexport * from './index._auto-generated_';\nexport * from './my-organization-proj';\n/* */ \nexport default {};","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["t","i2","i3","i4","i1","TaonSymbols__NS__old__NS__X_TOTAL_COUNT","i5"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ui-websql-prod.mjs","sources":["../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/migrations/migrations_index._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/migrations/index.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/my-organization-proj.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/start-cli.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/directives/taon-horizontal-wheel-scrolling.directive.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/plugins/ngx-editor-table.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-layout/taon-admin-content-footer.service.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-layout/taon-admin-layout.models.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-layout/taon-admin-menu-context.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-layout/taon-admin-page-tabs.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-layout/taon-admin-page-tabs.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-layout/taon-admin-layout.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-layout/taon-admin-layout.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-layout/taon-base-admin-page.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-welcome/taon-admin-welcome.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-welcome/taon-admin-welcome.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-welcome/taon-admin-welcome.models.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-admin-welcome/taon-admin-welcome.routes.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-backoffice-notifications/taon-error-toast.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-backoffice-notifications/taon-backoffice-notifications.service.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-backoffice-notifications/taon-backoffice-notifications.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-backoffice-notifications/taon-backoffice-notifications.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-confirm-dialog/taon-confirm-dialog.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-confirm-dialog/taon-confirm-dialog.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-confirm-dialog/taon-confirm-dialog.models.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-datatable/taon-datatable.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-datatable/taon-datatable.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-datatable/taon-datatable.models.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-datatable/taon-datatable.routes.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-detachable-dialog-content/taon-detached-window-content.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-draggable-button-panel/taon-draggable-button-panel.models.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-draggable-button-panel/taon-draggable-button-panel.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-draggable-button-panel/taon-draggable-button-panel.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-draggable-button-panel/taon-draggable-button-panel.routes.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-items-hamburger/taon-items-hamburger.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-items-hamburger/taon-items-hamburger.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-loading-content/taon-loading-content.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-loading-content/taon-loading-content.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-purchase-status/taon-purchase-status.dialog.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-purchase-status/taon-purchase-status.dialog.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-under-construction/taon-under-construction.component.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/taon-under-construction/taon-under-construction.component.html","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/lib/index.ts","../../../tmp-libs-for-dist-websql-prod/ui/projects/ui/src/ui-websql-prod.ts"],"sourcesContent":["// THIS FILE IS GENERATED - DO NOT MODIFY\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","//@ts-nocheck\nexport * from './migrations_index._auto-generated_';\n","// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.ui';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = '@taon-dev/ui';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.30';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","import { Translation } from \"@taon-dev/i18n/websql-prod\";\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from \"taon/websql-prod\";\n\nconst t = Translation.for('src/lib/my-organization-proj.ts', {\"src/lib/my-organization-proj.ts\":{\"en-US\":async () => (await import('./i18n/my-organization-proj.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/my-organization-proj.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/my-organization-proj.ts.de-DE.i18n.data')).default},\"src/lib/start-cli.ts\":{\"en-US\":async () => (await import('./i18n/start-cli.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/start-cli.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/start-cli.ts.de-DE.i18n.data')).default}} as any);\n\nexport function myOrgProj() {\n t.gettext('My Translated Company Name!')\n}","//#region tnp-helpers cli template\nimport { UtilsJson__NS__AttrJsoncProp, UtilsJson__NS__getAtrributiesFromJsonWithComments, UtilsJson__NS__getAttributiesFromComment, UtilsJson__NS__getValue, UtilsJson__NS__readJson, UtilsJson__NS__readJsonWithComments, UtilsJson__NS__setValue, UtilsJson__NS__validateLodashPath } from 'tnp-core/websql-prod';\nimport { BaseCommandLineFeature, Helpers__NS___fixCommand, Helpers__NS__ActionInstance, Helpers__NS__actionStarted, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsVerboseModeOrTnp, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logTaskDone, Helpers__NS__logTaskStarted, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-helpers/websql-prod';\n/* */ \nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n//#endregion\n\nconst t = Translation.for('src/lib/start-cli.ts', {\"src/lib/my-organization-proj.ts\":{\"en-US\":async () => (await import('./i18n/my-organization-proj.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/my-organization-proj.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/my-organization-proj.ts.de-DE.i18n.data')).default},\"src/lib/start-cli.ts\":{\"en-US\":async () => (await import('./i18n/start-cli.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/start-cli.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/start-cli.ts.de-DE.i18n.data')).default}} as any);\n\n//#region CLI / global scope\n/**\n * This class is for handling global arguments. *\n * Cli engine will parse: hello:world:from:global:arg to helloWorldFromGlobalArg\n * (lower case, camel case) .. so you don't need to worry about misspelling\n * arguments\n */\nclass $Global extends BaseCommandLineFeature<{}> {\n /**\n * When you execute cli without arguments:`$ cli`\n */\n public _() {\n console.log(`Hello world from cli`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli hello:world:from:global:arg`\n * (or `$ cli helloWorldFromGlobalArg`)\n */\n helloWorldFromGlobalArg() {\n console.log('hello world from global argument!');\n this._exit(0);\n }\n}\n//#endregion\n\n//#region CLI / Version Scope\n/**\n *\n */\nclass $Version extends BaseCommandLineFeature<{\n anyCLIparamsHere: string;\n}> {\n /**\n * When you execute: `$ cli version`\n */\n public _() {\n console.log(`Hello world from version argument`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli version:getFromPackageJson`\n */\n public getFromPackageJson() {\n const ver = UtilsJson__NS__getValue(\n this.project.pathFor('package.json'),\n 'version',\n {\n defaultValue: '<not defined>',\n },\n );\n console.log(`Version from packageJson ${ver}`);\n this._exit(0);\n }\n}\n//#endregion\n\n/**\n *\n * @param argsv process.argsv\n * @param filename needed if you want ipc communicaiton\n */\nexport async function startCli(\n argsv: string[],\n filename: string,\n): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}\n\nexport default startCli;","//#region imports\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n inject,\n OnDestroy,\n} from '@angular/core';\n//#endregion\n\n@Directive({\n selector: '[taonHorizontalWheelScroll]',\n standalone: true,\n})\nexport class TaonHorizontalWheelScrollDirective\n implements AfterViewInit, OnDestroy\n{\n //#region fields\n\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n private wheelAccumulator = 0;\n\n /**\n * Amount of wheel movement required before triggering\n * Material's previous/next pagination.\n */\n private readonly wheelThreshold = 40;\n\n //#endregion\n\n //#region lifecycle\n\n ngAfterViewInit(): void {\n this.elementRef.nativeElement.addEventListener('wheel', this.onWheel, {\n passive: false,\n });\n }\n\n ngOnDestroy(): void {\n this.elementRef.nativeElement.removeEventListener('wheel', this.onWheel);\n }\n\n //#endregion\n\n //#region wheel\n\n private readonly onWheel = (event: WheelEvent): void => {\n const delta =\n Math.abs(event.deltaX) > Math.abs(event.deltaY)\n ? event.deltaX\n : event.deltaY;\n\n if (!delta) {\n return;\n }\n\n this.wheelAccumulator += delta;\n\n if (Math.abs(this.wheelAccumulator) < this.wheelThreshold) {\n return;\n }\n\n const direction = this.wheelAccumulator > 0 ? 'after' : 'before';\n\n this.wheelAccumulator = 0;\n\n // @ts-ignore\n const pagination = this.elementRef.nativeElement.querySelector<HTMLElement>(\n `.mat-mdc-tab-header-pagination-${direction}`,\n );\n\n if (!pagination) {\n return;\n }\n\n const disabled = pagination.classList.contains(\n 'mat-mdc-tab-header-pagination-disabled',\n );\n\n if (disabled) {\n return;\n }\n\n event.preventDefault();\n\n pagination.click();\n };\n\n //#endregion\n}\n","import { Editor } from 'ngx-editor';\nimport { schema as defaultSchema } from 'ngx-editor/schema';\nimport { Schema } from 'prosemirror-model';\nimport { TextSelection } from 'prosemirror-state';\nimport { tableEditing, tableNodes } from 'prosemirror-tables';\n\nexport const editorTableSchema = new Schema({\n nodes: defaultSchema.spec.nodes.append(\n tableNodes({\n tableGroup: 'block',\n cellContent: 'block+',\n cellAttributes: {},\n }),\n ),\n marks: defaultSchema.spec.marks,\n}) as any;\ntype EditorOptions = ConstructorParameters<typeof Editor>[0];\n\nexport function createTableEditor(options?: EditorOptions): Editor {\n return new Editor({\n ...options,\n schema: editorTableSchema,\n plugins: [...(options?.plugins ?? []), tableEditing()],\n });\n}\n\nexport function insertTable(editor: Editor, rows = 3, columns = 3): void {\n const view = editor.view;\n\n if (!view.editable) {\n return;\n }\n\n const { state } = view;\n const { schema } = state;\n\n const tableRows = Array.from({ length: rows }, () =>\n schema.nodes['table_row'].create(\n null,\n Array.from({ length: columns }, () =>\n schema.nodes['table_cell'].create(\n null,\n schema.nodes['paragraph'].create(),\n ),\n ),\n ),\n );\n\n const table = schema.nodes['table'].create(null, tableRows);\n\n const transaction = state.tr.replaceSelectionWith(table);\n\n // Move the cursor into the newly inserted table.\n let insertedTablePosition: number | undefined;\n\n transaction.doc.descendants((node, position) => {\n if (node === table) {\n insertedTablePosition = position;\n return false;\n }\n\n return true;\n });\n\n if (insertedTablePosition !== undefined) {\n transaction.setSelection(\n TextSelection.near(transaction.doc.resolve(insertedTablePosition + 3)),\n );\n }\n\n view.dispatch(transaction.scrollIntoView());\n view.focus();\n}\n","import { Injectable, TemplateRef, signal } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class TaonAdminContentFooterService {\n readonly currentTemplate = signal<TemplateRef<unknown> | undefined>(\n undefined,\n );\n\n setTemplate(template?: TemplateRef<unknown>): void {\n this.currentTemplate.set(template);\n }\n}\n","import type { Signal } from '@angular/core';\nimport type { MatIcon } from '@angular/material/icon'; // @browser\nimport { Route } from '@angular/router';\n\nexport interface TaonAdminRoute extends Route {\n /**\n * Used only by TaonAdminLayout to discover lazy navigation children.\n *\n * This loads route metadata, NOT page components.\n */\n loadAdminChildren?: () => Promise<TaonAdminRoutes>;\n}\n\nexport type TaonAdminRoutes = TaonAdminRoute[];\n\nexport interface TaonAdminMenuCallbacks<TContext = unknown> {\n isDisabled?: (params: { context: TContext }) => boolean;\n isDisabledTooltip?: (params: { context: TContext }) => string;\n isVisible?: (params: { context: TContext }) => boolean;\n}\n\nexport interface TaonAdminRouteOptions<\n TContext = unknown,\n> extends TaonAdminMenuCallbacks<TContext> {\n path: string;\n color?: string;\n loader: () => Promise<TaonAdminRoutes>;\n\n menuItem?: string | (() => string) | Signal<string>;\n\n //#region @browser\n icon?: MatIcon['fontIcon'];\n //#endregion\n\n expandable?: boolean;\n\n hideInNavigation?: boolean;\n}\n\nexport const TaonBaselineBackofficeOutletName = 'admin';\n\nexport function resolveTaonAdminMenuItem(\n menuItem: TaonAdminRouteOptions['menuItem'],\n): string | undefined {\n return typeof menuItem === 'function' ? menuItem() : menuItem;\n}\n\n//#region @browser\nexport function adminLazyRoute<TContext = unknown>(\n options: TaonAdminRouteOptions<TContext>,\n): TaonAdminRoute {\n const {\n path,\n loader,\n menuItem,\n icon,\n color,\n expandable,\n hideInNavigation,\n isDisabled,\n isDisabledTooltip,\n isVisible,\n } = options;\n\n return {\n path,\n\n data: {\n menuItem,\n color,\n icon,\n expandable,\n hideInNavigation,\n isDisabled,\n isDisabledTooltip,\n isVisible,\n },\n\n loadChildren: loader,\n loadAdminChildren: loader,\n };\n}\n//#endregion\n","import { Injectable, signal } from '@angular/core';\nimport { Route } from '@angular/router';\n\nimport { TaonAdminMenuCallbacks } from './taon-admin-layout.models';\n\n@Injectable()\nexport class TaonAdminMenuContext {\n readonly context = signal<unknown>(undefined);\n\n isVisible(route: Route): boolean {\n return (\n !route.data?.['hideInNavigation'] &&\n this.callbacks(route)?.isVisible?.({ context: this.context() }) !== false\n );\n }\n\n isDisabled(route: Route): boolean {\n return (\n this.callbacks(route)?.isDisabled?.({ context: this.context() }) === true\n );\n }\n\n disabledTooltip(route: Route): string {\n return this.isDisabled(route)\n ? (this.callbacks(route)?.isDisabledTooltip?.({\n context: this.context(),\n }) ?? '')\n : '';\n }\n\n private callbacks(route: Route): TaonAdminMenuCallbacks | undefined {\n // Angular Route.data erases the application's context type at the router boundary.\n return route.data as TaonAdminMenuCallbacks | undefined;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n Input,\n OnInit,\n signal,\n} from '@angular/core';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { NavigationEnd, Route, Router, Routes } from '@angular/router';\nimport { filter } from 'rxjs';\n\nimport {\n resolveTaonAdminMenuItem,\n TaonAdminRoute,\n} from './taon-admin-layout.models';\nimport { TaonAdminMenuContext } from './taon-admin-menu-context';\n\nexport interface TaonAdminTabLevel {\n level: number;\n routes: Routes;\n\n /**\n * URL segments before routes from this tab level.\n *\n * Example:\n *\n * ['main', 'session', 'providers']\n */\n baseSegments: string[];\n}\n\n@Component({\n selector: 'taon-admin-page-tabs',\n standalone: true,\n imports: [MatTabsModule, MatTooltipModule],\n templateUrl: './taon-admin-page-tabs.component.html',\n styleUrl: './taon-admin-page-tabs.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TaonAdminPageTabsComponent implements OnInit {\n protected readonly menuContext =\n inject(TaonAdminMenuContext, { optional: true }) ??\n new TaonAdminMenuContext();\n\n private _routes: Routes = [];\n\n @Input({ required: true })\n set routes(routes: Routes) {\n this._routes = routes.filter(f => !f.redirectTo);\n }\n\n get routes(): Routes {\n return this._routes;\n }\n\n @Input()\n basePath = '';\n\n /**\n * Undefined:\n * normal primary routing\n *\n * \"admin\":\n * auxiliary admin outlet\n */\n @Input()\n outlet?: string;\n\n protected readonly levels = signal<TaonAdminTabLevel[]>([]);\n\n constructor(private readonly router: Router) {}\n\n async ngOnInit(): Promise<void> {\n // console.log(this.routes);\n await this.refresh();\n\n this.router.events\n .pipe(filter(event => event instanceof NavigationEnd))\n .subscribe(async () => {\n await this.refresh();\n });\n }\n\n // ===========================================================================\n // UI\n // ===========================================================================\n\n protected label(route: Route): string {\n return (\n resolveTaonAdminMenuItem(route.data?.['menuItem']) ??\n this.startCase(route.path ?? '')\n );\n }\n\n protected isActive(level: TaonAdminTabLevel, route: Route): boolean {\n if (!route.path) {\n return false;\n }\n\n const expected = [...level.baseSegments, route.path];\n\n const current = this.currentOutletSegments();\n\n if (current.length < expected.length) {\n return false;\n }\n\n return expected.every((segment, index) => current[index] === segment);\n }\n\n protected async tabClicked(\n level: TaonAdminTabLevel,\n route: Route,\n ): Promise<void> {\n if (\n !route.path ||\n !this.menuContext.isVisible(route) ||\n this.menuContext.isDisabled(route)\n ) {\n return;\n }\n\n await this.navigateTo([\n ...level.baseSegments.slice(this.basePathSegments.length),\n route.path,\n ]);\n }\n\n // ===========================================================================\n // NAVIGATION\n // ===========================================================================\n\n private outletBaseMatrixParams(): Record<string, string> {\n if (!this.outlet) {\n return {};\n }\n\n const tree = this.router.parseUrl(this.router.url);\n\n const outletGroup = tree.root.children[this.outlet];\n\n return {\n ...outletGroup?.segments[0]?.parameters,\n };\n }\n\n private async navigateTo(routeSegments: string[]): Promise<boolean> {\n const segments = [...this.basePathSegments, ...routeSegments];\n\n /**\n * Auxiliary / named outlet.\n *\n * Example:\n *\n * /products/42(admin:main/session/providers/settings)\n */\n if (this.outlet) {\n const [firstSegment, ...remainingSegments] = segments;\n\n if (!firstSegment) {\n return false;\n }\n\n const matrixParams = this.outletBaseMatrixParams();\n\n return this.router.navigate([\n {\n outlets: {\n [this.outlet]: [\n firstSegment,\n\n /**\n * Angular interprets an object following\n * a segment as matrix parameters.\n */\n matrixParams,\n\n ...remainingSegments,\n ],\n },\n },\n ]);\n }\n\n /**\n * Normal primary outlet.\n *\n * Example:\n *\n * /main/session/providers/settings\n */\n return this.router.navigate(['/', ...segments]);\n }\n\n // ===========================================================================\n // BUILD TAB LEVELS\n // ===========================================================================\n\n private async refresh(): Promise<void> {\n const current = this.currentOutletSegments();\n\n const base = this.basePathSegments;\n\n /**\n * Example:\n *\n * current:\n * main/session/providers/settings\n *\n * base:\n * main\n *\n * relative:\n * session/providers/settings\n */\n const relative = current.slice(base.length);\n\n const levels: TaonAdminTabLevel[] = [];\n\n await this.walk(this.routes, relative, base, 1, levels);\n\n /**\n * Levels:\n *\n * 1 -> aside expansion panel\n * 2 -> aside item\n * 3+ -> tabs\n */\n this.levels.set(levels.filter(level => level.level >= 3));\n }\n\n private async walk(\n routes: Routes,\n remainingUrl: string[],\n baseSegments: string[],\n level: number,\n result: TaonAdminTabLevel[],\n ): Promise<void> {\n /**\n * Important:\n *\n * Taon lazy route files commonly look like:\n *\n * [\n * {\n * path: '',\n * component: SomeContainer,\n * children: [...]\n * }\n * ]\n *\n * path:'' is structural and DOES NOT represent\n * another navigation level.\n */\n routes = this.unwrapEmptyPathRoutes(routes);\n\n const visibleRoutes = this.navigationRoutes(routes);\n\n /**\n * Level 3+ becomes tabs.\n */\n if (level >= 3 && visibleRoutes.length > 0) {\n result.push({\n level,\n routes: visibleRoutes,\n baseSegments,\n });\n }\n\n const currentSegment = remainingUrl[0];\n\n if (!currentSegment) {\n return;\n }\n\n const activeRoute = routes.find(route => route.path === currentSegment);\n\n if (!activeRoute) {\n return;\n }\n\n let children = await this.loadChildren(activeRoute);\n\n children = this.unwrapEmptyPathRoutes(children).filter(f => !!f.data);\n\n if (!children.length) {\n return;\n }\n\n await this.walk(\n children,\n remainingUrl.slice(1),\n [...baseSegments, currentSegment],\n level + 1,\n result,\n );\n }\n\n // ===========================================================================\n // LAZY ROUTES\n // ===========================================================================\n\n private async loadChildren(route: Route): Promise<Routes> {\n if (route.children) {\n return route.children;\n }\n\n const adminRoute = route as TaonAdminRoute;\n\n if (adminRoute.loadAdminChildren) {\n return await adminRoute.loadAdminChildren();\n }\n\n return [];\n }\n\n /**\n * Removes transparent path:'' containers.\n *\n * Example:\n *\n * [\n * {\n * path: '',\n * component: ProvidersComponent,\n * children: [\n * { path: 'info' },\n * { path: 'items' },\n * ],\n * },\n * ]\n *\n * becomes:\n *\n * [\n * { path: 'info' },\n * { path: 'items' },\n * ]\n */\n private unwrapEmptyPathRoutes(routes: Routes): Routes {\n const result: Routes = [];\n\n for (const route of routes) {\n if (route.path === '' && route.children) {\n result.push(...this.unwrapEmptyPathRoutes(route.children));\n\n continue;\n }\n\n result.push(route);\n }\n\n return result;\n }\n\n private navigationRoutes(routes: Routes): Routes {\n return routes.filter(\n route =>\n !!route.path &&\n route.redirectTo === undefined &&\n !route.data?.['hideInNavigation'],\n );\n }\n\n // ===========================================================================\n // CURRENT ROUTE\n // ===========================================================================\n\n private currentOutletSegments(): string[] {\n const tree = this.router.parseUrl(this.router.url);\n\n const outletName = this.outlet || 'primary';\n\n const group = tree.root.children[outletName];\n\n if (!group) {\n return [];\n }\n\n return group.segments.map(segment => segment.path);\n }\n\n private get basePathSegments(): string[] {\n return this.basePath.split('/').filter(Boolean);\n }\n\n // ===========================================================================\n // HELPERS\n // ===========================================================================\n\n private startCase(value: string): string {\n return value\n .replace(/[-_]+/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n }\n}\n","@if (levels().length) {\n <div class=\"shrink-0 border-b border-gray-200 bg-white\">\n @for (level of levels(); track level.level) {\n <nav\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\">\n @for (route of level.routes; track route.path) {\n @if (menuContext.isVisible(route)) {\n <a\n mat-tab-link\n class=\"cursor-pointer\"\n [disabled]=\"menuContext.isDisabled(route)\"\n [class.admin-tab-disabled]=\"menuContext.isDisabled(route)\"\n [matTooltip]=\"menuContext.disabledTooltip(route)\"\n [active]=\"isActive(level, route)\"\n (click)=\"tabClicked(level, route)\">\n {{ label(route) }}\n </a>\n }\n }\n </nav>\n }\n </div>\n}\n\n<mat-tab-nav-panel #tabPanel> </mat-tab-nav-panel>\n","//#region imports\nimport { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n inject,\n Input,\n OnDestroy,\n OnInit,\n signal,\n} from '@angular/core';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport {\n NavigationEnd,\n Route,\n Router,\n RouterLink,\n RouterOutlet,\n Routes,\n} from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { filter, Subscription } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonAdminContentFooterService } from './taon-admin-content-footer.service';\nimport {\n resolveTaonAdminMenuItem,\n TaonAdminRoute,\n} from './taon-admin-layout.models';\nimport { TaonAdminMenuContext } from './taon-admin-menu-context';\nimport { TaonAdminPageTabsComponent } from './taon-admin-page-tabs.component';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-admin-layout/taon-admin-layout.component.ts', {\"src/lib/taon-admin-layout/taon-admin-layout.component.html\":{\"en-US\":async () => (await import('./i18n/taon-admin-layout.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-admin-layout.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-admin-layout.component.html.de-DE.i18n.data')).default},\"src/lib/taon-admin-layout/taon-admin-layout.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-admin-layout.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-admin-layout.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-admin-layout.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-admin-layout',\n standalone: true,\n imports: [\n CommonModule,\n RouterOutlet,\n RouterLink,\n\n MatExpansionModule,\n MatIconModule,\n MatTooltipModule,\n\n TaonAdminPageTabsComponent,\n ],\n templateUrl: './taon-admin-layout.component.html',\n styleUrls: ['./taon-admin-layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TaonAdminLayoutComponent\n implements OnInit, AfterViewInit, OnDestroy\n{\n //#region fields and getters\n\n protected readonly t = t.for(this);\n\n protected readonly menuContext =\n inject(TaonAdminMenuContext, { optional: true }) ??\n new TaonAdminMenuContext();\n\n protected readonly taonAdminContentFooterService = inject(\n TaonAdminContentFooterService,\n );\n\n private _routes: Routes = [];\n\n @Input({ required: true })\n set routes(routes: Routes) {\n this._routes = routes.filter(f => !f.redirectTo);\n }\n\n\n\n get routes(): Routes {\n return this._routes;\n }\n\n @Input()\n basePath = '';\n\n @Input()\n outlet!: string;\n\n protected readonly layoutWidth = signal<number | undefined>(undefined);\n\n protected readonly layoutHeight = signal<number | undefined>(undefined);\n\n protected readonly level2Routes = signal(new Map<Route, Routes>());\n\n protected readonly currentUrl = signal('');\n\n protected readonly loadingRoutes = signal(new Set<Route>());\n\n protected readonly asideOpened = signal(window.innerWidth >= 768);\n\n private resizeObserver?: ResizeObserver;\n\n private mutationObserver?: MutationObserver;\n\n private resizing = false;\n\n private resizeStartX = 0;\n\n private resizeStartY = 0;\n\n private resizeStartWidth = 0;\n\n private resizeStartHeight = 0;\n\n readonly sub = new Subscription();\n\n private readonly cdr = inject(ChangeDetectorRef);\n\n private readonly minDialogWidth = 500;\n\n private readonly minDialogHeight = 350;\n\n protected get isDialogMode(): boolean {\n const windowElement = this.getWindowElement();\n\n if (!windowElement) {\n return false;\n }\n\n return !windowElement.classList.contains('taon-fullscreen');\n }\n\n private get basePathSegments(): string[] {\n return this.basePath.split('/').filter(Boolean);\n }\n\n protected get normalizedBasePath(): string {\n const value = '/' + this.basePath.split('/').filter(Boolean).join('/');\n\n return value === '/' ? '/' : value;\n }\n\n //#endregion\n\n //#region constructor\n\n constructor(\n private readonly router: Router,\n private readonly hostElement: ElementRef<HTMLElement>,\n ) {}\n\n //#endregion\n\n //#region lifecycle\n\n async ngOnInit(): Promise<void> {\n await this.loadCurrentLevel1Route();\n\n this.router.events\n .pipe(filter(event => event instanceof NavigationEnd))\n .subscribe(async () => {\n await this.loadCurrentLevel1Route();\n });\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n const windowElement = this.getWindowElement();\n // console.log('[windowElement] should not be undefined', windowElement);\n this.updateLayoutSize();\n this.startWindowObservers();\n\n // TODO @LAST issue with reloading transation without setOneLanguagePernament\n // this.sub.add(\n // this.t.isLoadingLang$.subscribe(() => {\n // setTimeout(() => {\n // console.log('RERENDER! after timeout', Translation.manager);\n // this.cdr.detectChanges();\n // }, 1000);\n // }),\n // );\n }, 500); // TODO QUICK_FIX\n }\n\n // private waitForWindowElement(\n // callback: (windowElement: HTMLElement) => void,\n // ): void {\n // const check = () => {\n // console.log('Waiting for window element...');\n // const windowElement = this.getWindowElement();\n\n // if (windowElement) {\n // callback(windowElement);\n // return;\n // }\n\n // requestAnimationFrame(check);\n // };\n\n // check();\n // }\n\n ngOnDestroy(): void {\n this.resizeObserver?.disconnect();\n this.mutationObserver?.disconnect();\n\n window.removeEventListener('pointermove', this.resize);\n\n window.removeEventListener('pointerup', this.stopResize);\n }\n\n //#endregion\n\n //#region window / layout\n\n private getWindowElement(): HTMLElement | undefined {\n return (\n document.querySelector<HTMLElement>('.taon-window') ??\n document.querySelector<HTMLElement>('.taon-window-full') ??\n undefined\n );\n }\n\n private getDraggablePanelElement(): HTMLElement | undefined {\n return (\n document.querySelector<HTMLElement>('.taon-draggable-panel') ?? undefined\n );\n }\n\n private startWindowObservers(): void {\n this.resizeObserver?.disconnect();\n this.mutationObserver?.disconnect();\n\n const host = this.hostElement.nativeElement;\n\n const windowElement = this.getWindowElement();\n\n // console.log('WINDOW', this.getWindowElement());\n\n // console.log('PANEL', this.getDraggablePanelElement());\n\n // ================================================================\n // SIZE CHANGES\n // ================================================================\n\n const observedElement = windowElement ?? host.parentElement;\n\n if (observedElement) {\n this.resizeObserver = new ResizeObserver(() => {\n this.updateLayoutSize();\n });\n\n this.resizeObserver.observe(observedElement);\n }\n\n // ================================================================\n // DIALOG <-> FULLSCREEN STATE CHANGES\n // ================================================================\n\n if (windowElement) {\n this.mutationObserver = new MutationObserver(mutations => {\n const classChanged = mutations.some(\n mutation =>\n mutation.type === 'attributes' &&\n mutation.attributeName === 'class',\n );\n // console.log('Class changed:', classChanged);\n\n if (!classChanged) {\n return;\n }\n\n this.windowModeChanged(windowElement);\n });\n\n this.mutationObserver.observe(windowElement, {\n attributes: true,\n attributeFilter: ['class'],\n });\n }\n }\n\n private windowModeChanged(windowElement: HTMLElement): void {\n const fullscreen = windowElement.classList.contains('taon-fullscreen');\n\n if (fullscreen) {\n this.clearWindowResize(windowElement);\n }\n\n requestAnimationFrame(() => {\n this.updateLayoutSize();\n });\n }\n\n private clearWindowResize(windowElement: HTMLElement): void {\n windowElement.style.removeProperty('width');\n\n windowElement.style.removeProperty('height');\n }\n\n @HostListener('window:resize')\n protected windowResized(): void {\n this.updateLayoutSize();\n }\n\n private updateLayoutSize(): void {\n const host = this.hostElement.nativeElement;\n\n const hostRect = host.getBoundingClientRect();\n\n const windowElement = this.getWindowElement();\n\n const dialogMode =\n !!windowElement && !windowElement.classList.contains('taon-fullscreen');\n\n // ================================================================\n // NORMAL / FULLSCREEN\n // ================================================================\n\n if (!dialogMode) {\n this.layoutWidth.set(Math.floor(hostRect.width));\n\n this.layoutHeight.set(\n Math.max(0, Math.floor(window.innerHeight - hostRect.top)),\n );\n\n return;\n }\n\n // ================================================================\n // DIALOG\n // ================================================================\n\n const windowRect = windowElement.getBoundingClientRect();\n\n this.layoutWidth.set(\n Math.max(0, Math.floor(windowRect.right - hostRect.left)),\n );\n\n this.layoutHeight.set(\n Math.max(0, Math.floor(windowRect.bottom - hostRect.top)),\n );\n }\n\n //#endregion\n\n //#region dialog resizing\n\n protected startResize(event: PointerEvent): void {\n if (!this.isDialogMode) {\n return;\n }\n\n const windowElement = this.getWindowElement();\n\n if (!windowElement) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const windowRect = windowElement.getBoundingClientRect();\n\n this.resizing = true;\n\n this.resizeStartX = event.clientX;\n\n this.resizeStartY = event.clientY;\n\n this.resizeStartWidth = windowRect.width;\n\n this.resizeStartHeight = windowRect.height;\n\n window.addEventListener('pointermove', this.resize);\n\n window.addEventListener('pointerup', this.stopResize);\n }\n\n private readonly resize = (event: PointerEvent): void => {\n if (!this.resizing) {\n return;\n }\n\n const windowElement = this.getWindowElement();\n\n if (!windowElement) {\n return;\n }\n\n const windowRect = windowElement.getBoundingClientRect();\n\n const deltaX = event.clientX - this.resizeStartX;\n\n const deltaY = event.clientY - this.resizeStartY;\n\n const maxWidth = window.innerWidth - windowRect.left;\n\n const maxHeight = window.innerHeight - windowRect.top;\n\n const width = Math.min(\n maxWidth,\n Math.max(this.minDialogWidth, this.resizeStartWidth + deltaX),\n );\n\n const height = Math.min(\n maxHeight,\n Math.max(this.minDialogHeight, this.resizeStartHeight + deltaY),\n );\n\n windowElement.style.width = `${width}px`;\n\n windowElement.style.height = `${height}px`;\n };\n\n private readonly stopResize = (): void => {\n if (!this.resizing) {\n return;\n }\n\n this.resizing = false;\n\n window.removeEventListener('pointermove', this.resize);\n\n window.removeEventListener('pointerup', this.stopResize);\n };\n\n //#endregion\n\n //#region aside\n\n protected toggleAside(): void {\n this.asideOpened.update(opened => !opened);\n }\n\n protected closeAside(): void {\n this.asideOpened.set(false);\n }\n\n private closeAsideOnMobile(): void {\n if (window.innerWidth < 768) {\n this.closeAside();\n }\n }\n\n //#endregion\n\n //#region level 1\n\n protected async level1Clicked(route: Route): Promise<void> {\n if (\n !route.path ||\n !this.menuContext.isVisible(route) ||\n this.menuContext.isDisabled(route)\n ) {\n return;\n }\n\n await this.navigateTo([route.path]);\n\n await this.ensureLevel2Loaded(route);\n\n if (!this.isExpandable(route)) {\n this.closeAsideOnMobile();\n }\n }\n\n protected async panelExpanded(\n route: Route,\n expanded: boolean,\n ): Promise<void> {\n if (\n !expanded ||\n !this.menuContext.isVisible(route) ||\n this.menuContext.isDisabled(route)\n ) {\n return;\n }\n\n await this.ensureLevel2Loaded(route);\n }\n\n protected isLevel1Active(route: Route): boolean {\n if (!route.path) {\n return false;\n }\n\n return this.isPathActive([route.path]);\n }\n\n //#endregion\n\n //#region level 2\n\n protected async level2Clicked(level1: Route, level2: Route): Promise<void> {\n if (\n !level1.path ||\n !level2.path ||\n !this.menuContext.isVisible(level1) ||\n this.menuContext.isDisabled(level1) ||\n !this.menuContext.isVisible(level2) ||\n this.menuContext.isDisabled(level2)\n ) {\n return;\n }\n\n await this.navigateTo([level1.path, level2.path]);\n\n this.closeAsideOnMobile();\n }\n\n protected getLevel2Routes(route: Route): Routes {\n return this.level2Routes().get(route) ?? [];\n }\n\n protected isLevel2Active(level1: Route, level2: Route): boolean {\n if (!level1.path || !level2.path) {\n return false;\n }\n\n return this.isPathActive([level1.path, level2.path]);\n }\n\n protected level2Link(level1: Route, level2: Route): string[] {\n return [this.normalizedBasePath, level1.path!, level2.path!];\n }\n\n //#endregion\n\n //#region navigation\n\n private outletBaseMatrixParams(): Record<string, string> {\n if (!this.outlet) {\n return {};\n }\n\n const tree = this.router.parseUrl(this.router.url);\n\n const outletGroup = tree.root.children[this.outlet];\n\n return {\n ...outletGroup?.segments[0]?.parameters,\n };\n }\n\n private async navigateTo(routeSegments: string[]): Promise<boolean> {\n const segments = [...this.basePathSegments, ...routeSegments];\n\n if (this.outlet) {\n const [firstSegment, ...remainingSegments] = segments;\n\n if (!firstSegment) {\n return false;\n }\n\n const matrixParams = this.outletBaseMatrixParams();\n\n return this.router.navigate([\n {\n outlets: {\n [this.outlet]: [firstSegment, matrixParams, ...remainingSegments],\n },\n },\n ]);\n }\n\n return this.router.navigate(['/', ...segments]);\n }\n\n //#endregion\n\n //#region route loading\n\n private async ensureLevel2Loaded(level1: Route): Promise<void> {\n if (this.level2Routes().has(level1)) {\n return;\n }\n\n if (this.loadingRoutes().has(level1)) {\n return;\n }\n\n this.setLoading(level1, true);\n\n try {\n const lazyRoutes = await this.loadRouteChildren(level1);\n\n const level2 = this.unwrapEmptyPathRoutes(lazyRoutes);\n\n const map = new Map(this.level2Routes());\n\n map.set(level1, level2);\n\n this.level2Routes.set(map);\n } finally {\n this.setLoading(level1, false);\n }\n }\n\n private async loadRouteChildren(route: Route): Promise<Routes> {\n if (route.children) {\n return route.children;\n }\n\n const adminRoute = route as TaonAdminRoute;\n\n if (adminRoute.loadAdminChildren) {\n return await adminRoute.loadAdminChildren();\n }\n\n return [];\n }\n\n private unwrapEmptyPathRoutes(routes: Routes): Routes {\n const result: Routes = [];\n\n for (const route of routes) {\n if (route.path === '' && route.children) {\n result.push(...this.unwrapEmptyPathRoutes(route.children));\n\n continue;\n }\n\n if (route.redirectTo !== undefined || route.data?.['hideInNavigation']) {\n continue;\n }\n\n result.push(route);\n }\n\n return result;\n }\n\n //#endregion\n\n //#region direct url support\n\n private async loadCurrentLevel1Route(): Promise<void> {\n const relativeSegments = this.currentRelativeSegments();\n\n const level1Path = relativeSegments[0];\n\n if (!level1Path) {\n return;\n }\n\n const level1 = this.routes.find(route => route.path === level1Path);\n\n if (level1) {\n await this.ensureLevel2Loaded(level1);\n }\n }\n\n //#endregion\n\n //#region helpers\n\n protected label(route: Route): string {\n return (\n resolveTaonAdminMenuItem(route.data?.['menuItem']) ??\n this.startCase(route.path ?? '')\n );\n }\n\n protected color(route: Route): string {\n return route.data?.['color'];\n }\n\n protected icon(route: Route): string | undefined {\n return route.data?.['icon'];\n }\n\n protected isLoading(route: Route): boolean {\n return this.loadingRoutes().has(route);\n }\n\n protected isExpandable(route: Route): boolean {\n return route.data?.['expandable'] !== false;\n }\n\n private isPathActive(routeSegments: string[]): boolean {\n const current = this.currentRelativeSegments();\n\n if (current.length < routeSegments.length) {\n return false;\n }\n\n return routeSegments.every((segment, index) => current[index] === segment);\n }\n\n private currentRelativeSegments(): string[] {\n const current = this.currentOutletSegments();\n\n return current.slice(this.basePathSegments.length);\n }\n\n private currentOutletSegments(): string[] {\n const tree = this.router.parseUrl(this.router.url);\n\n const outletName = this.outlet || 'primary';\n\n const group = tree.root.children[outletName];\n\n if (!group) {\n return [];\n }\n\n return group.segments.map(segment => segment.path);\n }\n\n private setLoading(route: Route, loading: boolean): void {\n const set = new Set(this.loadingRoutes());\n\n if (loading) {\n set.add(route);\n } else {\n set.delete(route);\n }\n\n this.loadingRoutes.set(set);\n }\n\n private startCase(value: string): string {\n return value\n .replace(/[-_]+/g, ' ')\n .replace(/\\b\\w/g, char => char.toUpperCase());\n }\n\n //#endregion\n}","<div\n #layout\n class=\"admin-layout\"\n [class.admin-layout-dialog]=\"isDialogMode\"\n [style.width.px]=\"layoutWidth() || null\"\n [style.height.px]=\"layoutHeight() || null\">\n <!-- ============================================================= -->\n <!-- HEADER -->\n <!-- ============================================================= -->\n\n <header class=\"admin-header\">\n <button\n mat-icon-button\n type=\"button\"\n [attr.aria-label]=\"t.gettext('Toggle admin menu')\"\n class=\"admin-menu-button\"\n (click)=\"toggleAside()\">\n <mat-icon>menu</mat-icon>\n </button>\n\n <div class=\"admin-header-content\">\n <ng-content select=\"[header]\" />\n </div>\n </header>\n\n <!-- ============================================================= -->\n <!-- BODY -->\n <!-- ============================================================= -->\n\n <div class=\"admin-body\">\n <!-- =========================================================== -->\n <!-- MOBILE BACKDROP -->\n <!-- =========================================================== -->\n\n @if (asideOpened()) {\n <div\n class=\"admin-aside-backdrop\"\n (click)=\"closeAside()\"></div>\n }\n\n <!-- =========================================================== -->\n <!-- ASIDE -->\n <!-- =========================================================== -->\n\n <aside\n class=\"admin-aside\"\n [class.admin-aside-open]=\"asideOpened()\">\n <!-- ========================================================= -->\n <!-- SCROLLABLE ASIDE CONTENT -->\n <!-- ========================================================= -->\n\n <div class=\"admin-aside-content\">\n <mat-accordion class=\"admin-menu\">\n @for (level1 of routes; track level1.path) {\n @if (menuContext.isVisible(level1)) {\n @if (isExpandable(level1)) {\n <mat-expansion-panel\n [disabled]=\"menuContext.isDisabled(level1)\"\n [expanded]=\"\n isLevel1Active(level1) && !menuContext.isDisabled(level1)\n \"\n (expandedChange)=\"panelExpanded(level1, $event)\">\n <mat-expansion-panel-header\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level1)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level1)\"\n (click)=\"level1Clicked(level1)\">\n <mat-panel-title>\n <div class=\"admin-menu-item\">\n @if (icon(level1)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ icon(level1) }}\n </mat-icon>\n }\n\n <span\n [class.font-semibold]=\"isLevel1Active(level1)\"\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ label(level1) }}\n </span>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div class=\"admin-level2\">\n @if (isLoading(level1)) {\n <div class=\"admin-loading\">{{ t.gettext('Loading...') }}</div>\n } @else {\n @for (\n level2 of getLevel2Routes(level1);\n track level2.path\n ) {\n @if (menuContext.isVisible(level2)) {\n <a\n class=\"admin-level2-item\"\n role=\"button\"\n [attr.tabindex]=\"\n menuContext.isDisabled(level2) ? -1 : 0\n \"\n [attr.aria-disabled]=\"\n menuContext.isDisabled(level2)\n \"\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level2)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level2)\"\n [class.admin-level2-item-active]=\"\n isLevel2Active(level1, level2)\n \"\n (click)=\"level2Clicked(level1, level2)\"\n (keydown.enter)=\"level2Clicked(level1, level2)\"\n (keydown.space)=\"\n $event.preventDefault();\n level2Clicked(level1, level2)\n \">\n @if (icon(level2)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level2),\n }\">\n {{ icon(level2) }}\n </mat-icon>\n }\n\n <span\n [ngStyle]=\"{\n color: color(level2),\n }\">\n {{ label(level2) }}\n </span>\n </a>\n }\n }\n }\n </div>\n </mat-expansion-panel>\n } @else {\n <a\n class=\"admin-level1-item\"\n role=\"button\"\n [attr.tabindex]=\"menuContext.isDisabled(level1) ? -1 : 0\"\n [attr.aria-disabled]=\"menuContext.isDisabled(level1)\"\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level1)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level1)\"\n [class.admin-level1-item-active]=\"isLevel1Active(level1)\"\n (click)=\"level1Clicked(level1)\"\n (keydown.enter)=\"level1Clicked(level1)\"\n (keydown.space)=\"\n $event.preventDefault(); level1Clicked(level1)\n \">\n @if (icon(level1)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ icon(level1) }}\n </mat-icon>\n }\n\n <span\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ label(level1) }}\n </span>\n </a>\n }\n }\n }\n </mat-accordion>\n </div>\n\n <!-- ========================================================= -->\n <!-- ASIDE FOOTER -->\n <!-- ========================================================= -->\n\n <footer class=\"admin-aside-footer\">\n <ng-content select=\"[asideFooter]\" />\n </footer>\n </aside>\n\n <!-- =========================================================== -->\n <!-- MAIN -->\n <!-- =========================================================== -->\n\n <main class=\"admin-main\">\n <!-- ========================================================= -->\n <!-- LEVEL 3+ TABS -->\n <!-- ========================================================= -->\n\n <taon-admin-page-tabs\n class=\"admin-tabs\"\n [routes]=\"routes\"\n [basePath]=\"basePath\"\n [outlet]=\"outlet\" />\n\n <!-- ========================================================= -->\n <!-- SCROLLABLE CONTENT -->\n <!-- ========================================================= -->\n\n <div class=\"admin-content\">\n <router-outlet />\n </div>\n\n <!-- ========================================================= -->\n <!-- CONTENT FOOTER -->\n <!-- ========================================================= -->\n\n <footer class=\"admin-content-footer\">\n <ng-container\n [ngTemplateOutlet]=\"\n taonAdminContentFooterService.currentTemplate()\n \" />\n </footer>\n </main>\n </div>\n\n <!-- ============================================================= -->\n <!-- DIALOG RESIZE HANDLE -->\n <!-- ============================================================= -->\n\n @if (isDialogMode) {\n <div\n class=\"admin-resize-handle\"\n (pointerdown)=\"startResize($event)\"></div>\n }\n</div>\n","import { Component, ViewChild } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n template: '',\n})\nexport abstract class TaonBaseAdminLayoutPage {\n @ViewChild(RouterOutlet)\n routerOutlet!: RouterOutlet;\n\n get hasActiveChildRoute(): boolean {\n return this.routerOutlet?.isActivated ?? false;\n }\n}\n","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-admin-welcome/taon-admin-welcome.component.ts', {\"src/lib/taon-admin-welcome/taon-admin-welcome.component.html\":{\"en-US\":async () => (await import('./i18n/taon-admin-welcome.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-admin-welcome.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-admin-welcome.component.html.de-DE.i18n.data')).default},\"src/lib/taon-admin-welcome/taon-admin-welcome.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-admin-welcome.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-admin-welcome.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-admin-welcome.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'app-taon-admin-welcome',\n templateUrl: './taon-admin-welcome.component.html',\n styleUrls: ['./taon-admin-welcome.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonAdminWelcomeComponent {\n t = t.for(this);\n}","<!-- <router-outlet></router-outlet> -->\n<p>\n {{ t.gettext('Welcome to Taon Admin') }}\n</p>\n","//namespace TaonAdminWelcomeModels\n\n//end of namespace TaonAdminWelcomeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '../index';\n//#endregion\n\nexport const TaonAdminWelcomeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-admin-welcome.component').then(m => m.TaonAdminWelcomeComponent),\n\n // children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n // ],\n },\n];\n\n/**\n * By default exporting TaonAdminWelcomeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonAdminWelcomeRoutes;","//#region imports\nimport { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.ts', {\"src/lib/taon-backoffice-notifications/taon-backoffice-notifications.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.html\":{\"en-US\":async () => (await import('./i18n/taon-error-details-dialog.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-details-dialog.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-details-dialog.component.html.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-toast.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-error-toast.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-toast.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-toast.component.ts.de-DE.i18n.data')).default}} as any);\n\nexport interface TaonErrorDetailsDialogData {\n message: string;\n details: string;\n}\n\ntype TaonEditor = 'vscode' | 'vscodium';\n\ninterface TaonStackTraceLine {\n text: string;\n file?: string;\n line?: number;\n column?: number;\n}\n\n@Component({\n selector: 'taon-error-details-dialog',\n standalone: true,\n imports: [MatDialogModule, MatButtonModule, MatButtonToggleModule],\n templateUrl: './taon-error-details-dialog.component.html',\n styleUrls: ['./taon-error-details-dialog.component.scss'],\n})\nexport class TaonErrorDetailsDialogComponent {\n //#region injections\n readonly t = t.for(this);\n\n readonly data = inject<TaonErrorDetailsDialogData>(MAT_DIALOG_DATA);\n //#endregion\n\n //#region constants\n private readonly editorStorageKey = 'taon-error-details-editor';\n //#endregion\n\n //#region state\n editor: TaonEditor = this.loadEditor();\n\n readonly stackLines = this.parseStackTrace(this.data.details);\n //#endregion\n\n //#region editor\n setEditor(editor: TaonEditor): void {\n this.editor = editor;\n\n localStorage.setItem(this.editorStorageKey, editor);\n }\n\n private loadEditor(): TaonEditor {\n const editor = localStorage.getItem(this.editorStorageKey);\n\n if (editor === 'vscode' || editor === 'vscodium') {\n return editor;\n }\n\n return 'vscode';\n }\n //#endregion\n\n //#region stack trace\n private parseStackTrace(stack: string): TaonStackTraceLine[] {\n return stack\n .split('\\n')\n .map(text => text.trimEnd())\n .filter(text => text.trim().length > 0)\n .map(text => this.parseStackTraceLine(text));\n }\n\n private parseStackTraceLine(text: string): TaonStackTraceLine {\n /**\n * Matches:\n *\n * /Users/test/file.ts:10:20\n *\n * C:\\projects\\test\\file.ts:10:20\n *\n * at something (/Users/test/file.ts:10:20)\n */\n const match = text.match(/((?:[A-Za-z]:[\\\\/]|\\/)[^()\\n]+?):(\\d+):(\\d+)/);\n\n if (!match) {\n return {\n text,\n };\n }\n\n return {\n text,\n file: match[1],\n line: Number(match[2]),\n column: Number(match[3]),\n };\n }\n //#endregion\n\n //#region open editor\n openStackLine(stackLine: TaonStackTraceLine): void {\n if (!stackLine.file || !stackLine.line) {\n return;\n }\n\n const url = this.createEditorUrl(\n stackLine.file,\n stackLine.line,\n stackLine.column,\n );\n\n window.location.href = url;\n }\n\n private createEditorUrl(file: string, line: number, column?: number): string {\n const protocol = this.editor === 'vscodium' ? 'vscodium' : 'vscode';\n\n const location = [file, line, column]\n .filter(value => value !== undefined)\n .join(':');\n\n return `${protocol}://file${location}`;\n }\n //#endregion\n}","<h2 mat-dialog-title>{{ t.gettext('Error details') }}</h2>\n\n<mat-dialog-content>\n <div class=\"error-message\">\n {{ data.message }}\n </div>\n\n <div class=\"editor-selector\">\n <span class=\"editor-selector-label\">{{ t.gettext('I am using editor:') }}</span>\n\n <mat-button-toggle-group\n [value]=\"editor\"\n (change)=\"setEditor($event.value)\"\n [attr.aria-label]=\"t.gettext('Code editor')\">\n <mat-button-toggle value=\"vscode\"> VS Code </mat-button-toggle>\n\n <mat-button-toggle value=\"vscodium\"> VSCodium </mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n\n <pre\n class=\"error-details\"><code>@for (stackLine of stackLines; track $index) {\n@if (stackLine.file) {<a\n class=\"stack-link\"\n [title]=\"\n t.gettext('Open [[ file ]]:[[ line ]]:[[ column ]]', {\n file: stackLine.file,\n line: stackLine.line,\n column: stackLine.column,\n })\n \"\n (click)=\"openStackLine(stackLine)\">{{ stackLine.text }}</a>} @else {{{ stackLine.text }}}{{ '\\n' }}\n}</code></pre>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\">\n <button\n mat-button\n mat-dialog-close>\n {{ t.gettext('Close') }}\n </button>\n</mat-dialog-actions>\n","import { Component, inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { HotToastRef } from '@ngneat/hot-toast';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonErrorDetailsDialogComponent } from './taon-error-details-dialog.component';\n\nconst t = Translation.for('src/lib/taon-backoffice-notifications/taon-error-toast.component.ts', {\"src/lib/taon-backoffice-notifications/taon-backoffice-notifications.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.html\":{\"en-US\":async () => (await import('./i18n/taon-error-details-dialog.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-details-dialog.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-details-dialog.component.html.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-toast.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-error-toast.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-toast.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-toast.component.ts.de-DE.i18n.data')).default}} as any);\n\nexport interface TaonErrorToastData {\n title: string;\n details: string;\n}\n\n@Component({\n selector: 'taon-error-toast',\n standalone: true,\n template: `\n <div\n class=\"taon-error-toast\"\n (click)=\"showDetails()\">\n <div>{{ data.title }}</div>\n\n <small>{{ t.gettext('Click for details') }}</small>\n </div>\n `,\n styles: [\n `\n .taon-error-toast {\n cursor: pointer;\n }\n\n small {\n display: block;\n margin-top: 4px;\n opacity: 0.7;\n }\n `,\n ],\n})\nexport class TaonErrorToastComponent {\n readonly t = t.for(this);\n\n private readonly toastRef =\n inject<HotToastRef<TaonErrorToastData>>(HotToastRef);\n\n private readonly dialog = inject(MatDialog);\n\n readonly data = this.toastRef.data;\n\n showDetails(): void {\n this.dialog.open(TaonErrorDetailsDialogComponent, {\n width: '800px',\n maxWidth: '95vw',\n data: {\n message: this.data.title,\n details: this.data.details,\n },\n });\n\n this.toastRef.close();\n }\n}","//#region imports\nimport { inject, Injectable } from '@angular/core';\nimport { HotToastService } from '@ngneat/hot-toast';\n\nimport {\n TaonNotificationInput,\n TaonNotificationOptions,\n} from './taon-backoffice-notifications.models';\nimport {\n TaonErrorToastComponent,\n TaonErrorToastData,\n} from './taon-error-toast.component';\n//#endregion\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TaonBackofficeNotificationsService {\n //#region injections\n private readonly toast = inject(HotToastService);\n //#endregion\n\n constructor() {\n this.toast.defaultConfig.dismissible = true;\n }\n\n //#region private methods\n private normalize(input: TaonNotificationInput): TaonNotificationOptions {\n return typeof input === 'string' ? { title: input } : input;\n }\n //#endregion\n\n //#region notifications\n success(input: TaonNotificationInput) {\n const { title } = this.normalize(input);\n\n return this.toast.success(title);\n }\n\n error(input: TaonNotificationInput) {\n const { title, details } = this.normalize(input);\n\n // Normal error - exactly as before\n if (!details) {\n return this.toast.error(title);\n }\n\n // Error with clickable details\n return this.toast.error<TaonErrorToastData>(TaonErrorToastComponent, {\n data: {\n title,\n details,\n },\n });\n }\n\n warn(input: TaonNotificationInput) {\n const { title } = this.normalize(input);\n\n return this.toast.warning(title);\n }\n\n info(input: TaonNotificationInput) {\n const { title } = this.normalize(input);\n\n return this.toast.info(title);\n }\n //#endregion\n}\n","//#region imports\nimport { Component, DestroyRef, inject, Input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { HttpResponseError, RestErrorResponseWrapper, Resource__NS__Cookies, Resource__NS__create, Resource__NS__globalInterceptors, Resource__NS__listenErrors, Resource__NS__methodsInterceptors } from 'ng2-rest/websql-prod';\nimport { getHttpStatus, TaonAdminService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonBackofficeNotificationsService } from './taon-backoffice-notifications.service';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-backoffice-notifications/taon-backoffice-notifications.component.ts', {\"src/lib/taon-backoffice-notifications/taon-backoffice-notifications.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-backoffice-notifications.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.html\":{\"en-US\":async () => (await import('./i18n/taon-error-details-dialog.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-details-dialog.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-details-dialog.component.html.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-details-dialog.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-details-dialog.component.ts.de-DE.i18n.data')).default},\"src/lib/taon-backoffice-notifications/taon-error-toast.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-error-toast.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-error-toast.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-error-toast.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-backoffice-notifications',\n standalone: true,\n templateUrl: './taon-backoffice-notifications.component.html',\n styleUrls: ['./taon-backoffice-notifications.component.scss'],\n})\nexport class TaonBackofficeNotificationsComponent {\n //#region injections\n t = t.for(this);\n\n private readonly notification = inject(TaonBackofficeNotificationsService);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly taonAdminService = inject(TaonAdminService);\n\n @Input() filter: (\n err: HttpResponseError<RestErrorResponseWrapper>,\n ) => HttpResponseError<RestErrorResponseWrapper>;\n\n private readonly shownNotifications = new Set<string>();\n\n private showErrorNotification(title: string, details?: string): void {\n const key = JSON.stringify([title, details]);\n\n if (this.shownNotifications.has(key)) {\n return;\n }\n\n this.shownNotifications.add(key);\n\n this.notification.error({\n title,\n details,\n });\n }\n\n //#endregion\n\n //#region constructor\n constructor() {\n Resource__NS__listenErrors\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((error: HttpResponseError<RestErrorResponseWrapper>) => {\n if (___NS__isFunction(this.filter)) {\n error = this.filter(error);\n }\n\n const jsonMsg = error?.body?.json;\n\n if (!jsonMsg?.message) {\n console.log({ error });\n }\n\n const statusCode = jsonMsg.status ?? error.statusCode;\n\n const code = jsonMsg?.code || getHttpStatus(statusCode);\n if (this.taonAdminService.shouldSkipShowingError(code as any)) {\n console.log(\n `[@taon-dev/sudo] Skipping notificaiton for message \"${jsonMsg.message}\" (code=${statusCode})`,\n );\n } else {\n const title =\n t.translate(jsonMsg.message) || t.gettext('Unknown error');\n\n const details = jsonMsg?.details;\n\n this.showErrorNotification(title, details);\n }\n });\n }\n //#endregion\n}","<!-- <p>\n notyfications works!\n</p> -->\n","import { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nexport interface TaonConfirmDialogData {\n title: string;\n message?: string;\n confirmText?: string;\n cancelText?: string;\n}\n\nconst t = Translation.for('src/lib/taon-confirm-dialog/taon-confirm-dialog.component.ts', {\"src/lib/taon-confirm-dialog/taon-confirm-dialog.component.html\":{\"en-US\":async () => (await import('./i18n/taon-confirm-dialog.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-confirm-dialog.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-confirm-dialog.component.html.de-DE.i18n.data')).default},\"src/lib/taon-confirm-dialog/taon-confirm-dialog.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-confirm-dialog.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-confirm-dialog.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-confirm-dialog.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-confirm-dialog',\n standalone: true,\n imports: [MatDialogModule, MatButtonModule],\n templateUrl: './taon-confirm-dialog.component.html',\n})\nexport class TaonConfirmDialogComponent {\n readonly t = t.for(this);\n\n readonly data = inject<TaonConfirmDialogData>(MAT_DIALOG_DATA);\n\n private readonly dialogRef = inject(MatDialogRef<TaonConfirmDialogComponent>);\n\n cancel(): void {\n this.dialogRef.close(false);\n }\n\n confirm(): void {\n this.dialogRef.close(true);\n }\n}","<div\n class=\"flex min-w-[320px] max-w-[560px] flex-col gap-6 p-6 text-gray-900 dark:text-gray-100 sm:p-7\">\n <!-- Header -->\n <h2 class=\"m-0 text-xl leading-snug font-medium sm:text-2xl\">\n {{ data.title }}\n </h2>\n\n <!-- Message -->\n @if (data.message) {\n <p\n class=\"m-0 whitespace-pre-line text-base leading-relaxed text-gray-600 dark:text-gray-300 sm:text-lg\">\n {{ data.message }}\n </p>\n }\n\n <!-- Actions -->\n <div class=\"flex flex-wrap items-center justify-end gap-3\">\n <button\n mat-button\n type=\"button\"\n (click)=\"cancel()\">\n {{ data.cancelText || t.gettext('Cancel') }}\n </button>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n class=\"!rounded-full !px-6\"\n (click)=\"confirm()\">\n {{ data.confirmText || t.gettext('OK') }}\n </button>\n </div>\n</div>\n","//namespace TaonConfirmDialogModels\n\n//end of namespace TaonConfirmDialogModels\n","//#region imports\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatPaginatorModule, PageEvent } from '@angular/material/paginator';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MtxGridColumn, MtxGridModule } from '@ng-matero/extensions/grid';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { getDefaultModel } from 'ng2-rest/websql-prod';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n catchError,\n debounceTime,\n distinctUntilChanged,\n finalize,\n from,\n map,\n of,\n startWith,\n switchMap,\n tap,\n} from 'rxjs';\nimport { TaonBaseCrudController, TaonBaseEntity, TaonPaginationSort, TaonPaginationQuery, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Symbols__NS__classMethodsNames as TaonSymbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj as TaonSymbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty as TaonSymbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata__NS__className as TaonSymbols__NS__metadata__NS__className, Symbols__NS__metadata__NS__options__NS__controller as TaonSymbols__NS__metadata__NS__options__NS__controller, Symbols__NS__metadata__NS__options__NS__entity as TaonSymbols__NS__metadata__NS__options__NS__entity, Symbols__NS__metadata__NS__options__NS__migration as TaonSymbols__NS__metadata__NS__options__NS__migration, Symbols__NS__metadata__NS__options__NS__provider as TaonSymbols__NS__metadata__NS__options__NS__provider, Symbols__NS__metadata__NS__options__NS__repository as TaonSymbols__NS__metadata__NS__options__NS__repository, Symbols__NS__metadata__NS__options__NS__subscriber as TaonSymbols__NS__metadata__NS__options__NS__subscriber, Symbols__NS__old__NS__CIRCURAL_OBJECTS_MAP_BODY_PARAM as TaonSymbols__NS__old__NS__CIRCURAL_OBJECTS_MAP_BODY_PARAM, Symbols__NS__old__NS__CIRCURAL_OBJECTS_MAP_QUERY_PARAM as TaonSymbols__NS__old__NS__CIRCURAL_OBJECTS_MAP_QUERY_PARAM, Symbols__NS__old__NS__CLASS_DECORATOR_CONTEXT as TaonSymbols__NS__old__NS__CLASS_DECORATOR_CONTEXT, Symbols__NS__old__NS__ENDPOINT_META_CONFIG as TaonSymbols__NS__old__NS__ENDPOINT_META_CONFIG, Symbols__NS__old__NS__ERROR_MESSAGES_CLASS_NAME_MATCH as TaonSymbols__NS__old__NS__ERROR_MESSAGES_CLASS_NAME_MATCH, Symbols__NS__old__NS__HAS_TABLE_IN_DB as TaonSymbols__NS__old__NS__HAS_TABLE_IN_DB, Symbols__NS__old__NS__MAPPING_CONFIG_HEADER as TaonSymbols__NS__old__NS__MAPPING_CONFIG_HEADER, Symbols__NS__old__NS__MAPPING_CONFIG_HEADER_BODY_PARAMS as TaonSymbols__NS__old__NS__MAPPING_CONFIG_HEADER_BODY_PARAMS, Symbols__NS__old__NS__MAPPING_CONFIG_HEADER_QUERY_PARAMS as TaonSymbols__NS__old__NS__MAPPING_CONFIG_HEADER_QUERY_PARAMS, Symbols__NS__old__NS__MDC_KEY as TaonSymbols__NS__old__NS__MDC_KEY, Symbols__NS__old__NS__SOCKET_MSG as TaonSymbols__NS__old__NS__SOCKET_MSG, Symbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN as TaonSymbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN, Symbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN_DONE as TaonSymbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN_DONE, Symbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN_START as TaonSymbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN_START, Symbols__NS__old__NS__WEBSQL_REST_PROGRESS_TIMEOUT as TaonSymbols__NS__old__NS__WEBSQL_REST_PROGRESS_TIMEOUT, Symbols__NS__old__NS__X_TOTAL_COUNT as TaonSymbols__NS__old__NS__X_TOTAL_COUNT, Symbols__NS__orignalClassClonesObj as TaonSymbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME as TaonSymbols__NS__REALTIME, Symbols__NS__taonInstanceId as TaonSymbols__NS__taonInstanceId, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { TaonStor__NS__awaitAll, TaonStor__NS__inFile, TaonStor__NS__inIndexedDbStorage, TaonStor__NS__inJson, TaonStor__NS__inLocalstorage, TaonStor__NS__inSessionStorage } from 'taon-storage/websql-prod';\nimport { json5, ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-datatable/taon-datatable.component.ts', {\"src/lib/taon-datatable/taon-datatable.component.html\":{\"en-US\":async () => (await import('./i18n/taon-datatable.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-datatable.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-datatable.component.html.de-DE.i18n.data')).default},\"src/lib/taon-datatable/taon-datatable.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-datatable.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-datatable.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-datatable.component.ts.de-DE.i18n.data')).default}} as any);\n\nconst defaultColumns: MtxGridColumn[] = [\n {\n header: t.gettext('ID'),\n field: 'id',\n },\n {\n header: t.gettext('NAME'),\n field: 'name',\n },\n];\n\ntype SearchMode = 'simple' | 'advanced';\n\ntype TablePaginationPersistence =\n | 'none'\n | 'query-params'\n | 'local-storage'\n | 'session-storage';\n\ntype TableFilterPersistence = 'none' | 'query-params';\n\ninterface TablePaginationState {\n pageNumber: number;\n pageSize: number;\n}\n\ninterface TablePaginationStorage {\n (): TablePaginationState;\n ready(): Promise<void>;\n set(value: TablePaginationState): Promise<void>;\n}\n\n@Component({\n selector: 'taon-datatable',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatPaginatorModule,\n MatSelectModule,\n\n MtxGridModule,\n ],\n templateUrl: './taon-datatable.component.html',\n styleUrls: ['./taon-datatable.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TaonDatatableComponent implements OnInit {\n //#region fields & getters\n readonly t = t.for(this);\n\n private readonly cdr = inject(ChangeDetectorRef);\n\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly route = inject(ActivatedRoute);\n\n private readonly router = inject(Router);\n\n //#region inputs\n\n @Input()\n pageNumber = 1;\n\n @Input()\n pageSize = 10;\n\n @Input()\n pageSizeOptions: number[] = [5, 10, 20, 50, 100];\n\n noResultText = this.t.gettext('No records found');\n\n @Input()\n allowedColumns: string[] = [];\n\n @Input()\n expansionTemplate?: TemplateRef<any>;\n\n @Input()\n entityCrudController?: TaonBaseCrudController<any>;\n\n @Input()\n columns: MtxGridColumn[] = defaultColumns;\n\n @Input()\n hideSearch = false;\n\n @Input()\n hideAddButton = false;\n\n @Input()\n safe = false;\n\n @Input()\n searchMode: SearchMode = 'advanced';\n\n @Input()\n filtersTemplate?: TemplateRef<unknown>;\n\n @Input()\n storeTablePagination: TablePaginationPersistence = 'none';\n\n @Input()\n storeTableFilters: TableFilterPersistence = 'none';\n\n @Input()\n tableId?: string;\n\n /**\n * Optional custom backend pagination method.\n */\n @Input()\n callQueryMethod?: string;\n\n private _data?: any[];\n\n @Input()\n set data(value: any[] | undefined | null) {\n this._data = value ?? undefined;\n\n if (this._data) {\n this.pageNumber = 1;\n this.reload();\n }\n }\n\n get data(): any[] | undefined {\n return this._data;\n }\n\n get offlineMode(): boolean {\n return this.data !== undefined;\n }\n\n //#endregion\n\n //#region outputs\n\n @Output()\n readonly expansionChange = new EventEmitter<any>();\n\n @Output()\n readonly addingItem = new EventEmitter<void>();\n\n //#endregion\n\n //#region fields\n\n rows: any[] = [];\n\n totalElements = 0;\n\n isLoading = false;\n\n expandable = false;\n\n @Input() showPaginator: boolean;\n\n advancedSearchOpened = false;\n\n searchValue = '';\n\n columnFilters: Record<string, string> = {};\n\n sort?: TaonPaginationSort;\n\n private readonly reload$ = new BehaviorSubject<void>(undefined);\n\n private readonly searchChange$ = new Subject<string>();\n\n readonly data$: Observable<any[]> = this.reload$.pipe(\n switchMap(() => this.loadData()),\n );\n\n expandedRows = new Set<any>();\n\n private paginationStorage?: TablePaginationStorage;\n\n //#endregion\n\n //#region getters\n\n get entity(): typeof TaonBaseEntity | undefined {\n return this.entityCrudController?.entityClassResolveFn();\n }\n\n get filterableColumns(): MtxGridColumn[] {\n return this.columns.filter(column => Boolean(column.field));\n }\n\n //#endregion\n\n //#endregion\n\n //#region expansion\n onExpansionChange(event: any) {\n // console.log(event);\n // adapt this depending on exact MtxGrid event shape\n if (event.expanded) {\n this.expandedRows.add(event.data);\n } else {\n this.expandedRows.delete(event.data);\n }\n\n this.expansionChange.emit(event);\n }\n\n isExpanded(row: any): boolean {\n return this.expandedRows.has(row);\n }\n\n //#endregion\n\n //#region hooks\n\n ngOnInit(): void {\n this.prepareColumns();\n this.expandable = Boolean(this.expansionTemplate);\n\n this.showPaginator = ___NS__isBoolean(this.showPaginator)\n ? this.showPaginator\n : Boolean(this.entity) || this.offlineMode;\n\n if (this.storeTableFilters === 'query-params') {\n this.columnFilters = this.readQueryFilters();\n }\n\n void this.restorePagination().then(() => this.subscribeToData());\n }\n\n private subscribeToData(): void {\n this.searchChange$\n .pipe(\n debounceTime(400),\n distinctUntilChanged(),\n tap(search => {\n this.searchValue = search;\n this.pageNumber = 1;\n this.persistPagination();\n this.reload();\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n\n this.data$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(rows => {\n this.rows = rows;\n this.cdr.markForCheck();\n });\n }\n\n //#endregion\n\n //#region search\n\n searchChanged(value: string): void {\n this.searchChange$.next(value);\n }\n\n clearSearch(): void {\n this.searchValue = '';\n this.columnFilters = {};\n this.pageNumber = 1;\n\n this.persistCurrentTableState();\n this.reload();\n }\n\n applyAdvancedFilters(): void {\n this.pageNumber = 1;\n this.persistCurrentTableState();\n this.reload();\n }\n\n toggleAdvancedSearch(): void {\n this.advancedSearchOpened = !this.advancedSearchOpened;\n }\n\n //#endregion\n\n //#region pagination\n\n getNextPage(event: PageEvent): void {\n this.pageNumber = event.pageIndex + 1;\n\n this.pageSize = event.pageSize;\n\n this.persistPagination();\n this.reload();\n }\n\n private get tableIdentity(): string {\n const explicitId = this.tableId?.trim();\n if (explicitId) {\n return explicitId;\n }\n\n const routePath = this.route.pathFromRoot\n .map(route => route.snapshot.url.map(segment => segment.path).join('/'))\n .filter(Boolean)\n .join('/');\n const entityName = this.entity ? ClassHelpers__NS__getName(this.entity) : 'table';\n return `${entityName}-${routePath || 'root'}`;\n }\n\n private get queryParamPrefix(): string {\n return `dt.${encodeURIComponent(this.tableIdentity)}`;\n }\n\n private async restorePagination(): Promise<void> {\n const prefix = this.queryParamPrefix;\n\n if (this.storeTablePagination === 'query-params') {\n const pageNumber = Number(\n this.route.snapshot.queryParamMap.get(`${prefix}.page`),\n );\n const pageSize = Number(\n this.route.snapshot.queryParamMap.get(`${prefix}.pageSize`),\n );\n if (Number.isSafeInteger(pageNumber) && pageNumber > 0) {\n this.pageNumber = pageNumber;\n }\n if (Number.isSafeInteger(pageSize) && pageSize > 0) {\n this.pageSize = pageSize;\n }\n return;\n }\n\n if (\n this.storeTablePagination !== 'local-storage' &&\n this.storeTablePagination !== 'session-storage'\n ) {\n return;\n }\n\n const options = {\n keyOrPath: `datatable-${this.tableIdentity}-pagination`,\n defaultValue: {\n pageNumber: this.pageNumber,\n pageSize: this.pageSize,\n },\n };\n this.paginationStorage =\n this.storeTablePagination === 'local-storage'\n ? TaonStor__NS__inLocalstorage(options, TaonDatatableComponent)\n : TaonStor__NS__inSessionStorage(options, TaonDatatableComponent);\n\n try {\n await this.paginationStorage.ready();\n const state = this.paginationStorage();\n if (Number.isSafeInteger(state.pageNumber) && state.pageNumber > 0) {\n this.pageNumber = state.pageNumber;\n }\n if (Number.isSafeInteger(state.pageSize) && state.pageSize > 0) {\n this.pageSize = state.pageSize;\n }\n } catch (error) {\n console.error(\n '[taon-datatable] Unable to restore pagination state',\n error,\n );\n }\n }\n\n private persistPagination(): void {\n const state = {\n pageNumber: this.pageNumber,\n pageSize: this.pageSize,\n };\n\n if (this.storeTablePagination === 'query-params') {\n this.updateQueryParams({\n [`${this.queryParamPrefix}.page`]: String(state.pageNumber),\n [`${this.queryParamPrefix}.pageSize`]: String(state.pageSize),\n });\n } else if (this.paginationStorage) {\n void this.paginationStorage.set(state).catch(error => {\n console.error(\n '[taon-datatable] Unable to persist pagination state',\n error,\n );\n });\n }\n }\n\n private readQueryFilters(): Record<string, string> {\n const filterPrefix = `${this.queryParamPrefix}.filter.`;\n const filters: Record<string, string> = {};\n\n for (const key of this.route.snapshot.queryParamMap.keys) {\n if (!key.startsWith(filterPrefix)) {\n continue;\n }\n try {\n const field = decodeURIComponent(key.slice(filterPrefix.length));\n const value = this.route.snapshot.queryParamMap.get(key);\n if (field && value !== null) {\n filters[field] = value;\n }\n } catch (error) {\n console.error('[taon-datatable] Invalid filter query parameter', error);\n }\n }\n\n return filters;\n }\n\n private persistFilters(): void {\n if (this.storeTableFilters !== 'query-params') {\n return;\n }\n\n this.updateQueryParams(this.filterQueryUpdates());\n }\n\n private persistCurrentTableState(): void {\n if (\n this.storeTablePagination === 'query-params' &&\n this.storeTableFilters === 'query-params'\n ) {\n this.updateQueryParams({\n [`${this.queryParamPrefix}.page`]: String(this.pageNumber),\n [`${this.queryParamPrefix}.pageSize`]: String(this.pageSize),\n ...this.filterQueryUpdates(),\n });\n return;\n }\n\n this.persistPagination();\n this.persistFilters();\n }\n\n private filterQueryUpdates(): Record<string, string | null> {\n const filterPrefix = `${this.queryParamPrefix}.filter.`;\n const updates: Record<string, string | null> = {};\n for (const key of this.route.snapshot.queryParamMap.keys) {\n if (key.startsWith(filterPrefix)) {\n updates[key] = null;\n }\n }\n for (const [field, value] of Object.entries(\n this.cleanFilters(this.columnFilters),\n )) {\n updates[`${filterPrefix}${encodeURIComponent(field)}`] = value;\n }\n return updates;\n }\n\n private updateQueryParams(queryParams: Record<string, string | null>): void {\n void this.router\n .navigate([], {\n relativeTo: this.route,\n queryParams,\n queryParamsHandling: 'merge',\n replaceUrl: true,\n })\n .catch(error => {\n console.error(\n '[taon-datatable] Unable to update table query parameters',\n error,\n );\n });\n }\n\n //#endregion\n\n //#region sorting\n\n sortChanged(event: any): void {\n const field = event?.active ?? event?.field;\n\n const direction = event?.direction ?? '';\n\n this.sort = {\n field,\n direction,\n };\n\n this.pageNumber = 1;\n\n this.reload();\n }\n\n //#endregion\n\n //#region data\n\n reload(): void {\n this.reload$.next();\n }\n\n private getFieldValue(row: any, field: string): unknown {\n return field.split('.').reduce((value, key) => value?.[key], row);\n }\n\n private loadOfflineData(): any[] {\n let rows = [...(this.data ?? [])];\n\n //#region global search\n\n const search = this.searchValue.trim().toLowerCase();\n\n if (search) {\n rows = rows.filter(row =>\n this.columns.some(column => {\n if (!column.field) {\n return false;\n }\n\n const value = this.getFieldValue(row, String(column.field));\n\n return String(value ?? '')\n .toLowerCase()\n .includes(search);\n }),\n );\n }\n\n //#endregion\n\n //#region column filters\n\n const filters = this.cleanFilters(this.columnFilters);\n\n for (const [field, filterValue] of Object.entries(filters)) {\n const normalizedFilter = filterValue.toLowerCase();\n\n rows = rows.filter(row => {\n const value = this.getFieldValue(row, field);\n\n return String(value ?? '')\n .toLowerCase()\n .includes(normalizedFilter);\n });\n }\n\n //#endregion\n\n //#region sorting\n\n if (this.sort?.field && this.sort.direction) {\n const field = String(this.sort.field);\n const direction = this.sort.direction === 'desc' ? -1 : 1;\n\n rows.sort((a, b) => {\n const aValue = this.getFieldValue(a, field);\n const bValue = this.getFieldValue(b, field);\n\n if (aValue === bValue) {\n return 0;\n }\n\n if (aValue === undefined || aValue === null) {\n return -1 * direction;\n }\n\n if (bValue === undefined || bValue === null) {\n return 1 * direction;\n }\n\n if (typeof aValue === 'number' && typeof bValue === 'number') {\n return (aValue - bValue) * direction;\n }\n\n return (\n String(aValue).localeCompare(String(bValue), undefined, {\n numeric: true,\n sensitivity: 'base',\n }) * direction\n );\n });\n }\n\n //#endregion\n\n //#region pagination\n\n this.totalElements = rows.length;\n\n const start = (this.pageNumber - 1) * this.pageSize;\n const end = start + this.pageSize;\n\n return this.prepareRows(rows.slice(start, end));\n\n //#endregion\n }\n\n private loadData(): Observable<any[]> {\n if (this.offlineMode) {\n return of(this.loadOfflineData());\n }\n\n if (!this.entity || !this.entityCrudController) {\n this.totalElements = 0;\n return of([]);\n }\n\n this.isLoading = true;\n this.cdr.markForCheck();\n\n const query: TaonPaginationQuery = {\n pageNumber: this.pageNumber,\n pageSize: this.pageSize,\n search: this.searchValue,\n filters: this.cleanFilters(this.columnFilters),\n sort: this.sort,\n callQueryMethod: this.callQueryMethod as any,\n };\n\n //#region handle info when not allowed method on controller level\n\n if (!this.safe && !this.entityCrudController.paginationQuery(query)) {\n throw new Error(\n `Please enable paginationQuery() method in your\n controller ${ClassHelpers__NS__getName(this.entityCrudController)}\n\n @Controller({ allowedMethods: ['paginationQuery'] })\n class ${ClassHelpers__NS__getName(this.entityCrudController)} ..\n `,\n );\n }\n\n if (this.safe && !this.entityCrudController.paginationQuerySafe(query)) {\n throw new Error(\n `Please enable paginationQuerySafe() method in your controller\n ${ClassHelpers__NS__getName(this.entityCrudController)}\n\n @Controller({ allowedMethods: ['paginationQuerySafe'] })\n class ${ClassHelpers__NS__getName(this.entityCrudController)} ..\n `,\n );\n }\n\n //#endregion\n\n return from(\n (this.safe\n ? this.entityCrudController.paginationQuerySafe\n : this.entityCrudController.paginationQuery)(query).request()\n .observable,\n ).pipe(\n tap(response => {\n this.totalElements =\n Number(response.headers.get(TaonSymbols__NS__old__NS__X_TOTAL_COUNT)) || 0;\n }),\n\n map(response => this.prepareRows(response.body.json)),\n\n catchError(error => {\n console.error(\n `[taon-datatable] Unable to load data from ` +\n `${ClassHelpers__NS__getName(this.entityCrudController)} ${\n this.safe ? 'paginationQuerySafe' : 'paginationQuery'\n }`,\n error,\n );\n\n return of([]);\n }),\n\n finalize(() => {\n this.isLoading = false;\n this.cdr.markForCheck();\n }),\n );\n }\n\n //#endregion\n\n //#region helpers\n\n private cleanFilters(\n filters: Record<string, string>,\n ): Record<string, string> {\n return Object.fromEntries(\n Object.entries(filters)\n .filter(\n ([, value]) =>\n value !== undefined &&\n value !== null &&\n String(value).trim() !== '',\n )\n .map(([key, value]) => [key, String(value).trim()]),\n );\n }\n\n private prepareRows(rows: any[]): any[] {\n return rows.map(row => {\n // const result = {\n // ...row,\n // };\n\n // for (const key of Object.keys(result)) {\n // if (___NS__isObject(result[key])) {\n // result[key] = json5.stringify(result[key]);\n // }\n // }\n\n return row;\n });\n }\n\n private prepareColumns(): void {\n const entityClass = this.entity;\n\n if (!entityClass) {\n return;\n }\n\n const usingDefaultColumns = ___NS__isEqual(this.columns, defaultColumns);\n\n if (!usingDefaultColumns) {\n return;\n }\n\n try {\n const props = Object.keys(getDefaultModel(entityClass as Function) || {});\n\n let columns = props\n .filter(prop =>\n this.allowedColumns.length > 0\n ? this.allowedColumns.includes(prop)\n : true,\n )\n .map(\n prop =>\n ({\n header: ___NS__upperCase(prop),\n field: prop,\n }) as MtxGridColumn,\n );\n\n const extra = this.allowedColumns.filter(field => !props.includes(field));\n\n columns = [\n ...columns,\n ...extra.map(\n field =>\n ({\n header: ___NS__upperCase(field),\n field,\n }) as MtxGridColumn,\n ),\n ];\n\n this.columns = columns;\n } catch (error) {\n console.error('[taon-datatable] Unable to generate columns', error);\n }\n }\n\n //#endregion\n}","<div class=\"flex w-full flex-col gap-3\">\n <!-- #region toolbar -->\n @if (!hideSearch) {\n <div\n class=\"flex w-full flex-col gap-2 rounded-lg border border-gray-200 bg-white p-3 shadow-sm dark:border-gray-700 dark:bg-gray-900 md:flex-row md:items-center\">\n <!-- global search -->\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"min-w-0 flex-1\">\n <mat-icon matPrefix> search </mat-icon>\n\n <input\n matInput\n [placeholder]=\"t.gettext('Search...')\"\n [value]=\"searchValue\"\n (input)=\"searchChanged($any($event.target).value)\" />\n\n @if (searchValue) {\n <button\n mat-icon-button\n matSuffix\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n\n <!-- advanced search -->\n @if (searchMode === 'advanced') {\n <button\n mat-stroked-button\n type=\"button\"\n (click)=\"toggleAdvancedSearch()\">\n <mat-icon> tune </mat-icon>\n\n {{ t.gettext('Filters') }}\n\n @if (advancedSearchOpened) {\n <mat-icon> expand_less </mat-icon>\n } @else {\n <mat-icon> expand_more </mat-icon>\n }\n </button>\n }\n\n <!-- refresh -->\n <button\n mat-icon-button\n type=\"button\"\n [title]=\"t.gettext('Refresh')\"\n (click)=\"reload()\">\n <mat-icon> refresh </mat-icon>\n </button>\n\n <!-- add -->\n @if (!hideAddButton) {\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"addingItem.emit()\">\n <mat-icon> add </mat-icon>\n\n {{ t.gettext('Add') }}\n </button>\n }\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region advanced filters -->\n @if (!hideSearch && searchMode === 'advanced' && advancedSearchOpened) {\n <div\n class=\"grid grid-cols-1 gap-3 rounded-lg border border-gray-200 bg-gray-50 p-4 shadow-sm dark:border-gray-700 dark:bg-gray-800 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4\">\n @if (filtersTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"filtersTemplate\"\n [ngTemplateOutletContext]=\"{ filters: columnFilters }\">\n </ng-container>\n } @else {\n @for (column of filterableColumns; track column.field) {\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"w-full\">\n <mat-label>\n {{ column.header }}\n </mat-label>\n\n <input\n matInput\n [(ngModel)]=\"columnFilters[$any(column.field)]\"\n (keyup.enter)=\"applyAdvancedFilters()\" />\n </mat-form-field>\n }\n }\n\n <div\n class=\"flex items-center justify-end gap-2 md:col-span-2 lg:col-span-3 xl:col-span-4\">\n <button\n mat-button\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon> filter_alt_off </mat-icon>\n\n {{ t.gettext('Clear') }}\n </button>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"applyAdvancedFilters()\">\n <mat-icon> filter_alt </mat-icon>\n\n {{ t.gettext('Apply filters') }}\n </button>\n </div>\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region grid -->\n <div\n class=\"relative min-h-[250px] overflow-hidden rounded-lg border border-gray-200 bg-white shadow-sm dark:border-gray-700 dark:bg-gray-900\">\n @if (isLoading) {\n <div\n class=\"absolute inset-0 z-10 flex items-center justify-center bg-white/60 backdrop-blur-[1px] dark:bg-gray-900/60\">\n <div\n class=\"flex items-center gap-2 rounded-md bg-white px-4 py-2 shadow dark:bg-gray-800\">\n <mat-icon class=\"animate-spin\"> refresh </mat-icon>\n\n {{ t.gettext('Loading...') }}\n </div>\n </div>\n }\n\n <mtx-grid\n [data]=\"rows\"\n [columns]=\"columns\"\n [expandable]=\"expandable\"\n [expansionTemplate]=\"lazyExpansionTemplate\"\n [length]=\"totalElements\"\n [pageOnFront]=\"false\"\n [pageIndex]=\"pageNumber - 1\"\n [pageSize]=\"pageSize\"\n [noResultText]=\"noResultText\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showPaginator]=\"showPaginator\"\n (expansionChange)=\"onExpansionChange($event)\"\n (page)=\"getNextPage($event)\"\n (sortChange)=\"sortChanged($event)\">\n </mtx-grid>\n\n <ng-template\n #lazyExpansionTemplate\n let-row>\n @if (isExpanded(row)) {\n <ng-container\n [ngTemplateOutlet]=\"expansionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row }\">\n </ng-container>\n }\n </ng-template>\n </div>\n <!-- #endregion -->\n</div>\n","//namespace TaonDatatableModels\n\n//end of namespace TaonDatatableModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '../index';\n//#endregion\n\nexport const TaonDatatableRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-datatable.component').then(m => m.TaonDatatableComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonDatatableRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonDatatableRoutes;","//#region imports\nimport { CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ApplicationRef,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n EnvironmentInjector,\n Injectable,\n InjectionToken,\n Injector,\n Input,\n OnDestroy,\n Type,\n ViewChild,\n createComponent,\n inject,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport {\n ActivatedRoute,\n ActivatedRouteSnapshot,\n Params,\n Router,\n} from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { BehaviorSubject } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-detachable-dialog-content/taon-detached-window-content.component.ts', {\"src/lib/taon-detachable-dialog-content/taon-detached-window-content.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-detached-window-content.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-detached-window-content.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-detached-window-content.component.ts.de-DE.i18n.data')).default}} as any);\n\n//#region tokens\nexport const TAON_IS_DETACHED_WINDOW = new InjectionToken<boolean>(\n 'TAON_IS_DETACHED_WINDOW',\n {\n factory: () => false,\n },\n);\n//#endregion\n\n//#region models\nexport interface TaonDetachedRouteState {\n url: string;\n\n params: Params;\n\n queryParams: Params;\n\n fragment: string | null;\n\n data: Record<string, any>;\n}\n\nexport interface TaonDetachedWindow {\n id: string;\n\n title: string;\n\n component: Type<any>;\n\n routeState: TaonDetachedRouteState;\n\n /**\n * Current stacking order of the window.\n *\n * Higher value = window is closer to the user.\n */\n zIndex: number;\n\n componentRef?: ComponentRef<any>;\n}\n//#endregion\n\n//#region helpers\nfunction cloneObject<T extends Record<string, any>>(value: T | undefined): T {\n return {\n ...(value || {}),\n } as T;\n}\n\nfunction createDetachedActivatedRoute(\n state: TaonDetachedRouteState,\n): ActivatedRoute {\n const params$ = new BehaviorSubject<Params>(cloneObject(state.params));\n\n const queryParams$ = new BehaviorSubject<Params>(\n cloneObject(state.queryParams),\n );\n\n const fragment$ = new BehaviorSubject<string | null>(state.fragment);\n\n const data$ = new BehaviorSubject<Record<string, any>>(\n cloneObject(state.data),\n );\n\n const snapshot = {\n params: cloneObject(state.params),\n\n queryParams: cloneObject(state.queryParams),\n\n fragment: state.fragment,\n\n data: cloneObject(state.data),\n\n paramMap: undefined,\n\n queryParamMap: undefined,\n } as unknown as ActivatedRouteSnapshot;\n\n return {\n snapshot,\n\n params: params$.asObservable(),\n\n queryParams: queryParams$.asObservable(),\n\n fragment: fragment$.asObservable(),\n\n data: data$.asObservable(),\n } as unknown as ActivatedRoute;\n}\n//#endregion\n\n//#region detached windows service\n@Injectable({\n providedIn: 'root',\n})\nexport class TaonDetachedWindowsService {\n //#region fields\n\n /**\n * Base z-index for all detached windows.\n */\n private readonly baseZIndex = 10000;\n\n /**\n * Monotonically increasing focus counter.\n *\n * Every time a window receives focus it gets the next value.\n */\n private zIndexCounter = this.baseZIndex;\n\n readonly windows = signal<TaonDetachedWindow[]>([]);\n\n //#endregion\n\n //#region open\n open(options: {\n title: string;\n component: Type<any>;\n routeState: TaonDetachedRouteState;\n }): string {\n const id =\n typeof crypto !== 'undefined' && crypto.randomUUID\n ? crypto.randomUUID()\n : `taon-window-${Date.now()}-${Math.random().toString(36).slice(2)}`;\n\n const zIndex = ++this.zIndexCounter;\n\n this.windows.update(windows => [\n ...windows,\n {\n id,\n\n title: options.title,\n\n component: options.component,\n\n routeState: options.routeState,\n\n zIndex,\n },\n ]);\n\n return id;\n }\n //#endregion\n\n //#region focus\n focus(id: string): void {\n const windows = this.windows();\n\n const windowToFocus = windows.find(window => window.id === id);\n\n if (!windowToFocus) {\n return;\n }\n\n /**\n * Don't create a new signal value if this window\n * is already the top-most window.\n */\n const highestZIndex = Math.max(...windows.map(window => window.zIndex));\n\n if (windowToFocus.zIndex === highestZIndex) {\n return;\n }\n\n const zIndex = ++this.zIndexCounter;\n\n this.windows.update(currentWindows =>\n currentWindows.map(window =>\n window.id === id\n ? {\n ...window,\n zIndex,\n }\n : window,\n ),\n );\n }\n //#endregion\n\n //#region close\n close(id: string): void {\n const detachedWindow = this.windows().find(current => current.id === id);\n\n if (detachedWindow?.componentRef) {\n detachedWindow.componentRef.destroy();\n }\n\n this.windows.update(windows =>\n windows.filter(current => current.id !== id),\n );\n }\n //#endregion\n\n //#region register component ref\n registerComponentRef(id: string, componentRef: ComponentRef<any>): void {\n this.windows.update(windows =>\n windows.map(window =>\n window.id === id\n ? {\n ...window,\n componentRef,\n }\n : window,\n ),\n );\n }\n //#endregion\n}\n//#endregion\n\n//#region detached window\n@Component({\n selector: 'taon-detached-window',\n standalone: true,\n imports: [\n CommonModule,\n CdkDrag,\n CdkDragHandle,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [\n `\n :host {\n display: block;\n }\n\n .taon-detached-window {\n position: absolute;\n\n top: 80px;\n left: 80px;\n\n width: min(900px, calc(100vw - 80px));\n height: min(700px, calc(100vh - 80px));\n\n min-width: 320px;\n min-height: 200px;\n\n display: flex;\n flex-direction: column;\n\n background: var(--mat-sys-surface, white);\n\n color: var(--mat-sys-on-surface, black);\n\n border: 1px solid var(--mat-sys-outline-variant, #ccc);\n\n border-radius: 8px;\n\n box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);\n\n overflow: hidden;\n\n resize: both;\n }\n\n .taon-detached-window-header {\n height: 40px;\n\n flex: 0 0 40px;\n\n display: flex;\n align-items: center;\n\n padding-left: 12px;\n\n border-bottom: 1px solid var(--mat-sys-outline-variant, #ccc);\n\n user-select: none;\n }\n\n .taon-detached-window-drag-handle {\n flex: 1;\n\n height: 100%;\n\n display: flex;\n align-items: center;\n\n cursor: move;\n\n overflow: hidden;\n }\n\n .taon-detached-window-title {\n overflow: hidden;\n\n white-space: nowrap;\n\n text-overflow: ellipsis;\n\n font-weight: 500;\n }\n\n .taon-detached-window-actions {\n display: flex;\n\n align-items: center;\n\n padding-right: 4px;\n }\n\n .taon-detached-window-body {\n flex: 1;\n\n min-height: 0;\n\n overflow: auto;\n }\n\n .taon-detached-window-component-host {\n display: block;\n\n min-height: 100%;\n }\n `,\n ],\n template: `\n <div\n class=\"taon-detached-window\"\n cdkDrag\n [style.z-index]=\"window.zIndex\"\n (pointerdown)=\"focus()\">\n <header class=\"taon-detached-window-header\">\n <div\n class=\"taon-detached-window-drag-handle\"\n cdkDragHandle>\n <span class=\"taon-detached-window-title\">\n {{ window.title }}\n </span>\n </div>\n\n <div class=\"taon-detached-window-actions\">\n <button\n mat-icon-button\n type=\"button\"\n matTooltip=\"Close\"\n (click)=\"close()\">\n <mat-icon> close </mat-icon>\n </button>\n </div>\n </header>\n\n <main class=\"taon-detached-window-body\">\n <div\n #componentHost\n class=\"taon-detached-window-component-host\"></div>\n </main>\n </div>\n `,\n})\nexport class TaonDetachedWindowComponent implements AfterViewInit, OnDestroy {\n //#region injections\n private readonly windowsService = inject(TaonDetachedWindowsService);\n\n private readonly appRef = inject(ApplicationRef);\n\n private readonly environmentInjector = inject(EnvironmentInjector);\n\n private readonly injector = inject(Injector);\n //#endregion\n\n //#region inputs\n @Input({\n required: true,\n })\n window!: TaonDetachedWindow;\n //#endregion\n\n //#region view children\n @ViewChild('componentHost', {\n static: true,\n })\n componentHost!: ElementRef<HTMLElement>;\n //#endregion\n\n //#region fields\n private componentRef?: ComponentRef<any>;\n //#endregion\n\n //#region lifecycle\n ngAfterViewInit(): void {\n this.createDetachedComponent();\n }\n\n ngOnDestroy(): void {\n this.destroyDetachedComponent();\n }\n //#endregion\n\n //#region focus\n focus(): void {\n this.windowsService.focus(this.window.id);\n }\n //#endregion\n\n //#region create detached component\n private createDetachedComponent(): void {\n const detachedActivatedRoute = createDetachedActivatedRoute(\n this.window.routeState,\n );\n\n const detachedInjector = Injector.create({\n parent: this.injector,\n\n providers: [\n {\n provide: ActivatedRoute,\n useValue: detachedActivatedRoute,\n },\n {\n provide: TAON_IS_DETACHED_WINDOW,\n useValue: true,\n },\n ],\n });\n\n const componentRef = createComponent(this.window.component, {\n environmentInjector: this.environmentInjector,\n\n elementInjector: detachedInjector,\n\n hostElement: this.componentHost.nativeElement,\n });\n\n this.componentRef = componentRef;\n\n this.appRef.attachView(componentRef.hostView);\n\n componentRef.changeDetectorRef.detectChanges();\n\n this.windowsService.registerComponentRef(this.window.id, componentRef);\n }\n //#endregion\n\n //#region destroy detached component\n private destroyDetachedComponent(): void {\n if (!this.componentRef) {\n return;\n }\n\n try {\n this.appRef.detachView(this.componentRef.hostView);\n } catch {}\n\n if (!this.componentRef.hostView.destroyed) {\n this.componentRef.destroy();\n }\n\n this.componentRef = undefined;\n }\n //#endregion\n\n //#region close\n close(): void {\n this.windowsService.close(this.window.id);\n }\n //#endregion\n}\n//#endregion\n\n//#region detached windows host\n@Component({\n selector: 'taon-detached-windows-host',\n standalone: true,\n imports: [CommonModule, TaonDetachedWindowComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [\n `\n :host {\n position: fixed;\n\n inset: 0;\n\n pointer-events: none;\n\n /*\n * This only establishes the workspace stacking\n * context. Individual windows control their\n * own z-index.\n */\n z-index: 10000;\n }\n\n taon-detached-window {\n pointer-events: auto;\n }\n `,\n ],\n template: `\n @for (window of windowsService.windows(); track window.id) {\n <taon-detached-window [window]=\"window\" />\n }\n `,\n})\nexport class TaonDetachedWindowsHostComponent {\n readonly windowsService = inject(TaonDetachedWindowsService);\n}\n//#endregion\n\n//#region detachable dialog content\n@Component({\n selector: 'taon-detachable-dialog-content',\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule, MatTooltipModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [\n `\n :host {\n display: block;\n }\n\n .taon-detachable-content {\n display: flex;\n\n flex-direction: column;\n\n min-height: 0;\n }\n\n .taon-detachable-content-toolbar {\n min-height: 36px;\n\n display: flex;\n\n align-items: center;\n\n justify-content: flex-end;\n\n border-bottom: 1px solid var(--mat-sys-outline-variant, #ddd);\n }\n\n .taon-detachable-content-body {\n min-height: 0;\n }\n `,\n ],\n template: `\n <section class=\"taon-detachable-content\">\n @if (!isDetached) {\n <header class=\"taon-detachable-content-toolbar\">\n <button\n mat-icon-button\n type=\"button\"\n [matTooltip]=\"t.gettext('Detach')\"\n (click)=\"detach()\">\n <mat-icon> open_in_new </mat-icon>\n </button>\n </header>\n }\n\n <div class=\"taon-detachable-content-body\">\n <ng-content />\n </div>\n </section>\n `,\n})\nexport class TaonDetachableDialogContentComponent {\n //#region injections\n readonly t = t.for(this);\n\n private readonly route = inject(ActivatedRoute);\n\n private readonly router = inject(Router);\n\n private readonly windowsService = inject(TaonDetachedWindowsService);\n\n readonly isDetached = inject(TAON_IS_DETACHED_WINDOW);\n //#endregion\n\n //#region inputs\n @Input({\n required: true,\n })\n component!: Type<any>;\n\n @Input()\n title?: string;\n //#endregion\n\n //#region detach\n detach(): void {\n if (this.isDetached) {\n return;\n }\n\n const snapshot = this.route.snapshot;\n\n const routeState: TaonDetachedRouteState = {\n url: this.router.url,\n\n params: this.collectParams(snapshot),\n\n queryParams: cloneObject(snapshot.queryParams),\n\n fragment: snapshot.fragment,\n\n data: this.collectData(snapshot),\n };\n\n this.windowsService.open({\n title:\n this.title || this.component.name || this.t.gettext('Detached window'),\n\n component: this.component,\n\n routeState,\n });\n }\n //#endregion\n\n //#region route utils\n private collectParams(snapshot: ActivatedRouteSnapshot): Params {\n const params: Params = {};\n\n let current: ActivatedRouteSnapshot | null = snapshot;\n\n while (current) {\n Object.assign(params, current.params);\n\n current = current.parent;\n }\n\n return params;\n }\n\n private collectData(snapshot: ActivatedRouteSnapshot): Record<string, any> {\n const data: Record<string, any> = {};\n\n let current: ActivatedRouteSnapshot | null = snapshot;\n\n while (current) {\n Object.assign(data, current.data);\n\n current = current.parent;\n }\n\n return data;\n }\n //#endregion\n}\n//#endregion","export enum TaonDraggableButtonPanelState {\n CLICKABLE_BUTTON = 'CLICKABLE_BUTTON',\n\n WINDOW = 'WINDOW',\n\n FULL_SCREEN_DRAGGABLE = 'FULL_SCREEN_DRAGGABLE',\n\n FULL_SCREEN_LOCKED = 'FULL_SCREEN_LOCKED',\n}\n\n//namespace TaonDraggableButtonPanelModels\n\n//end of namespace TaonDraggableButtonPanelModels\n","//#region imports\nimport { CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n signal,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { filter, firstValueFrom, Subscription, take } from 'rxjs';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonAdminMenuContext } from '../taon-admin-layout/taon-admin-menu-context';\n\nimport { TaonDraggableButtonPanelState } from './taon-draggable-button-panel.models';\n//#endregion\n\nconst t = Translation.for('src/lib/taon-draggable-button-panel/taon-draggable-button-panel.component.ts', {\"src/lib/taon-draggable-button-panel/taon-draggable-button-panel.component.html\":{\"en-US\":async () => (await import('./i18n/taon-draggable-button-panel.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-draggable-button-panel.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-draggable-button-panel.component.html.de-DE.i18n.data')).default},\"src/lib/taon-draggable-button-panel/taon-draggable-button-panel.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-draggable-button-panel.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-draggable-button-panel.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-draggable-button-panel.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-draggable-button-panel',\n standalone: true,\n imports: [\n CdkDrag,\n CdkDragHandle,\n NgIf,\n NgTemplateOutlet,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n ],\n templateUrl: './taon-draggable-button-panel.component.html',\n styleUrls: ['./taon-draggable-button-panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TaonAdminMenuContext],\n})\nexport class TaonDraggableButtonPanelComponent<TContext = unknown>\n implements OnInit, OnDestroy\n{\n //#region fields and getters\n readonly t = t.for(this);\n\n readonly State = TaonDraggableButtonPanelState;\n\n private readonly menuContext = inject(TaonAdminMenuContext);\n\n @Input()\n set context(context: TContext) {\n this.menuContext.context.set(context);\n }\n\n @ViewChild(CdkDrag)\n private drag?: CdkDrag;\n\n @Input()\n basePath = '';\n\n @Input()\n buttonIcon = 'admin_panel_settings';\n\n @Input()\n title = this.t.gettext('Admin');\n\n /**\n * Named outlet containing this panel's application.\n *\n * Example:\n *\n * outlet=\"admin\"\n *\n * /products/42(admin:main;state=WINDOW/session/providers)\n */\n @Input()\n outlet?: string;\n\n /**\n * Matrix parameter used for persisting the panel state.\n */\n @Input()\n stateParamName = 'state';\n\n @Input()\n set state(state: TaonDraggableButtonPanelState) {\n this.currentState.set(state);\n }\n\n @Input()\n initialState: TaonDraggableButtonPanelState =\n TaonDraggableButtonPanelState.WINDOW;\n\n @Output()\n readonly stateChange = new EventEmitter<TaonDraggableButtonPanelState>();\n\n protected readonly forceFullScreen = signal(window.innerWidth < 900);\n\n private readonly resizeListener = (): void => {\n const wasForceFullScreen = this.forceFullScreen();\n const forceFullScreen = window.innerWidth < 900;\n\n this.forceFullScreen.set(forceFullScreen);\n\n // Desktop -> mobile: remove old CDK drag x/y transform.\n if (!wasForceFullScreen && forceFullScreen) {\n this.resetDragPosition();\n }\n };\n\n protected readonly currentState = signal(\n TaonDraggableButtonPanelState.CLICKABLE_BUTTON,\n );\n\n private routerSubscription?: Subscription;\n\n @Input()\n autoHideIcon = true;\n\n @Input()\n iconTemplate?: TemplateRef<unknown>;\n\n @Input()\n headerCenterTemplate?: TemplateRef<unknown>;\n\n //#endregion\n\n //#region constructor\n constructor(private readonly router: Router) {}\n //#endregion\n\n //#region methods / ng on init\n async ngOnInit(): Promise<void> {\n window.addEventListener('resize', this.resizeListener);\n /**\n * IMPORTANT:\n *\n * The component may be created while Angular is still processing\n * the application's initial navigation.\n *\n * For example:\n *\n * / -> redirectTo: /app\n *\n * If we create:\n *\n * (admin:main)\n *\n * before that redirect finishes, the auxiliary outlet navigation\n * may effectively replace/interfere with the primary navigation,\n * producing:\n *\n * /(admin:main)\n *\n * instead of:\n *\n * /app(admin:main)\n */\n await this.waitForInitialNavigation();\n\n /**\n * Ensure the auxiliary outlet exists only AFTER the primary\n * application route has settled.\n */\n await this.ensureOutletBasePath();\n\n /**\n * The outlet may already contain persisted state, e.g.\n *\n * (admin:main;state=WINDOW/dashboard)\n */\n this.restoreStateFromUrl();\n\n /**\n * From this point on keep the component state synchronized\n * with subsequent router navigations.\n */\n this.routerSubscription = this.router.events\n .pipe(filter(event => event instanceof NavigationEnd))\n .subscribe(() => {\n this.restoreStateFromUrl();\n });\n }\n //#endregion\n\n //#region methods / ng on destroy\n ngOnDestroy(): void {\n window.removeEventListener('resize', this.resizeListener);\n this.routerSubscription?.unsubscribe();\n }\n //#endregion\n\n //#region methods / toogle fullscreen\n protected toogleFullscreen(event: Event) {\n event.stopImmediatePropagation();\n event.stopPropagation();\n event.preventDefault();\n if (this.forceFullScreen()) {\n return;\n }\n if (this.currentState() === TaonDraggableButtonPanelState.WINDOW) {\n this.resetDragPosition();\n void this.setState(TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED);\n } else if (\n [\n TaonDraggableButtonPanelState.FULL_SCREEN_DRAGGABLE,\n TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED,\n ].includes(this.currentState())\n ) {\n this.resetDragPosition();\n void this.setState(TaonDraggableButtonPanelState.WINDOW);\n }\n }\n //#endregion\n\n //#region methods / effective state\n protected effectiveState(): TaonDraggableButtonPanelState {\n if (\n this.forceFullScreen() &&\n this.currentState() !== TaonDraggableButtonPanelState.CLICKABLE_BUTTON\n ) {\n return TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED;\n }\n\n return this.currentState();\n }\n //#endregion\n\n // ===========================================================================\n // INITIAL ROUTING\n // ===========================================================================\n\n //#region methods / wait for initial navigation\n private async waitForInitialNavigation(): Promise<void> {\n /**\n * Router already completed at least one navigation.\n */\n if (this.router.navigated) {\n return;\n }\n\n /**\n * Wait until redirects/lazy routing/etc. belonging to the initial\n * navigation have settled.\n */\n await firstValueFrom(\n this.router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n take(1),\n ),\n );\n }\n //#endregion\n\n //#region methods / ensure outlet base path\n private async ensureOutletBasePath(): Promise<void> {\n if (!this.outlet || !this.basePath) {\n return;\n }\n\n /**\n * IMPORTANT:\n *\n * Parse the URL only AFTER initial navigation has completed.\n *\n * At this point:\n *\n * /\n *\n * may already have become:\n *\n * /app\n */\n const tree = this.router.parseUrl(this.router.url);\n\n /**\n * Outlet already exists — preserve it exactly as it is.\n *\n * Examples:\n *\n * /app(admin:main)\n *\n * /app(admin:main;state=WINDOW/dashboard)\n */\n if (tree.root.children[this.outlet]) {\n return;\n }\n\n const baseSegments = this.basePath.split('/').filter(Boolean);\n\n if (!baseSegments.length) {\n return;\n }\n\n /**\n * Add the auxiliary outlet while preserving the current\n * primary route.\n *\n * Example:\n *\n * /app\n *\n * becomes:\n *\n * /app(admin:main)\n */\n await this.router.navigate(\n [\n {\n outlets: {\n [this.outlet]: baseSegments,\n },\n },\n ],\n {\n replaceUrl: true,\n },\n );\n }\n //#endregion\n\n // ===========================================================================\n // STATE\n // ===========================================================================\n\n //#region methods / set state\n protected async setState(next: TaonDraggableButtonPanelState): Promise<void> {\n if (!this.isTransitionAllowed(next)) {\n return;\n }\n\n this.currentState.set(next);\n\n this.stateChange.emit(next);\n\n await this.saveStateToUrl(next);\n }\n //#endregion\n\n //#region methods / open\n protected open(): void {\n void this.setState(this.initialState);\n }\n\n protected toggle(): void {\n if (this.currentState() === this.State.CLICKABLE_BUTTON) {\n this.open();\n } else {\n this.returnToButton();\n }\n }\n //#endregion\n\n //#region methods / return to button\n protected returnToButton(): void {\n this.resetDragPosition();\n void this.setState(TaonDraggableButtonPanelState.CLICKABLE_BUTTON);\n }\n //#endregion\n\n //#region methods / window mode\n protected windowMode(): void {\n void this.setState(TaonDraggableButtonPanelState.WINDOW);\n }\n //#endregion\n\n //#region methods / full screen draggable\n protected fullScreenDraggable(): void {\n this.resetDragPosition();\n\n void this.setState(TaonDraggableButtonPanelState.FULL_SCREEN_DRAGGABLE);\n }\n //#endregion\n\n //#region methods / lock full screen\n protected lockFullScreen(): void {\n this.resetDragPosition();\n\n void this.setState(TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED);\n }\n //#endregion\n\n //#region methods / is dragging enabled\n protected isDraggingEnabled(): boolean {\n if (this.forceFullScreen()) {\n return false;\n }\n\n return (\n this.currentState() === TaonDraggableButtonPanelState.WINDOW ||\n this.currentState() ===\n TaonDraggableButtonPanelState.FULL_SCREEN_DRAGGABLE\n );\n }\n //#endregion\n\n // ===========================================================================\n // URL STATE\n // ===========================================================================\n\n //#region methods / restore state from url\n private restoreStateFromUrl(): void {\n if (!this.outlet) {\n return;\n }\n\n const tree = this.router.parseUrl(this.router.url);\n\n const outletGroup = tree.root.children[this.outlet];\n\n if (!outletGroup) {\n return;\n }\n\n /**\n * State is stored on the first auxiliary outlet segment:\n *\n * admin:\n *\n * main;state=WINDOW/dashboard\n * └────────────────┘\n */\n const rootSegment = outletGroup.segments[0];\n\n if (!rootSegment) {\n return;\n }\n\n const state = rootSegment.parameters[this.stateParamName];\n\n if (!this.isValidState(state)) {\n return;\n }\n\n /**\n * URL restoration should NOT go through the transition\n * state machine.\n *\n * A bookmarked/refreshed URL is authoritative.\n */\n this.currentState.set(state);\n\n /**\n * Fullscreen must never inherit an old CdkDrag transform.\n */\n if (\n state === TaonDraggableButtonPanelState.FULL_SCREEN_DRAGGABLE ||\n state === TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED\n ) {\n queueMicrotask(() => {\n this.resetDragPosition();\n });\n }\n }\n //#endregion\n\n //#region methods / save state to url\n private async saveStateToUrl(\n state: TaonDraggableButtonPanelState,\n ): Promise<void> {\n if (!this.outlet) {\n return;\n }\n\n const tree = this.router.parseUrl(this.router.url);\n\n const outletGroup = tree.root.children[this.outlet];\n\n /**\n * The outlet might not yet exist.\n *\n * In that case there is nowhere sensible to attach\n * its matrix parameter.\n */\n if (!outletGroup || outletGroup.segments.length === 0) {\n return;\n }\n\n const rootSegment = outletGroup.segments[0];\n\n /**\n * Preserve any existing matrix parameters.\n */\n rootSegment.parameters = {\n ...rootSegment.parameters,\n\n [this.stateParamName]: state,\n };\n\n await this.router.navigateByUrl(tree, {\n replaceUrl: true,\n });\n }\n //#endregion\n\n //#region methods / is valid state\n private isValidState(\n value: string | undefined,\n ): value is TaonDraggableButtonPanelState {\n return Object.values(TaonDraggableButtonPanelState).includes(\n value as TaonDraggableButtonPanelState,\n );\n }\n //#endregion\n\n // ===========================================================================\n // DRAG\n // ===========================================================================\n\n //#region methods / reset drag position\n private resetDragPosition(): void {\n this.drag?.reset();\n }\n //#endregion\n\n // ===========================================================================\n // TRANSITIONS\n // ===========================================================================\n\n //#region methods / is transition allowed\n private isTransitionAllowed(next: TaonDraggableButtonPanelState): boolean {\n const current = this.currentState();\n\n const transitions: Record<\n TaonDraggableButtonPanelState,\n TaonDraggableButtonPanelState[]\n > = {\n [TaonDraggableButtonPanelState.CLICKABLE_BUTTON]: [\n TaonDraggableButtonPanelState.WINDOW,\n TaonDraggableButtonPanelState.FULL_SCREEN_DRAGGABLE,\n TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED,\n ],\n\n [TaonDraggableButtonPanelState.WINDOW]: [\n TaonDraggableButtonPanelState.CLICKABLE_BUTTON,\n TaonDraggableButtonPanelState.FULL_SCREEN_DRAGGABLE,\n TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED,\n ],\n\n [TaonDraggableButtonPanelState.FULL_SCREEN_DRAGGABLE]: [\n TaonDraggableButtonPanelState.CLICKABLE_BUTTON,\n TaonDraggableButtonPanelState.WINDOW,\n TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED,\n ],\n\n [TaonDraggableButtonPanelState.FULL_SCREEN_LOCKED]: [\n TaonDraggableButtonPanelState.CLICKABLE_BUTTON,\n TaonDraggableButtonPanelState.WINDOW,\n TaonDraggableButtonPanelState.FULL_SCREEN_DRAGGABLE,\n ],\n };\n\n return transitions[current].includes(next);\n }\n //#endregion\n}","@if (currentState() === State.CLICKABLE_BUTTON || !autoHideIcon) {\n @if (iconTemplate) {\n <ng-container [ngTemplateOutlet]=\"iconTemplate\" />\n } @else {\n <button\n class=\"taon-admin-panel-toogle-open-button\"\n [class.taon-admin-panel-toogle-button-dimmer-opacity]=\"\n effectiveState() !== State.CLICKABLE_BUTTON\n \"\n mat-icon-button\n type=\"button\"\n [matTooltip]=\"title\"\n (click)=\"toggle()\">\n <mat-icon>{{ buttonIcon }}</mat-icon>\n </button>\n }\n}\n\n<section\n cdkDrag\n [hidden]=\"currentState() === State.CLICKABLE_BUTTON\"\n [cdkDragDisabled]=\"!isDraggingEnabled()\"\n class=\"taon-draggable-panel\"\n [class.taon-window]=\"effectiveState() === State.WINDOW\"\n [class.taon-window-full]=\"effectiveState() !== State.WINDOW\"\n [class.taon-fullscreen]=\"\n effectiveState() === State.FULL_SCREEN_DRAGGABLE ||\n effectiveState() === State.FULL_SCREEN_LOCKED\n \">\n <header\n cdkDragHandle\n (dblclick)=\"toogleFullscreen($event)\"\n class=\"taon-window-bar\">\n <!-- LEFT -->\n <div class=\"flex min-w-0 flex-1 items-center gap-2\">\n <mat-icon class=\"text-gray-500\"> admin_panel_settings </mat-icon>\n\n <span class=\"truncate font-medium\">\n {{ title }}\n </span>\n </div>\n\n <!-- EXACT CENTER -->\n <div class=\"flex min-w-0 items-center justify-center\">\n @if (headerCenterTemplate) {\n <ng-container [ngTemplateOutlet]=\"headerCenterTemplate\" />\n }\n </div>\n\n <!-- #region window buttons -->\n <div class=\"flex shrink-0 items-center\">\n <!-- Desktop-only window/fullscreen controls -->\n @if (!forceFullScreen()) {\n @if (currentState() !== State.WINDOW) {\n <button\n mat-icon-button\n type=\"button\"\n [matTooltip]=\"t.gettext('Window mode')\"\n (click)=\"windowMode()\">\n <mat-icon>filter_none</mat-icon>\n </button>\n }\n\n @if (currentState() === State.WINDOW) {\n <button\n mat-icon-button\n type=\"button\"\n [matTooltip]=\"t.gettext('Full screen')\"\n (click)=\"fullScreenDraggable()\">\n <mat-icon>fullscreen</mat-icon>\n </button>\n }\n\n @if (currentState() !== State.FULL_SCREEN_LOCKED) {\n <button\n mat-icon-button\n type=\"button\"\n [matTooltip]=\"t.gettext('Lock full screen')\"\n (click)=\"lockFullScreen()\">\n <mat-icon>lock_open</mat-icon>\n </button>\n } @else {\n <button\n mat-icon-button\n type=\"button\"\n [matTooltip]=\"t.gettext('Unlock')\"\n (click)=\"fullScreenDraggable()\">\n <mat-icon>lock</mat-icon>\n </button>\n }\n }\n\n <!-- ALWAYS available -->\n <button\n mat-icon-button\n type=\"button\"\n [matTooltip]=\"t.gettext('Close admin panel')\"\n (click)=\"returnToButton()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <!-- #endregion -->\n </header>\n\n <div class=\"min-h-0 flex-1 overflow-hidden\">\n <ng-content />\n </div>\n</section>\n","//#region imports\nimport { Routes } from '@angular/router';\n\nimport { TaonDraggableButtonPanelComponent } from './taon-draggable-button-panel.component';\n//#endregion\n\nexport const TaonDraggableButtonPanelRoutes: Routes = [\n {\n path: '',\n component: TaonDraggableButtonPanelComponent,\n },\n // {\n // path: 'anothermodulepath',\n // loadChildren: () => import('anothermodule')\n // .then(m => m.AnotherLazyModule),\n // },\n];\n\n/**\n * By default exporting TaonDraggableButtonPanelRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\nexport default TaonDraggableButtonPanelRoutes;","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n inject,\n Input,\n signal,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TaonAdminService } from 'taon/websql-prod';\n\n@Component({\n selector: 'taon-items-hamburger',\n standalone: true,\n imports: [MatButtonModule, MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n\n templateUrl: './taon-items-hamburger.component.html',\n\n styleUrl: './taon-items-hamburger.component.scss',\n})\nexport class TaonItemsHamburgerComponent {\n @Input() icon = 'menu';\n\n readonly taonAdminService = inject(TaonAdminService);\n\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly opened = signal(false);\n\n toggle(event: MouseEvent): void {\n event.stopPropagation();\n\n this.opened.update(opened => !opened);\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n const target = event.target as Node | null;\n\n if (\n this.opened() &&\n target &&\n !this.elementRef.nativeElement.contains(target)\n ) {\n this.opened.set(false);\n }\n }\n\n @HostListener('document:keydown.escape')\n onEscape(): void {\n this.opened.set(false);\n }\n}\n","@if (!taonAdminService.isDesktop()) {\n <button\n mat-icon-button\n type=\"button\"\n aria-label=\"Open menu\"\n [attr.aria-expanded]=\"opened()\"\n (click)=\"toggle($event)\">\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n}\n\n<div\n class=\"items\"\n [class.mobile]=\"!taonAdminService.isDesktop()\"\n [class.opened]=\"opened()\">\n <ng-content />\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n} from '@angular/core';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nconst t = Translation.for('src/lib/taon-loading-content/taon-loading-content.component.ts', {\"src/lib/taon-loading-content/taon-loading-content.component.html\":{\"en-US\":async () => (await import('./i18n/taon-loading-content.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-loading-content.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-loading-content.component.html.de-DE.i18n.data')).default},\"src/lib/taon-loading-content/taon-loading-content.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-loading-content.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-loading-content.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-loading-content.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-loading-content',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './taon-loading-content.component.html',\n styleUrl: './taon-loading-content.component.scss',\n})\nexport class TaonLoadingContentComponent {\n t = t.for(this);\n /**\n * Estimated number of characters in the content.\n * Used to approximate the number of skeleton lines.\n */\n readonly estimatedContentLength = input<number>(500);\n\n private readonly charactersPerLine = 75;\n\n readonly lines = computed(() => {\n const length = Math.max(0, this.estimatedContentLength());\n\n const count = Math.max(1, Math.ceil(length / this.charactersPerLine));\n\n return Array.from({ length: count }, (_, index) => {\n const isLast = index === count - 1;\n\n if (isLast) {\n const remaining = length % this.charactersPerLine;\n\n return remaining === 0\n ? 75\n : Math.max(\n 25,\n Math.min(100, (remaining / this.charactersPerLine) * 100),\n );\n }\n\n const widths = [100, 96, 88, 98, 92, 100, 85];\n\n return widths[index % widths.length];\n });\n });\n}","<div\n class=\"loading-content\"\n role=\"status\"\n aria-label=\"Loading content\"\n aria-busy=\"true\">\n @for (line of lines(); track $index) {\n <div\n class=\"skeleton-line\"\n [style.width.%]=\"line\"></div>\n }\n <span class=\"sr-only\">{{ t.gettext('Loading content...') }}</span>\n</div>\n","import { Component, Inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nconst t = Translation.for('src/lib/taon-purchase-status/taon-purchase-status.dialog.component.ts', {\"src/lib/taon-purchase-status/taon-purchase-status.dialog.component.html\":{\"en-US\":async () => (await import('./i18n/taon-purchase-status.dialog.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-purchase-status.dialog.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-purchase-status.dialog.component.html.de-DE.i18n.data')).default},\"src/lib/taon-purchase-status/taon-purchase-status.dialog.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-purchase-status.dialog.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-purchase-status.dialog.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-purchase-status.dialog.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-purchase-status-dialog',\n standalone: true,\n imports: [MatDialogModule, MatButtonModule],\n templateUrl: './taon-purchase-status.dialog.component.html',\n})\nexport class TaonPurchaseStatusDialogComponent {\n readonly t = t.for(this);\n\n constructor(\n @Inject(MAT_DIALOG_DATA)\n public data: { success: boolean; message: string },\n ) {}\n}","<h2 mat-dialog-title>\n {{\n data.success\n ? t.gettext('Payment successful')\n : t.gettext('Payment cancelled')\n }}\n</h2>\n\n<div mat-dialog-content>{{ data.message }}</div>\n\n<div\n mat-dialog-actions\n align=\"end\">\n <button\n mat-button\n mat-dialog-close>\n {{ t.gettext('OK') }}\n </button>\n</div>\n","import { Component, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nconst t = Translation.for('src/lib/taon-under-construction/taon-under-construction.component.ts', {\"src/lib/taon-under-construction/taon-under-construction.component.html\":{\"en-US\":async () => (await import('./i18n/taon-under-construction.component.html.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-under-construction.component.html.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-under-construction.component.html.de-DE.i18n.data')).default},\"src/lib/taon-under-construction/taon-under-construction.component.ts\":{\"en-US\":async () => (await import('./i18n/taon-under-construction.component.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-under-construction.component.ts.pl-PL.i18n.data')).default,\"de-DE\":async () => (await import('./i18n/taon-under-construction.component.ts.de-DE.i18n.data')).default}} as any);\n\n@Component({\n selector: 'taon-under-construction',\n standalone: true,\n imports: [MatIconModule, MatButtonModule],\n templateUrl: './taon-under-construction.component.html',\n styleUrl: './taon-under-construction.component.scss',\n})\nexport class TaonUnderConstructionComponent {\n t = t.for(this);\n\n title = input(t.gettext('Coming soon'));\n\n description = input(\n t.gettext(\n 'This section is currently under construction and will be available soon.',\n ),\n );\n\n icon = input('engineering');\n}","<div class=\"under-construction\">\n <div class=\"icon-wrapper\">\n <mat-icon>{{ icon() }}</mat-icon>\n </div>\n\n <h2>{{ title() }}</h2>\n\n <p>{{ description() }}</p>\n\n <div class=\"status\">\n <mat-icon>construction</mat-icon>\n {{ t.gettext('Work in progress') }}\n </div>\n</div>\n","// @ts-nocheck\n// This file is auto-generated during init process. Do not modify.\n// This disable this auto generate file.\n// set property \"shouldGenerateAutogenIndexFile: false\" \n// in taon.jsonc of your project. \nexport * from './build-info._auto-generated_'; \nexport * from './my-organization-proj'; \nexport * from './start-cli'; \nexport * from './directives/taon-horizontal-wheel-scrolling.directive'; // @browser\nexport * from './plugins/ngx-editor-table'; \nexport * from './taon-admin-layout/taon-admin-content-footer.service'; // @browser\nexport * from './taon-admin-layout/taon-admin-layout.component'; // @browser\nexport * from './taon-admin-layout/taon-admin-layout.models'; \nexport * from './taon-admin-layout/taon-admin-menu-context'; \nexport * from './taon-admin-layout/taon-admin-page-tabs.component'; // @browser\nexport * from './taon-admin-layout/taon-base-admin-page.component'; // @browser\nexport * from './taon-admin-welcome/taon-admin-welcome.component'; // @browser\nexport * from './taon-admin-welcome/taon-admin-welcome.models'; \nexport * from './taon-admin-welcome/taon-admin-welcome.routes'; // @browser\nexport * from './taon-backoffice-notifications/taon-backoffice-notifications.component'; // @browser\nexport * from './taon-backoffice-notifications/taon-backoffice-notifications.models'; \nexport * from './taon-backoffice-notifications/taon-backoffice-notifications.service'; // @browser\nexport * from './taon-backoffice-notifications/taon-error-details-dialog.component'; // @browser\nexport * from './taon-backoffice-notifications/taon-error-toast.component'; // @browser\nexport * from './taon-confirm-dialog/taon-confirm-dialog.component'; // @browser\nexport * from './taon-confirm-dialog/taon-confirm-dialog.models'; \nexport * from './taon-datatable/taon-datatable.component'; // @browser\nexport * from './taon-datatable/taon-datatable.models'; \nexport * from './taon-datatable/taon-datatable.routes'; // @browser\nexport * from './taon-detachable-dialog-content/taon-detached-window-content.component'; // @browser\nexport * from './taon-draggable-button-panel/taon-draggable-button-panel.component'; // @browser\nexport * from './taon-draggable-button-panel/taon-draggable-button-panel.models'; \nexport * from './taon-draggable-button-panel/taon-draggable-button-panel.routes'; // @browser\nexport * from './taon-items-hamburger/taon-items-hamburger.component'; // @browser\nexport * from './taon-loading-content/taon-loading-content.component'; // @browser\nexport * from './taon-purchase-status/taon-purchase-status.dialog.component'; // @browser\nexport * from './taon-under-construction/taon-under-construction.component'; // @browser","export * from './migrations';\n/* */ \nexport * from './index._auto-generated_';\nexport * from './my-organization-proj';\n/* */ \nexport default {};","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["t","defaultSchema","i2","i3","i4","i1","TaonSymbols__NS__old__NS__X_TOTAL_COUNT","i5"],"mappings":"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"}
|