@taon-dev/ui 21.0.26 → 21.0.28
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-taon-datatable.component.html.de-DE.i18n.data-DaX_bbSs.mjs → ui-browser-taon-datatable.component.html.de-DE.i18n.data-BoSFa5hw.mjs} +4 -4
- package/browser/fesm2022/{ui-browser-taon-datatable.component.html.de-DE.i18n.data-DaX_bbSs.mjs.map → ui-browser-taon-datatable.component.html.de-DE.i18n.data-BoSFa5hw.mjs.map} +1 -1
- package/browser/fesm2022/{ui-browser-taon-datatable.component.html.en-US.i18n.data-BtONSnMn.mjs → ui-browser-taon-datatable.component.html.en-US.i18n.data-BaRVxYHq.mjs} +4 -4
- package/browser/fesm2022/{ui-browser-taon-datatable.component.html.en-US.i18n.data-BtONSnMn.mjs.map → ui-browser-taon-datatable.component.html.en-US.i18n.data-BaRVxYHq.mjs.map} +1 -1
- package/browser/fesm2022/{ui-browser-taon-datatable.component.html.pl-PL.i18n.data-Ctfv3ouD.mjs → ui-browser-taon-datatable.component.html.pl-PL.i18n.data-7lC0y8ph.mjs} +4 -4
- package/browser/fesm2022/{ui-browser-taon-datatable.component.html.pl-PL.i18n.data-Ctfv3ouD.mjs.map → ui-browser-taon-datatable.component.html.pl-PL.i18n.data-7lC0y8ph.mjs.map} +1 -1
- package/browser/fesm2022/{ui-browser-taon-datatable.component.ts.de-DE.i18n.data-DOHkRE3t.mjs → ui-browser-taon-datatable.component.ts.de-DE.i18n.data-CJvRlSjZ.mjs} +4 -4
- package/browser/fesm2022/{ui-browser-taon-datatable.component.ts.de-DE.i18n.data-DOHkRE3t.mjs.map → ui-browser-taon-datatable.component.ts.de-DE.i18n.data-CJvRlSjZ.mjs.map} +1 -1
- package/browser/fesm2022/{ui-browser-taon-datatable.component.ts.en-US.i18n.data-C6XKszRj.mjs → ui-browser-taon-datatable.component.ts.en-US.i18n.data-ywwsyxWl.mjs} +4 -4
- package/browser/fesm2022/{ui-browser-taon-datatable.component.ts.en-US.i18n.data-C6XKszRj.mjs.map → ui-browser-taon-datatable.component.ts.en-US.i18n.data-ywwsyxWl.mjs.map} +1 -1
- package/browser/fesm2022/{ui-browser-taon-datatable.component.ts.pl-PL.i18n.data-B20v3CeP.mjs → ui-browser-taon-datatable.component.ts.pl-PL.i18n.data-DidmnprC.mjs} +4 -4
- package/browser/fesm2022/{ui-browser-taon-datatable.component.ts.pl-PL.i18n.data-B20v3CeP.mjs.map → ui-browser-taon-datatable.component.ts.pl-PL.i18n.data-DidmnprC.mjs.map} +1 -1
- package/browser/fesm2022/ui-browser.mjs +222 -8
- package/browser/fesm2022/ui-browser.mjs.map +1 -1
- package/browser/package.json +1 -1
- package/browser/types/ui-browser.d.ts +45 -6
- package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.html.de-DE.i18n.data-B9t8s2_8.mjs → ui-browser-prod-taon-datatable.component.html.de-DE.i18n.data-BPCPpfL1.mjs} +4 -4
- package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.html.de-DE.i18n.data-B9t8s2_8.mjs.map → ui-browser-prod-taon-datatable.component.html.de-DE.i18n.data-BPCPpfL1.mjs.map} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.html.en-US.i18n.data-DRsYpt_k.mjs → ui-browser-prod-taon-datatable.component.html.en-US.i18n.data-CljILnW8.mjs} +4 -4
- package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.html.en-US.i18n.data-DRsYpt_k.mjs.map → ui-browser-prod-taon-datatable.component.html.en-US.i18n.data-CljILnW8.mjs.map} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.html.pl-PL.i18n.data-ByVALZEQ.mjs → ui-browser-prod-taon-datatable.component.html.pl-PL.i18n.data-BwA3pgv9.mjs} +4 -4
- package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.html.pl-PL.i18n.data-ByVALZEQ.mjs.map → ui-browser-prod-taon-datatable.component.html.pl-PL.i18n.data-BwA3pgv9.mjs.map} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.ts.de-DE.i18n.data-BlXRwzzT.mjs → ui-browser-prod-taon-datatable.component.ts.de-DE.i18n.data-CdqI-0eV.mjs} +4 -4
- package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.ts.de-DE.i18n.data-BlXRwzzT.mjs.map → ui-browser-prod-taon-datatable.component.ts.de-DE.i18n.data-CdqI-0eV.mjs.map} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.ts.en-US.i18n.data-DsQ8aLcU.mjs → ui-browser-prod-taon-datatable.component.ts.en-US.i18n.data-Cd7wGGSy.mjs} +4 -4
- package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.ts.en-US.i18n.data-DsQ8aLcU.mjs.map → ui-browser-prod-taon-datatable.component.ts.en-US.i18n.data-Cd7wGGSy.mjs.map} +1 -1
- package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.ts.pl-PL.i18n.data-DircsInd.mjs → ui-browser-prod-taon-datatable.component.ts.pl-PL.i18n.data-k7j3mmhy.mjs} +4 -4
- package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.ts.pl-PL.i18n.data-DircsInd.mjs.map → ui-browser-prod-taon-datatable.component.ts.pl-PL.i18n.data-k7j3mmhy.mjs.map} +1 -1
- package/browser-prod/fesm2022/ui-browser-prod.mjs +222 -8
- 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 +45 -6
- 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-admin-layout/taon-admin-content-footer.service.d.ts +6 -0
- package/full-dts/taon-admin-layout/taon-admin-layout.component.d.ts +2 -0
- package/full-dts/taon-datatable/taon-datatable.component.d.ts +19 -0
- package/full-dts/taon-items-hamburger/taon-items-hamburger.component.d.ts +11 -0
- package/html/lib/taon-admin-layout/taon-admin-layout.component.html +4 -1
- package/html/lib/taon-datatable/taon-datatable.component.html +21 -14
- package/html/lib/taon-items-hamburger/taon-items-hamburger.component.html +17 -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-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.js +3 -3
- package/lib/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.js +3 -3
- package/lib/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.js +3 -3
- package/lib/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.js +3 -3
- package/lib/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.js +3 -3
- package/lib/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.js +3 -3
- 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-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.js +3 -3
- package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.js +3 -3
- package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.js +3 -3
- package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.js +3 -3
- package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.js +3 -3
- package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.js +3 -3
- 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-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.js +3 -3
- package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.js +3 -3
- package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.js +3 -3
- package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.js +3 -3
- package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.js +3 -3
- package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.js +3 -3
- 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/scss/lib/taon-items-hamburger/taon-items-hamburger.component.scss +67 -0
- package/ts-source/browser-code/build-info._auto-generated_.ts +1 -1
- package/ts-source/browser-code/index._auto-generated_.ts +2 -0
- package/ts-source/browser-code/taon-admin-layout/taon-admin-content-footer.service.ts +20 -0
- package/ts-source/browser-code/taon-admin-layout/taon-admin-layout.component.html +4 -1
- package/ts-source/browser-code/taon-admin-layout/taon-admin-layout.component.ts +2 -0
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.ts +3 -3
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +3 -3
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.ts +3 -3
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.en-US.po +3 -3
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.ts +3 -3
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +3 -3
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.ts +3 -3
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +3 -3
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.ts +3 -3
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +3 -3
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts +3 -3
- package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +3 -3
- package/ts-source/browser-code/taon-datatable/taon-datatable.component.html +21 -14
- package/ts-source/browser-code/taon-datatable/taon-datatable.component.ts +172 -0
- package/ts-source/browser-code/taon-items-hamburger/taon-items-hamburger.component.html +30 -0
- package/ts-source/browser-code/taon-items-hamburger/taon-items-hamburger.component.scss +72 -0
- package/ts-source/browser-code/taon-items-hamburger/taon-items-hamburger.component.ts +48 -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-content-footer.service.split-namespaces.json +4 -0
- package/ts-source/browser-code-prod/taon-admin-layout/taon-admin-content-footer.service.ts +20 -0
- package/ts-source/browser-code-prod/taon-admin-layout/taon-admin-layout.component.html +4 -1
- package/ts-source/browser-code-prod/taon-admin-layout/taon-admin-layout.component.ts +2 -0
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.ts +3 -3
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +3 -3
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.ts +3 -3
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.po +3 -3
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.ts +3 -3
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +3 -3
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.ts +3 -3
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +3 -3
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.ts +3 -3
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +3 -3
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts +3 -3
- package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +3 -3
- package/ts-source/browser-code-prod/taon-datatable/taon-datatable.component.html +21 -14
- package/ts-source/browser-code-prod/taon-datatable/taon-datatable.component.ts +172 -0
- package/ts-source/browser-code-prod/taon-items-hamburger/taon-items-hamburger.component.html +30 -0
- package/ts-source/browser-code-prod/taon-items-hamburger/taon-items-hamburger.component.scss +72 -0
- package/ts-source/browser-code-prod/taon-items-hamburger/taon-items-hamburger.component.split-namespaces.json +4 -0
- package/ts-source/browser-code-prod/taon-items-hamburger/taon-items-hamburger.component.ts +48 -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-content-footer.service.ts +20 -0
- package/ts-source/websql-code/taon-admin-layout/taon-admin-layout.component.html +4 -1
- package/ts-source/websql-code/taon-admin-layout/taon-admin-layout.component.ts +2 -0
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.ts +3 -3
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +3 -3
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.ts +3 -3
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.en-US.po +3 -3
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.ts +3 -3
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +3 -3
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.ts +3 -3
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +3 -3
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.ts +3 -3
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +3 -3
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts +3 -3
- package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +3 -3
- package/ts-source/websql-code/taon-datatable/taon-datatable.component.html +21 -14
- package/ts-source/websql-code/taon-datatable/taon-datatable.component.ts +172 -0
- package/ts-source/websql-code/taon-items-hamburger/taon-items-hamburger.component.html +30 -0
- package/ts-source/websql-code/taon-items-hamburger/taon-items-hamburger.component.scss +72 -0
- package/ts-source/websql-code/taon-items-hamburger/taon-items-hamburger.component.ts +48 -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-content-footer.service.split-namespaces.json +4 -0
- package/ts-source/websql-code-prod/taon-admin-layout/taon-admin-content-footer.service.ts +20 -0
- package/ts-source/websql-code-prod/taon-admin-layout/taon-admin-layout.component.html +4 -1
- package/ts-source/websql-code-prod/taon-admin-layout/taon-admin-layout.component.ts +2 -0
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.ts +3 -3
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +3 -3
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.ts +3 -3
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.po +3 -3
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.ts +3 -3
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +3 -3
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.ts +3 -3
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +3 -3
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.ts +3 -3
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +3 -3
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts +3 -3
- package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +3 -3
- package/ts-source/websql-code-prod/taon-datatable/taon-datatable.component.html +21 -14
- package/ts-source/websql-code-prod/taon-datatable/taon-datatable.component.ts +172 -0
- package/ts-source/websql-code-prod/taon-items-hamburger/taon-items-hamburger.component.html +30 -0
- package/ts-source/websql-code-prod/taon-items-hamburger/taon-items-hamburger.component.scss +72 -0
- package/ts-source/websql-code-prod/taon-items-hamburger/taon-items-hamburger.component.split-namespaces.json +4 -0
- package/ts-source/websql-code-prod/taon-items-hamburger/taon-items-hamburger.component.ts +48 -0
- package/websql/fesm2022/{ui-websql-taon-datatable.component.html.de-DE.i18n.data-CRiuweZ1.mjs → ui-websql-taon-datatable.component.html.de-DE.i18n.data-akWKK_zH.mjs} +4 -4
- package/websql/fesm2022/{ui-websql-taon-datatable.component.html.de-DE.i18n.data-CRiuweZ1.mjs.map → ui-websql-taon-datatable.component.html.de-DE.i18n.data-akWKK_zH.mjs.map} +1 -1
- package/websql/fesm2022/{ui-websql-taon-datatable.component.html.en-US.i18n.data-B5Q6v4WG.mjs → ui-websql-taon-datatable.component.html.en-US.i18n.data-BQRO2MVj.mjs} +4 -4
- package/websql/fesm2022/{ui-websql-taon-datatable.component.html.en-US.i18n.data-B5Q6v4WG.mjs.map → ui-websql-taon-datatable.component.html.en-US.i18n.data-BQRO2MVj.mjs.map} +1 -1
- package/websql/fesm2022/{ui-websql-taon-datatable.component.html.pl-PL.i18n.data-CHtCyNUI.mjs → ui-websql-taon-datatable.component.html.pl-PL.i18n.data-cEIoFPC7.mjs} +4 -4
- package/websql/fesm2022/{ui-websql-taon-datatable.component.html.pl-PL.i18n.data-CHtCyNUI.mjs.map → ui-websql-taon-datatable.component.html.pl-PL.i18n.data-cEIoFPC7.mjs.map} +1 -1
- package/websql/fesm2022/{ui-websql-taon-datatable.component.ts.de-DE.i18n.data-CLYbjFDi.mjs → ui-websql-taon-datatable.component.ts.de-DE.i18n.data-kjuoNEZ4.mjs} +4 -4
- package/websql/fesm2022/{ui-websql-taon-datatable.component.ts.de-DE.i18n.data-CLYbjFDi.mjs.map → ui-websql-taon-datatable.component.ts.de-DE.i18n.data-kjuoNEZ4.mjs.map} +1 -1
- package/websql/fesm2022/{ui-websql-taon-datatable.component.ts.en-US.i18n.data-r_VW9bRw.mjs → ui-websql-taon-datatable.component.ts.en-US.i18n.data-B3mI-Sqk.mjs} +4 -4
- package/websql/fesm2022/{ui-websql-taon-datatable.component.ts.en-US.i18n.data-r_VW9bRw.mjs.map → ui-websql-taon-datatable.component.ts.en-US.i18n.data-B3mI-Sqk.mjs.map} +1 -1
- package/websql/fesm2022/{ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-CrDbBs1M.mjs → ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-CLuM0VTt.mjs} +4 -4
- package/websql/fesm2022/{ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-CrDbBs1M.mjs.map → ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-CLuM0VTt.mjs.map} +1 -1
- package/websql/fesm2022/ui-websql.mjs +222 -8
- package/websql/fesm2022/ui-websql.mjs.map +1 -1
- package/websql/package.json +1 -1
- package/websql/types/ui-websql.d.ts +45 -6
- package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.html.de-DE.i18n.data-BvDB6e_Q.mjs → ui-websql-prod-taon-datatable.component.html.de-DE.i18n.data-AkYh86KE.mjs} +4 -4
- package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.html.de-DE.i18n.data-BvDB6e_Q.mjs.map → ui-websql-prod-taon-datatable.component.html.de-DE.i18n.data-AkYh86KE.mjs.map} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.html.en-US.i18n.data-DgBdtlay.mjs → ui-websql-prod-taon-datatable.component.html.en-US.i18n.data-D3-rvqAh.mjs} +4 -4
- package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.html.en-US.i18n.data-DgBdtlay.mjs.map → ui-websql-prod-taon-datatable.component.html.en-US.i18n.data-D3-rvqAh.mjs.map} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.html.pl-PL.i18n.data-DEuIcpra.mjs → ui-websql-prod-taon-datatable.component.html.pl-PL.i18n.data-BLkNn4wK.mjs} +4 -4
- package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.html.pl-PL.i18n.data-DEuIcpra.mjs.map → ui-websql-prod-taon-datatable.component.html.pl-PL.i18n.data-BLkNn4wK.mjs.map} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.ts.de-DE.i18n.data-rfiJ-U1k.mjs → ui-websql-prod-taon-datatable.component.ts.de-DE.i18n.data-DP3jiLEW.mjs} +4 -4
- package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.ts.de-DE.i18n.data-rfiJ-U1k.mjs.map → ui-websql-prod-taon-datatable.component.ts.de-DE.i18n.data-DP3jiLEW.mjs.map} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.ts.en-US.i18n.data-BmB1328X.mjs → ui-websql-prod-taon-datatable.component.ts.en-US.i18n.data-Can6leSC.mjs} +4 -4
- package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.ts.en-US.i18n.data-BmB1328X.mjs.map → ui-websql-prod-taon-datatable.component.ts.en-US.i18n.data-Can6leSC.mjs.map} +1 -1
- package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.ts.pl-PL.i18n.data-DNnZNSVK.mjs → ui-websql-prod-taon-datatable.component.ts.pl-PL.i18n.data-U0CRTdvX.mjs} +4 -4
- package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.ts.pl-PL.i18n.data-DNnZNSVK.mjs.map → ui-websql-prod-taon-datatable.component.ts.pl-PL.i18n.data-U0CRTdvX.mjs.map} +1 -1
- package/websql-prod/fesm2022/ui-websql-prod.mjs +222 -8
- 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 +45 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-
|
|
1
|
+
{"version":3,"file":"ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-CLuM0VTt.mjs","sources":["../../../tmp-libs-for-dist-websql/ui/projects/ui/src/lib/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts"],"sourcesContent":["// THIS FILE IS GENERATED - DO NOT MODIFY\n\nexport interface PlPlTraslationOverrideSrcLibTaonDatatableTaonDatatableComponentTs {\n \"pl-PL\": {\n \"\": {\n \"ID\"?: string;\n \"NAME\"?: string;\n \"No records found\"?: string;\n };\n\n };\n}\n// THIS FILE IS GENERATED - DO NOT MODIFY\nexport default {\n \"fileRelativePath\": \"src/lib/taon-datatable/taon-datatable.component.ts\",\n \"tags\": [\n {\n \"gettextString\": \"ID\",\n \"lineNumber\": 61,\n \"translation\": \"Posiadanie dowodu\"\n },\n {\n \"gettextString\": \"NAME\",\n \"lineNumber\": 65,\n \"translation\": \"Nazwa\"\n },\n {\n \"gettextString\": \"No records found\",\n \"lineNumber\": 135,\n \"translation\": \"Nie znalezionie nic\"\n }\n ]\n};\n// THIS FILE IS GENERATED - DO NOT MODIFY\n"],"names":[],"mappings":"AAAA;AAYA;AACA,gDAAe;AACb,IAAA,kBAAkB,EAAE,oDAAoD;AACxE,IAAA,MAAM,EAAE;AACN,QAAA;AACE,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,aAAa,EAAE;AAChB,SAAA;AACD,QAAA;AACE,YAAA,eAAe,EAAE,MAAM;AACvB,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,aAAa,EAAE;AAChB,SAAA;AACD,QAAA;AACE,YAAA,eAAe,EAAE,kBAAkB;AACnC,YAAA,YAAY,EAAE,GAAG;AACjB,YAAA,aAAa,EAAE;AAChB;AACF;CACF;AACD;;"}
|
|
@@ -36,6 +36,7 @@ import { MatPaginatorModule } from '@angular/material/paginator';
|
|
|
36
36
|
import { MatSelectModule } from '@angular/material/select';
|
|
37
37
|
import * as i7 from '@ng-matero/extensions/grid';
|
|
38
38
|
import { MtxGridModule } from '@ng-matero/extensions/grid';
|
|
39
|
+
import { TaonStor } from 'taon-storage/websql';
|
|
39
40
|
import { CdkDrag, CdkDragHandle } from '@angular/cdk/drag-drop';
|
|
40
41
|
|
|
41
42
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
@@ -68,7 +69,7 @@ const CURRENT_PACKAGE_TAON_VERSION = 'v21';
|
|
|
68
69
|
/**
|
|
69
70
|
* Autogenerated by current cli tool. Use *tnp release* to bump version.
|
|
70
71
|
*/
|
|
71
|
-
const CURRENT_PACKAGE_VERSION = '21.0.
|
|
72
|
+
const CURRENT_PACKAGE_VERSION = '21.0.28';
|
|
72
73
|
// THIS FILE IS GENERATED - DO NOT MODIFY
|
|
73
74
|
|
|
74
75
|
const t$c = Translation.for('src/lib/my-organization-proj.ts', { "src/lib/my-organization-proj.ts": { "en-US": async () => (await import('./ui-websql-my-organization-proj.ts.en-US.i18n.data-B6eQfqTW.mjs')).default, "pl-PL": async () => (await import('./ui-websql-my-organization-proj.ts.pl-PL.i18n.data-C2FZNfxx.mjs')).default, "de-DE": async () => (await import('./ui-websql-my-organization-proj.ts.de-DE.i18n.data-zpmbvuwX.mjs')).default }, "src/lib/start-cli.ts": { "en-US": async () => (await import('./ui-websql-start-cli.ts.en-US.i18n.data-BtpAWTsG.mjs')).default, "pl-PL": async () => (await import('./ui-websql-start-cli.ts.pl-PL.i18n.data-D8kU8T4d.mjs')).default, "de-DE": async () => (await import('./ui-websql-start-cli.ts.de-DE.i18n.data-ZDwwRGhS.mjs')).default } });
|
|
@@ -226,6 +227,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
|
|
|
226
227
|
}]
|
|
227
228
|
}] });
|
|
228
229
|
|
|
230
|
+
class TaonAdminContentFooterService {
|
|
231
|
+
constructor() {
|
|
232
|
+
this.currentTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "currentTemplate" }] : []));
|
|
233
|
+
}
|
|
234
|
+
setTemplate(template) {
|
|
235
|
+
this.currentTemplate.set(template);
|
|
236
|
+
}
|
|
237
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonAdminContentFooterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
238
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonAdminContentFooterService, providedIn: 'root' }); }
|
|
239
|
+
}
|
|
240
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonAdminContentFooterService, decorators: [{
|
|
241
|
+
type: Injectable,
|
|
242
|
+
args: [{ providedIn: 'root' }]
|
|
243
|
+
}] });
|
|
244
|
+
|
|
229
245
|
const TaonBaselineBackofficeOutletName = 'admin';
|
|
230
246
|
function resolveTaonAdminMenuItem(menuItem) {
|
|
231
247
|
return typeof menuItem === 'function' ? menuItem() : menuItem;
|
|
@@ -583,6 +599,7 @@ class TaonAdminLayoutComponent {
|
|
|
583
599
|
this.t = t$a.for(this);
|
|
584
600
|
this.menuContext = inject(TaonAdminMenuContext, { optional: true }) ??
|
|
585
601
|
new TaonAdminMenuContext();
|
|
602
|
+
this.taonAdminContentFooterService = inject(TaonAdminContentFooterService);
|
|
586
603
|
this._routes = [];
|
|
587
604
|
this.basePath = '';
|
|
588
605
|
this.layoutWidth = signal(undefined, ...(ngDevMode ? [{ debugName: "layoutWidth" }] : []));
|
|
@@ -986,7 +1003,7 @@ class TaonAdminLayoutComponent {
|
|
|
986
1003
|
.replace(/\b\w/g, char => char.toUpperCase());
|
|
987
1004
|
}
|
|
988
1005
|
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 }); }
|
|
989
|
-
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 [attr.aria-label]=\"t.gettext('Toggle admin menu')\"\n class=\"admin-menu-button\"\n (click)=\"toggleAside()\">\n <mat-icon>menu</mat-icon>\n </button>\n\n <div class=\"admin-header-content\">\n <ng-content select=\"[header]\" />\n </div>\n </header>\n\n <!-- ============================================================= -->\n <!-- BODY -->\n <!-- ============================================================= -->\n\n <div class=\"admin-body\">\n <!-- =========================================================== -->\n <!-- MOBILE BACKDROP -->\n <!-- =========================================================== -->\n\n @if (asideOpened()) {\n <div\n class=\"admin-aside-backdrop\"\n (click)=\"closeAside()\"></div>\n }\n\n <!-- =========================================================== -->\n <!-- ASIDE -->\n <!-- =========================================================== -->\n\n <aside\n class=\"admin-aside\"\n [class.admin-aside-open]=\"asideOpened()\">\n <!-- ========================================================= -->\n <!-- SCROLLABLE ASIDE CONTENT -->\n <!-- ========================================================= -->\n\n <div class=\"admin-aside-content\">\n <mat-accordion class=\"admin-menu\">\n @for (level1 of routes; track level1.path) {\n @if (menuContext.isVisible(level1)) {\n @if (isExpandable(level1)) {\n <mat-expansion-panel\n [disabled]=\"menuContext.isDisabled(level1)\"\n [expanded]=\"\n isLevel1Active(level1) && !menuContext.isDisabled(level1)\n \"\n (expandedChange)=\"panelExpanded(level1, $event)\">\n <mat-expansion-panel-header\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level1)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level1)\"\n (click)=\"level1Clicked(level1)\">\n <mat-panel-title>\n <div class=\"admin-menu-item\">\n @if (icon(level1)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ icon(level1) }}\n </mat-icon>\n }\n\n <span\n [class.font-semibold]=\"isLevel1Active(level1)\"\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ label(level1) }}\n </span>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div class=\"admin-level2\">\n @if (isLoading(level1)) {\n <div class=\"admin-loading\">{{ t.gettext('Loading...') }}</div>\n } @else {\n @for (\n level2 of getLevel2Routes(level1);\n track level2.path\n ) {\n @if (menuContext.isVisible(level2)) {\n <a\n class=\"admin-level2-item\"\n role=\"button\"\n [attr.tabindex]=\"\n menuContext.isDisabled(level2) ? -1 : 0\n \"\n [attr.aria-disabled]=\"\n menuContext.isDisabled(level2)\n \"\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level2)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level2)\"\n [class.admin-level2-item-active]=\"\n isLevel2Active(level1, level2)\n \"\n (click)=\"level2Clicked(level1, level2)\"\n (keydown.enter)=\"level2Clicked(level1, level2)\"\n (keydown.space)=\"\n $event.preventDefault();\n level2Clicked(level1, level2)\n \">\n @if (icon(level2)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level2),\n }\">\n {{ icon(level2) }}\n </mat-icon>\n }\n\n <span\n [ngStyle]=\"{\n color: color(level2),\n }\">\n {{ label(level2) }}\n </span>\n </a>\n }\n }\n }\n </div>\n </mat-expansion-panel>\n } @else {\n <a\n class=\"admin-level1-item\"\n role=\"button\"\n [attr.tabindex]=\"menuContext.isDisabled(level1) ? -1 : 0\"\n [attr.aria-disabled]=\"menuContext.isDisabled(level1)\"\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level1)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level1)\"\n [class.admin-level1-item-active]=\"isLevel1Active(level1)\"\n (click)=\"level1Clicked(level1)\"\n (keydown.enter)=\"level1Clicked(level1)\"\n (keydown.space)=\"\n $event.preventDefault(); level1Clicked(level1)\n \">\n @if (icon(level1)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ icon(level1) }}\n </mat-icon>\n }\n\n <span\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ label(level1) }}\n </span>\n </a>\n }\n }\n }\n </mat-accordion>\n </div>\n\n <!-- ========================================================= -->\n <!-- ASIDE FOOTER -->\n <!-- ========================================================= -->\n\n <footer class=\"admin-aside-footer\">\n <ng-content select=\"[asideFooter]\" />\n </footer>\n </aside>\n\n <!-- =========================================================== -->\n <!-- MAIN -->\n <!-- =========================================================== -->\n\n <main class=\"admin-main\">\n <!-- ========================================================= -->\n <!-- LEVEL 3+ TABS -->\n <!-- ========================================================= -->\n\n <taon-admin-page-tabs\n class=\"admin-tabs\"\n [routes]=\"routes\"\n [basePath]=\"basePath\"\n [outlet]=\"outlet\" />\n\n <!-- ========================================================= -->\n <!-- SCROLLABLE CONTENT -->\n <!-- ========================================================= -->\n\n <div class=\"admin-content\">\n <router-outlet />\n </div>\n\n <!-- ========================================================= -->\n <!-- CONTENT FOOTER -->\n <!-- ========================================================= -->\n\n <footer class=\"admin-content-footer\">\n <ng-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 }); }
|
|
1006
|
+
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 [attr.aria-label]=\"t.gettext('Toggle admin menu')\"\n class=\"admin-menu-button\"\n (click)=\"toggleAside()\">\n <mat-icon>menu</mat-icon>\n </button>\n\n <div class=\"admin-header-content\">\n <ng-content select=\"[header]\" />\n </div>\n </header>\n\n <!-- ============================================================= -->\n <!-- BODY -->\n <!-- ============================================================= -->\n\n <div class=\"admin-body\">\n <!-- =========================================================== -->\n <!-- MOBILE BACKDROP -->\n <!-- =========================================================== -->\n\n @if (asideOpened()) {\n <div\n class=\"admin-aside-backdrop\"\n (click)=\"closeAside()\"></div>\n }\n\n <!-- =========================================================== -->\n <!-- ASIDE -->\n <!-- =========================================================== -->\n\n <aside\n class=\"admin-aside\"\n [class.admin-aside-open]=\"asideOpened()\">\n <!-- ========================================================= -->\n <!-- SCROLLABLE ASIDE CONTENT -->\n <!-- ========================================================= -->\n\n <div class=\"admin-aside-content\">\n <mat-accordion class=\"admin-menu\">\n @for (level1 of routes; track level1.path) {\n @if (menuContext.isVisible(level1)) {\n @if (isExpandable(level1)) {\n <mat-expansion-panel\n [disabled]=\"menuContext.isDisabled(level1)\"\n [expanded]=\"\n isLevel1Active(level1) && !menuContext.isDisabled(level1)\n \"\n (expandedChange)=\"panelExpanded(level1, $event)\">\n <mat-expansion-panel-header\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level1)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level1)\"\n (click)=\"level1Clicked(level1)\">\n <mat-panel-title>\n <div class=\"admin-menu-item\">\n @if (icon(level1)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ icon(level1) }}\n </mat-icon>\n }\n\n <span\n [class.font-semibold]=\"isLevel1Active(level1)\"\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ label(level1) }}\n </span>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div class=\"admin-level2\">\n @if (isLoading(level1)) {\n <div class=\"admin-loading\">{{ t.gettext('Loading...') }}</div>\n } @else {\n @for (\n level2 of getLevel2Routes(level1);\n track level2.path\n ) {\n @if (menuContext.isVisible(level2)) {\n <a\n class=\"admin-level2-item\"\n role=\"button\"\n [attr.tabindex]=\"\n menuContext.isDisabled(level2) ? -1 : 0\n \"\n [attr.aria-disabled]=\"\n menuContext.isDisabled(level2)\n \"\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level2)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level2)\"\n [class.admin-level2-item-active]=\"\n isLevel2Active(level1, level2)\n \"\n (click)=\"level2Clicked(level1, level2)\"\n (keydown.enter)=\"level2Clicked(level1, level2)\"\n (keydown.space)=\"\n $event.preventDefault();\n level2Clicked(level1, level2)\n \">\n @if (icon(level2)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level2),\n }\">\n {{ icon(level2) }}\n </mat-icon>\n }\n\n <span\n [ngStyle]=\"{\n color: color(level2),\n }\">\n {{ label(level2) }}\n </span>\n </a>\n }\n }\n }\n </div>\n </mat-expansion-panel>\n } @else {\n <a\n class=\"admin-level1-item\"\n role=\"button\"\n [attr.tabindex]=\"menuContext.isDisabled(level1) ? -1 : 0\"\n [attr.aria-disabled]=\"menuContext.isDisabled(level1)\"\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level1)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level1)\"\n [class.admin-level1-item-active]=\"isLevel1Active(level1)\"\n (click)=\"level1Clicked(level1)\"\n (keydown.enter)=\"level1Clicked(level1)\"\n (keydown.space)=\"\n $event.preventDefault(); level1Clicked(level1)\n \">\n @if (icon(level1)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ icon(level1) }}\n </mat-icon>\n }\n\n <span\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ label(level1) }}\n </span>\n </a>\n }\n }\n }\n </mat-accordion>\n </div>\n\n <!-- ========================================================= -->\n <!-- ASIDE FOOTER -->\n <!-- ========================================================= -->\n\n <footer class=\"admin-aside-footer\">\n <ng-content select=\"[asideFooter]\" />\n </footer>\n </aside>\n\n <!-- =========================================================== -->\n <!-- MAIN -->\n <!-- =========================================================== -->\n\n <main class=\"admin-main\">\n <!-- ========================================================= -->\n <!-- LEVEL 3+ TABS -->\n <!-- ========================================================= -->\n\n <taon-admin-page-tabs\n class=\"admin-tabs\"\n [routes]=\"routes\"\n [basePath]=\"basePath\"\n [outlet]=\"outlet\" />\n\n <!-- ========================================================= -->\n <!-- SCROLLABLE CONTENT -->\n <!-- ========================================================= -->\n\n <div class=\"admin-content\">\n <router-outlet />\n </div>\n\n <!-- ========================================================= -->\n <!-- CONTENT FOOTER -->\n <!-- ========================================================= -->\n\n <footer class=\"admin-content-footer\">\n <ng-container\n [ngTemplateOutlet]=\"\n taonAdminContentFooterService.currentTemplate()\n \" />\n </footer>\n </main>\n </div>\n\n <!-- ============================================================= -->\n <!-- DIALOG RESIZE HANDLE -->\n <!-- ============================================================= -->\n\n @if (isDialogMode) {\n <div\n class=\"admin-resize-handle\"\n (pointerdown)=\"startResize($event)\"></div>\n }\n</div>\n", 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.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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 }); }
|
|
990
1007
|
}
|
|
991
1008
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonAdminLayoutComponent, decorators: [{
|
|
992
1009
|
type: Component,
|
|
@@ -998,7 +1015,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
|
|
|
998
1015
|
MatIconModule,
|
|
999
1016
|
MatTooltipModule,
|
|
1000
1017
|
TaonAdminPageTabsComponent,
|
|
1001
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, 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 [attr.aria-label]=\"t.gettext('Toggle admin menu')\"\n class=\"admin-menu-button\"\n (click)=\"toggleAside()\">\n <mat-icon>menu</mat-icon>\n </button>\n\n <div class=\"admin-header-content\">\n <ng-content select=\"[header]\" />\n </div>\n </header>\n\n <!-- ============================================================= -->\n <!-- BODY -->\n <!-- ============================================================= -->\n\n <div class=\"admin-body\">\n <!-- =========================================================== -->\n <!-- MOBILE BACKDROP -->\n <!-- =========================================================== -->\n\n @if (asideOpened()) {\n <div\n class=\"admin-aside-backdrop\"\n (click)=\"closeAside()\"></div>\n }\n\n <!-- =========================================================== -->\n <!-- ASIDE -->\n <!-- =========================================================== -->\n\n <aside\n class=\"admin-aside\"\n [class.admin-aside-open]=\"asideOpened()\">\n <!-- ========================================================= -->\n <!-- SCROLLABLE ASIDE CONTENT -->\n <!-- ========================================================= -->\n\n <div class=\"admin-aside-content\">\n <mat-accordion class=\"admin-menu\">\n @for (level1 of routes; track level1.path) {\n @if (menuContext.isVisible(level1)) {\n @if (isExpandable(level1)) {\n <mat-expansion-panel\n [disabled]=\"menuContext.isDisabled(level1)\"\n [expanded]=\"\n isLevel1Active(level1) && !menuContext.isDisabled(level1)\n \"\n (expandedChange)=\"panelExpanded(level1, $event)\">\n <mat-expansion-panel-header\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level1)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level1)\"\n (click)=\"level1Clicked(level1)\">\n <mat-panel-title>\n <div class=\"admin-menu-item\">\n @if (icon(level1)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ icon(level1) }}\n </mat-icon>\n }\n\n <span\n [class.font-semibold]=\"isLevel1Active(level1)\"\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ label(level1) }}\n </span>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div class=\"admin-level2\">\n @if (isLoading(level1)) {\n <div class=\"admin-loading\">{{ t.gettext('Loading...') }}</div>\n } @else {\n @for (\n level2 of getLevel2Routes(level1);\n track level2.path\n ) {\n @if (menuContext.isVisible(level2)) {\n <a\n class=\"admin-level2-item\"\n role=\"button\"\n [attr.tabindex]=\"\n menuContext.isDisabled(level2) ? -1 : 0\n \"\n [attr.aria-disabled]=\"\n menuContext.isDisabled(level2)\n \"\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level2)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level2)\"\n [class.admin-level2-item-active]=\"\n isLevel2Active(level1, level2)\n \"\n (click)=\"level2Clicked(level1, level2)\"\n (keydown.enter)=\"level2Clicked(level1, level2)\"\n (keydown.space)=\"\n $event.preventDefault();\n level2Clicked(level1, level2)\n \">\n @if (icon(level2)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level2),\n }\">\n {{ icon(level2) }}\n </mat-icon>\n }\n\n <span\n [ngStyle]=\"{\n color: color(level2),\n }\">\n {{ label(level2) }}\n </span>\n </a>\n }\n }\n }\n </div>\n </mat-expansion-panel>\n } @else {\n <a\n class=\"admin-level1-item\"\n role=\"button\"\n [attr.tabindex]=\"menuContext.isDisabled(level1) ? -1 : 0\"\n [attr.aria-disabled]=\"menuContext.isDisabled(level1)\"\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level1)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level1)\"\n [class.admin-level1-item-active]=\"isLevel1Active(level1)\"\n (click)=\"level1Clicked(level1)\"\n (keydown.enter)=\"level1Clicked(level1)\"\n (keydown.space)=\"\n $event.preventDefault(); level1Clicked(level1)\n \">\n @if (icon(level1)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ icon(level1) }}\n </mat-icon>\n }\n\n <span\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ label(level1) }}\n </span>\n </a>\n }\n }\n }\n </mat-accordion>\n </div>\n\n <!-- ========================================================= -->\n <!-- ASIDE FOOTER -->\n <!-- ========================================================= -->\n\n <footer class=\"admin-aside-footer\">\n <ng-content select=\"[asideFooter]\" />\n </footer>\n </aside>\n\n <!-- =========================================================== -->\n <!-- MAIN -->\n <!-- =========================================================== -->\n\n <main class=\"admin-main\">\n <!-- ========================================================= -->\n <!-- LEVEL 3+ TABS -->\n <!-- ========================================================= -->\n\n <taon-admin-page-tabs\n class=\"admin-tabs\"\n [routes]=\"routes\"\n [basePath]=\"basePath\"\n [outlet]=\"outlet\" />\n\n <!-- ========================================================= -->\n <!-- SCROLLABLE CONTENT -->\n <!-- ========================================================= -->\n\n <div class=\"admin-content\">\n <router-outlet />\n </div>\n\n <!-- ========================================================= -->\n <!-- CONTENT FOOTER -->\n <!-- ========================================================= -->\n\n <footer class=\"admin-content-footer\">\n <ng-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"] }]
|
|
1018
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, 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 [attr.aria-label]=\"t.gettext('Toggle admin menu')\"\n class=\"admin-menu-button\"\n (click)=\"toggleAside()\">\n <mat-icon>menu</mat-icon>\n </button>\n\n <div class=\"admin-header-content\">\n <ng-content select=\"[header]\" />\n </div>\n </header>\n\n <!-- ============================================================= -->\n <!-- BODY -->\n <!-- ============================================================= -->\n\n <div class=\"admin-body\">\n <!-- =========================================================== -->\n <!-- MOBILE BACKDROP -->\n <!-- =========================================================== -->\n\n @if (asideOpened()) {\n <div\n class=\"admin-aside-backdrop\"\n (click)=\"closeAside()\"></div>\n }\n\n <!-- =========================================================== -->\n <!-- ASIDE -->\n <!-- =========================================================== -->\n\n <aside\n class=\"admin-aside\"\n [class.admin-aside-open]=\"asideOpened()\">\n <!-- ========================================================= -->\n <!-- SCROLLABLE ASIDE CONTENT -->\n <!-- ========================================================= -->\n\n <div class=\"admin-aside-content\">\n <mat-accordion class=\"admin-menu\">\n @for (level1 of routes; track level1.path) {\n @if (menuContext.isVisible(level1)) {\n @if (isExpandable(level1)) {\n <mat-expansion-panel\n [disabled]=\"menuContext.isDisabled(level1)\"\n [expanded]=\"\n isLevel1Active(level1) && !menuContext.isDisabled(level1)\n \"\n (expandedChange)=\"panelExpanded(level1, $event)\">\n <mat-expansion-panel-header\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level1)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level1)\"\n (click)=\"level1Clicked(level1)\">\n <mat-panel-title>\n <div class=\"admin-menu-item\">\n @if (icon(level1)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ icon(level1) }}\n </mat-icon>\n }\n\n <span\n [class.font-semibold]=\"isLevel1Active(level1)\"\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ label(level1) }}\n </span>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div class=\"admin-level2\">\n @if (isLoading(level1)) {\n <div class=\"admin-loading\">{{ t.gettext('Loading...') }}</div>\n } @else {\n @for (\n level2 of getLevel2Routes(level1);\n track level2.path\n ) {\n @if (menuContext.isVisible(level2)) {\n <a\n class=\"admin-level2-item\"\n role=\"button\"\n [attr.tabindex]=\"\n menuContext.isDisabled(level2) ? -1 : 0\n \"\n [attr.aria-disabled]=\"\n menuContext.isDisabled(level2)\n \"\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level2)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level2)\"\n [class.admin-level2-item-active]=\"\n isLevel2Active(level1, level2)\n \"\n (click)=\"level2Clicked(level1, level2)\"\n (keydown.enter)=\"level2Clicked(level1, level2)\"\n (keydown.space)=\"\n $event.preventDefault();\n level2Clicked(level1, level2)\n \">\n @if (icon(level2)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level2),\n }\">\n {{ icon(level2) }}\n </mat-icon>\n }\n\n <span\n [ngStyle]=\"{\n color: color(level2),\n }\">\n {{ label(level2) }}\n </span>\n </a>\n }\n }\n }\n </div>\n </mat-expansion-panel>\n } @else {\n <a\n class=\"admin-level1-item\"\n role=\"button\"\n [attr.tabindex]=\"menuContext.isDisabled(level1) ? -1 : 0\"\n [attr.aria-disabled]=\"menuContext.isDisabled(level1)\"\n [class.admin-menu-item-disabled]=\"\n menuContext.isDisabled(level1)\n \"\n [matTooltip]=\"menuContext.disabledTooltip(level1)\"\n [class.admin-level1-item-active]=\"isLevel1Active(level1)\"\n (click)=\"level1Clicked(level1)\"\n (keydown.enter)=\"level1Clicked(level1)\"\n (keydown.space)=\"\n $event.preventDefault(); level1Clicked(level1)\n \">\n @if (icon(level1)) {\n <mat-icon\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ icon(level1) }}\n </mat-icon>\n }\n\n <span\n [ngStyle]=\"{\n color: color(level1),\n }\">\n {{ label(level1) }}\n </span>\n </a>\n }\n }\n }\n </mat-accordion>\n </div>\n\n <!-- ========================================================= -->\n <!-- ASIDE FOOTER -->\n <!-- ========================================================= -->\n\n <footer class=\"admin-aside-footer\">\n <ng-content select=\"[asideFooter]\" />\n </footer>\n </aside>\n\n <!-- =========================================================== -->\n <!-- MAIN -->\n <!-- =========================================================== -->\n\n <main class=\"admin-main\">\n <!-- ========================================================= -->\n <!-- LEVEL 3+ TABS -->\n <!-- ========================================================= -->\n\n <taon-admin-page-tabs\n class=\"admin-tabs\"\n [routes]=\"routes\"\n [basePath]=\"basePath\"\n [outlet]=\"outlet\" />\n\n <!-- ========================================================= -->\n <!-- SCROLLABLE CONTENT -->\n <!-- ========================================================= -->\n\n <div class=\"admin-content\">\n <router-outlet />\n </div>\n\n <!-- ========================================================= -->\n <!-- CONTENT FOOTER -->\n <!-- ========================================================= -->\n\n <footer class=\"admin-content-footer\">\n <ng-container\n [ngTemplateOutlet]=\"\n taonAdminContentFooterService.currentTemplate()\n \" />\n </footer>\n </main>\n </div>\n\n <!-- ============================================================= -->\n <!-- DIALOG RESIZE HANDLE -->\n <!-- ============================================================= -->\n\n @if (isDialogMode) {\n <div\n class=\"admin-resize-handle\"\n (pointerdown)=\"startResize($event)\"></div>\n }\n</div>\n", 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"] }]
|
|
1002
1019
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i0.ElementRef }], propDecorators: { routes: [{
|
|
1003
1020
|
type: Input,
|
|
1004
1021
|
args: [{ required: true }]
|
|
@@ -1330,7 +1347,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
|
|
|
1330
1347
|
|
|
1331
1348
|
//#region imports
|
|
1332
1349
|
//#endregion
|
|
1333
|
-
const t$4 = Translation.for('src/lib/taon-datatable/taon-datatable.component.ts', { "src/lib/taon-datatable/taon-datatable.component.html": { "en-US": async () => (await import('./ui-websql-taon-datatable.component.html.en-US.i18n.data-
|
|
1350
|
+
const t$4 = Translation.for('src/lib/taon-datatable/taon-datatable.component.ts', { "src/lib/taon-datatable/taon-datatable.component.html": { "en-US": async () => (await import('./ui-websql-taon-datatable.component.html.en-US.i18n.data-BQRO2MVj.mjs')).default, "pl-PL": async () => (await import('./ui-websql-taon-datatable.component.html.pl-PL.i18n.data-cEIoFPC7.mjs')).default, "de-DE": async () => (await import('./ui-websql-taon-datatable.component.html.de-DE.i18n.data-akWKK_zH.mjs')).default }, "src/lib/taon-datatable/taon-datatable.component.ts": { "en-US": async () => (await import('./ui-websql-taon-datatable.component.ts.en-US.i18n.data-B3mI-Sqk.mjs')).default, "pl-PL": async () => (await import('./ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-CLuM0VTt.mjs')).default, "de-DE": async () => (await import('./ui-websql-taon-datatable.component.ts.de-DE.i18n.data-kjuoNEZ4.mjs')).default } });
|
|
1334
1351
|
const defaultColumns = [
|
|
1335
1352
|
{
|
|
1336
1353
|
header: t$4.gettext('ID'),
|
|
@@ -1347,6 +1364,8 @@ class TaonDatatableComponent {
|
|
|
1347
1364
|
this.t = t$4.for(this);
|
|
1348
1365
|
this.cdr = inject(ChangeDetectorRef);
|
|
1349
1366
|
this.destroyRef = inject(DestroyRef);
|
|
1367
|
+
this.route = inject(ActivatedRoute);
|
|
1368
|
+
this.router = inject(Router);
|
|
1350
1369
|
//#region inputs
|
|
1351
1370
|
this.pageNumber = 1;
|
|
1352
1371
|
this.pageSize = 10;
|
|
@@ -1358,6 +1377,8 @@ class TaonDatatableComponent {
|
|
|
1358
1377
|
this.hideAddButton = false;
|
|
1359
1378
|
this.safe = false;
|
|
1360
1379
|
this.searchMode = 'advanced';
|
|
1380
|
+
this.storeTablePagination = 'none';
|
|
1381
|
+
this.storeTableFilters = 'none';
|
|
1361
1382
|
//#endregion
|
|
1362
1383
|
//#region outputs
|
|
1363
1384
|
this.expansionChange = new EventEmitter();
|
|
@@ -1418,15 +1439,21 @@ class TaonDatatableComponent {
|
|
|
1418
1439
|
//#region hooks
|
|
1419
1440
|
ngOnInit() {
|
|
1420
1441
|
this.prepareColumns();
|
|
1421
|
-
// console.log({ columns: this.columns });
|
|
1422
1442
|
this.expandable = Boolean(this.expansionTemplate);
|
|
1423
1443
|
this.showPaginator = _.isBoolean(this.showPaginator)
|
|
1424
1444
|
? this.showPaginator
|
|
1425
1445
|
: Boolean(this.entity) || this.offlineMode;
|
|
1446
|
+
if (this.storeTableFilters === 'query-params') {
|
|
1447
|
+
this.columnFilters = this.readQueryFilters();
|
|
1448
|
+
}
|
|
1449
|
+
void this.restorePagination().then(() => this.subscribeToData());
|
|
1450
|
+
}
|
|
1451
|
+
subscribeToData() {
|
|
1426
1452
|
this.searchChange$
|
|
1427
1453
|
.pipe(debounceTime(400), distinctUntilChanged(), tap(search => {
|
|
1428
1454
|
this.searchValue = search;
|
|
1429
1455
|
this.pageNumber = 1;
|
|
1456
|
+
this.persistPagination();
|
|
1430
1457
|
this.reload();
|
|
1431
1458
|
}), takeUntilDestroyed(this.destroyRef))
|
|
1432
1459
|
.subscribe();
|
|
@@ -1444,10 +1471,12 @@ class TaonDatatableComponent {
|
|
|
1444
1471
|
this.searchValue = '';
|
|
1445
1472
|
this.columnFilters = {};
|
|
1446
1473
|
this.pageNumber = 1;
|
|
1474
|
+
this.persistCurrentTableState();
|
|
1447
1475
|
this.reload();
|
|
1448
1476
|
}
|
|
1449
1477
|
applyAdvancedFilters() {
|
|
1450
1478
|
this.pageNumber = 1;
|
|
1479
|
+
this.persistCurrentTableState();
|
|
1451
1480
|
this.reload();
|
|
1452
1481
|
}
|
|
1453
1482
|
toggleAdvancedSearch() {
|
|
@@ -1458,8 +1487,147 @@ class TaonDatatableComponent {
|
|
|
1458
1487
|
getNextPage(event) {
|
|
1459
1488
|
this.pageNumber = event.pageIndex + 1;
|
|
1460
1489
|
this.pageSize = event.pageSize;
|
|
1490
|
+
this.persistPagination();
|
|
1461
1491
|
this.reload();
|
|
1462
1492
|
}
|
|
1493
|
+
get tableIdentity() {
|
|
1494
|
+
const explicitId = this.tableId?.trim();
|
|
1495
|
+
if (explicitId) {
|
|
1496
|
+
return explicitId;
|
|
1497
|
+
}
|
|
1498
|
+
const routePath = this.route.pathFromRoot
|
|
1499
|
+
.map(route => route.snapshot.url.map(segment => segment.path).join('/'))
|
|
1500
|
+
.filter(Boolean)
|
|
1501
|
+
.join('/');
|
|
1502
|
+
const entityName = this.entity ? ClassHelpers.getName(this.entity) : 'table';
|
|
1503
|
+
return `${entityName}-${routePath || 'root'}`;
|
|
1504
|
+
}
|
|
1505
|
+
get queryParamPrefix() {
|
|
1506
|
+
return `dt.${encodeURIComponent(this.tableIdentity)}`;
|
|
1507
|
+
}
|
|
1508
|
+
async restorePagination() {
|
|
1509
|
+
const prefix = this.queryParamPrefix;
|
|
1510
|
+
if (this.storeTablePagination === 'query-params') {
|
|
1511
|
+
const pageNumber = Number(this.route.snapshot.queryParamMap.get(`${prefix}.page`));
|
|
1512
|
+
const pageSize = Number(this.route.snapshot.queryParamMap.get(`${prefix}.pageSize`));
|
|
1513
|
+
if (Number.isSafeInteger(pageNumber) && pageNumber > 0) {
|
|
1514
|
+
this.pageNumber = pageNumber;
|
|
1515
|
+
}
|
|
1516
|
+
if (Number.isSafeInteger(pageSize) && pageSize > 0) {
|
|
1517
|
+
this.pageSize = pageSize;
|
|
1518
|
+
}
|
|
1519
|
+
return;
|
|
1520
|
+
}
|
|
1521
|
+
if (this.storeTablePagination !== 'local-storage' &&
|
|
1522
|
+
this.storeTablePagination !== 'session-storage') {
|
|
1523
|
+
return;
|
|
1524
|
+
}
|
|
1525
|
+
const options = {
|
|
1526
|
+
keyOrPath: `datatable-${this.tableIdentity}-pagination`,
|
|
1527
|
+
defaultValue: {
|
|
1528
|
+
pageNumber: this.pageNumber,
|
|
1529
|
+
pageSize: this.pageSize,
|
|
1530
|
+
},
|
|
1531
|
+
};
|
|
1532
|
+
this.paginationStorage =
|
|
1533
|
+
this.storeTablePagination === 'local-storage'
|
|
1534
|
+
? TaonStor.inLocalstorage(options, TaonDatatableComponent)
|
|
1535
|
+
: TaonStor.inSessionStorage(options, TaonDatatableComponent);
|
|
1536
|
+
try {
|
|
1537
|
+
await this.paginationStorage.ready();
|
|
1538
|
+
const state = this.paginationStorage();
|
|
1539
|
+
if (Number.isSafeInteger(state.pageNumber) && state.pageNumber > 0) {
|
|
1540
|
+
this.pageNumber = state.pageNumber;
|
|
1541
|
+
}
|
|
1542
|
+
if (Number.isSafeInteger(state.pageSize) && state.pageSize > 0) {
|
|
1543
|
+
this.pageSize = state.pageSize;
|
|
1544
|
+
}
|
|
1545
|
+
}
|
|
1546
|
+
catch (error) {
|
|
1547
|
+
console.error('[taon-datatable] Unable to restore pagination state', error);
|
|
1548
|
+
}
|
|
1549
|
+
}
|
|
1550
|
+
persistPagination() {
|
|
1551
|
+
const state = {
|
|
1552
|
+
pageNumber: this.pageNumber,
|
|
1553
|
+
pageSize: this.pageSize,
|
|
1554
|
+
};
|
|
1555
|
+
if (this.storeTablePagination === 'query-params') {
|
|
1556
|
+
this.updateQueryParams({
|
|
1557
|
+
[`${this.queryParamPrefix}.page`]: String(state.pageNumber),
|
|
1558
|
+
[`${this.queryParamPrefix}.pageSize`]: String(state.pageSize),
|
|
1559
|
+
});
|
|
1560
|
+
}
|
|
1561
|
+
else if (this.paginationStorage) {
|
|
1562
|
+
void this.paginationStorage.set(state).catch(error => {
|
|
1563
|
+
console.error('[taon-datatable] Unable to persist pagination state', error);
|
|
1564
|
+
});
|
|
1565
|
+
}
|
|
1566
|
+
}
|
|
1567
|
+
readQueryFilters() {
|
|
1568
|
+
const filterPrefix = `${this.queryParamPrefix}.filter.`;
|
|
1569
|
+
const filters = {};
|
|
1570
|
+
for (const key of this.route.snapshot.queryParamMap.keys) {
|
|
1571
|
+
if (!key.startsWith(filterPrefix)) {
|
|
1572
|
+
continue;
|
|
1573
|
+
}
|
|
1574
|
+
try {
|
|
1575
|
+
const field = decodeURIComponent(key.slice(filterPrefix.length));
|
|
1576
|
+
const value = this.route.snapshot.queryParamMap.get(key);
|
|
1577
|
+
if (field && value !== null) {
|
|
1578
|
+
filters[field] = value;
|
|
1579
|
+
}
|
|
1580
|
+
}
|
|
1581
|
+
catch (error) {
|
|
1582
|
+
console.error('[taon-datatable] Invalid filter query parameter', error);
|
|
1583
|
+
}
|
|
1584
|
+
}
|
|
1585
|
+
return filters;
|
|
1586
|
+
}
|
|
1587
|
+
persistFilters() {
|
|
1588
|
+
if (this.storeTableFilters !== 'query-params') {
|
|
1589
|
+
return;
|
|
1590
|
+
}
|
|
1591
|
+
this.updateQueryParams(this.filterQueryUpdates());
|
|
1592
|
+
}
|
|
1593
|
+
persistCurrentTableState() {
|
|
1594
|
+
if (this.storeTablePagination === 'query-params' &&
|
|
1595
|
+
this.storeTableFilters === 'query-params') {
|
|
1596
|
+
this.updateQueryParams({
|
|
1597
|
+
[`${this.queryParamPrefix}.page`]: String(this.pageNumber),
|
|
1598
|
+
[`${this.queryParamPrefix}.pageSize`]: String(this.pageSize),
|
|
1599
|
+
...this.filterQueryUpdates(),
|
|
1600
|
+
});
|
|
1601
|
+
return;
|
|
1602
|
+
}
|
|
1603
|
+
this.persistPagination();
|
|
1604
|
+
this.persistFilters();
|
|
1605
|
+
}
|
|
1606
|
+
filterQueryUpdates() {
|
|
1607
|
+
const filterPrefix = `${this.queryParamPrefix}.filter.`;
|
|
1608
|
+
const updates = {};
|
|
1609
|
+
for (const key of this.route.snapshot.queryParamMap.keys) {
|
|
1610
|
+
if (key.startsWith(filterPrefix)) {
|
|
1611
|
+
updates[key] = null;
|
|
1612
|
+
}
|
|
1613
|
+
}
|
|
1614
|
+
for (const [field, value] of Object.entries(this.cleanFilters(this.columnFilters))) {
|
|
1615
|
+
updates[`${filterPrefix}${encodeURIComponent(field)}`] = value;
|
|
1616
|
+
}
|
|
1617
|
+
return updates;
|
|
1618
|
+
}
|
|
1619
|
+
updateQueryParams(queryParams) {
|
|
1620
|
+
void this.router
|
|
1621
|
+
.navigate([], {
|
|
1622
|
+
relativeTo: this.route,
|
|
1623
|
+
queryParams,
|
|
1624
|
+
queryParamsHandling: 'merge',
|
|
1625
|
+
replaceUrl: true,
|
|
1626
|
+
})
|
|
1627
|
+
.catch(error => {
|
|
1628
|
+
console.error('[taon-datatable] Unable to update table query parameters', error);
|
|
1629
|
+
});
|
|
1630
|
+
}
|
|
1463
1631
|
//#endregion
|
|
1464
1632
|
//#region sorting
|
|
1465
1633
|
sortChanged(event) {
|
|
@@ -1648,7 +1816,7 @@ class TaonDatatableComponent {
|
|
|
1648
1816
|
}
|
|
1649
1817
|
}
|
|
1650
1818
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDatatableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1651
|
-
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]=\"t.gettext('Search...')\"\n [value]=\"searchValue\"\n (input)=\"searchChanged($any($event.target).value)\" />\n\n @if (searchValue) {\n <button\n mat-icon-button\n matSuffix\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n\n <!-- advanced search -->\n @if (searchMode === 'advanced') {\n <button\n mat-stroked-button\n type=\"button\"\n (click)=\"toggleAdvancedSearch()\">\n <mat-icon> tune </mat-icon>\n\n {{ t.gettext('Filters') }}\n\n @if (advancedSearchOpened) {\n <mat-icon> expand_less </mat-icon>\n } @else {\n <mat-icon> expand_more </mat-icon>\n }\n </button>\n }\n\n <!-- refresh -->\n <button\n mat-icon-button\n type=\"button\"\n [title]=\"t.gettext('Refresh')\"\n (click)=\"reload()\">\n <mat-icon> refresh </mat-icon>\n </button>\n\n <!-- add -->\n @if (!hideAddButton) {\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"addingItem.emit()\">\n <mat-icon> add </mat-icon>\n\n {{ t.gettext('Add') }}\n </button>\n }\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region advanced filters -->\n @if (!hideSearch && searchMode === 'advanced' && advancedSearchOpened) {\n <div\n class=\"grid grid-cols-1 gap-3 rounded-lg border border-gray-200 bg-gray-50 p-4 shadow-sm dark:border-gray-700 dark:bg-gray-800 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4\">\n @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 {{ t.gettext('Clear') }}\n </button>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"applyAdvancedFilters()\">\n <mat-icon> filter_alt </mat-icon>\n\n {{ t.gettext('Apply filters') }}\n </button>\n </div>\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region grid -->\n <div\n class=\"relative min-h-[250px] overflow-hidden rounded-lg border border-gray-200 bg-white shadow-sm dark:border-gray-700 dark:bg-gray-900\">\n @if (isLoading) {\n <div\n class=\"absolute inset-0 z-10 flex items-center justify-center bg-white/60 backdrop-blur-[1px] dark:bg-gray-900/60\">\n <div\n class=\"flex items-center gap-2 rounded-md bg-white px-4 py-2 shadow dark:bg-gray-800\">\n <mat-icon class=\"animate-spin\"> refresh </mat-icon>\n\n {{ t.gettext('Loading...') }}\n </div>\n </div>\n }\n\n <mtx-grid\n [data]=\"rows\"\n [columns]=\"columns\"\n [expandable]=\"expandable\"\n [expansionTemplate]=\"lazyExpansionTemplate\"\n [length]=\"totalElements\"\n [pageOnFront]=\"false\"\n [pageIndex]=\"pageNumber - 1\"\n [pageSize]=\"pageSize\"\n [noResultText]=\"noResultText\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showPaginator]=\"showPaginator\"\n (expansionChange)=\"onExpansionChange($event)\"\n (page)=\"getNextPage($event)\"\n (sortChange)=\"sortChanged($event)\">\n </mtx-grid>\n\n <ng-template\n #lazyExpansionTemplate\n let-row>\n @if (isExpanded(row)) {\n <ng-container\n [ngTemplateOutlet]=\"expansionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row }\">\n </ng-container>\n }\n </ng-template>\n </div>\n <!-- #endregion -->\n</div>\n", 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 }); }
|
|
1819
|
+
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", filtersTemplate: "filtersTemplate", storeTablePagination: "storeTablePagination", storeTableFilters: "storeTableFilters", tableId: "tableId", 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]=\"t.gettext('Search...')\"\n [value]=\"searchValue\"\n (input)=\"searchChanged($any($event.target).value)\" />\n\n @if (searchValue) {\n <button\n mat-icon-button\n matSuffix\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n\n <!-- advanced search -->\n @if (searchMode === 'advanced') {\n <button\n mat-stroked-button\n type=\"button\"\n (click)=\"toggleAdvancedSearch()\">\n <mat-icon> tune </mat-icon>\n\n {{ t.gettext('Filters') }}\n\n @if (advancedSearchOpened) {\n <mat-icon> expand_less </mat-icon>\n } @else {\n <mat-icon> expand_more </mat-icon>\n }\n </button>\n }\n\n <!-- refresh -->\n <button\n mat-icon-button\n type=\"button\"\n [title]=\"t.gettext('Refresh')\"\n (click)=\"reload()\">\n <mat-icon> refresh </mat-icon>\n </button>\n\n <!-- add -->\n @if (!hideAddButton) {\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"addingItem.emit()\">\n <mat-icon> add </mat-icon>\n\n {{ t.gettext('Add') }}\n </button>\n }\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region advanced filters -->\n @if (!hideSearch && searchMode === 'advanced' && advancedSearchOpened) {\n <div\n class=\"grid grid-cols-1 gap-3 rounded-lg border border-gray-200 bg-gray-50 p-4 shadow-sm dark:border-gray-700 dark:bg-gray-800 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4\">\n @if (filtersTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"filtersTemplate\"\n [ngTemplateOutletContext]=\"{ filters: columnFilters }\">\n </ng-container>\n } @else {\n @for (column of filterableColumns; track column.field) {\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"w-full\">\n <mat-label>\n {{ column.header }}\n </mat-label>\n\n <input\n matInput\n [(ngModel)]=\"columnFilters[$any(column.field)]\"\n (keyup.enter)=\"applyAdvancedFilters()\" />\n </mat-form-field>\n }\n }\n\n <div\n class=\"flex items-center justify-end gap-2 md:col-span-2 lg:col-span-3 xl:col-span-4\">\n <button\n mat-button\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon> filter_alt_off </mat-icon>\n\n {{ t.gettext('Clear') }}\n </button>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"applyAdvancedFilters()\">\n <mat-icon> filter_alt </mat-icon>\n\n {{ t.gettext('Apply filters') }}\n </button>\n </div>\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region grid -->\n <div\n class=\"relative min-h-[250px] overflow-hidden rounded-lg border border-gray-200 bg-white shadow-sm dark:border-gray-700 dark:bg-gray-900\">\n @if (isLoading) {\n <div\n class=\"absolute inset-0 z-10 flex items-center justify-center bg-white/60 backdrop-blur-[1px] dark:bg-gray-900/60\">\n <div\n class=\"flex items-center gap-2 rounded-md bg-white px-4 py-2 shadow dark:bg-gray-800\">\n <mat-icon class=\"animate-spin\"> refresh </mat-icon>\n\n {{ t.gettext('Loading...') }}\n </div>\n </div>\n }\n\n <mtx-grid\n [data]=\"rows\"\n [columns]=\"columns\"\n [expandable]=\"expandable\"\n [expansionTemplate]=\"lazyExpansionTemplate\"\n [length]=\"totalElements\"\n [pageOnFront]=\"false\"\n [pageIndex]=\"pageNumber - 1\"\n [pageSize]=\"pageSize\"\n [noResultText]=\"noResultText\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showPaginator]=\"showPaginator\"\n (expansionChange)=\"onExpansionChange($event)\"\n (page)=\"getNextPage($event)\"\n (sortChange)=\"sortChanged($event)\">\n </mtx-grid>\n\n <ng-template\n #lazyExpansionTemplate\n let-row>\n @if (isExpanded(row)) {\n <ng-container\n [ngTemplateOutlet]=\"expansionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row }\">\n </ng-container>\n }\n </ng-template>\n </div>\n <!-- #endregion -->\n</div>\n", 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 }); }
|
|
1652
1820
|
}
|
|
1653
1821
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDatatableComponent, decorators: [{
|
|
1654
1822
|
type: Component,
|
|
@@ -1663,7 +1831,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
|
|
|
1663
1831
|
MatPaginatorModule,
|
|
1664
1832
|
MatSelectModule,
|
|
1665
1833
|
MtxGridModule,
|
|
1666
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, 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]=\"t.gettext('Search...')\"\n [value]=\"searchValue\"\n (input)=\"searchChanged($any($event.target).value)\" />\n\n @if (searchValue) {\n <button\n mat-icon-button\n matSuffix\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n\n <!-- advanced search -->\n @if (searchMode === 'advanced') {\n <button\n mat-stroked-button\n type=\"button\"\n (click)=\"toggleAdvancedSearch()\">\n <mat-icon> tune </mat-icon>\n\n {{ t.gettext('Filters') }}\n\n @if (advancedSearchOpened) {\n <mat-icon> expand_less </mat-icon>\n } @else {\n <mat-icon> expand_more </mat-icon>\n }\n </button>\n }\n\n <!-- refresh -->\n <button\n mat-icon-button\n type=\"button\"\n [title]=\"t.gettext('Refresh')\"\n (click)=\"reload()\">\n <mat-icon> refresh </mat-icon>\n </button>\n\n <!-- add -->\n @if (!hideAddButton) {\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"addingItem.emit()\">\n <mat-icon> add </mat-icon>\n\n {{ t.gettext('Add') }}\n </button>\n }\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region advanced filters -->\n @if (!hideSearch && searchMode === 'advanced' && advancedSearchOpened) {\n <div\n class=\"grid grid-cols-1 gap-3 rounded-lg border border-gray-200 bg-gray-50 p-4 shadow-sm dark:border-gray-700 dark:bg-gray-800 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4\">\n @for (column of filterableColumns; track column.field) {\n
|
|
1834
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, 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]=\"t.gettext('Search...')\"\n [value]=\"searchValue\"\n (input)=\"searchChanged($any($event.target).value)\" />\n\n @if (searchValue) {\n <button\n mat-icon-button\n matSuffix\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n\n <!-- advanced search -->\n @if (searchMode === 'advanced') {\n <button\n mat-stroked-button\n type=\"button\"\n (click)=\"toggleAdvancedSearch()\">\n <mat-icon> tune </mat-icon>\n\n {{ t.gettext('Filters') }}\n\n @if (advancedSearchOpened) {\n <mat-icon> expand_less </mat-icon>\n } @else {\n <mat-icon> expand_more </mat-icon>\n }\n </button>\n }\n\n <!-- refresh -->\n <button\n mat-icon-button\n type=\"button\"\n [title]=\"t.gettext('Refresh')\"\n (click)=\"reload()\">\n <mat-icon> refresh </mat-icon>\n </button>\n\n <!-- add -->\n @if (!hideAddButton) {\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"addingItem.emit()\">\n <mat-icon> add </mat-icon>\n\n {{ t.gettext('Add') }}\n </button>\n }\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region advanced filters -->\n @if (!hideSearch && searchMode === 'advanced' && advancedSearchOpened) {\n <div\n class=\"grid grid-cols-1 gap-3 rounded-lg border border-gray-200 bg-gray-50 p-4 shadow-sm dark:border-gray-700 dark:bg-gray-800 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4\">\n @if (filtersTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"filtersTemplate\"\n [ngTemplateOutletContext]=\"{ filters: columnFilters }\">\n </ng-container>\n } @else {\n @for (column of filterableColumns; track column.field) {\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"w-full\">\n <mat-label>\n {{ column.header }}\n </mat-label>\n\n <input\n matInput\n [(ngModel)]=\"columnFilters[$any(column.field)]\"\n (keyup.enter)=\"applyAdvancedFilters()\" />\n </mat-form-field>\n }\n }\n\n <div\n class=\"flex items-center justify-end gap-2 md:col-span-2 lg:col-span-3 xl:col-span-4\">\n <button\n mat-button\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon> filter_alt_off </mat-icon>\n\n {{ t.gettext('Clear') }}\n </button>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"applyAdvancedFilters()\">\n <mat-icon> filter_alt </mat-icon>\n\n {{ t.gettext('Apply filters') }}\n </button>\n </div>\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region grid -->\n <div\n class=\"relative min-h-[250px] overflow-hidden rounded-lg border border-gray-200 bg-white shadow-sm dark:border-gray-700 dark:bg-gray-900\">\n @if (isLoading) {\n <div\n class=\"absolute inset-0 z-10 flex items-center justify-center bg-white/60 backdrop-blur-[1px] dark:bg-gray-900/60\">\n <div\n class=\"flex items-center gap-2 rounded-md bg-white px-4 py-2 shadow dark:bg-gray-800\">\n <mat-icon class=\"animate-spin\"> refresh </mat-icon>\n\n {{ t.gettext('Loading...') }}\n </div>\n </div>\n }\n\n <mtx-grid\n [data]=\"rows\"\n [columns]=\"columns\"\n [expandable]=\"expandable\"\n [expansionTemplate]=\"lazyExpansionTemplate\"\n [length]=\"totalElements\"\n [pageOnFront]=\"false\"\n [pageIndex]=\"pageNumber - 1\"\n [pageSize]=\"pageSize\"\n [noResultText]=\"noResultText\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showPaginator]=\"showPaginator\"\n (expansionChange)=\"onExpansionChange($event)\"\n (page)=\"getNextPage($event)\"\n (sortChange)=\"sortChanged($event)\">\n </mtx-grid>\n\n <ng-template\n #lazyExpansionTemplate\n let-row>\n @if (isExpanded(row)) {\n <ng-container\n [ngTemplateOutlet]=\"expansionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row }\">\n </ng-container>\n }\n </ng-template>\n </div>\n <!-- #endregion -->\n</div>\n", styles: [":host{display:block;width:100%;min-height:250px}:host ::ng-deep .mat-mdc-form-field{margin:0}\n"] }]
|
|
1667
1835
|
}], propDecorators: { pageNumber: [{
|
|
1668
1836
|
type: Input
|
|
1669
1837
|
}], pageSize: [{
|
|
@@ -1686,6 +1854,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
|
|
|
1686
1854
|
type: Input
|
|
1687
1855
|
}], searchMode: [{
|
|
1688
1856
|
type: Input
|
|
1857
|
+
}], filtersTemplate: [{
|
|
1858
|
+
type: Input
|
|
1859
|
+
}], storeTablePagination: [{
|
|
1860
|
+
type: Input
|
|
1861
|
+
}], storeTableFilters: [{
|
|
1862
|
+
type: Input
|
|
1863
|
+
}], tableId: [{
|
|
1864
|
+
type: Input
|
|
1689
1865
|
}], callQueryMethod: [{
|
|
1690
1866
|
type: Input
|
|
1691
1867
|
}], data: [{
|
|
@@ -2576,6 +2752,44 @@ const TaonDraggableButtonPanelRoutes = [
|
|
|
2576
2752
|
// },
|
|
2577
2753
|
];
|
|
2578
2754
|
|
|
2755
|
+
class TaonItemsHamburgerComponent {
|
|
2756
|
+
constructor() {
|
|
2757
|
+
this.icon = 'menu';
|
|
2758
|
+
this.taonAdminService = inject(TaonAdminService);
|
|
2759
|
+
this.elementRef = inject((ElementRef));
|
|
2760
|
+
this.opened = signal(false, ...(ngDevMode ? [{ debugName: "opened" }] : []));
|
|
2761
|
+
}
|
|
2762
|
+
toggle(event) {
|
|
2763
|
+
event.stopPropagation();
|
|
2764
|
+
this.opened.update(opened => !opened);
|
|
2765
|
+
}
|
|
2766
|
+
onDocumentClick(event) {
|
|
2767
|
+
const target = event.target;
|
|
2768
|
+
if (this.opened() &&
|
|
2769
|
+
target &&
|
|
2770
|
+
!this.elementRef.nativeElement.contains(target)) {
|
|
2771
|
+
this.opened.set(false);
|
|
2772
|
+
}
|
|
2773
|
+
}
|
|
2774
|
+
onEscape() {
|
|
2775
|
+
this.opened.set(false);
|
|
2776
|
+
}
|
|
2777
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonItemsHamburgerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2778
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonItemsHamburgerComponent, isStandalone: true, selector: "taon-items-hamburger", inputs: { icon: "icon" }, host: { listeners: { "document:click": "onDocumentClick($event)", "document:keydown.escape": "onEscape()" } }, ngImport: i0, template: "@if (!taonAdminService.isDesktop()) {\n <button\n mat-icon-button\n type=\"button\"\n aria-label=\"Open menu\"\n [attr.aria-expanded]=\"opened()\"\n (click)=\"toggle($event)\">\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n}\n\n<div\n class=\"items\"\n [class.mobile]=\"!taonAdminService.isDesktop()\"\n [class.opened]=\"opened()\">\n <ng-content />\n</div>\n", styles: [":host{position:relative;display:inline-flex;align-items:center}.items{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.5rem}.items.mobile{display:none;position:absolute;top:calc(100% + 4px);right:0;z-index:1000;min-width:50px;padding:.5rem;background:var(--mat-sys-surface, white);color:var(--mat-sys-on-surface, inherit);border:1px solid var(--mat-sys-outline-variant, rgba(0, 0, 0, .12));border-radius:8px;box-shadow:0 2px 4px #0000001f,0 4px 12px #0000001f}.items.mobile.opened{display:flex;align-items:center;gap:.75rem}.items.mobile.opened>*{width:100%}\n"], dependencies: [{ 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2779
|
+
}
|
|
2780
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonItemsHamburgerComponent, decorators: [{
|
|
2781
|
+
type: Component,
|
|
2782
|
+
args: [{ selector: 'taon-items-hamburger', standalone: true, imports: [MatButtonModule, MatIconModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!taonAdminService.isDesktop()) {\n <button\n mat-icon-button\n type=\"button\"\n aria-label=\"Open menu\"\n [attr.aria-expanded]=\"opened()\"\n (click)=\"toggle($event)\">\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n}\n\n<div\n class=\"items\"\n [class.mobile]=\"!taonAdminService.isDesktop()\"\n [class.opened]=\"opened()\">\n <ng-content />\n</div>\n", styles: [":host{position:relative;display:inline-flex;align-items:center}.items{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.5rem}.items.mobile{display:none;position:absolute;top:calc(100% + 4px);right:0;z-index:1000;min-width:50px;padding:.5rem;background:var(--mat-sys-surface, white);color:var(--mat-sys-on-surface, inherit);border:1px solid var(--mat-sys-outline-variant, rgba(0, 0, 0, .12));border-radius:8px;box-shadow:0 2px 4px #0000001f,0 4px 12px #0000001f}.items.mobile.opened{display:flex;align-items:center;gap:.75rem}.items.mobile.opened>*{width:100%}\n"] }]
|
|
2783
|
+
}], propDecorators: { icon: [{
|
|
2784
|
+
type: Input
|
|
2785
|
+
}], onDocumentClick: [{
|
|
2786
|
+
type: HostListener,
|
|
2787
|
+
args: ['document:click', ['$event']]
|
|
2788
|
+
}], onEscape: [{
|
|
2789
|
+
type: HostListener,
|
|
2790
|
+
args: ['document:keydown.escape']
|
|
2791
|
+
}] } });
|
|
2792
|
+
|
|
2579
2793
|
const t$1 = Translation.for('src/lib/taon-purchase-status/taon-purchase-status.dialog.component.ts', { "src/lib/taon-purchase-status/taon-purchase-status.dialog.component.html": { "en-US": async () => (await import('./ui-websql-taon-purchase-status.dialog.component.html.en-US.i18n.data-nNV-_Bxf.mjs')).default, "pl-PL": async () => (await import('./ui-websql-taon-purchase-status.dialog.component.html.pl-PL.i18n.data-DNdKPp72.mjs')).default, "de-DE": async () => (await import('./ui-websql-taon-purchase-status.dialog.component.html.de-DE.i18n.data-BIcFyGTE.mjs')).default }, "src/lib/taon-purchase-status/taon-purchase-status.dialog.component.ts": { "en-US": async () => (await import('./ui-websql-taon-purchase-status.dialog.component.ts.en-US.i18n.data-CfpW4ySH.mjs')).default, "pl-PL": async () => (await import('./ui-websql-taon-purchase-status.dialog.component.ts.pl-PL.i18n.data-C-zcwzt5.mjs')).default, "de-DE": async () => (await import('./ui-websql-taon-purchase-status.dialog.component.ts.de-DE.i18n.data-B-fSzjPP.mjs')).default } });
|
|
2580
2794
|
class TaonPurchaseStatusDialogComponent {
|
|
2581
2795
|
constructor(data) {
|
|
@@ -2622,5 +2836,5 @@ var index = {};
|
|
|
2622
2836
|
* Generated bundle index. Do not edit.
|
|
2623
2837
|
*/
|
|
2624
2838
|
|
|
2625
|
-
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, resolveTaonAdminMenuItem, startCli };
|
|
2839
|
+
export { APP_ID, BUILD_BASE_HREF, BUILD_FRAMEWORK_CLI_NAME, CURRENT_PACKAGE_TAON_VERSION, CURRENT_PACKAGE_VERSION, PROJECT_NPM_NAME, TAON_IS_DETACHED_WINDOW, TaonAdminContentFooterService, TaonAdminLayoutComponent, TaonAdminMenuContext, TaonAdminPageTabsComponent, TaonAdminWelcomeComponent, TaonAdminWelcomeRoutes, TaonBackofficeNotificationsComponent, TaonBackofficeNotificationsService, TaonBaseAdminLayoutPage, TaonBaselineBackofficeOutletName, TaonConfirmDialogComponent, TaonDatatableComponent, TaonDatatableRoutes, TaonDetachableDialogContentComponent, TaonDetachedWindowComponent, TaonDetachedWindowsHostComponent, TaonDetachedWindowsService, TaonDraggableButtonPanelComponent, TaonDraggableButtonPanelRoutes, TaonDraggableButtonPanelState, TaonErrorDetailsDialogComponent, TaonErrorToastComponent, TaonHorizontalWheelScrollDirective, TaonItemsHamburgerComponent, TaonPurchaseStatusDialogComponent, TaonUnderConstructionComponent, adminLazyRoute, myOrgProj, resolveTaonAdminMenuItem, startCli };
|
|
2626
2840
|
//# sourceMappingURL=ui-websql.mjs.map
|