@taon-dev/ui 21.0.18 → 21.0.19
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/browser/fesm2022/{ui-browser-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs → ui-browser-my-organization-proj.ts.en-US.i18n.data-CeHZLkBn.mjs} +1 -1
- package/browser/fesm2022/{ui-browser-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs.map → ui-browser-my-organization-proj.ts.en-US.i18n.data-CeHZLkBn.mjs.map} +1 -1
- package/browser/fesm2022/{ui-browser-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs → ui-browser-my-organization-proj.ts.pl-PL.i18n.data-d2TJi7-R.mjs} +1 -1
- package/browser/fesm2022/{ui-browser-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs.map → ui-browser-my-organization-proj.ts.pl-PL.i18n.data-d2TJi7-R.mjs.map} +1 -1
- package/browser/fesm2022/{ui-browser-taon-admin-welcome.component.html.en-US.i18n.data-DyjZkf16.mjs → ui-browser-taon-admin-welcome.component.html.en-US.i18n.data-B8C34hRd.mjs} +1 -1
- package/browser/fesm2022/{ui-browser-taon-admin-welcome.component.html.en-US.i18n.data-DyjZkf16.mjs.map → ui-browser-taon-admin-welcome.component.html.en-US.i18n.data-B8C34hRd.mjs.map} +1 -1
- package/browser/fesm2022/{ui-browser-taon-admin-welcome.component.html.pl-PL.i18n.data-079EXaRW.mjs → ui-browser-taon-admin-welcome.component.html.pl-PL.i18n.data-_t3YRqrv.mjs} +1 -1
- package/browser/fesm2022/{ui-browser-taon-admin-welcome.component.html.pl-PL.i18n.data-079EXaRW.mjs.map → ui-browser-taon-admin-welcome.component.html.pl-PL.i18n.data-_t3YRqrv.mjs.map} +1 -1
- package/browser/fesm2022/{ui-browser-taon-admin-welcome.component.ts.en-US.i18n.data-DB_VFp1U.mjs → ui-browser-taon-admin-welcome.component.ts.en-US.i18n.data-B4Q6VxPm.mjs} +1 -1
- package/browser/fesm2022/{ui-browser-taon-admin-welcome.component.ts.en-US.i18n.data-DB_VFp1U.mjs.map → ui-browser-taon-admin-welcome.component.ts.en-US.i18n.data-B4Q6VxPm.mjs.map} +1 -1
- package/browser/fesm2022/{ui-browser-taon-admin-welcome.component.ts.pl-PL.i18n.data-C5Asxno1.mjs → ui-browser-taon-admin-welcome.component.ts.pl-PL.i18n.data-s4AKOE7A.mjs} +1 -1
- package/browser/fesm2022/{ui-browser-taon-admin-welcome.component.ts.pl-PL.i18n.data-C5Asxno1.mjs.map → ui-browser-taon-admin-welcome.component.ts.pl-PL.i18n.data-s4AKOE7A.mjs.map} +1 -1
- package/browser/fesm2022/{ui-browser-taon-backoffice-notifications.component.ts.en-US.i18n.data-DdHr5V8R.mjs → ui-browser-taon-backoffice-notifications.component.ts.en-US.i18n.data-BAh0p5PN.mjs} +2 -2
- package/browser/fesm2022/{ui-browser-taon-backoffice-notifications.component.ts.en-US.i18n.data-DdHr5V8R.mjs.map → ui-browser-taon-backoffice-notifications.component.ts.en-US.i18n.data-BAh0p5PN.mjs.map} +1 -1
- package/browser/fesm2022/{ui-browser-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-CD5ZqDCD.mjs → ui-browser-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-C7f7qeUT.mjs} +2 -2
- package/browser/fesm2022/{ui-browser-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-CD5ZqDCD.mjs.map → ui-browser-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-C7f7qeUT.mjs.map} +1 -1
- package/browser/fesm2022/{ui-browser-taon-under-construction.component.ts.en-US.i18n.data-CJznhYEs.mjs → ui-browser-taon-under-construction.component.ts.en-US.i18n.data-BVYOlk4F.mjs} +1 -1
- package/browser/fesm2022/{ui-browser-taon-under-construction.component.ts.en-US.i18n.data-CJznhYEs.mjs.map → ui-browser-taon-under-construction.component.ts.en-US.i18n.data-BVYOlk4F.mjs.map} +1 -1
- package/browser/fesm2022/{ui-browser-taon-under-construction.component.ts.pl-PL.i18n.data-5S7xoosG.mjs → ui-browser-taon-under-construction.component.ts.pl-PL.i18n.data-Btv-o2oM.mjs} +1 -1
- package/browser/fesm2022/{ui-browser-taon-under-construction.component.ts.pl-PL.i18n.data-5S7xoosG.mjs.map → ui-browser-taon-under-construction.component.ts.pl-PL.i18n.data-Btv-o2oM.mjs.map} +1 -1
- package/browser/fesm2022/ui-browser.mjs +456 -27
- package/browser/fesm2022/ui-browser.mjs.map +1 -1
- package/browser/package.json +1 -1
- package/browser/types/ui-browser.d.ts +101 -5
- package/browser-prod/fesm2022/{ui-browser-prod-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs → ui-browser-prod-my-organization-proj.ts.en-US.i18n.data-CSaDmgPM.mjs} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs.map → ui-browser-prod-my-organization-proj.ts.en-US.i18n.data-CSaDmgPM.mjs.map} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs → ui-browser-prod-my-organization-proj.ts.pl-PL.i18n.data-C-iWnhim.mjs} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs.map → ui-browser-prod-my-organization-proj.ts.pl-PL.i18n.data-C-iWnhim.mjs.map} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-admin-welcome.component.html.en-US.i18n.data-DyjZkf16.mjs → ui-browser-prod-taon-admin-welcome.component.html.en-US.i18n.data-B6PGLj_S.mjs} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-admin-welcome.component.html.en-US.i18n.data-DyjZkf16.mjs.map → ui-browser-prod-taon-admin-welcome.component.html.en-US.i18n.data-B6PGLj_S.mjs.map} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-admin-welcome.component.html.pl-PL.i18n.data-079EXaRW.mjs → ui-browser-prod-taon-admin-welcome.component.html.pl-PL.i18n.data-Cu2SC_ss.mjs} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-admin-welcome.component.html.pl-PL.i18n.data-079EXaRW.mjs.map → ui-browser-prod-taon-admin-welcome.component.html.pl-PL.i18n.data-Cu2SC_ss.mjs.map} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-admin-welcome.component.ts.en-US.i18n.data-DB_VFp1U.mjs → ui-browser-prod-taon-admin-welcome.component.ts.en-US.i18n.data-CuPbeZpW.mjs} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-admin-welcome.component.ts.en-US.i18n.data-DB_VFp1U.mjs.map → ui-browser-prod-taon-admin-welcome.component.ts.en-US.i18n.data-CuPbeZpW.mjs.map} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-admin-welcome.component.ts.pl-PL.i18n.data-C5Asxno1.mjs → ui-browser-prod-taon-admin-welcome.component.ts.pl-PL.i18n.data-BoJfF0mf.mjs} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-admin-welcome.component.ts.pl-PL.i18n.data-C5Asxno1.mjs.map → ui-browser-prod-taon-admin-welcome.component.ts.pl-PL.i18n.data-BoJfF0mf.mjs.map} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-backoffice-notifications.component.ts.en-US.i18n.data-DdHr5V8R.mjs → ui-browser-prod-taon-backoffice-notifications.component.ts.en-US.i18n.data-XLmZcgCu.mjs} +2 -2
- package/browser-prod/fesm2022/{ui-browser-prod-taon-backoffice-notifications.component.ts.en-US.i18n.data-DdHr5V8R.mjs.map → ui-browser-prod-taon-backoffice-notifications.component.ts.en-US.i18n.data-XLmZcgCu.mjs.map} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-CD5ZqDCD.mjs → ui-browser-prod-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-CJ92Sv4p.mjs} +2 -2
- package/browser-prod/fesm2022/{ui-browser-prod-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-CD5ZqDCD.mjs.map → ui-browser-prod-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-CJ92Sv4p.mjs.map} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-under-construction.component.ts.en-US.i18n.data-CJznhYEs.mjs → ui-browser-prod-taon-under-construction.component.ts.en-US.i18n.data-W8BJvZ8Z.mjs} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-under-construction.component.ts.en-US.i18n.data-CJznhYEs.mjs.map → ui-browser-prod-taon-under-construction.component.ts.en-US.i18n.data-W8BJvZ8Z.mjs.map} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-under-construction.component.ts.pl-PL.i18n.data-5S7xoosG.mjs → ui-browser-prod-taon-under-construction.component.ts.pl-PL.i18n.data-tX8zxb8s.mjs} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-under-construction.component.ts.pl-PL.i18n.data-5S7xoosG.mjs.map → ui-browser-prod-taon-under-construction.component.ts.pl-PL.i18n.data-tX8zxb8s.mjs.map} +1 -1
- package/browser-prod/fesm2022/ui-browser-prod.mjs +456 -27
- 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 +101 -5
- package/full-dts/build-info._auto-generated_.d.ts +1 -1
- package/full-dts/index._auto-generated_.d.ts +2 -0
- package/full-dts/taon-backoffice-notifications/taon-backoffice-notifications.component.d.ts +2 -0
- package/full-dts/taon-backoffice-notifications/taon-backoffice-notifications.service.d.ts +1 -0
- package/full-dts/taon-detachable-dialog-content/taon-detached-window-content.component.d.ts +74 -0
- package/full-dts/taon-purchase-status/taon-purchase-status.dialog.component.d.ts +11 -0
- package/html/app/main/routes/session/tracking/tracking.component.html +11 -7
- package/html/assets/generated/pwa/html-pwa.html +53 -53
- package/html/lib/taon-purchase-status/taon-purchase-status.dialog.component.html +19 -0
- package/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib/build-info._auto-generated_.js +1 -1
- package/lib/index._auto-generated_.js +2 -0
- package/lib/index._auto-generated_.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/taon-admin-layout/index.d.ts +1 -1
- package/lib/taon-admin-layout/index.js +2 -2
- 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.en-US.i18n.data.js +1 -1
- package/lib/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.pl-PL.i18n.data.js +1 -1
- package/lib/taon-datatable/index.d.ts +1 -1
- package/lib/taon-datatable/index.js +2 -2
- package/lib/taon-draggable-button-panel/index.d.ts +1 -1
- package/lib/taon-draggable-button-panel/index.js +2 -2
- 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_.js +2 -0
- package/lib-esm/lib/index._auto-generated_.js.map +1 -1
- 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-backoffice-notifications.component.ts.en-US.i18n.data.js +1 -1
- package/lib-esm/lib/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.pl-PL.i18n.data.js +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/index.d.ts +1 -1
- package/lib-esm/lib/taon-draggable-button-panel/index.js +1 -1
- 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_.js +2 -0
- package/lib-prod/index._auto-generated_.js.map +1 -1
- package/lib-prod/package.json +1 -1
- 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-backoffice-notifications.component.ts.en-US.i18n.data.js +1 -1
- package/lib-prod/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.pl-PL.i18n.data.js +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/index.d.ts +1 -1
- package/lib-prod/taon-draggable-button-panel/index.js +1 -1
- package/package.json +1 -1
- 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/taon-admin-layout/taon-admin-page-tabs.component.ts +1 -1
- package/ts-source/browser-code/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.en-US.i18n.data.ts +1 -1
- package/ts-source/browser-code/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.en-US.po +1 -1
- package/ts-source/browser-code/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.pl-PL.i18n.data.ts +1 -1
- package/ts-source/browser-code/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.pl-PL.po +1 -1
- package/ts-source/browser-code/taon-backoffice-notifications/taon-backoffice-notifications.component.ts +15 -4
- package/ts-source/browser-code/taon-backoffice-notifications/taon-backoffice-notifications.service.ts +3 -0
- package/ts-source/browser-code/taon-detachable-dialog-content/taon-detachable-dialog-content.md +429 -0
- package/ts-source/browser-code/taon-detachable-dialog-content/taon-detached-window-content.component.ts +474 -0
- package/ts-source/browser-code/taon-purchase-status/taon-purchase-status.dialog.component.html +32 -0
- package/ts-source/browser-code/taon-purchase-status/taon-purchase-status.dialog.component.ts +29 -0
- package/ts-source/browser-code-prod/build-info._auto-generated_.ts +1 -1
- package/ts-source/browser-code-prod/index._auto-generated_.ts +2 -0
- package/ts-source/browser-code-prod/taon-admin-layout/taon-admin-page-tabs.component.ts +1 -1
- package/ts-source/browser-code-prod/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.en-US.i18n.data.ts +1 -1
- package/ts-source/browser-code-prod/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.en-US.po +1 -1
- package/ts-source/browser-code-prod/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.pl-PL.i18n.data.ts +1 -1
- package/ts-source/browser-code-prod/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.pl-PL.po +1 -1
- package/ts-source/browser-code-prod/taon-backoffice-notifications/taon-backoffice-notifications.component.ts +15 -4
- package/ts-source/browser-code-prod/taon-backoffice-notifications/taon-backoffice-notifications.service.ts +3 -0
- package/ts-source/browser-code-prod/taon-detachable-dialog-content/taon-detachable-dialog-content.md +429 -0
- package/ts-source/browser-code-prod/taon-detachable-dialog-content/taon-detached-window-content.component.split-namespaces.json +4 -0
- package/ts-source/browser-code-prod/taon-detachable-dialog-content/taon-detached-window-content.component.ts +474 -0
- package/ts-source/browser-code-prod/taon-purchase-status/taon-purchase-status.dialog.component.html +32 -0
- package/ts-source/browser-code-prod/taon-purchase-status/taon-purchase-status.dialog.component.split-namespaces.json +4 -0
- package/ts-source/browser-code-prod/taon-purchase-status/taon-purchase-status.dialog.component.ts +29 -0
- 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/taon-admin-layout/taon-admin-page-tabs.component.ts +1 -1
- package/ts-source/websql-code/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.en-US.i18n.data.ts +1 -1
- package/ts-source/websql-code/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.en-US.po +1 -1
- package/ts-source/websql-code/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.pl-PL.i18n.data.ts +1 -1
- package/ts-source/websql-code/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.pl-PL.po +1 -1
- package/ts-source/websql-code/taon-backoffice-notifications/taon-backoffice-notifications.component.ts +15 -4
- package/ts-source/websql-code/taon-backoffice-notifications/taon-backoffice-notifications.service.ts +3 -0
- package/ts-source/websql-code/taon-detachable-dialog-content/taon-detachable-dialog-content.md +429 -0
- package/ts-source/websql-code/taon-detachable-dialog-content/taon-detached-window-content.component.ts +474 -0
- package/ts-source/websql-code/taon-purchase-status/taon-purchase-status.dialog.component.html +32 -0
- package/ts-source/websql-code/taon-purchase-status/taon-purchase-status.dialog.component.ts +29 -0
- package/ts-source/websql-code-prod/build-info._auto-generated_.ts +1 -1
- package/ts-source/websql-code-prod/index._auto-generated_.ts +2 -0
- package/ts-source/websql-code-prod/taon-admin-layout/taon-admin-page-tabs.component.ts +1 -1
- package/ts-source/websql-code-prod/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.en-US.i18n.data.ts +1 -1
- package/ts-source/websql-code-prod/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.en-US.po +1 -1
- package/ts-source/websql-code-prod/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.pl-PL.i18n.data.ts +1 -1
- package/ts-source/websql-code-prod/taon-backoffice-notifications/i18n/taon-backoffice-notifications.component.ts.pl-PL.po +1 -1
- package/ts-source/websql-code-prod/taon-backoffice-notifications/taon-backoffice-notifications.component.ts +15 -4
- package/ts-source/websql-code-prod/taon-backoffice-notifications/taon-backoffice-notifications.service.ts +3 -0
- package/ts-source/websql-code-prod/taon-detachable-dialog-content/taon-detachable-dialog-content.md +429 -0
- package/ts-source/websql-code-prod/taon-detachable-dialog-content/taon-detached-window-content.component.split-namespaces.json +4 -0
- package/ts-source/websql-code-prod/taon-detachable-dialog-content/taon-detached-window-content.component.ts +474 -0
- package/ts-source/websql-code-prod/taon-purchase-status/taon-purchase-status.dialog.component.html +32 -0
- package/ts-source/websql-code-prod/taon-purchase-status/taon-purchase-status.dialog.component.split-namespaces.json +4 -0
- package/ts-source/websql-code-prod/taon-purchase-status/taon-purchase-status.dialog.component.ts +29 -0
- package/websql/fesm2022/{ui-websql-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs → ui-websql-my-organization-proj.ts.en-US.i18n.data-BhgdMDJr.mjs} +1 -1
- package/websql/fesm2022/{ui-websql-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs.map → ui-websql-my-organization-proj.ts.en-US.i18n.data-BhgdMDJr.mjs.map} +1 -1
- package/websql/fesm2022/{ui-websql-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs → ui-websql-my-organization-proj.ts.pl-PL.i18n.data-DhyVtJwe.mjs} +1 -1
- package/websql/fesm2022/{ui-websql-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs.map → ui-websql-my-organization-proj.ts.pl-PL.i18n.data-DhyVtJwe.mjs.map} +1 -1
- package/websql/fesm2022/{ui-websql-taon-admin-welcome.component.html.en-US.i18n.data-DyjZkf16.mjs → ui-websql-taon-admin-welcome.component.html.en-US.i18n.data-0RxX6_GI.mjs} +1 -1
- package/websql/fesm2022/{ui-websql-taon-admin-welcome.component.html.en-US.i18n.data-DyjZkf16.mjs.map → ui-websql-taon-admin-welcome.component.html.en-US.i18n.data-0RxX6_GI.mjs.map} +1 -1
- package/websql/fesm2022/{ui-websql-taon-admin-welcome.component.html.pl-PL.i18n.data-079EXaRW.mjs → ui-websql-taon-admin-welcome.component.html.pl-PL.i18n.data-Nmowb80z.mjs} +1 -1
- package/websql/fesm2022/{ui-websql-taon-admin-welcome.component.html.pl-PL.i18n.data-079EXaRW.mjs.map → ui-websql-taon-admin-welcome.component.html.pl-PL.i18n.data-Nmowb80z.mjs.map} +1 -1
- package/websql/fesm2022/{ui-websql-taon-admin-welcome.component.ts.en-US.i18n.data-DB_VFp1U.mjs → ui-websql-taon-admin-welcome.component.ts.en-US.i18n.data-DkS2OOkR.mjs} +1 -1
- package/websql/fesm2022/{ui-websql-taon-admin-welcome.component.ts.en-US.i18n.data-DB_VFp1U.mjs.map → ui-websql-taon-admin-welcome.component.ts.en-US.i18n.data-DkS2OOkR.mjs.map} +1 -1
- package/websql/fesm2022/{ui-websql-taon-admin-welcome.component.ts.pl-PL.i18n.data-C5Asxno1.mjs → ui-websql-taon-admin-welcome.component.ts.pl-PL.i18n.data-DVeJEjRy.mjs} +1 -1
- package/websql/fesm2022/{ui-websql-taon-admin-welcome.component.ts.pl-PL.i18n.data-C5Asxno1.mjs.map → ui-websql-taon-admin-welcome.component.ts.pl-PL.i18n.data-DVeJEjRy.mjs.map} +1 -1
- package/websql/fesm2022/{ui-websql-taon-backoffice-notifications.component.ts.en-US.i18n.data-DdHr5V8R.mjs → ui-websql-taon-backoffice-notifications.component.ts.en-US.i18n.data-B7rMbj_k.mjs} +2 -2
- package/websql/fesm2022/{ui-websql-taon-backoffice-notifications.component.ts.en-US.i18n.data-DdHr5V8R.mjs.map → ui-websql-taon-backoffice-notifications.component.ts.en-US.i18n.data-B7rMbj_k.mjs.map} +1 -1
- package/websql/fesm2022/{ui-websql-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-CD5ZqDCD.mjs → ui-websql-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-DhnMOPfQ.mjs} +2 -2
- package/websql/fesm2022/{ui-websql-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-CD5ZqDCD.mjs.map → ui-websql-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-DhnMOPfQ.mjs.map} +1 -1
- package/websql/fesm2022/{ui-websql-taon-under-construction.component.ts.en-US.i18n.data-CJznhYEs.mjs → ui-websql-taon-under-construction.component.ts.en-US.i18n.data-Dh67aeKr.mjs} +1 -1
- package/websql/fesm2022/{ui-websql-taon-under-construction.component.ts.en-US.i18n.data-CJznhYEs.mjs.map → ui-websql-taon-under-construction.component.ts.en-US.i18n.data-Dh67aeKr.mjs.map} +1 -1
- package/websql/fesm2022/{ui-websql-taon-under-construction.component.ts.pl-PL.i18n.data-5S7xoosG.mjs → ui-websql-taon-under-construction.component.ts.pl-PL.i18n.data-1tOEFzhx.mjs} +1 -1
- package/websql/fesm2022/{ui-websql-taon-under-construction.component.ts.pl-PL.i18n.data-5S7xoosG.mjs.map → ui-websql-taon-under-construction.component.ts.pl-PL.i18n.data-1tOEFzhx.mjs.map} +1 -1
- package/websql/fesm2022/ui-websql.mjs +456 -27
- package/websql/fesm2022/ui-websql.mjs.map +1 -1
- package/websql/package.json +1 -1
- package/websql/types/ui-websql.d.ts +101 -5
- package/websql-prod/fesm2022/{ui-websql-prod-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs → ui-websql-prod-my-organization-proj.ts.en-US.i18n.data-DONKFrH1.mjs} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs.map → ui-websql-prod-my-organization-proj.ts.en-US.i18n.data-DONKFrH1.mjs.map} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs → ui-websql-prod-my-organization-proj.ts.pl-PL.i18n.data-2tqzyV6I.mjs} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs.map → ui-websql-prod-my-organization-proj.ts.pl-PL.i18n.data-2tqzyV6I.mjs.map} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-admin-welcome.component.html.en-US.i18n.data-DyjZkf16.mjs → ui-websql-prod-taon-admin-welcome.component.html.en-US.i18n.data-e56teWnw.mjs} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-admin-welcome.component.html.en-US.i18n.data-DyjZkf16.mjs.map → ui-websql-prod-taon-admin-welcome.component.html.en-US.i18n.data-e56teWnw.mjs.map} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-admin-welcome.component.html.pl-PL.i18n.data-079EXaRW.mjs → ui-websql-prod-taon-admin-welcome.component.html.pl-PL.i18n.data-gJ0yFMrS.mjs} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-admin-welcome.component.html.pl-PL.i18n.data-079EXaRW.mjs.map → ui-websql-prod-taon-admin-welcome.component.html.pl-PL.i18n.data-gJ0yFMrS.mjs.map} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-admin-welcome.component.ts.en-US.i18n.data-DB_VFp1U.mjs → ui-websql-prod-taon-admin-welcome.component.ts.en-US.i18n.data-Brm6LkNC.mjs} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-admin-welcome.component.ts.en-US.i18n.data-DB_VFp1U.mjs.map → ui-websql-prod-taon-admin-welcome.component.ts.en-US.i18n.data-Brm6LkNC.mjs.map} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-admin-welcome.component.ts.pl-PL.i18n.data-C5Asxno1.mjs → ui-websql-prod-taon-admin-welcome.component.ts.pl-PL.i18n.data-UzLYlGgM.mjs} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-admin-welcome.component.ts.pl-PL.i18n.data-C5Asxno1.mjs.map → ui-websql-prod-taon-admin-welcome.component.ts.pl-PL.i18n.data-UzLYlGgM.mjs.map} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-backoffice-notifications.component.ts.en-US.i18n.data-DdHr5V8R.mjs → ui-websql-prod-taon-backoffice-notifications.component.ts.en-US.i18n.data-Y96lOSMs.mjs} +2 -2
- package/websql-prod/fesm2022/{ui-websql-prod-taon-backoffice-notifications.component.ts.en-US.i18n.data-DdHr5V8R.mjs.map → ui-websql-prod-taon-backoffice-notifications.component.ts.en-US.i18n.data-Y96lOSMs.mjs.map} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-CD5ZqDCD.mjs → ui-websql-prod-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-BdrjRjg7.mjs} +2 -2
- package/websql-prod/fesm2022/{ui-websql-prod-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-CD5ZqDCD.mjs.map → ui-websql-prod-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-BdrjRjg7.mjs.map} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-under-construction.component.ts.en-US.i18n.data-CJznhYEs.mjs → ui-websql-prod-taon-under-construction.component.ts.en-US.i18n.data-DgO-aU_4.mjs} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-under-construction.component.ts.en-US.i18n.data-CJznhYEs.mjs.map → ui-websql-prod-taon-under-construction.component.ts.en-US.i18n.data-DgO-aU_4.mjs.map} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-under-construction.component.ts.pl-PL.i18n.data-5S7xoosG.mjs → ui-websql-prod-taon-under-construction.component.ts.pl-PL.i18n.data-DQbYc83m.mjs} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-under-construction.component.ts.pl-PL.i18n.data-5S7xoosG.mjs.map → ui-websql-prod-taon-under-construction.component.ts.pl-PL.i18n.data-DQbYc83m.mjs.map} +1 -1
- package/websql-prod/fesm2022/ui-websql-prod.mjs +456 -27
- 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 +101 -5
|
@@ -2,17 +2,17 @@ import { Translation } from '@taon-dev/i18n/browser';
|
|
|
2
2
|
import { UtilsJson, _ } from 'tnp-core/browser';
|
|
3
3
|
import { BaseCommandLineFeature } from 'tnp-helpers/browser';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { inject, ElementRef, Directive, signal, Injectable, Input, ChangeDetectionStrategy, Component, HostListener, ViewChild, DestroyRef, ChangeDetectorRef, EventEmitter, Output, input } from '@angular/core';
|
|
5
|
+
import { inject, ElementRef, Directive, signal, Injectable, Input, ChangeDetectionStrategy, Component, HostListener, ViewChild, DestroyRef, ChangeDetectorRef, EventEmitter, Output, InjectionToken, ApplicationRef, EnvironmentInjector, Injector, createComponent, Inject, input } from '@angular/core';
|
|
6
6
|
import * as i2$1 from '@angular/common';
|
|
7
7
|
import { CommonModule, AsyncPipe, NgTemplateOutlet, NgIf } from '@angular/common';
|
|
8
8
|
import * as i3$1 from '@angular/material/expansion';
|
|
9
9
|
import { MatExpansionModule } from '@angular/material/expansion';
|
|
10
|
-
import * as
|
|
10
|
+
import * as i1$1 from '@angular/material/icon';
|
|
11
11
|
import { MatIconModule } from '@angular/material/icon';
|
|
12
12
|
import * as i3 from '@angular/material/tooltip';
|
|
13
13
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
14
14
|
import * as i1 from '@angular/router';
|
|
15
|
-
import { NavigationEnd, RouterOutlet, RouterLink } from '@angular/router';
|
|
15
|
+
import { NavigationEnd, RouterOutlet, RouterLink, ActivatedRoute, Router } from '@angular/router';
|
|
16
16
|
import { filter, BehaviorSubject, Subject, switchMap, debounceTime, distinctUntilChanged, tap, of, from, map, catchError, finalize, firstValueFrom, take } from 'rxjs';
|
|
17
17
|
import * as i2 from '@angular/material/tabs';
|
|
18
18
|
import { MatTabsModule } from '@angular/material/tabs';
|
|
@@ -20,15 +20,15 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
|
20
20
|
import { Resource, getDefaultModel } from 'ng2-rest/browser';
|
|
21
21
|
import { TaonAdminService, getHttpStatus, ClassHelpers, Symbols } from 'taon/browser';
|
|
22
22
|
import { HotToastRef, HotToastService } from '@ngneat/hot-toast';
|
|
23
|
-
import * as i1$
|
|
23
|
+
import * as i1$2 from '@angular/material/dialog';
|
|
24
24
|
import { MAT_DIALOG_DATA, MatDialogModule, MatDialog, MatDialogRef } from '@angular/material/dialog';
|
|
25
|
-
import * as
|
|
25
|
+
import * as i2$2 from '@angular/material/button';
|
|
26
26
|
import { MatButtonModule } from '@angular/material/button';
|
|
27
|
-
import * as i3$
|
|
27
|
+
import * as i3$2 from '@angular/material/button-toggle';
|
|
28
28
|
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
29
|
-
import * as i2$
|
|
29
|
+
import * as i2$3 from '@angular/forms';
|
|
30
30
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
31
|
-
import * as i4
|
|
31
|
+
import * as i4 from '@angular/material/form-field';
|
|
32
32
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
33
33
|
import * as i6 from '@angular/material/input';
|
|
34
34
|
import { MatInputModule } from '@angular/material/input';
|
|
@@ -68,10 +68,10 @@ const CURRENT_PACKAGE_TAON_VERSION = 'v21';
|
|
|
68
68
|
/**
|
|
69
69
|
* Autogenerated by current cli tool. Use *tnp release* to bump version.
|
|
70
70
|
*/
|
|
71
|
-
const CURRENT_PACKAGE_VERSION = '21.0.
|
|
71
|
+
const CURRENT_PACKAGE_VERSION = '21.0.19';
|
|
72
72
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
73
73
|
|
|
74
|
-
const t$3 = Translation.for('src/lib/my-organization-proj.ts', { "src/lib/my-organization-proj.ts": { "en-US": async () => (await import('./ui-browser-my-organization-proj.ts.en-US.i18n.data-
|
|
74
|
+
const t$3 = Translation.for('src/lib/my-organization-proj.ts', { "src/lib/my-organization-proj.ts": { "en-US": async () => (await import('./ui-browser-my-organization-proj.ts.en-US.i18n.data-CeHZLkBn.mjs')).default, "pl-PL": async () => (await import('./ui-browser-my-organization-proj.ts.pl-PL.i18n.data-d2TJi7-R.mjs')).default } });
|
|
75
75
|
function myOrgProj() {
|
|
76
76
|
t$3.gettext('My Translated Company Name!');
|
|
77
77
|
}
|
|
@@ -428,7 +428,7 @@ class TaonAdminPageTabsComponent {
|
|
|
428
428
|
return;
|
|
429
429
|
}
|
|
430
430
|
let children = await this.loadChildren(activeRoute);
|
|
431
|
-
children = this.unwrapEmptyPathRoutes(children);
|
|
431
|
+
children = this.unwrapEmptyPathRoutes(children).filter(f => !!f.data);
|
|
432
432
|
if (!children.length) {
|
|
433
433
|
return;
|
|
434
434
|
}
|
|
@@ -946,7 +946,7 @@ class TaonAdminLayoutComponent {
|
|
|
946
946
|
.replace(/\b\w/g, char => char.toUpperCase());
|
|
947
947
|
}
|
|
948
948
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonAdminLayoutComponent, deps: [{ token: i1.Router }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
949
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonAdminLayoutComponent, isStandalone: true, selector: "taon-admin-layout", inputs: { routes: "routes", basePath: "basePath", outlet: "outlet" }, host: { listeners: { "window:resize": "windowResized()" } }, ngImport: i0, template: "<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 aria-label=\"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\">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-content select=\"[contentFooter]\" />\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", styles: [":host{display:block;width:100%;height:100%;min-width:0;min-height:0}.admin-layout{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:#fff}.admin-layout-dialog{min-width:500px;min-height:350px}.admin-header{display:flex;align-items:center;flex:0 0 64px;height:64px;border-bottom:1px solid var(--mat-sys-outline-variant);background:#fff}.admin-menu-button{flex:0 0 auto;margin-left:8px;margin-right:8px;cursor:pointer}.admin-header-content{flex:1 1 auto;min-width:0}.admin-body{position:relative;display:flex;flex:1 1 auto;min-width:0;min-height:0;overflow:hidden}.admin-aside{position:absolute;top:0;bottom:0;left:0;z-index:30;display:flex;flex-direction:column;width:288px;min-height:0;overflow:hidden;background:#fff;border-right:1px solid var(--mat-sys-outline-variant);transform:translate(-100%);transition:transform .2s ease,width .2s ease}.admin-aside-open{transform:translate(0)}.admin-aside-content{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto}.admin-aside-footer{flex:0 0 auto;padding:12px;border-top:1px solid var(--mat-sys-outline-variant);background:#fff}.admin-menu{display:block}.admin-menu mat-expansion-panel{margin-top:0!important;margin-bottom:0!important;border-radius:0!important;box-shadow:none!important;border-bottom:1px solid var(--mat-sys-outline-variant)}.admin-menu mat-expansion-panel:first-of-type,.admin-menu mat-expansion-panel:last-of-type,.admin-menu mat-expansion-panel-header{border-radius:0!important}.admin-menu-item{display:flex;align-items:center;gap:12px}.admin-level2{display:flex;flex-direction:column}.admin-level2-item{display:flex;align-items:center;gap:12px;padding:10px 24px;cursor:pointer}.admin-level2-item:hover,.admin-level2-item-active{background:#f5f5f5}.admin-level2-item-active{font-weight:600}.admin-level1-item{display:flex;align-items:center;height:56px;gap:12px;padding:0 24px;cursor:pointer}.admin-level1-item:hover,.admin-level1-item-active{background:#f5f5f5}.admin-level1-item-active{font-weight:600}.admin-loading{padding:8px 16px;opacity:.6}.admin-menu-item-disabled{opacity:.5;cursor:not-allowed}.admin-main{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;overflow:hidden}.admin-tabs{display:block;flex:0 0 auto}.admin-content{flex:1 1 auto;min-width:0;min-height:0;padding:24px;overflow-x:auto;overflow-y:auto}.admin-content-footer{flex:0 0 auto;padding:12px 24px;border-top:1px solid var(--mat-sys-outline-variant);background:#fff}.admin-aside-backdrop{position:absolute;inset:0;z-index:20;background:#0000004d}@media(min-width:768px){.admin-aside{position:relative;top:auto;bottom:auto;left:auto;z-index:auto;width:0;transform:none}.admin-aside-open{width:288px;min-width:288px}.admin-aside-backdrop{display:none}}.admin-resize-handle{position:absolute;right:0;bottom:0;z-index:100;width:18px;height:18px;cursor:nwse-resize}.admin-resize-handle:after{content:\"\";position:absolute;right:4px;bottom:4px;width:8px;height:8px;border-right:2px solid #777;border-bottom:2px solid #777}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i3$1.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i3$1.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i3$1.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i3$1.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: TaonAdminPageTabsComponent, selector: "taon-admin-page-tabs", inputs: ["routes", "basePath", "outlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
949
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonAdminLayoutComponent, isStandalone: true, selector: "taon-admin-layout", inputs: { routes: "routes", basePath: "basePath", outlet: "outlet" }, host: { listeners: { "window:resize": "windowResized()" } }, ngImport: i0, template: "<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 aria-label=\"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\">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-content select=\"[contentFooter]\" />\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", styles: [":host{display:block;width:100%;height:100%;min-width:0;min-height:0}.admin-layout{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:#fff}.admin-layout-dialog{min-width:500px;min-height:350px}.admin-header{display:flex;align-items:center;flex:0 0 64px;height:64px;border-bottom:1px solid var(--mat-sys-outline-variant);background:#fff}.admin-menu-button{flex:0 0 auto;margin-left:8px;margin-right:8px;cursor:pointer}.admin-header-content{flex:1 1 auto;min-width:0}.admin-body{position:relative;display:flex;flex:1 1 auto;min-width:0;min-height:0;overflow:hidden}.admin-aside{position:absolute;top:0;bottom:0;left:0;z-index:30;display:flex;flex-direction:column;width:288px;min-height:0;overflow:hidden;background:#fff;border-right:1px solid var(--mat-sys-outline-variant);transform:translate(-100%);transition:transform .2s ease,width .2s ease}.admin-aside-open{transform:translate(0)}.admin-aside-content{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto}.admin-aside-footer{flex:0 0 auto;padding:12px;border-top:1px solid var(--mat-sys-outline-variant);background:#fff}.admin-menu{display:block}.admin-menu mat-expansion-panel{margin-top:0!important;margin-bottom:0!important;border-radius:0!important;box-shadow:none!important;border-bottom:1px solid var(--mat-sys-outline-variant)}.admin-menu mat-expansion-panel:first-of-type,.admin-menu mat-expansion-panel:last-of-type,.admin-menu mat-expansion-panel-header{border-radius:0!important}.admin-menu-item{display:flex;align-items:center;gap:12px}.admin-level2{display:flex;flex-direction:column}.admin-level2-item{display:flex;align-items:center;gap:12px;padding:10px 24px;cursor:pointer}.admin-level2-item:hover,.admin-level2-item-active{background:#f5f5f5}.admin-level2-item-active{font-weight:600}.admin-level1-item{display:flex;align-items:center;height:56px;gap:12px;padding:0 24px;cursor:pointer}.admin-level1-item:hover,.admin-level1-item-active{background:#f5f5f5}.admin-level1-item-active{font-weight:600}.admin-loading{padding:8px 16px;opacity:.6}.admin-menu-item-disabled{opacity:.5;cursor:not-allowed}.admin-main{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;overflow:hidden}.admin-tabs{display:block;flex:0 0 auto}.admin-content{flex:1 1 auto;min-width:0;min-height:0;padding:24px;overflow-x:auto;overflow-y:auto}.admin-content-footer{flex:0 0 auto;padding:12px 24px;border-top:1px solid var(--mat-sys-outline-variant);background:#fff}.admin-aside-backdrop{position:absolute;inset:0;z-index:20;background:#0000004d}@media(min-width:768px){.admin-aside{position:relative;top:auto;bottom:auto;left:auto;z-index:auto;width:0;transform:none}.admin-aside-open{width:288px;min-width:288px}.admin-aside-backdrop{display:none}}.admin-resize-handle{position:absolute;right:0;bottom:0;z-index:100;width:18px;height:18px;cursor:nwse-resize}.admin-resize-handle:after{content:\"\";position:absolute;right:4px;bottom:4px;width:8px;height:8px;border-right:2px solid #777;border-bottom:2px solid #777}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i3$1.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i3$1.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i3$1.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i3$1.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: TaonAdminPageTabsComponent, selector: "taon-admin-page-tabs", inputs: ["routes", "basePath", "outlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
950
950
|
}
|
|
951
951
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonAdminLayoutComponent, decorators: [{
|
|
952
952
|
type: Component,
|
|
@@ -1012,7 +1012,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
|
|
|
1012
1012
|
|
|
1013
1013
|
//#region imports
|
|
1014
1014
|
//#endregion
|
|
1015
|
-
const t$2 = 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('./ui-browser-taon-admin-welcome.component.html.en-US.i18n.data-
|
|
1015
|
+
const t$2 = 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('./ui-browser-taon-admin-welcome.component.html.en-US.i18n.data-B8C34hRd.mjs')).default, "pl-PL": async () => (await import('./ui-browser-taon-admin-welcome.component.html.pl-PL.i18n.data-_t3YRqrv.mjs')).default }, "src/lib/taon-admin-welcome/taon-admin-welcome.component.ts": { "en-US": async () => (await import('./ui-browser-taon-admin-welcome.component.ts.en-US.i18n.data-B4Q6VxPm.mjs')).default, "pl-PL": async () => (await import('./ui-browser-taon-admin-welcome.component.ts.pl-PL.i18n.data-s4AKOE7A.mjs')).default } });
|
|
1016
1016
|
class TaonAdminWelcomeComponent {
|
|
1017
1017
|
constructor() {
|
|
1018
1018
|
this.t = t$2.for(this);
|
|
@@ -1129,7 +1129,7 @@ class TaonErrorDetailsDialogComponent {
|
|
|
1129
1129
|
return `${protocol}://file${location}`;
|
|
1130
1130
|
}
|
|
1131
1131
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonErrorDetailsDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1132
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonErrorDetailsDialogComponent, isStandalone: true, selector: "taon-error-details-dialog", ngImport: i0, template: "<h2 mat-dialog-title>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\"> I am using editor: </span>\n\n <mat-button-toggle-group\n [value]=\"editor\"\n (change)=\"setEditor($event.value)\"\n aria-label=\"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=\"Open {{ stackLine.file }}:{{ stackLine.line }}:{{ stackLine.column }}\"\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 Close\n </button>\n</mat-dialog-actions>\n", styles: [".error-message{margin-bottom:16px;font-weight:500}.editor-selector{display:flex;align-items:center;gap:12px;margin-bottom:12px}.editor-selector-label{font-size:13px}.error-details{box-sizing:border-box;max-width:100%;max-height:60vh;margin:0;padding:16px;overflow-y:auto;overflow-x:hidden;border-radius:6px;background:#0000000f;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.stack-link{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}.stack-link:hover{background:#00000014}.stack-line{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}\n"], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$
|
|
1132
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonErrorDetailsDialogComponent, isStandalone: true, selector: "taon-error-details-dialog", ngImport: i0, template: "<h2 mat-dialog-title>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\"> I am using editor: </span>\n\n <mat-button-toggle-group\n [value]=\"editor\"\n (change)=\"setEditor($event.value)\"\n aria-label=\"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=\"Open {{ stackLine.file }}:{{ stackLine.line }}:{{ stackLine.column }}\"\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 Close\n </button>\n</mat-dialog-actions>\n", styles: [".error-message{margin-bottom:16px;font-weight:500}.editor-selector{display:flex;align-items:center;gap:12px;margin-bottom:12px}.editor-selector-label{font-size:13px}.error-details{box-sizing:border-box;max-width:100%;max-height:60vh;margin:0;padding:16px;overflow-y:auto;overflow-x:hidden;border-radius:6px;background:#0000000f;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.stack-link{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}.stack-link:hover{background:#00000014}.stack-line{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}\n"], dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i3$2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }] }); }
|
|
1133
1133
|
}
|
|
1134
1134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonErrorDetailsDialogComponent, decorators: [{
|
|
1135
1135
|
type: Component,
|
|
@@ -1180,11 +1180,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
|
|
|
1180
1180
|
//#region imports
|
|
1181
1181
|
//#endregion
|
|
1182
1182
|
class TaonBackofficeNotificationsService {
|
|
1183
|
+
//#endregion
|
|
1183
1184
|
constructor() {
|
|
1184
1185
|
//#region injections
|
|
1185
1186
|
this.toast = inject(HotToastService);
|
|
1187
|
+
this.toast.defaultConfig.dismissible = true;
|
|
1186
1188
|
}
|
|
1187
|
-
//#endregion
|
|
1188
1189
|
//#region private methods
|
|
1189
1190
|
normalize(input) {
|
|
1190
1191
|
return typeof input === 'string' ? { title: input } : input;
|
|
@@ -1225,12 +1226,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
|
|
|
1225
1226
|
args: [{
|
|
1226
1227
|
providedIn: 'root',
|
|
1227
1228
|
}]
|
|
1228
|
-
}] });
|
|
1229
|
+
}], ctorParameters: () => [] });
|
|
1229
1230
|
|
|
1230
1231
|
//#region imports
|
|
1231
1232
|
//#endregion
|
|
1232
|
-
const t$1 = 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('./ui-browser-taon-backoffice-notifications.component.ts.en-US.i18n.data-
|
|
1233
|
+
const t$1 = 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('./ui-browser-taon-backoffice-notifications.component.ts.en-US.i18n.data-BAh0p5PN.mjs')).default, "pl-PL": async () => (await import('./ui-browser-taon-backoffice-notifications.component.ts.pl-PL.i18n.data-C7f7qeUT.mjs')).default } });
|
|
1233
1234
|
class TaonBackofficeNotificationsComponent {
|
|
1235
|
+
showErrorNotification(title, details) {
|
|
1236
|
+
const key = JSON.stringify([title, details]);
|
|
1237
|
+
if (this.shownNotifications.has(key)) {
|
|
1238
|
+
return;
|
|
1239
|
+
}
|
|
1240
|
+
this.shownNotifications.add(key);
|
|
1241
|
+
this.notification.error({
|
|
1242
|
+
title,
|
|
1243
|
+
details,
|
|
1244
|
+
});
|
|
1245
|
+
}
|
|
1234
1246
|
//#endregion
|
|
1235
1247
|
//#region constructor
|
|
1236
1248
|
constructor() {
|
|
@@ -1239,6 +1251,7 @@ class TaonBackofficeNotificationsComponent {
|
|
|
1239
1251
|
this.notification = inject(TaonBackofficeNotificationsService);
|
|
1240
1252
|
this.destroyRef = inject(DestroyRef);
|
|
1241
1253
|
this.taonAdminService = inject(TaonAdminService);
|
|
1254
|
+
this.shownNotifications = new Set();
|
|
1242
1255
|
Resource.listenErrors
|
|
1243
1256
|
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
1244
1257
|
.subscribe((error) => {
|
|
@@ -1255,10 +1268,9 @@ class TaonBackofficeNotificationsComponent {
|
|
|
1255
1268
|
console.log(`[@taon-dev/sudo] Skipping notificaiton for message "${jsonMsg.message}" (code=${statusCode})`);
|
|
1256
1269
|
}
|
|
1257
1270
|
else {
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
});
|
|
1271
|
+
const title = t$1.translate(jsonMsg.message) || t$1.gettext('Unknown error');
|
|
1272
|
+
const details = jsonMsg?.details;
|
|
1273
|
+
this.showErrorNotification(title, details);
|
|
1262
1274
|
}
|
|
1263
1275
|
});
|
|
1264
1276
|
}
|
|
@@ -1284,7 +1296,7 @@ class TaonConfirmDialogComponent {
|
|
|
1284
1296
|
this.dialogRef.close(true);
|
|
1285
1297
|
}
|
|
1286
1298
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonConfirmDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1287
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonConfirmDialogComponent, isStandalone: true, selector: "taon-confirm-dialog", ngImport: i0, template: "<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 || '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 || 'OK' }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type:
|
|
1299
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonConfirmDialogComponent, isStandalone: true, selector: "taon-confirm-dialog", ngImport: i0, template: "<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 || '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 || 'OK' }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
|
|
1288
1300
|
}
|
|
1289
1301
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonConfirmDialogComponent, decorators: [{
|
|
1290
1302
|
type: Component,
|
|
@@ -1608,7 +1620,7 @@ class TaonDatatableComponent {
|
|
|
1608
1620
|
}
|
|
1609
1621
|
}
|
|
1610
1622
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDatatableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1611
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonDatatableComponent, isStandalone: true, selector: "taon-datatable", inputs: { pageNumber: "pageNumber", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", allowedColumns: "allowedColumns", expansionTemplate: "expansionTemplate", entityCrudController: "entityCrudController", columns: "columns", hideSearch: "hideSearch", hideAddButton: "hideAddButton", safe: "safe", searchMode: "searchMode", callQueryMethod: "callQueryMethod", data: "data", showPaginator: "showPaginator" }, outputs: { expansionChange: "expansionChange", addingItem: "addingItem" }, ngImport: i0, template: "<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=\"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 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=\"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 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 @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 <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 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 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 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 [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", styles: [":host{display:block;width:100%;min-height:250px}:host ::ng-deep .mat-mdc-form-field{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "ngmodule", type: MtxGridModule }, { kind: "component", type: i7.MtxGrid, selector: "mtx-grid", inputs: ["displayedColumns", "columns", "data", "length", "loading", "trackBy", "columnResizable", "emptyValuePlaceholder", "pageOnFront", "showPaginator", "pageDisabled", "showFirstLastButtons", "pageIndex", "pageSize", "pageSizeOptions", "hidePageSize", "paginationTemplate", "sortOnFront", "sortActive", "sortDirection", "sortDisableClear", "sortDisabled", "sortStart", "rowHover", "rowStriped", "expandable", "expansionTemplate", "multiSelectable", "multiSelectionWithClick", "rowSelectable", "hideRowSelectionCheckbox", "disableRowClickSelection", "rowSelectionFormatter", "rowClassFormatter", "rowSelected", "cellSelectable", "showToolbar", "toolbarTitle", "toolbarTemplate", "columnHideable", "columnHideableChecked", "columnSortable", "columnPinnable", "columnPinOptions", "showColumnMenuButton", "columnMenuButtonText", "columnMenuButtonType", "columnMenuButtonColor", "columnMenuButtonClass", "columnMenuButtonIcon", "columnMenuButtonFontIcon", "columnMenuButtonSvgIcon", "showColumnMenuHeader", "columnMenuHeaderText", "columnMenuHeaderTemplate", "showColumnMenuFooter", "columnMenuFooterText", "columnMenuFooterTemplate", "noResultText", "noResultTemplate", "headerTemplate", "headerExtraTemplate", "cellTemplate", "useContentRowTemplate", "useContentHeaderRowTemplate", "useContentFooterRowTemplate", "showSummary", "summaryTemplate", "showSidebar", "sidebarTemplate", "showStatusbar", "statusbarTemplate"], outputs: ["page", "sortChange", "rowClick", "rowContextMenu", "expansionChange", "rowSelectedChange", "cellSelectedChange", "columnChange"], exportAs: ["mtxGrid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1623
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonDatatableComponent, isStandalone: true, selector: "taon-datatable", inputs: { pageNumber: "pageNumber", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", allowedColumns: "allowedColumns", expansionTemplate: "expansionTemplate", entityCrudController: "entityCrudController", columns: "columns", hideSearch: "hideSearch", hideAddButton: "hideAddButton", safe: "safe", searchMode: "searchMode", callQueryMethod: "callQueryMethod", data: "data", showPaginator: "showPaginator" }, outputs: { expansionChange: "expansionChange", addingItem: "addingItem" }, ngImport: i0, template: "<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=\"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 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=\"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 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 @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 <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 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 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 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 [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", styles: [":host{display:block;width:100%;min-height:250px}:host ::ng-deep .mat-mdc-form-field{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "ngmodule", type: MtxGridModule }, { kind: "component", type: i7.MtxGrid, selector: "mtx-grid", inputs: ["displayedColumns", "columns", "data", "length", "loading", "trackBy", "columnResizable", "emptyValuePlaceholder", "pageOnFront", "showPaginator", "pageDisabled", "showFirstLastButtons", "pageIndex", "pageSize", "pageSizeOptions", "hidePageSize", "paginationTemplate", "sortOnFront", "sortActive", "sortDirection", "sortDisableClear", "sortDisabled", "sortStart", "rowHover", "rowStriped", "expandable", "expansionTemplate", "multiSelectable", "multiSelectionWithClick", "rowSelectable", "hideRowSelectionCheckbox", "disableRowClickSelection", "rowSelectionFormatter", "rowClassFormatter", "rowSelected", "cellSelectable", "showToolbar", "toolbarTitle", "toolbarTemplate", "columnHideable", "columnHideableChecked", "columnSortable", "columnPinnable", "columnPinOptions", "showColumnMenuButton", "columnMenuButtonText", "columnMenuButtonType", "columnMenuButtonColor", "columnMenuButtonClass", "columnMenuButtonIcon", "columnMenuButtonFontIcon", "columnMenuButtonSvgIcon", "showColumnMenuHeader", "columnMenuHeaderText", "columnMenuHeaderTemplate", "showColumnMenuFooter", "columnMenuFooterText", "columnMenuFooterTemplate", "noResultText", "noResultTemplate", "headerTemplate", "headerExtraTemplate", "cellTemplate", "useContentRowTemplate", "useContentHeaderRowTemplate", "useContentFooterRowTemplate", "showSummary", "summaryTemplate", "showSidebar", "sidebarTemplate", "showStatusbar", "statusbarTemplate"], outputs: ["page", "sortChange", "rowClick", "rowContextMenu", "expansionChange", "rowSelectedChange", "cellSelectedChange", "columnChange"], exportAs: ["mtxGrid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1612
1624
|
}
|
|
1613
1625
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDatatableComponent, decorators: [{
|
|
1614
1626
|
type: Component,
|
|
@@ -1687,6 +1699,408 @@ const TaonDatatableRoutes = [
|
|
|
1687
1699
|
*/
|
|
1688
1700
|
// export default TaonDatatableRoutes;
|
|
1689
1701
|
|
|
1702
|
+
//#region imports
|
|
1703
|
+
//#endregion
|
|
1704
|
+
//#region tokens
|
|
1705
|
+
const TAON_IS_DETACHED_WINDOW = new InjectionToken('TAON_IS_DETACHED_WINDOW', {
|
|
1706
|
+
factory: () => false,
|
|
1707
|
+
});
|
|
1708
|
+
//#endregion
|
|
1709
|
+
//#region helpers
|
|
1710
|
+
function cloneObject(value) {
|
|
1711
|
+
return {
|
|
1712
|
+
...(value || {}),
|
|
1713
|
+
};
|
|
1714
|
+
}
|
|
1715
|
+
function createDetachedActivatedRoute(state) {
|
|
1716
|
+
const params$ = new BehaviorSubject(cloneObject(state.params));
|
|
1717
|
+
const queryParams$ = new BehaviorSubject(cloneObject(state.queryParams));
|
|
1718
|
+
const fragment$ = new BehaviorSubject(state.fragment);
|
|
1719
|
+
const data$ = new BehaviorSubject(cloneObject(state.data));
|
|
1720
|
+
const snapshot = {
|
|
1721
|
+
params: cloneObject(state.params),
|
|
1722
|
+
queryParams: cloneObject(state.queryParams),
|
|
1723
|
+
fragment: state.fragment,
|
|
1724
|
+
data: cloneObject(state.data),
|
|
1725
|
+
paramMap: undefined,
|
|
1726
|
+
queryParamMap: undefined,
|
|
1727
|
+
};
|
|
1728
|
+
return {
|
|
1729
|
+
snapshot,
|
|
1730
|
+
params: params$.asObservable(),
|
|
1731
|
+
queryParams: queryParams$.asObservable(),
|
|
1732
|
+
fragment: fragment$.asObservable(),
|
|
1733
|
+
data: data$.asObservable(),
|
|
1734
|
+
};
|
|
1735
|
+
}
|
|
1736
|
+
//#endregion
|
|
1737
|
+
//#region detached windows service
|
|
1738
|
+
class TaonDetachedWindowsService {
|
|
1739
|
+
constructor() {
|
|
1740
|
+
//#region fields
|
|
1741
|
+
/**
|
|
1742
|
+
* Base z-index for all detached windows.
|
|
1743
|
+
*/
|
|
1744
|
+
this.baseZIndex = 10000;
|
|
1745
|
+
/**
|
|
1746
|
+
* Monotonically increasing focus counter.
|
|
1747
|
+
*
|
|
1748
|
+
* Every time a window receives focus it gets the next value.
|
|
1749
|
+
*/
|
|
1750
|
+
this.zIndexCounter = this.baseZIndex;
|
|
1751
|
+
this.windows = signal([], ...(ngDevMode ? [{ debugName: "windows" }] : []));
|
|
1752
|
+
}
|
|
1753
|
+
//#endregion
|
|
1754
|
+
//#region open
|
|
1755
|
+
open(options) {
|
|
1756
|
+
const id = typeof crypto !== 'undefined' && crypto.randomUUID
|
|
1757
|
+
? crypto.randomUUID()
|
|
1758
|
+
: `taon-window-${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
1759
|
+
const zIndex = ++this.zIndexCounter;
|
|
1760
|
+
this.windows.update(windows => [
|
|
1761
|
+
...windows,
|
|
1762
|
+
{
|
|
1763
|
+
id,
|
|
1764
|
+
title: options.title,
|
|
1765
|
+
component: options.component,
|
|
1766
|
+
routeState: options.routeState,
|
|
1767
|
+
zIndex,
|
|
1768
|
+
},
|
|
1769
|
+
]);
|
|
1770
|
+
return id;
|
|
1771
|
+
}
|
|
1772
|
+
//#endregion
|
|
1773
|
+
//#region focus
|
|
1774
|
+
focus(id) {
|
|
1775
|
+
const windows = this.windows();
|
|
1776
|
+
const windowToFocus = windows.find(window => window.id === id);
|
|
1777
|
+
if (!windowToFocus) {
|
|
1778
|
+
return;
|
|
1779
|
+
}
|
|
1780
|
+
/**
|
|
1781
|
+
* Don't create a new signal value if this window
|
|
1782
|
+
* is already the top-most window.
|
|
1783
|
+
*/
|
|
1784
|
+
const highestZIndex = Math.max(...windows.map(window => window.zIndex));
|
|
1785
|
+
if (windowToFocus.zIndex === highestZIndex) {
|
|
1786
|
+
return;
|
|
1787
|
+
}
|
|
1788
|
+
const zIndex = ++this.zIndexCounter;
|
|
1789
|
+
this.windows.update(currentWindows => currentWindows.map(window => window.id === id
|
|
1790
|
+
? {
|
|
1791
|
+
...window,
|
|
1792
|
+
zIndex,
|
|
1793
|
+
}
|
|
1794
|
+
: window));
|
|
1795
|
+
}
|
|
1796
|
+
//#endregion
|
|
1797
|
+
//#region close
|
|
1798
|
+
close(id) {
|
|
1799
|
+
const detachedWindow = this.windows().find(current => current.id === id);
|
|
1800
|
+
if (detachedWindow?.componentRef) {
|
|
1801
|
+
detachedWindow.componentRef.destroy();
|
|
1802
|
+
}
|
|
1803
|
+
this.windows.update(windows => windows.filter(current => current.id !== id));
|
|
1804
|
+
}
|
|
1805
|
+
//#endregion
|
|
1806
|
+
//#region register component ref
|
|
1807
|
+
registerComponentRef(id, componentRef) {
|
|
1808
|
+
this.windows.update(windows => windows.map(window => window.id === id
|
|
1809
|
+
? {
|
|
1810
|
+
...window,
|
|
1811
|
+
componentRef,
|
|
1812
|
+
}
|
|
1813
|
+
: window));
|
|
1814
|
+
}
|
|
1815
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDetachedWindowsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1816
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDetachedWindowsService, providedIn: 'root' }); }
|
|
1817
|
+
}
|
|
1818
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDetachedWindowsService, decorators: [{
|
|
1819
|
+
type: Injectable,
|
|
1820
|
+
args: [{
|
|
1821
|
+
providedIn: 'root',
|
|
1822
|
+
}]
|
|
1823
|
+
}] });
|
|
1824
|
+
//#endregion
|
|
1825
|
+
//#region detached window
|
|
1826
|
+
class TaonDetachedWindowComponent {
|
|
1827
|
+
constructor() {
|
|
1828
|
+
//#region injections
|
|
1829
|
+
this.windowsService = inject(TaonDetachedWindowsService);
|
|
1830
|
+
this.appRef = inject(ApplicationRef);
|
|
1831
|
+
this.environmentInjector = inject(EnvironmentInjector);
|
|
1832
|
+
this.injector = inject(Injector);
|
|
1833
|
+
}
|
|
1834
|
+
//#endregion
|
|
1835
|
+
//#region lifecycle
|
|
1836
|
+
ngAfterViewInit() {
|
|
1837
|
+
this.createDetachedComponent();
|
|
1838
|
+
}
|
|
1839
|
+
ngOnDestroy() {
|
|
1840
|
+
this.destroyDetachedComponent();
|
|
1841
|
+
}
|
|
1842
|
+
//#endregion
|
|
1843
|
+
//#region focus
|
|
1844
|
+
focus() {
|
|
1845
|
+
this.windowsService.focus(this.window.id);
|
|
1846
|
+
}
|
|
1847
|
+
//#endregion
|
|
1848
|
+
//#region create detached component
|
|
1849
|
+
createDetachedComponent() {
|
|
1850
|
+
const detachedActivatedRoute = createDetachedActivatedRoute(this.window.routeState);
|
|
1851
|
+
const detachedInjector = Injector.create({
|
|
1852
|
+
parent: this.injector,
|
|
1853
|
+
providers: [
|
|
1854
|
+
{
|
|
1855
|
+
provide: ActivatedRoute,
|
|
1856
|
+
useValue: detachedActivatedRoute,
|
|
1857
|
+
},
|
|
1858
|
+
{
|
|
1859
|
+
provide: TAON_IS_DETACHED_WINDOW,
|
|
1860
|
+
useValue: true,
|
|
1861
|
+
},
|
|
1862
|
+
],
|
|
1863
|
+
});
|
|
1864
|
+
const componentRef = createComponent(this.window.component, {
|
|
1865
|
+
environmentInjector: this.environmentInjector,
|
|
1866
|
+
elementInjector: detachedInjector,
|
|
1867
|
+
hostElement: this.componentHost.nativeElement,
|
|
1868
|
+
});
|
|
1869
|
+
this.componentRef = componentRef;
|
|
1870
|
+
this.appRef.attachView(componentRef.hostView);
|
|
1871
|
+
componentRef.changeDetectorRef.detectChanges();
|
|
1872
|
+
this.windowsService.registerComponentRef(this.window.id, componentRef);
|
|
1873
|
+
}
|
|
1874
|
+
//#endregion
|
|
1875
|
+
//#region destroy detached component
|
|
1876
|
+
destroyDetachedComponent() {
|
|
1877
|
+
if (!this.componentRef) {
|
|
1878
|
+
return;
|
|
1879
|
+
}
|
|
1880
|
+
try {
|
|
1881
|
+
this.appRef.detachView(this.componentRef.hostView);
|
|
1882
|
+
}
|
|
1883
|
+
catch { }
|
|
1884
|
+
if (!this.componentRef.hostView.destroyed) {
|
|
1885
|
+
this.componentRef.destroy();
|
|
1886
|
+
}
|
|
1887
|
+
this.componentRef = undefined;
|
|
1888
|
+
}
|
|
1889
|
+
//#endregion
|
|
1890
|
+
//#region close
|
|
1891
|
+
close() {
|
|
1892
|
+
this.windowsService.close(this.window.id);
|
|
1893
|
+
}
|
|
1894
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDetachedWindowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1895
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: TaonDetachedWindowComponent, isStandalone: true, selector: "taon-detached-window", inputs: { window: "window" }, viewQueries: [{ propertyName: "componentHost", first: true, predicate: ["componentHost"], descendants: true, static: true }], ngImport: i0, template: `
|
|
1896
|
+
<div
|
|
1897
|
+
class="taon-detached-window"
|
|
1898
|
+
cdkDrag
|
|
1899
|
+
[style.z-index]="window.zIndex"
|
|
1900
|
+
(pointerdown)="focus()">
|
|
1901
|
+
<header class="taon-detached-window-header">
|
|
1902
|
+
<div
|
|
1903
|
+
class="taon-detached-window-drag-handle"
|
|
1904
|
+
cdkDragHandle>
|
|
1905
|
+
<span class="taon-detached-window-title">
|
|
1906
|
+
{{ window.title }}
|
|
1907
|
+
</span>
|
|
1908
|
+
</div>
|
|
1909
|
+
|
|
1910
|
+
<div class="taon-detached-window-actions">
|
|
1911
|
+
<button
|
|
1912
|
+
mat-icon-button
|
|
1913
|
+
type="button"
|
|
1914
|
+
matTooltip="Close"
|
|
1915
|
+
(click)="close()">
|
|
1916
|
+
<mat-icon> close </mat-icon>
|
|
1917
|
+
</button>
|
|
1918
|
+
</div>
|
|
1919
|
+
</header>
|
|
1920
|
+
|
|
1921
|
+
<main class="taon-detached-window-body">
|
|
1922
|
+
<div
|
|
1923
|
+
#componentHost
|
|
1924
|
+
class="taon-detached-window-component-host"></div>
|
|
1925
|
+
</main>
|
|
1926
|
+
</div>
|
|
1927
|
+
`, isInline: true, styles: [":host{display:block}.taon-detached-window{position:absolute;top:80px;left:80px;width:min(900px,calc(100vw - 80px));height:min(700px,calc(100vh - 80px));min-width:320px;min-height:200px;display:flex;flex-direction:column;background:var(--mat-sys-surface, white);color:var(--mat-sys-on-surface, black);border:1px solid var(--mat-sys-outline-variant, #ccc);border-radius:8px;box-shadow:0 8px 30px #0003;overflow:hidden;resize:both}.taon-detached-window-header{height:40px;flex:0 0 40px;display:flex;align-items:center;padding-left:12px;border-bottom:1px solid var(--mat-sys-outline-variant, #ccc);-webkit-user-select:none;user-select:none}.taon-detached-window-drag-handle{flex:1;height:100%;display:flex;align-items:center;cursor:move;overflow:hidden}.taon-detached-window-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:500}.taon-detached-window-actions{display:flex;align-items:center;padding-right:4px}.taon-detached-window-body{flex:1;min-height:0;overflow:auto}.taon-detached-window-component-host{display:block;min-height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1928
|
+
}
|
|
1929
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDetachedWindowComponent, decorators: [{
|
|
1930
|
+
type: Component,
|
|
1931
|
+
args: [{ selector: 'taon-detached-window', standalone: true, imports: [
|
|
1932
|
+
CommonModule,
|
|
1933
|
+
CdkDrag,
|
|
1934
|
+
CdkDragHandle,
|
|
1935
|
+
MatIconModule,
|
|
1936
|
+
MatButtonModule,
|
|
1937
|
+
MatTooltipModule,
|
|
1938
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
1939
|
+
<div
|
|
1940
|
+
class="taon-detached-window"
|
|
1941
|
+
cdkDrag
|
|
1942
|
+
[style.z-index]="window.zIndex"
|
|
1943
|
+
(pointerdown)="focus()">
|
|
1944
|
+
<header class="taon-detached-window-header">
|
|
1945
|
+
<div
|
|
1946
|
+
class="taon-detached-window-drag-handle"
|
|
1947
|
+
cdkDragHandle>
|
|
1948
|
+
<span class="taon-detached-window-title">
|
|
1949
|
+
{{ window.title }}
|
|
1950
|
+
</span>
|
|
1951
|
+
</div>
|
|
1952
|
+
|
|
1953
|
+
<div class="taon-detached-window-actions">
|
|
1954
|
+
<button
|
|
1955
|
+
mat-icon-button
|
|
1956
|
+
type="button"
|
|
1957
|
+
matTooltip="Close"
|
|
1958
|
+
(click)="close()">
|
|
1959
|
+
<mat-icon> close </mat-icon>
|
|
1960
|
+
</button>
|
|
1961
|
+
</div>
|
|
1962
|
+
</header>
|
|
1963
|
+
|
|
1964
|
+
<main class="taon-detached-window-body">
|
|
1965
|
+
<div
|
|
1966
|
+
#componentHost
|
|
1967
|
+
class="taon-detached-window-component-host"></div>
|
|
1968
|
+
</main>
|
|
1969
|
+
</div>
|
|
1970
|
+
`, styles: [":host{display:block}.taon-detached-window{position:absolute;top:80px;left:80px;width:min(900px,calc(100vw - 80px));height:min(700px,calc(100vh - 80px));min-width:320px;min-height:200px;display:flex;flex-direction:column;background:var(--mat-sys-surface, white);color:var(--mat-sys-on-surface, black);border:1px solid var(--mat-sys-outline-variant, #ccc);border-radius:8px;box-shadow:0 8px 30px #0003;overflow:hidden;resize:both}.taon-detached-window-header{height:40px;flex:0 0 40px;display:flex;align-items:center;padding-left:12px;border-bottom:1px solid var(--mat-sys-outline-variant, #ccc);-webkit-user-select:none;user-select:none}.taon-detached-window-drag-handle{flex:1;height:100%;display:flex;align-items:center;cursor:move;overflow:hidden}.taon-detached-window-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:500}.taon-detached-window-actions{display:flex;align-items:center;padding-right:4px}.taon-detached-window-body{flex:1;min-height:0;overflow:auto}.taon-detached-window-component-host{display:block;min-height:100%}\n"] }]
|
|
1971
|
+
}], propDecorators: { window: [{
|
|
1972
|
+
type: Input,
|
|
1973
|
+
args: [{
|
|
1974
|
+
required: true,
|
|
1975
|
+
}]
|
|
1976
|
+
}], componentHost: [{
|
|
1977
|
+
type: ViewChild,
|
|
1978
|
+
args: ['componentHost', {
|
|
1979
|
+
static: true,
|
|
1980
|
+
}]
|
|
1981
|
+
}] } });
|
|
1982
|
+
//#endregion
|
|
1983
|
+
//#region detached windows host
|
|
1984
|
+
class TaonDetachedWindowsHostComponent {
|
|
1985
|
+
constructor() {
|
|
1986
|
+
this.windowsService = inject(TaonDetachedWindowsService);
|
|
1987
|
+
}
|
|
1988
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDetachedWindowsHostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1989
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonDetachedWindowsHostComponent, isStandalone: true, selector: "taon-detached-windows-host", ngImport: i0, template: `
|
|
1990
|
+
@for (window of windowsService.windows(); track window.id) {
|
|
1991
|
+
<taon-detached-window [window]="window" />
|
|
1992
|
+
}
|
|
1993
|
+
`, isInline: true, styles: [":host{position:fixed;inset:0;pointer-events:none;z-index:10000}taon-detached-window{pointer-events:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: TaonDetachedWindowComponent, selector: "taon-detached-window", inputs: ["window"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1994
|
+
}
|
|
1995
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDetachedWindowsHostComponent, decorators: [{
|
|
1996
|
+
type: Component,
|
|
1997
|
+
args: [{ selector: 'taon-detached-windows-host', standalone: true, imports: [CommonModule, TaonDetachedWindowComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
1998
|
+
@for (window of windowsService.windows(); track window.id) {
|
|
1999
|
+
<taon-detached-window [window]="window" />
|
|
2000
|
+
}
|
|
2001
|
+
`, styles: [":host{position:fixed;inset:0;pointer-events:none;z-index:10000}taon-detached-window{pointer-events:auto}\n"] }]
|
|
2002
|
+
}] });
|
|
2003
|
+
//#endregion
|
|
2004
|
+
//#region detachable dialog content
|
|
2005
|
+
class TaonDetachableDialogContentComponent {
|
|
2006
|
+
constructor() {
|
|
2007
|
+
//#region injections
|
|
2008
|
+
this.route = inject(ActivatedRoute);
|
|
2009
|
+
this.router = inject(Router);
|
|
2010
|
+
this.windowsService = inject(TaonDetachedWindowsService);
|
|
2011
|
+
this.isDetached = inject(TAON_IS_DETACHED_WINDOW);
|
|
2012
|
+
}
|
|
2013
|
+
//#endregion
|
|
2014
|
+
//#region detach
|
|
2015
|
+
detach() {
|
|
2016
|
+
if (this.isDetached) {
|
|
2017
|
+
return;
|
|
2018
|
+
}
|
|
2019
|
+
const snapshot = this.route.snapshot;
|
|
2020
|
+
const routeState = {
|
|
2021
|
+
url: this.router.url,
|
|
2022
|
+
params: this.collectParams(snapshot),
|
|
2023
|
+
queryParams: cloneObject(snapshot.queryParams),
|
|
2024
|
+
fragment: snapshot.fragment,
|
|
2025
|
+
data: this.collectData(snapshot),
|
|
2026
|
+
};
|
|
2027
|
+
this.windowsService.open({
|
|
2028
|
+
title: this.title || this.component.name || 'Detached window',
|
|
2029
|
+
component: this.component,
|
|
2030
|
+
routeState,
|
|
2031
|
+
});
|
|
2032
|
+
}
|
|
2033
|
+
//#endregion
|
|
2034
|
+
//#region route utils
|
|
2035
|
+
collectParams(snapshot) {
|
|
2036
|
+
const params = {};
|
|
2037
|
+
let current = snapshot;
|
|
2038
|
+
while (current) {
|
|
2039
|
+
Object.assign(params, current.params);
|
|
2040
|
+
current = current.parent;
|
|
2041
|
+
}
|
|
2042
|
+
return params;
|
|
2043
|
+
}
|
|
2044
|
+
collectData(snapshot) {
|
|
2045
|
+
const data = {};
|
|
2046
|
+
let current = snapshot;
|
|
2047
|
+
while (current) {
|
|
2048
|
+
Object.assign(data, current.data);
|
|
2049
|
+
current = current.parent;
|
|
2050
|
+
}
|
|
2051
|
+
return data;
|
|
2052
|
+
}
|
|
2053
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDetachableDialogContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2054
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonDetachableDialogContentComponent, isStandalone: true, selector: "taon-detachable-dialog-content", inputs: { component: "component", title: "title" }, ngImport: i0, template: `
|
|
2055
|
+
<section class="taon-detachable-content">
|
|
2056
|
+
@if (!isDetached) {
|
|
2057
|
+
<header class="taon-detachable-content-toolbar">
|
|
2058
|
+
<button
|
|
2059
|
+
mat-icon-button
|
|
2060
|
+
type="button"
|
|
2061
|
+
matTooltip="Detach"
|
|
2062
|
+
(click)="detach()">
|
|
2063
|
+
<mat-icon> open_in_new </mat-icon>
|
|
2064
|
+
</button>
|
|
2065
|
+
</header>
|
|
2066
|
+
}
|
|
2067
|
+
|
|
2068
|
+
<div class="taon-detachable-content-body">
|
|
2069
|
+
<ng-content />
|
|
2070
|
+
</div>
|
|
2071
|
+
</section>
|
|
2072
|
+
`, isInline: true, styles: [":host{display:block}.taon-detachable-content{display:flex;flex-direction:column;min-height:0}.taon-detachable-content-toolbar{min-height:36px;display:flex;align-items:center;justify-content:flex-end;border-bottom:1px solid var(--mat-sys-outline-variant, #ddd)}.taon-detachable-content-body{min-height:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2073
|
+
}
|
|
2074
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDetachableDialogContentComponent, decorators: [{
|
|
2075
|
+
type: Component,
|
|
2076
|
+
args: [{ selector: 'taon-detachable-dialog-content', standalone: true, imports: [CommonModule, MatIconModule, MatButtonModule, MatTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
2077
|
+
<section class="taon-detachable-content">
|
|
2078
|
+
@if (!isDetached) {
|
|
2079
|
+
<header class="taon-detachable-content-toolbar">
|
|
2080
|
+
<button
|
|
2081
|
+
mat-icon-button
|
|
2082
|
+
type="button"
|
|
2083
|
+
matTooltip="Detach"
|
|
2084
|
+
(click)="detach()">
|
|
2085
|
+
<mat-icon> open_in_new </mat-icon>
|
|
2086
|
+
</button>
|
|
2087
|
+
</header>
|
|
2088
|
+
}
|
|
2089
|
+
|
|
2090
|
+
<div class="taon-detachable-content-body">
|
|
2091
|
+
<ng-content />
|
|
2092
|
+
</div>
|
|
2093
|
+
</section>
|
|
2094
|
+
`, styles: [":host{display:block}.taon-detachable-content{display:flex;flex-direction:column;min-height:0}.taon-detachable-content-toolbar{min-height:36px;display:flex;align-items:center;justify-content:flex-end;border-bottom:1px solid var(--mat-sys-outline-variant, #ddd)}.taon-detachable-content-body{min-height:0}\n"] }]
|
|
2095
|
+
}], propDecorators: { component: [{
|
|
2096
|
+
type: Input,
|
|
2097
|
+
args: [{
|
|
2098
|
+
required: true,
|
|
2099
|
+
}]
|
|
2100
|
+
}], title: [{
|
|
2101
|
+
type: Input
|
|
2102
|
+
}] } });
|
|
2103
|
+
|
|
1690
2104
|
var TaonDraggableButtonPanelState;
|
|
1691
2105
|
(function (TaonDraggableButtonPanelState) {
|
|
1692
2106
|
TaonDraggableButtonPanelState["CLICKABLE_BUTTON"] = "CLICKABLE_BUTTON";
|
|
@@ -2075,7 +2489,7 @@ class TaonDraggableButtonPanelComponent {
|
|
|
2075
2489
|
return transitions[current].includes(next);
|
|
2076
2490
|
}
|
|
2077
2491
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDraggableButtonPanelComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2078
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonDraggableButtonPanelComponent, isStandalone: true, selector: "taon-draggable-button-panel", inputs: { context: "context", basePath: "basePath", buttonIcon: "buttonIcon", title: "title", outlet: "outlet", stateParamName: "stateParamName", state: "state", initialState: "initialState", autoHideIcon: "autoHideIcon", iconTemplate: "iconTemplate", headerCenterTemplate: "headerCenterTemplate" }, outputs: { stateChange: "stateChange" }, providers: [TaonAdminMenuContext], viewQueries: [{ propertyName: "drag", first: true, predicate: CdkDrag, descendants: true }], ngImport: i0, template: "@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=\"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=\"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=\"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=\"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=\"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", styles: [":host{display:contents}.taon-admin-panel-toogle-button-dimmer-opacity{opacity:.6}.taon-draggable-panel{position:fixed;display:flex;flex-direction:column;min-width:320px;min-height:240px;overflow:hidden;background:#fff;border:1px solid #e5e7eb;box-shadow:0 20px 50px #00000026;z-index:1000}.taon-window{width:70vw;height:70vh;left:15vw;top:25vh;border-radius:6px}.taon-fullscreen{width:100vw;height:100dvh;left:0;top:0;border-radius:0}.taon-window-bar{height:48px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;flex-shrink:0;padding-left:12px;border-bottom:1px solid #e5e7eb;background:#fafafa;-webkit-user-select:none;user-select:none;cursor:move}\n"], dependencies: [{ kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type:
|
|
2492
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonDraggableButtonPanelComponent, isStandalone: true, selector: "taon-draggable-button-panel", inputs: { context: "context", basePath: "basePath", buttonIcon: "buttonIcon", title: "title", outlet: "outlet", stateParamName: "stateParamName", state: "state", initialState: "initialState", autoHideIcon: "autoHideIcon", iconTemplate: "iconTemplate", headerCenterTemplate: "headerCenterTemplate" }, outputs: { stateChange: "stateChange" }, providers: [TaonAdminMenuContext], viewQueries: [{ propertyName: "drag", first: true, predicate: CdkDrag, descendants: true }], ngImport: i0, template: "@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=\"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=\"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=\"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=\"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=\"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", styles: [":host{display:contents}.taon-admin-panel-toogle-button-dimmer-opacity{opacity:.6}.taon-draggable-panel{position:fixed;display:flex;flex-direction:column;min-width:320px;min-height:240px;overflow:hidden;background:#fff;border:1px solid #e5e7eb;box-shadow:0 20px 50px #00000026;z-index:1000}.taon-window{width:70vw;height:70vh;left:15vw;top:25vh;border-radius:6px}.taon-fullscreen{width:100vw;height:100dvh;left:0;top:0;border-radius:0}.taon-window-bar{height:48px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;flex-shrink:0;padding-left:12px;border-bottom:1px solid #e5e7eb;background:#fafafa;-webkit-user-select:none;user-select:none;cursor:move}\n"], dependencies: [{ kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2079
2493
|
}
|
|
2080
2494
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDraggableButtonPanelComponent, decorators: [{
|
|
2081
2495
|
type: Component,
|
|
@@ -2130,7 +2544,22 @@ const TaonDraggableButtonPanelRoutes = [
|
|
|
2130
2544
|
// },
|
|
2131
2545
|
];
|
|
2132
2546
|
|
|
2133
|
-
|
|
2547
|
+
class TaonPurchaseStatusDialogComponent {
|
|
2548
|
+
constructor(data) {
|
|
2549
|
+
this.data = data;
|
|
2550
|
+
}
|
|
2551
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonPurchaseStatusDialogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2552
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.9", type: TaonPurchaseStatusDialogComponent, isStandalone: true, selector: "taon-purchase-status-dialog", ngImport: i0, template: "<h2 mat-dialog-title>\n {{\n data.success\n ? 'Payment successful'\n : '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 OK\n </button>\n</div>\n", dependencies: [{ kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }] }); }
|
|
2553
|
+
}
|
|
2554
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonPurchaseStatusDialogComponent, decorators: [{
|
|
2555
|
+
type: Component,
|
|
2556
|
+
args: [{ selector: 'taon-purchase-status-dialog', standalone: true, imports: [MatDialogModule, MatButtonModule], template: "<h2 mat-dialog-title>\n {{\n data.success\n ? 'Payment successful'\n : '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 OK\n </button>\n</div>\n" }]
|
|
2557
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
2558
|
+
type: Inject,
|
|
2559
|
+
args: [MAT_DIALOG_DATA]
|
|
2560
|
+
}] }] });
|
|
2561
|
+
|
|
2562
|
+
const t = Translation.for('src/lib/taon-under-construction/taon-under-construction.component.ts', { "src/lib/taon-under-construction/taon-under-construction.component.ts": { "en-US": async () => (await import('./ui-browser-taon-under-construction.component.ts.en-US.i18n.data-BVYOlk4F.mjs')).default, "pl-PL": async () => (await import('./ui-browser-taon-under-construction.component.ts.pl-PL.i18n.data-Btv-o2oM.mjs')).default } });
|
|
2134
2563
|
class TaonUnderConstructionComponent {
|
|
2135
2564
|
constructor() {
|
|
2136
2565
|
this.t = t.for(this);
|
|
@@ -2139,7 +2568,7 @@ class TaonUnderConstructionComponent {
|
|
|
2139
2568
|
this.icon = input('engineering', ...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
2140
2569
|
}
|
|
2141
2570
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonUnderConstructionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2142
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.9", type: TaonUnderConstructionComponent, isStandalone: true, selector: "taon-under-construction", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<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 Work in progress\n </div>\n</div>\n", styles: [":host{display:block;width:100%;height:100%}.under-construction{min-height:320px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;box-sizing:border-box;text-align:center}.icon-wrapper{width:88px;height:88px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;border-radius:50%;background:color-mix(in srgb,var(--mat-sys-primary) 12%,transparent);color:var(--mat-sys-primary)}.icon-wrapper mat-icon{width:48px;height:48px;font-size:48px}h2{margin:0 0 10px;font-size:24px;font-weight:500}p{max-width:480px;margin:0;color:var(--mat-sys-on-surface-variant);line-height:1.6}.status{display:flex;align-items:center;gap:8px;margin-top:24px;padding:7px 14px;border-radius:999px;background:var(--mat-sys-surface-container);color:var(--mat-sys-on-surface-variant);font-size:13px;font-weight:500}.status mat-icon{width:18px;height:18px;font-size:18px}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type:
|
|
2571
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.9", type: TaonUnderConstructionComponent, isStandalone: true, selector: "taon-under-construction", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<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 Work in progress\n </div>\n</div>\n", styles: [":host{display:block;width:100%;height:100%}.under-construction{min-height:320px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;box-sizing:border-box;text-align:center}.icon-wrapper{width:88px;height:88px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;border-radius:50%;background:color-mix(in srgb,var(--mat-sys-primary) 12%,transparent);color:var(--mat-sys-primary)}.icon-wrapper mat-icon{width:48px;height:48px;font-size:48px}h2{margin:0 0 10px;font-size:24px;font-weight:500}p{max-width:480px;margin:0;color:var(--mat-sys-on-surface-variant);line-height:1.6}.status{display:flex;align-items:center;gap:8px;margin-top:24px;padding:7px 14px;border-radius:999px;background:var(--mat-sys-surface-container);color:var(--mat-sys-on-surface-variant);font-size:13px;font-weight:500}.status mat-icon{width:18px;height:18px;font-size:18px}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }] }); }
|
|
2143
2572
|
}
|
|
2144
2573
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonUnderConstructionComponent, decorators: [{
|
|
2145
2574
|
type: Component,
|
|
@@ -2159,5 +2588,5 @@ var index = {};
|
|
|
2159
2588
|
* Generated bundle index. Do not edit.
|
|
2160
2589
|
*/
|
|
2161
2590
|
|
|
2162
|
-
export { APP_ID, BUILD_BASE_HREF, BUILD_FRAMEWORK_CLI_NAME, CURRENT_PACKAGE_TAON_VERSION, CURRENT_PACKAGE_VERSION, PROJECT_NPM_NAME, TaonAdminLayoutComponent, TaonAdminMenuContext, TaonAdminPageTabsComponent, TaonAdminWelcomeComponent, TaonAdminWelcomeRoutes, TaonBackofficeNotificationsComponent, TaonBackofficeNotificationsService, TaonBaseAdminLayoutPage, TaonBaselineBackofficeOutletName, TaonConfirmDialogComponent, TaonDatatableComponent, TaonDatatableRoutes, TaonDraggableButtonPanelComponent, TaonDraggableButtonPanelRoutes, TaonDraggableButtonPanelState, TaonErrorDetailsDialogComponent, TaonErrorToastComponent, TaonHorizontalWheelScrollDirective, TaonUnderConstructionComponent, adminLazyRoute, myOrgProj, startCli };
|
|
2591
|
+
export { APP_ID, BUILD_BASE_HREF, BUILD_FRAMEWORK_CLI_NAME, CURRENT_PACKAGE_TAON_VERSION, CURRENT_PACKAGE_VERSION, PROJECT_NPM_NAME, TAON_IS_DETACHED_WINDOW, TaonAdminLayoutComponent, TaonAdminMenuContext, TaonAdminPageTabsComponent, TaonAdminWelcomeComponent, TaonAdminWelcomeRoutes, TaonBackofficeNotificationsComponent, TaonBackofficeNotificationsService, TaonBaseAdminLayoutPage, TaonBaselineBackofficeOutletName, TaonConfirmDialogComponent, TaonDatatableComponent, TaonDatatableRoutes, TaonDetachableDialogContentComponent, TaonDetachedWindowComponent, TaonDetachedWindowsHostComponent, TaonDetachedWindowsService, TaonDraggableButtonPanelComponent, TaonDraggableButtonPanelRoutes, TaonDraggableButtonPanelState, TaonErrorDetailsDialogComponent, TaonErrorToastComponent, TaonHorizontalWheelScrollDirective, TaonPurchaseStatusDialogComponent, TaonUnderConstructionComponent, adminLazyRoute, myOrgProj, startCli };
|
|
2163
2592
|
//# sourceMappingURL=ui-browser.mjs.map
|