@taon-dev/marketing 21.0.14 → 21.0.16
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/browser/fesm2022/{marketing-browser-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs → marketing-browser-my-organization-proj.ts.en-US.i18n.data-DM4MF3vZ.mjs} +1 -1
- package/browser/fesm2022/{marketing-browser-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs.map → marketing-browser-my-organization-proj.ts.en-US.i18n.data-DM4MF3vZ.mjs.map} +1 -1
- package/browser/fesm2022/{marketing-browser-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs → marketing-browser-my-organization-proj.ts.pl-PL.i18n.data-Bm_JyrqR.mjs} +1 -1
- package/browser/fesm2022/{marketing-browser-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs.map → marketing-browser-my-organization-proj.ts.pl-PL.i18n.data-Bm_JyrqR.mjs.map} +1 -1
- package/browser/fesm2022/{marketing-browser-taon-marketing-ab.constants.ts.en-US.i18n.data-CzjxluTr.mjs → marketing-browser-taon-marketing-ab.constants.ts.en-US.i18n.data-CSiH_RB6.mjs} +1 -1
- package/browser/fesm2022/{marketing-browser-taon-marketing-ab.constants.ts.en-US.i18n.data-CzjxluTr.mjs.map → marketing-browser-taon-marketing-ab.constants.ts.en-US.i18n.data-CSiH_RB6.mjs.map} +1 -1
- package/browser/fesm2022/{marketing-browser-taon-marketing-ab.constants.ts.pl-PL.i18n.data-DHmpDGVj.mjs → marketing-browser-taon-marketing-ab.constants.ts.pl-PL.i18n.data-DKiMGtIP.mjs} +1 -1
- package/browser/fesm2022/{marketing-browser-taon-marketing-ab.constants.ts.pl-PL.i18n.data-DHmpDGVj.mjs.map → marketing-browser-taon-marketing-ab.constants.ts.pl-PL.i18n.data-DKiMGtIP.mjs.map} +1 -1
- package/browser/fesm2022/{marketing-browser-taon-marketing-newsletter.constants.ts.en-US.i18n.data-BL2hMzTu.mjs → marketing-browser-taon-marketing-newsletter.constants.ts.en-US.i18n.data-BgVUqC_z.mjs} +1 -1
- package/browser/fesm2022/{marketing-browser-taon-marketing-newsletter.constants.ts.en-US.i18n.data-BL2hMzTu.mjs.map → marketing-browser-taon-marketing-newsletter.constants.ts.en-US.i18n.data-BgVUqC_z.mjs.map} +1 -1
- package/browser/fesm2022/{marketing-browser-taon-marketing-newsletter.constants.ts.pl-PL.i18n.data-CYTCrxlW.mjs → marketing-browser-taon-marketing-newsletter.constants.ts.pl-PL.i18n.data-CYSIsohf.mjs} +1 -1
- package/browser/fesm2022/{marketing-browser-taon-marketing-newsletter.constants.ts.pl-PL.i18n.data-CYTCrxlW.mjs.map → marketing-browser-taon-marketing-newsletter.constants.ts.pl-PL.i18n.data-CYSIsohf.mjs.map} +1 -1
- package/browser/fesm2022/{marketing-browser-taon-marketing-promo.constants.ts.en-US.i18n.data-ByMRpbAX.mjs → marketing-browser-taon-marketing-promo.constants.ts.en-US.i18n.data-BWvjuW8w.mjs} +1 -1
- package/browser/fesm2022/{marketing-browser-taon-marketing-promo.constants.ts.en-US.i18n.data-ByMRpbAX.mjs.map → marketing-browser-taon-marketing-promo.constants.ts.en-US.i18n.data-BWvjuW8w.mjs.map} +1 -1
- package/browser/fesm2022/{marketing-browser-taon-marketing-promo.constants.ts.pl-PL.i18n.data-BMqDY9X3.mjs → marketing-browser-taon-marketing-promo.constants.ts.pl-PL.i18n.data-Cfi2T1Fd.mjs} +1 -1
- package/browser/fesm2022/{marketing-browser-taon-marketing-promo.constants.ts.pl-PL.i18n.data-BMqDY9X3.mjs.map → marketing-browser-taon-marketing-promo.constants.ts.pl-PL.i18n.data-Cfi2T1Fd.mjs.map} +1 -1
- package/browser/fesm2022/marketing-browser.mjs +5 -5
- package/browser/fesm2022/marketing-browser.mjs.map +1 -1
- package/browser/package.json +1 -1
- package/browser/types/marketing-browser.d.ts +1 -1
- package/browser-prod/fesm2022/{marketing-browser-prod-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs → marketing-browser-prod-my-organization-proj.ts.en-US.i18n.data-CENecM4Y.mjs} +1 -1
- package/browser-prod/fesm2022/{marketing-browser-prod-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs.map → marketing-browser-prod-my-organization-proj.ts.en-US.i18n.data-CENecM4Y.mjs.map} +1 -1
- package/browser-prod/fesm2022/{marketing-browser-prod-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs → marketing-browser-prod-my-organization-proj.ts.pl-PL.i18n.data-Ce9dAyFH.mjs} +1 -1
- package/browser-prod/fesm2022/{marketing-browser-prod-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs.map → marketing-browser-prod-my-organization-proj.ts.pl-PL.i18n.data-Ce9dAyFH.mjs.map} +1 -1
- package/browser-prod/fesm2022/{marketing-browser-prod-taon-marketing-ab.constants.ts.en-US.i18n.data-CzjxluTr.mjs → marketing-browser-prod-taon-marketing-ab.constants.ts.en-US.i18n.data-C0jsH3vO.mjs} +1 -1
- package/browser-prod/fesm2022/{marketing-browser-prod-taon-marketing-ab.constants.ts.en-US.i18n.data-CzjxluTr.mjs.map → marketing-browser-prod-taon-marketing-ab.constants.ts.en-US.i18n.data-C0jsH3vO.mjs.map} +1 -1
- package/browser-prod/fesm2022/{marketing-browser-prod-taon-marketing-ab.constants.ts.pl-PL.i18n.data-DHmpDGVj.mjs → marketing-browser-prod-taon-marketing-ab.constants.ts.pl-PL.i18n.data-ClmtXn7d.mjs} +1 -1
- package/browser-prod/fesm2022/{marketing-browser-prod-taon-marketing-ab.constants.ts.pl-PL.i18n.data-DHmpDGVj.mjs.map → marketing-browser-prod-taon-marketing-ab.constants.ts.pl-PL.i18n.data-ClmtXn7d.mjs.map} +1 -1
- package/browser-prod/fesm2022/{marketing-browser-prod-taon-marketing-newsletter.constants.ts.en-US.i18n.data-BL2hMzTu.mjs → marketing-browser-prod-taon-marketing-newsletter.constants.ts.en-US.i18n.data-B819ksZp.mjs} +1 -1
- package/browser-prod/fesm2022/{marketing-browser-prod-taon-marketing-newsletter.constants.ts.en-US.i18n.data-BL2hMzTu.mjs.map → marketing-browser-prod-taon-marketing-newsletter.constants.ts.en-US.i18n.data-B819ksZp.mjs.map} +1 -1
- package/browser-prod/fesm2022/{marketing-browser-prod-taon-marketing-newsletter.constants.ts.pl-PL.i18n.data-CYTCrxlW.mjs → marketing-browser-prod-taon-marketing-newsletter.constants.ts.pl-PL.i18n.data-aO5tD4uS.mjs} +1 -1
- package/browser-prod/fesm2022/{marketing-browser-prod-taon-marketing-newsletter.constants.ts.pl-PL.i18n.data-CYTCrxlW.mjs.map → marketing-browser-prod-taon-marketing-newsletter.constants.ts.pl-PL.i18n.data-aO5tD4uS.mjs.map} +1 -1
- package/browser-prod/fesm2022/{marketing-browser-prod-taon-marketing-promo.constants.ts.en-US.i18n.data-ByMRpbAX.mjs → marketing-browser-prod-taon-marketing-promo.constants.ts.en-US.i18n.data-D6E-NYbM.mjs} +1 -1
- package/browser-prod/fesm2022/{marketing-browser-prod-taon-marketing-promo.constants.ts.en-US.i18n.data-ByMRpbAX.mjs.map → marketing-browser-prod-taon-marketing-promo.constants.ts.en-US.i18n.data-D6E-NYbM.mjs.map} +1 -1
- package/browser-prod/fesm2022/{marketing-browser-prod-taon-marketing-promo.constants.ts.pl-PL.i18n.data-BMqDY9X3.mjs → marketing-browser-prod-taon-marketing-promo.constants.ts.pl-PL.i18n.data-DPY8JN5y.mjs} +1 -1
- package/browser-prod/fesm2022/{marketing-browser-prod-taon-marketing-promo.constants.ts.pl-PL.i18n.data-BMqDY9X3.mjs.map → marketing-browser-prod-taon-marketing-promo.constants.ts.pl-PL.i18n.data-DPY8JN5y.mjs.map} +1 -1
- package/browser-prod/fesm2022/marketing-browser-prod.mjs +5 -5
- package/browser-prod/fesm2022/marketing-browser-prod.mjs.map +1 -1
- package/browser-prod/package.json +1 -1
- package/browser-prod/types/marketing-browser-prod.d.ts +1 -1
- package/full-dts/build-info._auto-generated_.d.ts +1 -1
- package/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib/build-info._auto-generated_.js +1 -1
- package/lib/package.json +1 -1
- package/lib/taon-marketing-ab/taon-marketing-ab-backoffice/index.d.ts +1 -1
- package/lib/taon-marketing-ab/taon-marketing-ab-backoffice/index.js +2 -2
- package/lib/taon-marketing-backoffice/index.d.ts +1 -1
- package/lib/taon-marketing-backoffice/index.js +2 -2
- package/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/index.d.ts +1 -1
- package/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/index.js +2 -2
- package/lib/taon-marketing-popup/taon-marketing-popup-backoffice/index.d.ts +1 -1
- package/lib/taon-marketing-popup/taon-marketing-popup-backoffice/index.js +2 -2
- package/lib/taon-marketing-promo/taon-marketing-promo-backoffice/index.d.ts +1 -1
- package/lib/taon-marketing-promo/taon-marketing-promo-backoffice/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/taon-marketing-ab/taon-marketing-ab-backoffice/index.d.ts +1 -1
- package/lib-esm/lib/taon-marketing-ab/taon-marketing-ab-backoffice/index.js +1 -1
- package/lib-esm/lib/taon-marketing-backoffice/index.d.ts +1 -1
- package/lib-esm/lib/taon-marketing-backoffice/index.js +1 -1
- package/lib-esm/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/index.d.ts +1 -1
- package/lib-esm/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/index.js +1 -1
- package/lib-esm/lib/taon-marketing-popup/taon-marketing-popup-backoffice/index.d.ts +1 -1
- package/lib-esm/lib/taon-marketing-popup/taon-marketing-popup-backoffice/index.js +1 -1
- package/lib-esm/lib/taon-marketing-promo/taon-marketing-promo-backoffice/index.d.ts +1 -1
- package/lib-esm/lib/taon-marketing-promo/taon-marketing-promo-backoffice/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/package.json +1 -1
- package/lib-prod/taon-marketing-ab/taon-marketing-ab-backoffice/index.d.ts +1 -1
- package/lib-prod/taon-marketing-ab/taon-marketing-ab-backoffice/index.js +1 -1
- package/lib-prod/taon-marketing-backoffice/index.d.ts +1 -1
- package/lib-prod/taon-marketing-backoffice/index.js +1 -1
- package/lib-prod/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/index.d.ts +1 -1
- package/lib-prod/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/index.js +1 -1
- package/lib-prod/taon-marketing-popup/taon-marketing-popup-backoffice/index.d.ts +1 -1
- package/lib-prod/taon-marketing-popup/taon-marketing-popup-backoffice/index.js +1 -1
- package/lib-prod/taon-marketing-promo/taon-marketing-promo-backoffice/index.d.ts +1 -1
- package/lib-prod/taon-marketing-promo/taon-marketing-promo-backoffice/index.js +1 -1
- package/package.json +1 -1
- package/ts-source/browser-code/build-info._auto-generated_.ts +1 -1
- package/ts-source/browser-code-prod/build-info._auto-generated_.ts +1 -1
- package/ts-source/websql-code/build-info._auto-generated_.ts +1 -1
- package/ts-source/websql-code-prod/build-info._auto-generated_.ts +1 -1
- package/websql/fesm2022/{marketing-websql-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs → marketing-websql-my-organization-proj.ts.en-US.i18n.data-CKKBmdFB.mjs} +1 -1
- package/websql/fesm2022/{marketing-websql-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs.map → marketing-websql-my-organization-proj.ts.en-US.i18n.data-CKKBmdFB.mjs.map} +1 -1
- package/websql/fesm2022/{marketing-websql-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs → marketing-websql-my-organization-proj.ts.pl-PL.i18n.data-0eb6NFOB.mjs} +1 -1
- package/websql/fesm2022/{marketing-websql-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs.map → marketing-websql-my-organization-proj.ts.pl-PL.i18n.data-0eb6NFOB.mjs.map} +1 -1
- package/websql/fesm2022/{marketing-websql-taon-marketing-ab.constants.ts.en-US.i18n.data-CzjxluTr.mjs → marketing-websql-taon-marketing-ab.constants.ts.en-US.i18n.data-oBl2Y5pS.mjs} +1 -1
- package/websql/fesm2022/{marketing-websql-taon-marketing-ab.constants.ts.en-US.i18n.data-CzjxluTr.mjs.map → marketing-websql-taon-marketing-ab.constants.ts.en-US.i18n.data-oBl2Y5pS.mjs.map} +1 -1
- package/websql/fesm2022/{marketing-websql-taon-marketing-ab.constants.ts.pl-PL.i18n.data-DHmpDGVj.mjs → marketing-websql-taon-marketing-ab.constants.ts.pl-PL.i18n.data-CMq-xqnr.mjs} +1 -1
- package/websql/fesm2022/{marketing-websql-taon-marketing-ab.constants.ts.pl-PL.i18n.data-DHmpDGVj.mjs.map → marketing-websql-taon-marketing-ab.constants.ts.pl-PL.i18n.data-CMq-xqnr.mjs.map} +1 -1
- package/websql/fesm2022/{marketing-websql-taon-marketing-newsletter.constants.ts.en-US.i18n.data-BL2hMzTu.mjs → marketing-websql-taon-marketing-newsletter.constants.ts.en-US.i18n.data-ux4k3ZBW.mjs} +1 -1
- package/websql/fesm2022/{marketing-websql-taon-marketing-newsletter.constants.ts.en-US.i18n.data-BL2hMzTu.mjs.map → marketing-websql-taon-marketing-newsletter.constants.ts.en-US.i18n.data-ux4k3ZBW.mjs.map} +1 -1
- package/websql/fesm2022/{marketing-websql-taon-marketing-newsletter.constants.ts.pl-PL.i18n.data-CYTCrxlW.mjs → marketing-websql-taon-marketing-newsletter.constants.ts.pl-PL.i18n.data-DkqtTcox.mjs} +1 -1
- package/websql/fesm2022/{marketing-websql-taon-marketing-newsletter.constants.ts.pl-PL.i18n.data-CYTCrxlW.mjs.map → marketing-websql-taon-marketing-newsletter.constants.ts.pl-PL.i18n.data-DkqtTcox.mjs.map} +1 -1
- package/websql/fesm2022/{marketing-websql-taon-marketing-promo.constants.ts.en-US.i18n.data-ByMRpbAX.mjs → marketing-websql-taon-marketing-promo.constants.ts.en-US.i18n.data-D4BzCRgX.mjs} +1 -1
- package/websql/fesm2022/{marketing-websql-taon-marketing-promo.constants.ts.en-US.i18n.data-ByMRpbAX.mjs.map → marketing-websql-taon-marketing-promo.constants.ts.en-US.i18n.data-D4BzCRgX.mjs.map} +1 -1
- package/websql/fesm2022/{marketing-websql-taon-marketing-promo.constants.ts.pl-PL.i18n.data-BMqDY9X3.mjs → marketing-websql-taon-marketing-promo.constants.ts.pl-PL.i18n.data-BqB_dYa-.mjs} +1 -1
- package/websql/fesm2022/{marketing-websql-taon-marketing-promo.constants.ts.pl-PL.i18n.data-BMqDY9X3.mjs.map → marketing-websql-taon-marketing-promo.constants.ts.pl-PL.i18n.data-BqB_dYa-.mjs.map} +1 -1
- package/websql/fesm2022/marketing-websql.mjs +5 -5
- package/websql/fesm2022/marketing-websql.mjs.map +1 -1
- package/websql/package.json +1 -1
- package/websql/types/marketing-websql.d.ts +1 -1
- package/websql-prod/fesm2022/{marketing-websql-prod-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs → marketing-websql-prod-my-organization-proj.ts.en-US.i18n.data-BxgctrHk.mjs} +1 -1
- package/websql-prod/fesm2022/{marketing-websql-prod-my-organization-proj.ts.en-US.i18n.data-CoSik70Y.mjs.map → marketing-websql-prod-my-organization-proj.ts.en-US.i18n.data-BxgctrHk.mjs.map} +1 -1
- package/websql-prod/fesm2022/{marketing-websql-prod-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs → marketing-websql-prod-my-organization-proj.ts.pl-PL.i18n.data-COfeV4vO.mjs} +1 -1
- package/websql-prod/fesm2022/{marketing-websql-prod-my-organization-proj.ts.pl-PL.i18n.data-BZPsT3Zk.mjs.map → marketing-websql-prod-my-organization-proj.ts.pl-PL.i18n.data-COfeV4vO.mjs.map} +1 -1
- package/websql-prod/fesm2022/{marketing-websql-prod-taon-marketing-ab.constants.ts.en-US.i18n.data-CzjxluTr.mjs → marketing-websql-prod-taon-marketing-ab.constants.ts.en-US.i18n.data-DDskPBKb.mjs} +1 -1
- package/websql-prod/fesm2022/{marketing-websql-prod-taon-marketing-ab.constants.ts.en-US.i18n.data-CzjxluTr.mjs.map → marketing-websql-prod-taon-marketing-ab.constants.ts.en-US.i18n.data-DDskPBKb.mjs.map} +1 -1
- package/websql-prod/fesm2022/{marketing-websql-prod-taon-marketing-ab.constants.ts.pl-PL.i18n.data-DHmpDGVj.mjs → marketing-websql-prod-taon-marketing-ab.constants.ts.pl-PL.i18n.data-BEm7I_a2.mjs} +1 -1
- package/websql-prod/fesm2022/{marketing-websql-prod-taon-marketing-ab.constants.ts.pl-PL.i18n.data-DHmpDGVj.mjs.map → marketing-websql-prod-taon-marketing-ab.constants.ts.pl-PL.i18n.data-BEm7I_a2.mjs.map} +1 -1
- package/websql-prod/fesm2022/{marketing-websql-prod-taon-marketing-newsletter.constants.ts.en-US.i18n.data-BL2hMzTu.mjs → marketing-websql-prod-taon-marketing-newsletter.constants.ts.en-US.i18n.data-q8XhaPC0.mjs} +1 -1
- package/websql-prod/fesm2022/{marketing-websql-prod-taon-marketing-newsletter.constants.ts.en-US.i18n.data-BL2hMzTu.mjs.map → marketing-websql-prod-taon-marketing-newsletter.constants.ts.en-US.i18n.data-q8XhaPC0.mjs.map} +1 -1
- package/websql-prod/fesm2022/{marketing-websql-prod-taon-marketing-newsletter.constants.ts.pl-PL.i18n.data-CYTCrxlW.mjs → marketing-websql-prod-taon-marketing-newsletter.constants.ts.pl-PL.i18n.data-C-YZnFrD.mjs} +1 -1
- package/websql-prod/fesm2022/{marketing-websql-prod-taon-marketing-newsletter.constants.ts.pl-PL.i18n.data-CYTCrxlW.mjs.map → marketing-websql-prod-taon-marketing-newsletter.constants.ts.pl-PL.i18n.data-C-YZnFrD.mjs.map} +1 -1
- package/websql-prod/fesm2022/{marketing-websql-prod-taon-marketing-promo.constants.ts.en-US.i18n.data-ByMRpbAX.mjs → marketing-websql-prod-taon-marketing-promo.constants.ts.en-US.i18n.data-kMr18w_L.mjs} +1 -1
- package/websql-prod/fesm2022/{marketing-websql-prod-taon-marketing-promo.constants.ts.en-US.i18n.data-ByMRpbAX.mjs.map → marketing-websql-prod-taon-marketing-promo.constants.ts.en-US.i18n.data-kMr18w_L.mjs.map} +1 -1
- package/websql-prod/fesm2022/{marketing-websql-prod-taon-marketing-promo.constants.ts.pl-PL.i18n.data-BMqDY9X3.mjs → marketing-websql-prod-taon-marketing-promo.constants.ts.pl-PL.i18n.data-C4wT5QQy.mjs} +1 -1
- package/websql-prod/fesm2022/{marketing-websql-prod-taon-marketing-promo.constants.ts.pl-PL.i18n.data-BMqDY9X3.mjs.map → marketing-websql-prod-taon-marketing-promo.constants.ts.pl-PL.i18n.data-C4wT5QQy.mjs.map} +1 -1
- package/websql-prod/fesm2022/marketing-websql-prod.mjs +5 -5
- package/websql-prod/fesm2022/marketing-websql-prod.mjs.map +1 -1
- package/websql-prod/package.json +1 -1
- package/websql-prod/types/marketing-websql-prod.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketing-websql-prod.mjs","sources":["../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/migrations/1791132517216_initial.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.entity.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.utils.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.validation.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.repository.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/migrations/1791659700000_popup_configuration.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/migrations/migrations_index._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/migrations/index.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/my-organization-proj.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/start-cli.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.constants.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.entity.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.repository.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.controller.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.provider.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.constants.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.entity.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.repository.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.controller.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.provider.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.controller.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.provider.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.constants.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.entity.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.repository.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.controller.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.provider.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.api.service.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.config.service.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.kv.repository.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.middleware.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.utils.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.validators.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-backoffice/taon-marketing-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-backoffice/taon-marketing-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-backoffice/taon-marketing-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-backoffice/taon-marketing-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.api.service.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.config.service.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.kv.repository.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.middleware.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.utils.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.validators.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-content.component.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-content.component.html","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.api.service.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.config.service.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.constants.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.kv.repository.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.middleware.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.validators.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popups.component.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.api.service.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.config.service.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.kv.repository.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.middleware.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.utils.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.validators.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-editor.component.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-editor.component.html","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/index.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/marketing-websql-prod.ts"],"sourcesContent":["// import {\n// MyAppAuthorization,\n// MyAppGroup,\n// MyAppPermission,\n// MyAppRole,\n// } from '@taon-dev/cms/src';\n// import { TaonAuthContextRepository } from '@taon-dev/session/src';\nimport { TaonBaseMigration, TaonMigration, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { QueryRunner } from 'taon-typeorm/websql-prod';\n\n//#region Migration class for context \"MarketingContext\"\n@TaonMigration({\n className: 'MarketingContext_1791132517216_initial',\n})\nexport class MarketingContext_1791132517216_initial extends TaonBaseMigration {\n // private taonAuthContextRepository = this.injectCustomRepo(\n // TaonAuthContextRepository<MyAppAuthorization>,\n // );\n\n //#region up\n async up(queryRunner: QueryRunner): Promise<any> {\n // await queryRunner.startTransaction();\n // try {\n // await this.taonAuthContextRepository.persistTree({\n // enums: {\n // groups: MyAppGroup,\n // roles: MyAppRole,\n // permissions: MyAppPermission,\n // },\n // tree: {\n // groupAndRoles: {\n // [MyAppGroup.Administrator]: '*',\n // [MyAppGroup.Customers]: [MyAppRole.BlogReader],\n // },\n // rolesAndPermissions: {\n // [MyAppRole.Customer]: [\n // MyAppPermission.AccessCourseP2,\n // MyAppPermission.AccessCourseP2,\n // ],\n // [MyAppRole.CustomerPremium]: '*',\n // },\n // },\n // });\n\n // await queryRunner.commitTransaction();\n // } catch (error) {\n // console.error('Error in migration:', error);\n // await queryRunner.rollbackTransaction();\n // } finally {\n // await queryRunner.release();\n // }\n }\n //#endregion\n\n //#region down\n async down(queryRunner: QueryRunner): Promise<any> {\n // await queryRunner.startTransaction();\n // try {\n // await this.taonAuthContextRepository.clearRolesGroupPermissions();\n\n // await queryRunner.commitTransaction();\n // } catch (error) {\n // console.error('Error in migration:', error);\n // await queryRunner.rollbackTransaction();\n // } finally {\n // await queryRunner.release();\n // }\n }\n //#endregion\n}\n//#endregion","export enum TaonMarketingPopupType {\n Dialog = 'dialog',\n Bottom = 'bottom',\n}\n\nexport interface TaonMarketingPopupFields {\n name: string;\n enabled: boolean;\n type: TaonMarketingPopupType;\n title: string | null;\n content: string | null;\n imageKey: string | null;\n buttonText: string | null;\n buttonUrl: string | null;\n delaySeconds: number;\n displayOnPaths: string[] | null;\n excludePaths: string[] | null;\n startAt: Date | string | null;\n endAt: Date | string | null;\n maxDisplaysPerVisitor: number | null;\n oncePerSession: boolean;\n}\n\nexport interface TaonMarketingPopupEvent {\n name: 'popup-impression' | 'popup-click' | 'popup-close';\n category: 'marketing';\n path: string;\n data: { popupId: number; type: TaonMarketingPopupType };\n createdAt: Date;\n}\n\nexport type TaonMarketingPopupImageResolver = (key: string) => string;","//#region imports\nimport {\n Column, CreateDateColumn, UpdateDateColumn,\n TaonBaseAbstractEntity, TaonEntity,\n} from 'taon/websql-prod';\nimport { TaonMarketingPopupType } from './taon-marketing-popup.models';\n//#endregion\n\n@TaonEntity<TaonMarketingPopupEntity>({\n className: 'TaonMarketingPopupEntity',\n createTable: true,\n})\nexport class TaonMarketingPopupEntity extends TaonBaseAbstractEntity<TaonMarketingPopupEntity> {\n //#region @websql\n @Column({ type: 'varchar', length: 200, default: '' })\n //#endregion\n name: string = '';\n\n //#region @websql\n @Column({ type: 'boolean', default: false })\n //#endregion\n enabled: boolean = false;\n\n //#region @websql\n @Column({ type: 'varchar', default: TaonMarketingPopupType.Dialog })\n //#endregion\n type: TaonMarketingPopupType = TaonMarketingPopupType.Dialog;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n title: string | null = null;\n\n //#region @websql\n @Column({ type: 'text', nullable: true })\n //#endregion\n content: string | null = null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n imageKey: string | null = null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n buttonText: string | null = null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n buttonUrl: string | null = null;\n\n //#region @websql\n @Column({ type: 'float', default: 0 })\n //#endregion\n delaySeconds: number = 0;\n\n //#region @websql\n @Column({ type: 'simple-json', nullable: true })\n //#endregion\n displayOnPaths: string[] | null = null;\n\n //#region @websql\n @Column({ type: 'simple-json', nullable: true })\n //#endregion\n excludePaths: string[] | null = null;\n\n //#region @websql\n @Column({ type: 'datetime', nullable: true })\n //#endregion\n startAt: Date | null = null;\n\n //#region @websql\n @Column({ type: 'datetime', nullable: true })\n //#endregion\n endAt: Date | null = null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n maxDisplaysPerVisitor: number | null = null;\n\n //#region @websql\n @Column({ type: 'boolean', default: true })\n //#endregion\n oncePerSession: boolean = true;\n\n //#region @websql\n @CreateDateColumn({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n\n //#region @websql\n @UpdateDateColumn({ type: 'datetime' })\n //#endregion\n updatedAt: Date;\n}","import type { TaonMarketingPopupFields } from './taon-marketing-popup.models';\n\n//namespace TaonMarketingPopupUtils\n\n export function TaonMarketingPopupUtils__NS__isActive(\n popup: TaonMarketingPopupFields,\n now = new Date(),\n ): boolean {\n return popup.enabled &&\n (!popup.startAt || new Date(popup.startAt).getTime() <= now.getTime()) &&\n (!popup.endAt || new Date(popup.endAt).getTime() >= now.getTime());\n }\n\n export function TaonMarketingPopupUtils__NS__matchesPath(pattern: string, path: string): boolean {\n const pathname = path.split(/[?#]/, 1)[0];\n return pattern.endsWith('*')\n ? pathname.startsWith(pattern.slice(0, -1))\n : pathname === pattern;\n }\n\n export function TaonMarketingPopupUtils__NS__isPathPattern(value: string): boolean {\n return /^\\/[^?#\\s*]*\\*?$/.test(value);\n }\n\n export function TaonMarketingPopupUtils__NS__allowsPath(popup: TaonMarketingPopupFields, path: string): boolean {\n return (!popup.displayOnPaths?.length ||\n popup.displayOnPaths.some(pattern => TaonMarketingPopupUtils__NS__matchesPath(pattern, path))) &&\n !popup.excludePaths?.some(pattern => TaonMarketingPopupUtils__NS__matchesPath(pattern, path));\n }\n\n export function TaonMarketingPopupUtils__NS__isSafeUrl(value: string): boolean {\n return !/[\\s\\\\\\u0000-\\u001f\\u007f]/.test(value) &&\n (/^\\/(?!\\/)/.test(value) || /^https?:\\/\\/[^/]+/i.test(value));\n }\n\n//end of namespace TaonMarketingPopupUtils\n","import { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonMarketingPopupType } from './taon-marketing-popup.models';\nimport type { TaonMarketingPopupFields } from './taon-marketing-popup.models';\nimport { TaonMarketingPopupUtils__NS__allowsPath, TaonMarketingPopupUtils__NS__isActive, TaonMarketingPopupUtils__NS__isPathPattern, TaonMarketingPopupUtils__NS__isSafeUrl, TaonMarketingPopupUtils__NS__matchesPath } from './taon-marketing-popup.utils';\n\nexport function popupError(message: string, status = 400): never {\n Taon__NS__error({ message, status });\n throw new Error(message);\n}\n\nexport function requirePopupId(id: number): void {\n if (!Number.isSafeInteger(id) || id <= 0) {\n popupError('Popup ID must be a positive integer.');\n }\n}\n\nexport function validatePopup(input: TaonMarketingPopupFields): void {\n if (!input || typeof input !== 'object' || Array.isArray(input)) {\n popupError('Popup must be an object.');\n }\n if (typeof input.name !== 'string' || !input.name.trim() || input.name.length > 200) {\n popupError('Name is required and must not exceed 200 characters.');\n }\n if (!Object.values(TaonMarketingPopupType).includes(input.type)) {\n popupError('Popup type must be dialog or bottom.');\n }\n if (typeof input.enabled !== 'boolean' || typeof input.oncePerSession !== 'boolean') {\n popupError('Enabled and oncePerSession must be booleans.');\n }\n if (!Number.isFinite(input.delaySeconds) || input.delaySeconds < 0 ||\n input.delaySeconds > 2147483) {\n popupError('Delay must be between 0 and 2147483 seconds.');\n }\n if (input.maxDisplaysPerVisitor !== null &&\n (!Number.isSafeInteger(input.maxDisplaysPerVisitor) || input.maxDisplaysPerVisitor < 1)) {\n popupError('Maximum displays must be a positive integer or null.');\n }\n for (const field of ['title', 'content', 'imageKey', 'buttonText', 'buttonUrl'] as const) {\n if (input[field] !== null && typeof input[field] !== 'string') {\n popupError(`${field} must be a string or null.`);\n }\n }\n if (input.buttonUrl && !TaonMarketingPopupUtils__NS__isSafeUrl(input.buttonUrl)) {\n popupError('Button URL must be an HTTP(S) URL or a root-relative path.');\n }\n for (const field of ['displayOnPaths', 'excludePaths'] as const) {\n const paths = input[field];\n if (paths !== null && (!Array.isArray(paths) || paths.some(path =>\n typeof path !== 'string' || !TaonMarketingPopupUtils__NS__isPathPattern(path)))) {\n popupError(`${field} must contain paths beginning with / and an optional trailing *.`);\n }\n }\n for (const field of ['startAt', 'endAt'] as const) {\n const date = input[field];\n if (date !== null && (!(date instanceof Date || typeof date === 'string') ||\n !Number.isFinite(new Date(date).getTime()))) {\n popupError(`${field} must be a valid date or null.`);\n }\n }\n if (input.startAt && input.endAt &&\n new Date(input.startAt).getTime() > new Date(input.endAt).getTime()) {\n popupError('End date must not precede start date.');\n }\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\nimport type { TaonMarketingPopupFields } from './taon-marketing-popup.models';\nimport { TaonMarketingPopupUtils__NS__allowsPath, TaonMarketingPopupUtils__NS__isActive, TaonMarketingPopupUtils__NS__isPathPattern, TaonMarketingPopupUtils__NS__isSafeUrl, TaonMarketingPopupUtils__NS__matchesPath } from './taon-marketing-popup.utils';\nimport { popupError, requirePopupId, validatePopup } from './taon-marketing-popup.validation';\n//#endregion\n\n@TaonRepository({\n className: 'TaonMarketingPopupRepository',\n})\nexport class TaonMarketingPopupRepository extends TaonBaseRepository<TaonMarketingPopupEntity> {\n entityClassResolveFn: () => typeof TaonMarketingPopupEntity = () => TaonMarketingPopupEntity;\n\n async activePopups(): Promise<TaonMarketingPopupEntity[]> {\n //#region @websqlFunc\n const popups = await this.find({ where: { enabled: true }, order: { id: 'ASC' } });\n const now = new Date();\n return popups.filter(popup => TaonMarketingPopupUtils__NS__isActive(popup, now));\n //#endregion\n }\n\n async savePopup(input: TaonMarketingPopupFields, id?: number): Promise<TaonMarketingPopupEntity> {\n //#region @websqlFunc\n validatePopup(input);\n if (id !== undefined) {\n requirePopupId(id);\n }\n const popup = id === undefined\n ? this.repo.create()\n : await this.repo.findOneBy({ id });\n if (!popup) {\n popupError('Popup was not found.', 404);\n }\n Object.assign(popup, {\n name: input.name.trim(),\n enabled: input.enabled,\n type: input.type,\n title: input.title,\n content: input.content,\n imageKey: input.imageKey,\n buttonText: input.buttonText,\n buttonUrl: input.buttonUrl,\n delaySeconds: input.delaySeconds,\n displayOnPaths: input.displayOnPaths,\n excludePaths: input.excludePaths,\n startAt: input.startAt === null ? null : new Date(input.startAt),\n endAt: input.endAt === null ? null : new Date(input.endAt),\n maxDisplaysPerVisitor: input.maxDisplaysPerVisitor,\n oncePerSession: input.oncePerSession,\n });\n return this.repo.save(popup);\n //#endregion\n }\n\n async setEnabled(id: number, enabled: boolean): Promise<TaonMarketingPopupEntity> {\n //#region @websqlFunc\n requirePopupId(id);\n if (typeof enabled !== 'boolean') {\n popupError('Enabled must be a boolean.');\n }\n const popup = await this.repo.findOneBy({ id });\n if (!popup) {\n popupError('Popup was not found.', 404);\n }\n popup.enabled = enabled;\n return this.repo.save(popup);\n //#endregion\n }\n\n async deletePopup(id: number): Promise<void> {\n //#region @websqlFunc\n requirePopupId(id);\n const result = await this.repo.delete(id);\n if (!result.affected) {\n popupError('Popup was not found.', 404);\n }\n //#endregion\n }\n}","import { TaonBaseMigration, TaonMigration } from 'taon/websql-prod';\nimport { Table, TableColumn } from 'taon-typeorm/websql-prod';\nimport type { QueryRunner } from 'taon-typeorm/websql-prod';\n\nimport { TaonMarketingPopupRepository } from '../taon-marketing-popup/taon-marketing-popup.repository';\n\n@TaonMigration({\n className: 'MarketingContext_1791659700000_popup_configuration',\n})\nexport class MarketingContext_1791659700000_popup_configuration extends TaonBaseMigration {\n private readonly popups = this.injectCustomRepo(TaonMarketingPopupRepository);\n\n async up(queryRunner: QueryRunner): Promise<void> {\n // TODO What is this ?\n const schema = Table.create(this.popups.metadata, queryRunner.connection.driver);\n await queryRunner.startTransaction();\n try {\n let table = await queryRunner.getTable(schema.name);\n if (!table) {\n await queryRunner.createTable(schema);\n } else {\n const existingColumns = table.columns;\n const missing = schema.columns.filter(column =>\n !existingColumns.some(existing => existing.name === column.name),\n );\n if (missing.length) {\n await queryRunner.addColumns(table, missing);\n }\n }\n table = await queryRunner.getTable(schema.name);\n const escape = (name: string) => queryRunner.connection.driver.escape(name);\n if (table?.columns.some(column => column.name === 'description')) {\n await queryRunner.query(\n `UPDATE ${escape(schema.name)} SET ${escape('name')} = ${escape('description')}\n WHERE ${escape('name')} = '' AND ${escape('description')} <> ''`,\n );\n }\n await queryRunner.query(\n `UPDATE ${escape(schema.name)} SET ${escape('name')} = 'Popup' WHERE ${escape('name')} = ''`,\n );\n await queryRunner.commitTransaction();\n } catch (error: unknown) {\n console.error('[marketing migration] Unable to configure popup schema', error);\n await queryRunner.rollbackTransaction();\n throw error;\n } finally {\n await queryRunner.release();\n }\n }\n\n async down(queryRunner: QueryRunner): Promise<void> {\n const schema = Table.create(this.popups.metadata, queryRunner.connection.driver);\n await queryRunner.startTransaction();\n try {\n const table = await queryRunner.getTable(schema.name);\n if (!table) {\n throw new Error('Popup table is missing; the schema migration cannot be reverted.');\n }\n if (!table.columns.some(column => column.name === 'description')) {\n await queryRunner.addColumn(table, new TableColumn({\n name: 'description',\n type: 'varchar',\n length: '200',\n default: \"''\",\n }));\n }\n const escape = (name: string) => queryRunner.connection.driver.escape(name);\n await queryRunner.query(\n `UPDATE ${escape(schema.name)} SET ${escape('description')} = ${escape('name')}`,\n );\n const popupColumns = schema.columns.filter(column =>\n !['id', 'version'].includes(column.name) &&\n table.columns.some(existing => existing.name === column.name),\n );\n await queryRunner.dropColumns(schema.name, popupColumns);\n await queryRunner.commitTransaction();\n } catch (error: unknown) {\n console.error('[marketing migration] Unable to revert popup schema', error);\n await queryRunner.rollbackTransaction();\n throw error;\n } finally {\n await queryRunner.release();\n }\n }\n}\n","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { MarketingContext_1791132517216_initial } from './1791132517216_initial';\nimport { MarketingContext_1791659700000_popup_configuration } from './1791659700000_popup_configuration';\n// THIS FILE IS GENERATED - DO NOT MODIFY\nexport const MIGRATIONS_CLASSES_FOR_MarketingContext = {\n /* 04-10-2026 18:48:37 */ MarketingContext_1791132517216_initial,\n /* 10-10-2026 21:15:00 */ MarketingContext_1791659700000_popup_configuration,\n};\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","import { MIGRATIONS_CLASSES_FOR_MarketingContext as generatedMigrations } from './migrations_index._auto-generated_';\n\nexport * from './migrations_index._auto-generated_';\nexport * from './1791659700000_popup_configuration';\n\nexport const MIGRATIONS_CLASSES_FOR_MarketingContext = {\n ...generatedMigrations,\n};\n","// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.marketing';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = '@taon-dev/marketing';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.14';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","import { Translation } from \"@taon-dev/i18n/websql-prod\";\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from \"taon/websql-prod\";\n\nconst t = Translation.for('src/lib/my-organization-proj.ts', {\"src/lib/my-organization-proj.ts\":{\"en-US\":async () => (await import('./i18n/my-organization-proj.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/my-organization-proj.ts.pl-PL.i18n.data')).default}} as any);\n\nexport function myOrgProj() {\n t.gettext('My Translated Company Name!')\n}","//#region tnp-helpers cli template\nimport { UtilsJson__NS__AttrJsoncProp, UtilsJson__NS__getAtrributiesFromJsonWithComments, UtilsJson__NS__getAttributiesFromComment, UtilsJson__NS__getValue, UtilsJson__NS__readJson, UtilsJson__NS__readJsonWithComments, UtilsJson__NS__setValue, UtilsJson__NS__validateLodashPath } from 'tnp-core/websql-prod';\nimport { BaseCommandLineFeature, Helpers__NS___fixCommand, Helpers__NS__ActionInstance, Helpers__NS__actionStarted, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsVerboseModeOrTnp, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logTaskDone, Helpers__NS__logTaskStarted, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-helpers/websql-prod';\n/* */ \n//#endregion\n\n//#region CLI / global scope\n/**\n * This class is for handling global arguments. *\n * Cli engine will parse: hello:world:from:global:arg to helloWorldFromGlobalArg\n * (lower case, camel case) .. so you don't need to worry about misspelling\n * arguments\n */\nclass $Global extends BaseCommandLineFeature<{}> {\n /**\n * When you execute cli without arguments:`$ cli`\n */\n public _() {\n console.log(`Hello world from cli`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli hello:world:from:global:arg`\n * (or `$ cli helloWorldFromGlobalArg`)\n */\n helloWorldFromGlobalArg() {\n console.log('hello world from global argument!');\n this._exit(0);\n }\n}\n//#endregion\n\n//#region CLI / Version Scope\n/**\n *\n */\nclass $Version extends BaseCommandLineFeature<{\n anyCLIparamsHere: string;\n}> {\n /**\n * When you execute: `$ cli version`\n */\n public _() {\n console.log(`Hello world from version argument`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli version:getFromPackageJson`\n */\n public getFromPackageJson() {\n const ver = UtilsJson__NS__getValue(\n this.project.pathFor('package.json'),\n 'version',\n {\n defaultValue: '<not defined>',\n },\n );\n console.log(`Version from packageJson ${ver}`);\n this._exit(0);\n }\n}\n//#endregion\n\n/**\n *\n * @param argsv process.argsv\n * @param filename needed if you want ipc communicaiton\n */\nexport async function startCli(\n argsv: string[],\n filename: string,\n): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}\n\nexport default startCli;","import type { TaonMarketingAbEntity } from './taon-marketing-ab.entity';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nconst t = Translation.for('src/lib/taon-marketing-ab/taon-marketing-ab.constants.ts', {\"src/lib/taon-marketing-ab/taon-marketing-ab.constants.ts\":{\"en-US\":async () => (await import('./i18n/taon-marketing-ab.constants.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-marketing-ab.constants.ts.pl-PL.i18n.data')).default}} as any);\n\nexport const TaonMarketingAbDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonMarketingAbEntity>;\n\nexport enum TaonMarketingAbErrors {\n INVALID_PASSWORD_EXAMPLE_ERROR = 'INVALID_PASSWORD_EXAMPLE_ERROR',\n}\n\nexport const TaonMarketingAbTranslationErorsMap = new Map([\n [TaonMarketingAbErrors.INVALID_PASSWORD_EXAMPLE_ERROR, t.gettext('Invalid Password')],\n]);","//#region imports\nimport { CustomColumn, Column, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonMarketingAbDefaultsValues } from './taon-marketing-ab.constants';\n//#endregion\n\n@TaonEntity<TaonMarketingAbEntity>({\n className: 'TaonMarketingAbEntity',\n createTable: true,\n // defaultModelMapping: () => ({\n // '': TaonMarketingAbEntity,\n // nestedObjectField: ClassField,\n // nestedArrField: [ClassObjArrField],\n // }),\n})\nexport class TaonMarketingAbEntity extends TaonBaseAbstractEntity<TaonMarketingAbEntity> {\n //#region @websql\n @CustomColumn({\n type: 'varchar',\n length: 100,\n default: TaonMarketingAbDefaultsValues.description,\n })\n //#endregion\n description?: string;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\n\nimport { TaonMarketingAbEntity } from './taon-marketing-ab.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonMarketingAbRepository',\n})\nexport class TaonMarketingAbRepository extends TaonBaseRepository<TaonMarketingAbEntity> {\n entityClassResolveFn: () => typeof TaonMarketingAbEntity = () => TaonMarketingAbEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonMarketingAbEntity } from './taon-marketing-ab.entity';\nimport { TaonMarketingAbRepository } from './taon-marketing-ab.repository';\n//#endregion\n\n@TaonController<TaonMarketingAbController>({\n className: 'TaonMarketingAbController',\n // allowedMethods: []\n})\nexport class TaonMarketingAbController extends TaonBaseCrudController<\n TaonMarketingAbEntity,\n {\n /* file upload query params type */\n },\n TaonMarketingAbController\n> {\n entityClassResolveFn: () => typeof TaonMarketingAbEntity = () => TaonMarketingAbEntity;\n\n private readonly taonMarketingAbRepository = this.injectCustomRepo(TaonMarketingAbRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonMarketingAbRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers__NS__getName(TaonMarketingAbController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}","//#region imports\nimport { TaonBaseClass, TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\nexport class TaonTaonMarketingAbConfig extends TaonBaseClass {\n declare name: string;\n}\n\n@TaonProvider({\n className: 'TaonMarketingAbProvider',\n})\nexport class TaonMarketingAbProvider extends TaonBaseProvider {\n enabledTaonMarketingAbOption: boolean = true;\n config = new TaonTaonMarketingAbConfig();\n clone() {\n return {\n enabledTaonMarketingAbOption: this.enabledTaonMarketingAbOption,\n config: this.config.clone(),\n };\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonMarketingAbEntity } from './taon-marketing-ab.entity';\nimport { TaonMarketingAbController } from './taon-marketing-ab.controller';\nimport { TaonMarketingAbRepository } from './taon-marketing-ab.repository';\n// import { TaonMarketingAbKvRepository } from './taon-marketing-ab.kv.repository';\nimport { TaonMarketingAbProvider } from './taon-marketing-ab.provider';\n// import { TaonMarketingAbMiddleware } from './taon-marketing-ab.middleware';\n// import { TaonMarketingAbSubscriber } from './taon-marketing-ab.subscriber';\n//#endregion\n\nexport const TaonMarketingAbAbstractContext = createContext(() => ({\n contextName: 'TaonMarketingAbAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonMarketingAbEntity },\n controllers: { TaonMarketingAbController },\n repositories: {\n // TaonMarketingAbKvRepository\n TaonMarketingAbRepository,\n },\n providers: { TaonMarketingAbProvider },\n // middlewares: { TaonMarketingAbMiddleware },\n // subscribers: { TaonMarketingAbSubscriber },\n}));","import type { TaonMarketingNewsletterEntity } from './taon-marketing-newsletter.entity';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nconst t = Translation.for('src/lib/taon-marketing-newsletter/taon-marketing-newsletter.constants.ts', {\"src/lib/taon-marketing-newsletter/taon-marketing-newsletter.constants.ts\":{\"en-US\":async () => (await import('./i18n/taon-marketing-newsletter.constants.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-marketing-newsletter.constants.ts.pl-PL.i18n.data')).default}} as any);\n\nexport const TaonMarketingNewsletterDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonMarketingNewsletterEntity>;\n\nexport enum TaonMarketingNewsletterErrors {\n INVALID_PASSWORD_EXAMPLE_ERROR = 'INVALID_PASSWORD_EXAMPLE_ERROR',\n}\n\nexport const TaonMarketingNewsletterTranslationErorsMap = new Map([\n [TaonMarketingNewsletterErrors.INVALID_PASSWORD_EXAMPLE_ERROR, t.gettext('Invalid Password')],\n]);","//#region imports\nimport { CustomColumn, Column, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonMarketingNewsletterDefaultsValues } from './taon-marketing-newsletter.constants';\n//#endregion\n\n@TaonEntity<TaonMarketingNewsletterEntity>({\n className: 'TaonMarketingNewsletterEntity',\n createTable: true,\n // defaultModelMapping: () => ({\n // '': TaonMarketingNewsletterEntity,\n // nestedObjectField: ClassField,\n // nestedArrField: [ClassObjArrField],\n // }),\n})\nexport class TaonMarketingNewsletterEntity extends TaonBaseAbstractEntity<TaonMarketingNewsletterEntity> {\n //#region @websql\n @CustomColumn({\n type: 'varchar',\n length: 100,\n default: TaonMarketingNewsletterDefaultsValues.description,\n })\n //#endregion\n description?: string;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\n\nimport { TaonMarketingNewsletterEntity } from './taon-marketing-newsletter.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonMarketingNewsletterRepository',\n})\nexport class TaonMarketingNewsletterRepository extends TaonBaseRepository<TaonMarketingNewsletterEntity> {\n entityClassResolveFn: () => typeof TaonMarketingNewsletterEntity = () => TaonMarketingNewsletterEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonMarketingNewsletterEntity } from './taon-marketing-newsletter.entity';\nimport { TaonMarketingNewsletterRepository } from './taon-marketing-newsletter.repository';\n//#endregion\n\n@TaonController<TaonMarketingNewsletterController>({\n className: 'TaonMarketingNewsletterController',\n // allowedMethods: []\n})\nexport class TaonMarketingNewsletterController extends TaonBaseCrudController<\n TaonMarketingNewsletterEntity,\n {\n /* file upload query params type */\n },\n TaonMarketingNewsletterController\n> {\n entityClassResolveFn: () => typeof TaonMarketingNewsletterEntity = () => TaonMarketingNewsletterEntity;\n\n private readonly taonMarketingNewsletterRepository = this.injectCustomRepo(TaonMarketingNewsletterRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonMarketingNewsletterRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers__NS__getName(TaonMarketingNewsletterController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}","//#region imports\nimport { TaonBaseClass, TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\nexport class TaonTaonMarketingNewsletterConfig extends TaonBaseClass {\n declare name: string;\n}\n\n@TaonProvider({\n className: 'TaonMarketingNewsletterProvider',\n})\nexport class TaonMarketingNewsletterProvider extends TaonBaseProvider {\n enabledTaonMarketingNewsletterOption: boolean = true;\n config = new TaonTaonMarketingNewsletterConfig();\n clone() {\n return {\n enabledTaonMarketingNewsletterOption: this.enabledTaonMarketingNewsletterOption,\n config: this.config.clone(),\n };\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonMarketingNewsletterEntity } from './taon-marketing-newsletter.entity';\nimport { TaonMarketingNewsletterController } from './taon-marketing-newsletter.controller';\nimport { TaonMarketingNewsletterRepository } from './taon-marketing-newsletter.repository';\n// import { TaonMarketingNewsletterKvRepository } from './taon-marketing-newsletter.kv.repository';\nimport { TaonMarketingNewsletterProvider } from './taon-marketing-newsletter.provider';\n// import { TaonMarketingNewsletterMiddleware } from './taon-marketing-newsletter.middleware';\n// import { TaonMarketingNewsletterSubscriber } from './taon-marketing-newsletter.subscriber';\n//#endregion\n\nexport const TaonMarketingNewsletterAbstractContext = createContext(() => ({\n contextName: 'TaonMarketingNewsletterAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonMarketingNewsletterEntity },\n controllers: { TaonMarketingNewsletterController },\n repositories: {\n // TaonMarketingNewsletterKvRepository\n TaonMarketingNewsletterRepository,\n },\n providers: { TaonMarketingNewsletterProvider },\n // middlewares: { TaonMarketingNewsletterMiddleware },\n // subscribers: { TaonMarketingNewsletterSubscriber },\n}));","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, POST, PUT, DELETE, Body, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\nimport { TaonMarketingPopupRepository } from './taon-marketing-popup.repository';\nimport type { TaonMarketingPopupFields } from './taon-marketing-popup.models';\n//#endregion\n\n@TaonController<TaonMarketingPopupController>({\n className: 'TaonMarketingPopupController',\n allowedMethods: [\n 'getAll', 'getBy', 'paginationQuery', 'getActivePopups',\n 'savePopup', 'setEnabled', 'deletePopup',\n ],\n})\nexport class TaonMarketingPopupController extends TaonBaseCrudController<\n TaonMarketingPopupEntity,\n {\n /* file upload query params type */\n },\n TaonMarketingPopupController\n> {\n entityClassResolveFn: () => typeof TaonMarketingPopupEntity = () => TaonMarketingPopupEntity;\n\n private readonly taonMarketingPopupRepository = this.injectCustomRepo(TaonMarketingPopupRepository);\n\n @GET()\n getActivePopups(): Taon__NS__Response<TaonMarketingPopupEntity[]> {\n //#region @websqlFunc\n return async () => this.taonMarketingPopupRepository.activePopups();\n //#endregion\n }\n\n @POST()\n savePopup(\n @Body() input: TaonMarketingPopupFields,\n @Query('id') id?: number,\n ): Taon__NS__Response<TaonMarketingPopupEntity> {\n //#region @websqlFunc\n return async () => this.taonMarketingPopupRepository.savePopup(input, id);\n //#endregion\n }\n\n @PUT()\n setEnabled(\n @Query('id') id: number,\n @Body('enabled') enabled: boolean,\n ): Taon__NS__Response<TaonMarketingPopupEntity> {\n //#region @websqlFunc\n return async () => this.taonMarketingPopupRepository.setEnabled(id, enabled);\n //#endregion\n }\n\n @DELETE()\n deletePopup(@Query('id') id: number): Taon__NS__Response<void> {\n //#region @websqlFunc\n return async () => this.taonMarketingPopupRepository.deletePopup(id);\n //#endregion\n }\n}","//#region imports\nimport { TaonBaseClass, TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\nexport class TaonTaonMarketingPopupConfig extends TaonBaseClass {\n declare name: string;\n}\n\n@TaonProvider({\n className: 'TaonMarketingPopupProvider',\n})\nexport class TaonMarketingPopupProvider extends TaonBaseProvider {\n enabledTaonMarketingPopupOption: boolean = true;\n config = new TaonTaonMarketingPopupConfig();\n clone() {\n return {\n enabledTaonMarketingPopupOption: this.enabledTaonMarketingPopupOption,\n config: this.config.clone(),\n };\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\nimport { TaonMarketingPopupController } from './taon-marketing-popup.controller';\nimport { TaonMarketingPopupRepository } from './taon-marketing-popup.repository';\n// import { TaonMarketingPopupKvRepository } from './taon-marketing-popup.kv.repository';\nimport { TaonMarketingPopupProvider } from './taon-marketing-popup.provider';\n// import { TaonMarketingPopupMiddleware } from './taon-marketing-popup.middleware';\n// import { TaonMarketingPopupSubscriber } from './taon-marketing-popup.subscriber';\n//#endregion\n\nexport const TaonMarketingPopupAbstractContext = createContext(() => ({\n contextName: 'TaonMarketingPopupAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonMarketingPopupEntity },\n controllers: { TaonMarketingPopupController },\n repositories: {\n // TaonMarketingPopupKvRepository\n TaonMarketingPopupRepository,\n },\n providers: { TaonMarketingPopupProvider },\n // middlewares: { TaonMarketingPopupMiddleware },\n // subscribers: { TaonMarketingPopupSubscriber },\n}));","import type { TaonMarketingPromoEntity } from './taon-marketing-promo.entity';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nconst t = Translation.for('src/lib/taon-marketing-promo/taon-marketing-promo.constants.ts', {\"src/lib/taon-marketing-promo/taon-marketing-promo.constants.ts\":{\"en-US\":async () => (await import('./i18n/taon-marketing-promo.constants.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-marketing-promo.constants.ts.pl-PL.i18n.data')).default}} as any);\n\nexport const TaonMarketingPromoDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonMarketingPromoEntity>;\n\nexport enum TaonMarketingPromoErrors {\n INVALID_PASSWORD_EXAMPLE_ERROR = 'INVALID_PASSWORD_EXAMPLE_ERROR',\n}\n\nexport const TaonMarketingPromoTranslationErorsMap = new Map([\n [TaonMarketingPromoErrors.INVALID_PASSWORD_EXAMPLE_ERROR, t.gettext('Invalid Password')],\n]);","//#region imports\nimport { CustomColumn, Column, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonMarketingPromoDefaultsValues } from './taon-marketing-promo.constants';\n//#endregion\n\n@TaonEntity<TaonMarketingPromoEntity>({\n className: 'TaonMarketingPromoEntity',\n createTable: true,\n // defaultModelMapping: () => ({\n // '': TaonMarketingPromoEntity,\n // nestedObjectField: ClassField,\n // nestedArrField: [ClassObjArrField],\n // }),\n})\nexport class TaonMarketingPromoEntity extends TaonBaseAbstractEntity<TaonMarketingPromoEntity> {\n //#region @websql\n @CustomColumn({\n type: 'varchar',\n length: 100,\n default: TaonMarketingPromoDefaultsValues.description,\n })\n //#endregion\n description?: string;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\n\nimport { TaonMarketingPromoEntity } from './taon-marketing-promo.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonMarketingPromoRepository',\n})\nexport class TaonMarketingPromoRepository extends TaonBaseRepository<TaonMarketingPromoEntity> {\n entityClassResolveFn: () => typeof TaonMarketingPromoEntity = () => TaonMarketingPromoEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonMarketingPromoEntity } from './taon-marketing-promo.entity';\nimport { TaonMarketingPromoRepository } from './taon-marketing-promo.repository';\n//#endregion\n\n@TaonController<TaonMarketingPromoController>({\n className: 'TaonMarketingPromoController',\n // allowedMethods: []\n})\nexport class TaonMarketingPromoController extends TaonBaseCrudController<\n TaonMarketingPromoEntity,\n {\n /* file upload query params type */\n },\n TaonMarketingPromoController\n> {\n entityClassResolveFn: () => typeof TaonMarketingPromoEntity = () => TaonMarketingPromoEntity;\n\n private readonly taonMarketingPromoRepository = this.injectCustomRepo(TaonMarketingPromoRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonMarketingPromoRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers__NS__getName(TaonMarketingPromoController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}","//#region imports\nimport { TaonBaseClass, TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\nexport class TaonTaonMarketingPromoConfig extends TaonBaseClass {\n declare name: string;\n}\n\n@TaonProvider({\n className: 'TaonMarketingPromoProvider',\n})\nexport class TaonMarketingPromoProvider extends TaonBaseProvider {\n enabledTaonMarketingPromoOption: boolean = true;\n config = new TaonTaonMarketingPromoConfig();\n clone() {\n return {\n enabledTaonMarketingPromoOption: this.enabledTaonMarketingPromoOption,\n config: this.config.clone(),\n };\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonMarketingPromoEntity } from './taon-marketing-promo.entity';\nimport { TaonMarketingPromoController } from './taon-marketing-promo.controller';\nimport { TaonMarketingPromoRepository } from './taon-marketing-promo.repository';\n// import { TaonMarketingPromoKvRepository } from './taon-marketing-promo.kv.repository';\nimport { TaonMarketingPromoProvider } from './taon-marketing-promo.provider';\n// import { TaonMarketingPromoMiddleware } from './taon-marketing-promo.middleware';\n// import { TaonMarketingPromoSubscriber } from './taon-marketing-promo.subscriber';\n//#endregion\n\nexport const TaonMarketingPromoAbstractContext = createContext(() => ({\n contextName: 'TaonMarketingPromoAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonMarketingPromoEntity },\n controllers: { TaonMarketingPromoController },\n repositories: {\n // TaonMarketingPromoKvRepository\n TaonMarketingPromoRepository,\n },\n providers: { TaonMarketingPromoProvider },\n // middlewares: { TaonMarketingPromoMiddleware },\n // subscribers: { TaonMarketingPromoSubscriber },\n}));","import { TaonCmsAbstractContext } from '@taon-dev/cms/websql-prod';\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonMarketingAbAbstractContext } from './taon-marketing-ab/taon-marketing-ab.abstract.context';\nimport { TaonMarketingNewsletterAbstractContext } from './taon-marketing-newsletter/taon-marketing-newsletter.abstract.context';\nimport { TaonMarketingPopupAbstractContext } from './taon-marketing-popup/taon-marketing-popup.abstract.context';\nimport { TaonMarketingPromoAbstractContext } from './taon-marketing-promo/taon-marketing-promo.abstract.context';\n\nexport const TaonMarketingAbstractContext = createContext(() => ({\n contextName: 'TaonMarketingAbstractContext',\n abstract: true,\n contexts: {\n TaonCmsAbstractContext,\n\n TaonMarketingAbAbstractContext,\n TaonMarketingNewsletterAbstractContext,\n TaonMarketingPopupAbstractContext,\n TaonMarketingPromoAbstractContext,\n },\n}));\n","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonMarketingAbEntity } from './taon-marketing-ab.entity';\nimport { TaonMarketingAbController } from './taon-marketing-ab.controller';\n//#endregion\n\n@Injectable()\nexport class TaonMarketingAbApiService extends TaonBaseAngularService {\n public readonly taonMarketingAbController = this.injectController(TaonMarketingAbController);\n\n public get allMyEntities$(): Observable<TaonMarketingAbEntity[]> {\n return this.taonMarketingAbController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user: string): Observable<string> {\n return this.taonMarketingAbController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonMarketingAbProvider } from './taon-marketing-ab.provider';\n//#endregion\n\n@Injectable()\nexport class TaonMarketingAbConfigService extends TaonBaseAngularService {\n private taonMarketingAbProvider = this.injectProvider(TaonMarketingAbProvider);\n\n get isEnableOption() {\n return this.taonMarketingAbProvider.enabledTaonMarketingAbOption;\n }\n\n clone(): Partial<TaonMarketingAbProvider> {\n const cloned = this.taonMarketingAbProvider.clone();\n return cloned;\n }\n}","//#region imports\nimport {\n TaonBaseRepository,\n TaonBaseKvRepository,\n TaonRepository,\n} from 'taon/websql-prod';\n\nimport { TaonMarketingAbEntity } from './taon-marketing-ab.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonMarketingAbKvRepository',\n})\nexport class TaonMarketingAbKvRepository extends TaonBaseKvRepository<{\n usersToNotify: TaonMarketingAbEntity[];\n}> {\n async notifyUsers(users: TaonMarketingAbEntity[]) {\n this.set('usersToNotify', users);\n }\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonMarketingAbMiddleware',\n})\nexport class TaonMarketingAbMiddleware extends TaonBaseMiddleware {}","//namespace TaonMarketingAbModels\n\n export enum TaonMarketingAbModels__NS__TaonMarketingAbState {\n Active = 'active',\n Inactive = 'inactive',\n }\n\n//end of namespace TaonMarketingAbModels\n","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonMarketingAbEntity } from './taon-marketing-ab.entity';\nimport { TaonMarketingAbProvider } from './taon-marketing-ab.provider';\n//#endregion\n\n@TaonSubscriber<TaonMarketingAbSubscriber>({\n className: 'TaonMarketingAbSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonMarketingAbSubscriber extends TaonBaseSubscriberForEntity {\n private readonly taonMarketingAbProvider = this.injectProvider(TaonMarketingAbProvider);\n listenTo(): typeof TaonMarketingAbEntity {\n return TaonMarketingAbEntity;\n }\n}","import { TaonMarketingAbModels__NS__TaonMarketingAbState } from './taon-marketing-ab.models';\n\n//namespace TaonMarketingAbUtils\n\n export function TaonMarketingAbUtils__NS__isActive(state: string): state is TaonMarketingAbModels__NS__TaonMarketingAbState {\n return state === 'active';\n }\n\n//end of namespace TaonMarketingAbUtils","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; // @browser\nimport { TaonMarketingAbErrors } from './taon-marketing-ab.constants';\n\n//namespace TaonMarketingAbValidators\n\n //#region @browser\n /**\n * TODO REMOVE THIS EXAMPLE.\n */\n export const TaonMarketingAbValidators__NS__passwordMatchValidator: ValidatorFn = (\n control: AbstractControl,\n ): ValidationErrors | null => {\n const password = control.get('password');\n const passwordRepeat = control.get('passwordRepeat');\n\n if (!password || !passwordRepeat) {\n return null;\n }\n\n return password.value === passwordRepeat.value\n ? null\n : { [TaonMarketingAbErrors.INVALID_PASSWORD_EXAMPLE_ERROR]: true };\n };\n //#endregion\n\n\n//end of namespace TaonMarketingAbValidators\n","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n//#endregion\n\n@Component({\n selector: 'app-taon-marketing-backoffice',\n templateUrl: './taon-marketing-backoffice.component.html',\n styleUrls: ['./taon-marketing-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonMarketingBackofficeComponent {}","<router-outlet></router-outlet>","//namespace TaonMarketingBackofficeModels\n\n//end of namespace TaonMarketingBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql-prod';\n//#endregion\n\nexport const TaonMarketingBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-marketing-backoffice.component').then(\n m => m.TaonMarketingBackofficeComponent,\n ),\n\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'popups' },\n { path: 'popup', pathMatch: 'full', redirectTo: 'popups' },\n { path: 'ab-testing', pathMatch: 'full', redirectTo: 'ab' },\n adminLazyRoute({\n path: 'popups',\n menuItem: 'Popups',\n icon: 'chat_info',\n expandable: false,\n loader: () =>\n import('../index').then(\n m => m.TaonMarketingPopupBackofficeRoutes,\n ),\n }),\n\n adminLazyRoute({\n path: 'promotions',\n menuItem: 'Promotions',\n icon: 'sell',\n expandable: false,\n loader: () =>\n import('../index').then(\n m => m.TaonMarketingPromoBackofficeRoutes,\n ),\n }),\n\n adminLazyRoute({\n path: 'newsletter',\n menuItem: 'Newsletter',\n icon: 'info',\n expandable: false,\n loader: () =>\n import('../index').then(\n m => m.TaonMarketingNewsletterBackofficeRoutes,\n ),\n }),\n\n adminLazyRoute({\n path: 'ab',\n menuItem: 'AB',\n icon: 'science',\n expandable: false,\n loader: () =>\n import('../index').then(\n m => m.TaonMarketingAbBackofficeRoutes,\n ),\n }),\n ],\n },\n];\n\n/**\n * By default exporting TaonMarketingBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonMarketingBackofficeRoutes;\n","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonMarketingNewsletterEntity } from './taon-marketing-newsletter.entity';\nimport { TaonMarketingNewsletterController } from './taon-marketing-newsletter.controller';\n//#endregion\n\n@Injectable()\nexport class TaonMarketingNewsletterApiService extends TaonBaseAngularService {\n public readonly taonMarketingNewsletterController = this.injectController(TaonMarketingNewsletterController);\n\n public get allMyEntities$(): Observable<TaonMarketingNewsletterEntity[]> {\n return this.taonMarketingNewsletterController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user: string): Observable<string> {\n return this.taonMarketingNewsletterController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonMarketingNewsletterProvider } from './taon-marketing-newsletter.provider';\n//#endregion\n\n@Injectable()\nexport class TaonMarketingNewsletterConfigService extends TaonBaseAngularService {\n private taonMarketingNewsletterProvider = this.injectProvider(TaonMarketingNewsletterProvider);\n\n get isEnableOption() {\n return this.taonMarketingNewsletterProvider.enabledTaonMarketingNewsletterOption;\n }\n\n clone(): Partial<TaonMarketingNewsletterProvider> {\n const cloned = this.taonMarketingNewsletterProvider.clone();\n return cloned;\n }\n}","//#region imports\nimport {\n TaonBaseRepository,\n TaonBaseKvRepository,\n TaonRepository,\n} from 'taon/websql-prod';\n\nimport { TaonMarketingNewsletterEntity } from './taon-marketing-newsletter.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonMarketingNewsletterKvRepository',\n})\nexport class TaonMarketingNewsletterKvRepository extends TaonBaseKvRepository<{\n usersToNotify: TaonMarketingNewsletterEntity[];\n}> {\n async notifyUsers(users: TaonMarketingNewsletterEntity[]) {\n this.set('usersToNotify', users);\n }\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonMarketingNewsletterMiddleware',\n})\nexport class TaonMarketingNewsletterMiddleware extends TaonBaseMiddleware {}","//namespace TaonMarketingNewsletterModels\n\n export enum TaonMarketingNewsletterModels__NS__TaonMarketingNewsletterState {\n Active = 'active',\n Inactive = 'inactive',\n }\n\n//end of namespace TaonMarketingNewsletterModels\n","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonMarketingNewsletterEntity } from './taon-marketing-newsletter.entity';\nimport { TaonMarketingNewsletterProvider } from './taon-marketing-newsletter.provider';\n//#endregion\n\n@TaonSubscriber<TaonMarketingNewsletterSubscriber>({\n className: 'TaonMarketingNewsletterSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonMarketingNewsletterSubscriber extends TaonBaseSubscriberForEntity {\n private readonly taonMarketingNewsletterProvider = this.injectProvider(TaonMarketingNewsletterProvider);\n listenTo(): typeof TaonMarketingNewsletterEntity {\n return TaonMarketingNewsletterEntity;\n }\n}","import { TaonMarketingNewsletterModels__NS__TaonMarketingNewsletterState } from './taon-marketing-newsletter.models';\n\n//namespace TaonMarketingNewsletterUtils\n\n export function TaonMarketingNewsletterUtils__NS__isActive(state: string): state is TaonMarketingNewsletterModels__NS__TaonMarketingNewsletterState {\n return state === 'active';\n }\n\n//end of namespace TaonMarketingNewsletterUtils","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; // @browser\nimport { TaonMarketingNewsletterErrors } from './taon-marketing-newsletter.constants';\n\n//namespace TaonMarketingNewsletterValidators\n\n //#region @browser\n /**\n * TODO REMOVE THIS EXAMPLE.\n */\n export const TaonMarketingNewsletterValidators__NS__passwordMatchValidator: ValidatorFn = (\n control: AbstractControl,\n ): ValidationErrors | null => {\n const password = control.get('password');\n const passwordRepeat = control.get('passwordRepeat');\n\n if (!password || !passwordRepeat) {\n return null;\n }\n\n return password.value === passwordRepeat.value\n ? null\n : { [TaonMarketingNewsletterErrors.INVALID_PASSWORD_EXAMPLE_ERROR]: true };\n };\n //#endregion\n\n\n//end of namespace TaonMarketingNewsletterValidators\n","import { ChangeDetectionStrategy, Component, computed, inject, input, output } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport type { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\n\nexport interface TaonMarketingPopupDialogData {\n popup: TaonMarketingPopupEntity;\n imageUrl: string | null;\n}\n\n@Component({\n selector: 'taon-marketing-popup-content',\n templateUrl: './taon-marketing-popup-content.component.html',\n styleUrls: ['./taon-marketing-popup-content.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TaonMarketingPopupContentComponent {\n readonly popup = input<TaonMarketingPopupEntity>();\n readonly imageUrl = input<string | null>(null);\n readonly clicked = output<void>();\n readonly closed = output<void>();\n\n private readonly data = inject<TaonMarketingPopupDialogData | null>(MAT_DIALOG_DATA, { optional: true });\n private readonly ref = inject(MatDialogRef<TaonMarketingPopupContentComponent>, { optional: true });\n\n readonly currentPopup = computed(() => this.popup() ?? this.data?.popup);\n readonly currentImage = computed(() => this.imageUrl() ?? this.data?.imageUrl);\n\n close(): void {\n if (this.ref) {\n this.ref.close();\n } else {\n this.closed.emit();\n }\n }\n\n click(): void {\n this.clicked.emit();\n this.close();\n }\n}\n","@if (currentPopup(); as popup) {\n <section class=\"popup\">\n <button class=\"close\" type=\"button\" aria-label=\"Close popup\" (click)=\"close()\">×</button>\n @if (popup.title) {\n <h2>{{ popup.title }}</h2>\n }\n @if (popup.content) {\n <p>{{ popup.content }}</p>\n }\n @if (currentImage(); as image) {\n <img [src]=\"image\" alt=\"\">\n }\n @if (popup.buttonText && popup.buttonUrl) {\n <a class=\"cta\" [href]=\"popup.buttonUrl\" (click)=\"click()\">{{ popup.buttonText }}</a>\n }\n </section>\n}\n","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService } from 'taon/websql-prod';\n\nimport type { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\nimport { TaonMarketingPopupController } from './taon-marketing-popup.controller';\nimport type { TaonMarketingPopupFields } from './taon-marketing-popup.models';\n//#endregion\n\n@Injectable()\nexport class TaonMarketingPopupApiService extends TaonBaseAngularService {\n public readonly taonMarketingPopupController = this.injectController(TaonMarketingPopupController);\n\n public get allMyEntities$(): Observable<TaonMarketingPopupEntity[]> {\n return this.taonMarketingPopupController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public getActivePopups(): Observable<TaonMarketingPopupEntity[]> {\n return this.taonMarketingPopupController.getActivePopups().request!().observable.pipe(\n map(res => res.body.json),\n );\n }\n\n public savePopup(input: TaonMarketingPopupFields, id?: number): Observable<TaonMarketingPopupEntity> {\n return this.taonMarketingPopupController.savePopup(input, id).request!().observable.pipe(\n map(res => res.body.json),\n );\n }\n\n public setEnabled(id: number, enabled: boolean): Observable<TaonMarketingPopupEntity> {\n return this.taonMarketingPopupController.setEnabled(id, enabled).request!().observable.pipe(\n map(res => res.body.json),\n );\n }\n\n public deletePopup(id: number): Observable<void> {\n return this.taonMarketingPopupController.deletePopup(id).request!().observable.pipe(\n map(() => undefined),\n );\n }\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonMarketingPopupProvider } from './taon-marketing-popup.provider';\n//#endregion\n\n@Injectable()\nexport class TaonMarketingPopupConfigService extends TaonBaseAngularService {\n private taonMarketingPopupProvider = this.injectProvider(TaonMarketingPopupProvider);\n\n get isEnableOption() {\n return this.taonMarketingPopupProvider.enabledTaonMarketingPopupOption;\n }\n\n clone(): Partial<TaonMarketingPopupProvider> {\n const cloned = this.taonMarketingPopupProvider.clone();\n return cloned;\n }\n}","import type { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\nimport { TaonMarketingPopupType } from './taon-marketing-popup.models';\n\nexport const TaonMarketingPopupDefaultsValues = {\n name: '',\n enabled: false,\n type: TaonMarketingPopupType.Dialog,\n title: null,\n content: null,\n imageKey: null,\n buttonText: null,\n buttonUrl: null,\n delaySeconds: 0,\n displayOnPaths: null,\n excludePaths: null,\n startAt: null,\n endAt: null,\n maxDisplaysPerVisitor: null,\n oncePerSession: true,\n version: 0,\n id: void 0,\n} satisfies Partial<TaonMarketingPopupEntity>;","//#region imports\nimport {\n TaonBaseRepository,\n TaonBaseKvRepository,\n TaonRepository,\n} from 'taon/websql-prod';\n\nimport { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonMarketingPopupKvRepository',\n})\nexport class TaonMarketingPopupKvRepository extends TaonBaseKvRepository<{\n usersToNotify: TaonMarketingPopupEntity[];\n}> {\n async notifyUsers(users: TaonMarketingPopupEntity[]) {\n this.set('usersToNotify', users);\n }\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonMarketingPopupMiddleware',\n})\nexport class TaonMarketingPopupMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\nimport { TaonMarketingPopupProvider } from './taon-marketing-popup.provider';\n//#endregion\n\n@TaonSubscriber<TaonMarketingPopupSubscriber>({\n className: 'TaonMarketingPopupSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonMarketingPopupSubscriber extends TaonBaseSubscriberForEntity {\n private readonly taonMarketingPopupProvider = this.injectProvider(TaonMarketingPopupProvider);\n listenTo(): typeof TaonMarketingPopupEntity {\n return TaonMarketingPopupEntity;\n }\n}","import { ValidatorFn } from '@angular/forms'; // @browser\nimport { TaonMarketingPopupUtils__NS__allowsPath, TaonMarketingPopupUtils__NS__isActive, TaonMarketingPopupUtils__NS__isPathPattern, TaonMarketingPopupUtils__NS__isSafeUrl, TaonMarketingPopupUtils__NS__matchesPath } from './taon-marketing-popup.utils';\n\n//namespace TaonMarketingPopupValidators\n\n //#region @browser\n export const TaonMarketingPopupValidators__NS__paths: ValidatorFn = control => {\n const value: unknown = control.value;\n return typeof value === 'string' &&\n value.split('\\n').map(path => path.trim()).filter(Boolean)\n .every(path => TaonMarketingPopupUtils__NS__isPathPattern(path))\n ? null : { popupPaths: true };\n };\n\n export const TaonMarketingPopupValidators__NS__url: ValidatorFn = control => {\n const value: unknown = control.value;\n return typeof value === 'string' &&\n (!value.trim() || TaonMarketingPopupUtils__NS__isSafeUrl(value.trim()))\n ? null : { popupUrl: true };\n };\n\n export const TaonMarketingPopupValidators__NS__optionalPositiveInteger: ValidatorFn = control =>\n control.value === null ||\n (Number.isSafeInteger(control.value) && control.value > 0)\n ? null : { popupDisplayLimit: true };\n\n export const TaonMarketingPopupValidators__NS__optionalDate: ValidatorFn = control => {\n const value: unknown = control.value;\n return typeof value === 'string' &&\n (!value || Number.isFinite(new Date(value).getTime()))\n ? null : { popupDate: true };\n };\n //#endregion\n\n//end of namespace TaonMarketingPopupValidators","import { isPlatformBrowser } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, DestroyRef, PLATFORM_ID, inject, input, output, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { EMPTY, Subscription, catchError, filter, startWith, switchMap, tap, timer } from 'rxjs';\n\nimport { TaonMarketingPopupApiService } from './taon-marketing-popup.api.service';\nimport { TaonMarketingPopupContentComponent } from './taon-marketing-popup-content.component';\nimport type { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\nimport { TaonMarketingPopupType } from './taon-marketing-popup.models';\nimport type { TaonMarketingPopupEvent, TaonMarketingPopupImageResolver } from './taon-marketing-popup.models';\nimport { TaonMarketingPopupUtils__NS__allowsPath, TaonMarketingPopupUtils__NS__isActive, TaonMarketingPopupUtils__NS__isPathPattern, TaonMarketingPopupUtils__NS__isSafeUrl, TaonMarketingPopupUtils__NS__matchesPath } from './taon-marketing-popup.utils';\n\ninterface PendingPopup {\n popup: TaonMarketingPopupEntity;\n dueAt: number;\n}\n\ninterface VisiblePopup {\n popup: TaonMarketingPopupEntity;\n path: string;\n displayed: boolean;\n}\n\n@Component({\n selector: 'taon-marketing-popups',\n template: `\n @if (bottomPopup(); as popup) {\n <aside class=\"bottom-popup\" role=\"region\" [attr.aria-label]=\"popup.title || 'Marketing popup'\">\n <taon-marketing-popup-content\n [popup]=\"popup\"\n (clicked)=\"click()\"\n (closed)=\"close()\">\n </taon-marketing-popup-content>\n </aside>\n }\n `,\n styles: [`\n .bottom-popup {\n position: fixed;\n z-index: 1000;\n bottom: 0;\n left: 0;\n right: 0;\n max-height: 50vh;\n overflow: auto;\n color: #222;\n background: #fff;\n box-shadow: 0 -2px 12px #0003;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TaonMarketingPopupContentComponent],\n providers: [TaonMarketingPopupApiService],\n})\nexport class TaonMarketingPopupsComponent {\n readonly resolveImage = input<TaonMarketingPopupImageResolver>(key => key);\n readonly popupEvent = output<TaonMarketingPopupEvent>();\n readonly popupError = output<unknown>();\n readonly bottomPopup = signal<TaonMarketingPopupEntity | null>(null);\n\n private readonly api = inject(TaonMarketingPopupApiService);\n private readonly router = inject(Router);\n private readonly dialog = inject(MatDialog);\n private readonly destroyRef = inject(DestroyRef);\n private readonly platform = inject(PLATFORM_ID);\n private pending: PendingPopup[] = [];\n private visible: VisiblePopup | null = null;\n private dialogRef: MatDialogRef<TaonMarketingPopupContentComponent> | null = null;\n private delayTimer?: Subscription;\n private endTimer?: Subscription;\n\n ngOnInit(): void {\n if (!isPlatformBrowser(this.platform)) {\n return;\n }\n this.destroyRef.onDestroy(() => this.clear());\n this.router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n startWith(null),\n tap(() => this.clear()),\n switchMap(() => this.api.getActivePopups().pipe(\n catchError((error: unknown) => {\n this.report(error);\n return EMPTY;\n }),\n )),\n takeUntilDestroyed(this.destroyRef),\n ).subscribe(popups => {\n const now = Date.now();\n this.pending = popups.filter(popup =>\n Object.values(TaonMarketingPopupType).includes(popup.type) &&\n TaonMarketingPopupUtils__NS__isActive(popup) &&\n TaonMarketingPopupUtils__NS__allowsPath(popup, this.router.url),\n ).map(popup => ({ popup, dueAt: now + popup.delaySeconds * 1000 }));\n this.pending.sort((a, b) => a.dueAt - b.dueAt || a.popup.id - b.popup.id);\n this.scheduleNext();\n });\n }\n\n click(): void {\n if (this.visible?.displayed) {\n this.emit('popup-click', this.visible);\n }\n }\n\n close(): void {\n if (this.visible?.displayed) {\n this.emit('popup-close', this.visible);\n }\n this.visible = null;\n this.bottomPopup.set(null);\n this.endTimer?.unsubscribe();\n const ref = this.dialogRef;\n this.dialogRef = null;\n if (ref) {\n ref.close();\n ref.afterClosed().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.scheduleNext());\n } else {\n this.scheduleNext();\n }\n }\n\n private clear(): void {\n this.pending = [];\n this.delayTimer?.unsubscribe();\n this.endTimer?.unsubscribe();\n if (this.visible?.displayed && !this.destroyRef.destroyed) {\n this.emit('popup-close', this.visible);\n }\n this.visible = null;\n this.bottomPopup.set(null);\n this.dialogRef?.close();\n this.dialogRef = null;\n }\n\n private scheduleNext(): void {\n if (this.destroyRef.destroyed || this.visible || !this.pending.length) {\n return;\n }\n this.delayTimer?.unsubscribe();\n const next = this.pending[0];\n this.delayTimer = timer(Math.max(0, next.dueAt - Date.now())).subscribe(() => {\n this.pending.shift();\n try {\n if (TaonMarketingPopupUtils__NS__isActive(next.popup) &&\n TaonMarketingPopupUtils__NS__allowsPath(next.popup, this.router.url) &&\n this.allowsVisitor(next.popup)) {\n this.show(next.popup);\n }\n } catch (error: unknown) {\n this.report(error);\n this.close();\n }\n this.scheduleNext();\n });\n }\n\n private show(popup: TaonMarketingPopupEntity): void {\n const visible: VisiblePopup = { popup, path: this.router.url.split(/[?#]/, 1)[0], displayed: false };\n let imageUrl: string | null = null;\n if (popup.type === TaonMarketingPopupType.Dialog && popup.imageKey) {\n imageUrl = this.resolveImage()(popup.imageKey);\n if (!TaonMarketingPopupUtils__NS__isSafeUrl(imageUrl)) {\n throw new Error(`Popup ${popup.id} image must resolve to an HTTP(S) URL or root-relative path.`);\n }\n }\n this.visible = visible;\n if (popup.type === TaonMarketingPopupType.Bottom) {\n this.recordDisplay(visible);\n this.bottomPopup.set(popup);\n } else {\n const ref = this.dialog.open(TaonMarketingPopupContentComponent, {\n data: { popup, imageUrl },\n width: '480px',\n maxWidth: '95vw',\n ariaLabel: popup.title || 'Marketing popup',\n autoFocus: 'first-tabbable',\n });\n this.dialogRef = ref;\n ref.componentInstance.clicked.subscribe(() => this.click());\n ref.afterOpened().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (this.visible !== visible) {\n return;\n }\n try {\n if (!TaonMarketingPopupUtils__NS__isActive(popup) || !this.allowsVisitor(popup)) {\n this.close();\n return;\n }\n this.recordDisplay(visible);\n } catch (error: unknown) {\n this.report(error);\n this.close();\n }\n });\n ref.afterClosed().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (this.visible === visible) {\n this.dialogRef = null;\n this.close();\n }\n });\n }\n this.scheduleEnd(visible);\n }\n\n private scheduleEnd(visible: VisiblePopup): void {\n if (!visible.popup.endAt) {\n return;\n }\n const delay = new Date(visible.popup.endAt).getTime() - Date.now() + 1;\n this.endTimer = timer(Math.max(0, Math.min(delay, 2147483647))).subscribe(() => {\n if (this.visible !== visible) {\n return;\n }\n if (TaonMarketingPopupUtils__NS__isActive(visible.popup)) {\n this.scheduleEnd(visible);\n } else {\n this.close();\n }\n });\n }\n\n private storageKey(popup: TaonMarketingPopupEntity): string {\n return `taon-marketing:popup:${popup.id}:displays`;\n }\n\n private count(storage: Storage, key: string): number {\n const raw = storage.getItem(key);\n const count = raw === null ? 0 : Number(raw);\n if ((raw !== null && !/^\\d+$/.test(raw)) ||\n !Number.isSafeInteger(count) || count < 0) {\n throw new Error(`Invalid popup display count in browser storage (${key}).`);\n }\n return count;\n }\n\n private allowsVisitor(popup: TaonMarketingPopupEntity): boolean {\n const key = this.storageKey(popup);\n return (!popup.oncePerSession || this.count(sessionStorage, key) === 0) &&\n (popup.maxDisplaysPerVisitor === null ||\n this.count(localStorage, key) < popup.maxDisplaysPerVisitor);\n }\n\n private recordDisplay(visible: VisiblePopup): void {\n const key = this.storageKey(visible.popup);\n const visitorCount = this.count(localStorage, key);\n const sessionCount = this.count(sessionStorage, key);\n localStorage.setItem(key, String(visitorCount + 1));\n sessionStorage.setItem(key, String(sessionCount + 1));\n visible.displayed = true;\n this.emit('popup-impression', visible);\n }\n\n private emit(name: TaonMarketingPopupEvent['name'], visible: VisiblePopup): void {\n this.popupEvent.emit({\n name,\n category: 'marketing',\n path: visible.path,\n data: { popupId: visible.popup.id, type: visible.popup.type },\n createdAt: new Date(),\n });\n }\n\n private report(error: unknown): void {\n console.error('[taon-marketing-popups] Unable to load or display popup', error);\n this.popupError.emit(error);\n }\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonMarketingPromoEntity } from './taon-marketing-promo.entity';\nimport { TaonMarketingPromoController } from './taon-marketing-promo.controller';\n//#endregion\n\n@Injectable()\nexport class TaonMarketingPromoApiService extends TaonBaseAngularService {\n public readonly taonMarketingPromoController = this.injectController(TaonMarketingPromoController);\n\n public get allMyEntities$(): Observable<TaonMarketingPromoEntity[]> {\n return this.taonMarketingPromoController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user: string): Observable<string> {\n return this.taonMarketingPromoController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonMarketingPromoProvider } from './taon-marketing-promo.provider';\n//#endregion\n\n@Injectable()\nexport class TaonMarketingPromoConfigService extends TaonBaseAngularService {\n private taonMarketingPromoProvider = this.injectProvider(TaonMarketingPromoProvider);\n\n get isEnableOption() {\n return this.taonMarketingPromoProvider.enabledTaonMarketingPromoOption;\n }\n\n clone(): Partial<TaonMarketingPromoProvider> {\n const cloned = this.taonMarketingPromoProvider.clone();\n return cloned;\n }\n}","//#region imports\nimport {\n TaonBaseRepository,\n TaonBaseKvRepository,\n TaonRepository,\n} from 'taon/websql-prod';\n\nimport { TaonMarketingPromoEntity } from './taon-marketing-promo.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonMarketingPromoKvRepository',\n})\nexport class TaonMarketingPromoKvRepository extends TaonBaseKvRepository<{\n usersToNotify: TaonMarketingPromoEntity[];\n}> {\n async notifyUsers(users: TaonMarketingPromoEntity[]) {\n this.set('usersToNotify', users);\n }\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonMarketingPromoMiddleware',\n})\nexport class TaonMarketingPromoMiddleware extends TaonBaseMiddleware {}","//namespace TaonMarketingPromoModels\n\n export enum TaonMarketingPromoModels__NS__TaonMarketingPromoState {\n Active = 'active',\n Inactive = 'inactive',\n }\n\n//end of namespace TaonMarketingPromoModels\n","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonMarketingPromoEntity } from './taon-marketing-promo.entity';\nimport { TaonMarketingPromoProvider } from './taon-marketing-promo.provider';\n//#endregion\n\n@TaonSubscriber<TaonMarketingPromoSubscriber>({\n className: 'TaonMarketingPromoSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonMarketingPromoSubscriber extends TaonBaseSubscriberForEntity {\n private readonly taonMarketingPromoProvider = this.injectProvider(TaonMarketingPromoProvider);\n listenTo(): typeof TaonMarketingPromoEntity {\n return TaonMarketingPromoEntity;\n }\n}","import { TaonMarketingPromoModels__NS__TaonMarketingPromoState } from './taon-marketing-promo.models';\n\n//namespace TaonMarketingPromoUtils\n\n export function TaonMarketingPromoUtils__NS__isActive(state: string): state is TaonMarketingPromoModels__NS__TaonMarketingPromoState {\n return state === 'active';\n }\n\n//end of namespace TaonMarketingPromoUtils","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; // @browser\nimport { TaonMarketingPromoErrors } from './taon-marketing-promo.constants';\n\n//namespace TaonMarketingPromoValidators\n\n //#region @browser\n /**\n * TODO REMOVE THIS EXAMPLE.\n */\n export const TaonMarketingPromoValidators__NS__passwordMatchValidator: ValidatorFn = (\n control: AbstractControl,\n ): ValidationErrors | null => {\n const password = control.get('password');\n const passwordRepeat = control.get('passwordRepeat');\n\n if (!password || !passwordRepeat) {\n return null;\n }\n\n return password.value === passwordRepeat.value\n ? null\n : { [TaonMarketingPromoErrors.INVALID_PASSWORD_EXAMPLE_ERROR]: true };\n };\n //#endregion\n\n\n//end of namespace TaonMarketingPromoValidators\n","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n//#endregion\n\n@Component({\n selector: 'app-taon-marketing-ab-backoffice',\n templateUrl: './taon-marketing-ab-backoffice.component.html',\n styleUrls: ['./taon-marketing-ab-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonMarketingAbBackofficeComponent {}","<router-outlet></router-outlet>\n<h1>AB</h1>\n<p>Reserved for marketing content variants and measurement. Experiments are not implemented.</p>","//namespace TaonMarketingAbBackofficeModels\n\n//end of namespace TaonMarketingAbBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql-prod';\n//#endregion\n\nexport const TaonMarketingAbBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-marketing-ab-backoffice.component').then(m => m.TaonMarketingAbBackofficeComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonMarketingAbBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonMarketingAbBackofficeRoutes;","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n//#endregion\n\n@Component({\n selector: 'app-taon-marketing-newsletter-backoffice',\n templateUrl: './taon-marketing-newsletter-backoffice.component.html',\n styleUrls: ['./taon-marketing-newsletter-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonMarketingNewsletterBackofficeComponent {}","<router-outlet></router-outlet>\n<h1>Newsletter</h1>\n<p>Reserved for Taon email and newsletter integration. Sending is not implemented.</p>","//namespace TaonMarketingNewsletterBackofficeModels\n\n//end of namespace TaonMarketingNewsletterBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql-prod';\n//#endregion\n\nexport const TaonMarketingNewsletterBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-marketing-newsletter-backoffice.component').then(m => m.TaonMarketingNewsletterBackofficeComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonMarketingNewsletterBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonMarketingNewsletterBackofficeRoutes;","import { ChangeDetectionStrategy, Component, DestroyRef, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormBuilder, FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { finalize } from 'rxjs';\n\nimport { TaonMarketingPopupApiService } from '../taon-marketing-popup.api.service';\nimport type { TaonMarketingPopupEntity } from '../taon-marketing-popup.entity';\nimport { TaonMarketingPopupType } from '../taon-marketing-popup.models';\nimport type { TaonMarketingPopupFields } from '../taon-marketing-popup.models';\nimport { TaonMarketingPopupValidators__NS__optionalDate, TaonMarketingPopupValidators__NS__optionalPositiveInteger, TaonMarketingPopupValidators__NS__paths, TaonMarketingPopupValidators__NS__url } from '../taon-marketing-popup.validators';\n\n@Component({\n selector: 'taon-marketing-popup-editor',\n templateUrl: './taon-marketing-popup-editor.component.html',\n styleUrls: ['./taon-marketing-popup-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ReactiveFormsModule, MatButtonModule, MatDialogModule],\n providers: [TaonMarketingPopupApiService],\n})\nexport class TaonMarketingPopupEditorComponent {\n readonly popup = inject<TaonMarketingPopupEntity | null>(MAT_DIALOG_DATA);\n readonly types = Object.values(TaonMarketingPopupType);\n readonly busy = signal(false);\n readonly error = signal('');\n\n private readonly api = inject(TaonMarketingPopupApiService);\n private readonly ref = inject(MatDialogRef<TaonMarketingPopupEditorComponent>);\n private readonly destroyRef = inject(DestroyRef);\n private readonly fb = inject(FormBuilder).nonNullable;\n\n readonly form = this.fb.group({\n name: [this.popup?.name ?? '', [Validators.required, Validators.pattern(/\\S/), Validators.maxLength(200)]],\n enabled: [this.popup?.enabled ?? false],\n type: [this.popup?.type ?? TaonMarketingPopupType.Dialog],\n title: [this.popup?.title ?? ''],\n content: [this.popup?.content ?? ''],\n imageKey: [this.popup?.imageKey ?? ''],\n buttonText: [this.popup?.buttonText ?? ''],\n buttonUrl: [this.popup?.buttonUrl ?? '', TaonMarketingPopupValidators__NS__url],\n delaySeconds: [this.popup?.delaySeconds ?? 0, [Validators.required, Validators.min(0), Validators.max(2147483)]],\n displayOnPaths: [this.popup?.displayOnPaths?.join('\\n') ?? '', TaonMarketingPopupValidators__NS__paths],\n excludePaths: [this.popup?.excludePaths?.join('\\n') ?? '', TaonMarketingPopupValidators__NS__paths],\n startAt: [this.localDate(this.popup?.startAt), TaonMarketingPopupValidators__NS__optionalDate],\n endAt: [this.localDate(this.popup?.endAt), TaonMarketingPopupValidators__NS__optionalDate],\n maxDisplaysPerVisitor: new FormControl<number | null>(\n this.popup?.maxDisplaysPerVisitor ?? null, TaonMarketingPopupValidators__NS__optionalPositiveInteger,\n ),\n oncePerSession: [this.popup?.oncePerSession ?? true],\n });\n\n save(): void {\n this.form.markAllAsTouched();\n if (this.form.invalid || this.busy()) {\n this.error.set('Please correct the invalid fields before saving.');\n return;\n }\n const value = this.form.getRawValue();\n const startAt = value.startAt ? new Date(value.startAt).toISOString() : null;\n const endAt = value.endAt ? new Date(value.endAt).toISOString() : null;\n if (startAt && endAt && startAt > endAt) {\n this.error.set('End date must not precede start date.');\n return;\n }\n const input: TaonMarketingPopupFields = {\n ...value,\n name: value.name.trim(),\n title: value.title.trim() || null,\n content: value.content || null,\n imageKey: value.imageKey.trim() || null,\n buttonText: value.buttonText.trim() || null,\n buttonUrl: value.buttonUrl.trim() || null,\n displayOnPaths: this.paths(value.displayOnPaths),\n excludePaths: this.paths(value.excludePaths),\n startAt,\n endAt,\n };\n this.busy.set(true);\n this.error.set('');\n this.api.savePopup(input, this.popup?.id).pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n ).subscribe({\n next: saved => this.ref.close(saved),\n error: (error: unknown) => {\n console.error('[taon-marketing-popup-editor] Unable to save popup', error);\n this.error.set('The popup could not be saved. Check the fields and try again.');\n },\n });\n }\n\n close(): void {\n if (!this.busy()) {\n this.ref.close();\n }\n }\n\n private paths(value: string): string[] | null {\n const paths = value.split('\\n').map(path => path.trim()).filter(Boolean);\n return paths.length ? paths : null;\n }\n\n private localDate(value: Date | string | null | undefined): string {\n if (!value) {\n return '';\n }\n const date = new Date(value);\n const local = new Date(date.getTime() - date.getTimezoneOffset() * 60000);\n return local.toISOString().slice(0, 16);\n }\n}","<h2 mat-dialog-title>{{ popup ? 'Edit popup' : 'Add popup' }}</h2>\n<form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <mat-dialog-content>\n @if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n }\n <fieldset [disabled]=\"busy()\">\n <label>Name <input formControlName=\"name\" maxlength=\"200\" required></label>\n <label class=\"checkbox\"><input type=\"checkbox\" formControlName=\"enabled\"> Enabled</label>\n <label>Type\n <select formControlName=\"type\">\n @for (type of types; track type) {\n <option [value]=\"type\">{{ type }}</option>\n }\n </select>\n </label>\n <label>Title <input formControlName=\"title\"></label>\n <label>Content <textarea formControlName=\"content\" rows=\"4\"></textarea></label>\n <label>Image key / URL (dialog only) <input formControlName=\"imageKey\"></label>\n <label>Button text <input formControlName=\"buttonText\"></label>\n <label>Button URL <input formControlName=\"buttonUrl\" placeholder=\"/shop or https://example.com\"></label>\n <label>Delay (seconds) <input type=\"number\" formControlName=\"delaySeconds\" min=\"0\" max=\"2147483\" step=\"any\" required></label>\n <label>Display on paths\n <textarea formControlName=\"displayOnPaths\" rows=\"3\" placeholder=\"/shop/*\"></textarea>\n </label>\n <label>Exclude paths\n <textarea formControlName=\"excludePaths\" rows=\"3\" placeholder=\"/checkout\"></textarea>\n </label>\n <p>One path per line. Exact paths or a trailing * prefix. Empty display paths means all pages.</p>\n <label>Start (local time) <input type=\"datetime-local\" formControlName=\"startAt\"></label>\n <label>End (local time) <input type=\"datetime-local\" formControlName=\"endAt\"></label>\n <label>Maximum displays per visitor (empty = unlimited)\n <input type=\"number\" formControlName=\"maxDisplaysPerVisitor\" min=\"1\" step=\"1\">\n </label>\n <label class=\"checkbox\"><input type=\"checkbox\" formControlName=\"oncePerSession\"> Once per session</label>\n </fieldset>\n </mat-dialog-content>\n <mat-dialog-actions align=\"end\">\n <button mat-button type=\"button\" [disabled]=\"busy()\" (click)=\"close()\">Cancel</button>\n <button mat-flat-button type=\"submit\" [disabled]=\"busy()\">{{ busy() ? 'Saving...' : 'Save' }}</button>\n </mat-dialog-actions>\n</form>\n","//#region imports\nimport { ChangeDetectionStrategy, Component, DestroyRef, ViewChild, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonConfirmDialogComponent, TaonDatatableComponent } from '@taon-dev/ui/websql-prod';\nimport { finalize } from 'rxjs';\n\nimport { TaonMarketingPopupApiService } from '../taon-marketing-popup.api.service';\nimport type { TaonMarketingPopupEntity } from '../taon-marketing-popup.entity';\nimport { TaonMarketingPopupEditorComponent } from './taon-marketing-popup-editor.component';\n//#endregion\n\n@Component({\n selector: 'app-taon-marketing-popup-backoffice',\n templateUrl: './taon-marketing-popup-backoffice.component.html',\n styleUrls: ['./taon-marketing-popup-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TaonDatatableComponent],\n providers: [TaonMarketingPopupApiService],\n})\nexport class TaonMarketingPopupBackofficeComponent {\n @ViewChild(TaonDatatableComponent)\n readonly datatable!: TaonDatatableComponent;\n\n private readonly api = inject(TaonMarketingPopupApiService);\n private readonly dialog = inject(MatDialog);\n private readonly destroyRef = inject(DestroyRef);\n\n readonly error = signal('');\n readonly busy = signal(false);\n readonly crud = this.api.taonMarketingPopupController;\n readonly columns: MtxGridColumn[] = [\n { header: 'ID', field: 'id', sortable: true },\n { header: 'Name', field: 'name', sortable: true },\n { header: 'Type', field: 'type', sortable: true },\n { header: 'Enabled', field: 'enabled', sortable: true },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon', icon: 'edit', tooltip: 'Edit popup',\n disabled: () => this.busy(),\n click: (popup: TaonMarketingPopupEntity) => this.edit(popup),\n },\n {\n type: 'icon', icon: 'power_settings_new', tooltip: 'Enable / disable popup',\n disabled: () => this.busy(),\n click: (popup: TaonMarketingPopupEntity) => this.toggle(popup),\n },\n {\n type: 'icon', icon: 'delete', tooltip: 'Delete popup',\n disabled: () => this.busy(),\n click: (popup: TaonMarketingPopupEntity) => this.delete(popup),\n },\n ],\n },\n ];\n\n ngAfterViewInit(): void {\n this.datatable.reload();\n }\n\n edit(popup?: TaonMarketingPopupEntity): void {\n const ref = this.dialog.open(TaonMarketingPopupEditorComponent, {\n data: popup ?? null,\n width: '640px',\n maxWidth: '95vw',\n disableClose: true,\n });\n ref.afterClosed().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(saved => {\n if (saved) {\n this.datatable.reload();\n }\n });\n }\n\n toggle(popup: TaonMarketingPopupEntity): void {\n this.busy.set(true);\n this.error.set('');\n this.api.setEnabled(popup.id, !popup.enabled).pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n ).subscribe({\n next: () => this.datatable.reload(),\n error: (error: unknown) => this.reportError('The popup could not be updated.', error),\n });\n }\n\n delete(popup: TaonMarketingPopupEntity): void {\n this.busy.set(true);\n const ref = this.dialog.open(TaonConfirmDialogComponent, {\n data: {\n title: 'Delete popup?',\n message: `Permanently delete \"${popup.name}\"?`,\n confirmText: 'Delete',\n },\n });\n ref.afterClosed().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(confirmed => {\n if (!confirmed) {\n this.busy.set(false);\n return;\n }\n this.error.set('');\n this.api.deletePopup(popup.id).pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n ).subscribe({\n next: () => this.datatable.reload(),\n error: (error: unknown) => this.reportError('The popup could not be deleted.', error),\n });\n });\n }\n\n private reportError(message: string, error: unknown): void {\n console.error('[taon-marketing-popup-backoffice]', message, error);\n this.error.set(message);\n }\n}","<h1>Popups</h1>\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'name', 'type', 'enabled']\"\n searchMode=\"advanced\"\n (addingItem)=\"edit()\">\n</taon-datatable>","//namespace TaonMarketingPopupBackofficeModels\n\n//end of namespace TaonMarketingPopupBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql-prod';\n//#endregion\n\nexport const TaonMarketingPopupBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-marketing-popup-backoffice.component').then(m => m.TaonMarketingPopupBackofficeComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonMarketingPopupBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonMarketingPopupBackofficeRoutes;","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n//#endregion\n\n@Component({\n selector: 'app-taon-marketing-promo-backoffice',\n templateUrl: './taon-marketing-promo-backoffice.component.html',\n styleUrls: ['./taon-marketing-promo-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonMarketingPromoBackofficeComponent {}","<router-outlet></router-outlet>\n<h1>Promotions</h1>\n<p>Reserved for campaigns and promotion presentation. Coupons and discount logic belong to ecommerce.</p>","//namespace TaonMarketingPromoBackofficeModels\n\n//end of namespace TaonMarketingPromoBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql-prod';\n//#endregion\n\nexport const TaonMarketingPromoBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-marketing-promo-backoffice.component').then(m => m.TaonMarketingPromoBackofficeComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonMarketingPromoBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonMarketingPromoBackofficeRoutes;","// @ts-nocheck\n// This file is auto-generated during init process. Do not modify.\n// This disable this auto generate file.\n// set property \"shouldGenerateAutogenIndexFile: false\" \n// in taon.jsonc of your project. \nexport * from './build-info._auto-generated_'; \nexport * from './my-organization-proj'; \nexport * from './start-cli'; \nexport * from './taon-marketing.abstract.context'; \nexport * from './taon-marketing-ab/taon-marketing-ab.abstract.context'; \nexport * from './taon-marketing-ab/taon-marketing-ab.api.service'; // @browser\nexport * from './taon-marketing-ab/taon-marketing-ab.config.service'; // @browser\nexport * from './taon-marketing-ab/taon-marketing-ab.constants'; \nexport * from './taon-marketing-ab/taon-marketing-ab.controller'; \nexport * from './taon-marketing-ab/taon-marketing-ab.entity'; \nexport * from './taon-marketing-ab/taon-marketing-ab.kv.repository'; \nexport * from './taon-marketing-ab/taon-marketing-ab.middleware'; \nexport * from './taon-marketing-ab/taon-marketing-ab.models'; \nexport * from './taon-marketing-ab/taon-marketing-ab.provider'; \nexport * from './taon-marketing-ab/taon-marketing-ab.repository'; \nexport * from './taon-marketing-ab/taon-marketing-ab.subscriber'; \nexport * from './taon-marketing-ab/taon-marketing-ab.utils'; \nexport * from './taon-marketing-ab/taon-marketing-ab.validators'; \nexport * from './taon-marketing-backoffice/taon-marketing-backoffice.component'; // @browser\nexport * from './taon-marketing-backoffice/taon-marketing-backoffice.models'; \nexport * from './taon-marketing-backoffice/taon-marketing-backoffice.routes'; // @browser\nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.abstract.context'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.api.service'; // @browser\nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.config.service'; // @browser\nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.constants'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.controller'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.entity'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.kv.repository'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.middleware'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.models'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.provider'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.repository'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.subscriber'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.utils'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.validators'; \nexport * from './taon-marketing-popup/taon-marketing-popup-content.component'; // @browser\nexport * from './taon-marketing-popup/taon-marketing-popup.abstract.context'; \nexport * from './taon-marketing-popup/taon-marketing-popup.api.service'; // @browser\nexport * from './taon-marketing-popup/taon-marketing-popup.config.service'; // @browser\nexport * from './taon-marketing-popup/taon-marketing-popup.constants'; \nexport * from './taon-marketing-popup/taon-marketing-popup.controller'; \nexport * from './taon-marketing-popup/taon-marketing-popup.entity'; \nexport * from './taon-marketing-popup/taon-marketing-popup.kv.repository'; \nexport * from './taon-marketing-popup/taon-marketing-popup.middleware'; \nexport * from './taon-marketing-popup/taon-marketing-popup.models'; \nexport * from './taon-marketing-popup/taon-marketing-popup.provider'; \nexport * from './taon-marketing-popup/taon-marketing-popup.repository'; \nexport * from './taon-marketing-popup/taon-marketing-popup.subscriber'; \nexport * from './taon-marketing-popup/taon-marketing-popup.utils'; \nexport * from './taon-marketing-popup/taon-marketing-popup.validation'; \nexport * from './taon-marketing-popup/taon-marketing-popup.validators'; \nexport * from './taon-marketing-popup/taon-marketing-popups.component'; // @browser\nexport * from './taon-marketing-promo/taon-marketing-promo.abstract.context'; \nexport * from './taon-marketing-promo/taon-marketing-promo.api.service'; // @browser\nexport * from './taon-marketing-promo/taon-marketing-promo.config.service'; // @browser\nexport * from './taon-marketing-promo/taon-marketing-promo.constants'; \nexport * from './taon-marketing-promo/taon-marketing-promo.controller'; \nexport * from './taon-marketing-promo/taon-marketing-promo.entity'; \nexport * from './taon-marketing-promo/taon-marketing-promo.kv.repository'; \nexport * from './taon-marketing-promo/taon-marketing-promo.middleware'; \nexport * from './taon-marketing-promo/taon-marketing-promo.models'; \nexport * from './taon-marketing-promo/taon-marketing-promo.provider'; \nexport * from './taon-marketing-promo/taon-marketing-promo.repository'; \nexport * from './taon-marketing-promo/taon-marketing-promo.subscriber'; \nexport * from './taon-marketing-promo/taon-marketing-promo.utils'; \nexport * from './taon-marketing-promo/taon-marketing-promo.validators'; \nexport * from './taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.component'; // @browser\nexport * from './taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.models'; \nexport * from './taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.routes'; // @browser\nexport * from './taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.component'; // @browser\nexport * from './taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.models'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.routes'; // @browser\nexport * from './taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.component'; // @browser\nexport * from './taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.models'; \nexport * from './taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.routes'; // @browser\nexport * from './taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-editor.component'; // @browser\nexport * from './taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.component'; // @browser\nexport * from './taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.models'; \nexport * from './taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.routes'; // @browser","export * from './migrations';\n/* */ \nexport * from './index._auto-generated_';\nexport * from './my-organization-proj';\n/* */ \nexport * from './taon-marketing-popup/taon-marketing-popups.component'; // @browser\nexport default {};","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["MIGRATIONS_CLASSES_FOR_MarketingContext","generatedMigrations","t"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAUA;AAIO,IAAM,sCAAsC,GAA5C,MAAM,sCAAuC,SAAQ,iBAAiB,CAAA;;;;;IAM3E,MAAM,EAAE,CAAC,WAAwB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+BjC;;;IAIA,MAAM,IAAI,CAAC,WAAwB,EAAA;;;;;;;;;;;IAYnC;CAED;AAvDY,sCAAsC,GAAA,UAAA,CAAA;AAHlD,IAAA,aAAa,CAAC;AACb,QAAA,SAAS,EAAE,wCAAwC;KACpD;AACY,CAAA,EAAA,sCAAsC,CAuDlD;AACD;;ICtEY;AAAZ,CAAA,UAAY,sBAAsB,EAAA;AAChC,IAAA,sBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,sBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACnB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,GAAA,EAAA,CAAA,CAAA;;ACMlC;AAMO,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,sBAAgD,CAAA;AAAvF,IAAA,WAAA,GAAA;;;QAIL,IAAA,CAAA,IAAI,GAAW,EAAE;;QAKjB,IAAA,CAAA,OAAO,GAAY,KAAK;;AAKxB,QAAA,IAAA,CAAA,IAAI,GAA2B,sBAAsB,CAAC,MAAM;;QAK5D,IAAA,CAAA,KAAK,GAAkB,IAAI;;QAK3B,IAAA,CAAA,OAAO,GAAkB,IAAI;;QAK7B,IAAA,CAAA,QAAQ,GAAkB,IAAI;;QAK9B,IAAA,CAAA,UAAU,GAAkB,IAAI;;QAKhC,IAAA,CAAA,SAAS,GAAkB,IAAI;;QAK/B,IAAA,CAAA,YAAY,GAAW,CAAC;;QAKxB,IAAA,CAAA,cAAc,GAAoB,IAAI;;QAKtC,IAAA,CAAA,YAAY,GAAoB,IAAI;;QAKpC,IAAA,CAAA,OAAO,GAAgB,IAAI;;QAK3B,IAAA,CAAA,KAAK,GAAgB,IAAI;;QAKzB,IAAA,CAAA,qBAAqB,GAAkB,IAAI;;QAK3C,IAAA,CAAA,cAAc,GAAY,IAAI;IAWhC;;AAjFE,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;;;;AAEnC,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAKlB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;;;;AAElB,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAKzB,UAAA,CAAA;AAFC,IAAA,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,sBAAsB,CAAC,MAAM,EAAE;;;;AAEN,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAK7D,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEf,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAK5B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEV,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAK9B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEZ,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAK/B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEV,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA;AAKjC,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEX,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAKhC,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE;;;;AAEZ,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA;AAKzB,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAER,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,KAAA,CAAA,CAAA;AAKvC,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEV,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA;AAKrC,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;;;8BAEnC,IAAI;AAAe,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAK5B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;;;8BAErC,IAAI;AAAe,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAK1B,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;;;;AAEC,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,uBAAA,EAAA,KAAA,CAAA,CAAA;AAK5C,UAAA,CAAA;IAFC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;;;;AAEX,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,KAAA,CAAA,CAAA;AAK/B,UAAA,CAAA;AAFC,IAAA,gBAAgB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;;;8BAE3B,IAAI;AAAC,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAKhB,UAAA,CAAA;AAFC,IAAA,gBAAgB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE;;;8BAE3B,IAAI;AAAC,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AApFL,wBAAwB,GAAA,UAAA,CAAA;AAJpC,IAAA,UAAU,CAA2B;AACpC,QAAA,SAAS,EAAE,0BAA0B;AACrC,QAAA,WAAW,EAAE,IAAI;KAClB;AACY,CAAA,EAAA,wBAAwB,CAqFpC;;AC/FD;AAEQ,SAAU,qCAAqC,CACnD,KAA+B,EAC/B,GAAG,GAAG,IAAI,IAAI,EAAE,EAAA;IAEhB,OAAO,KAAK,CAAC,OAAO;SACjB,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;SACrE,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;AACtE;AAEM,SAAU,wCAAwC,CAAC,OAAe,EAAE,IAAY,EAAA;AACpF,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,IAAA,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG;AACzB,UAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,UAAE,QAAQ,KAAK,OAAO;AAC1B;AAEM,SAAU,0CAA0C,CAAC,KAAa,EAAA;AACtE,IAAA,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;AACvC;AAEM,SAAU,uCAAuC,CAAC,KAA+B,EAAE,IAAY,EAAA;AACnG,IAAA,OAAO,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM;AACnC,QAAA,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,IAAI,wCAAwC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC7F,QAAA,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,IAAI,wCAAwC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACjG;AAEM,SAAU,sCAAsC,CAAC,KAAa,EAAA;AAClE,IAAA,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7C,SAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjE;AAEF;;SC7BgB,UAAU,CAAC,OAAe,EAAE,MAAM,GAAG,GAAG,EAAA;AACtD,IAAA,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACpC,IAAA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;AAC1B;AAEM,SAAU,cAAc,CAAC,EAAU,EAAA;AACvC,IAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;QACxC,UAAU,CAAC,sCAAsC,CAAC;IACpD;AACF;AAEM,SAAU,aAAa,CAAC,KAA+B,EAAA;AAC3D,IAAA,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC/D,UAAU,CAAC,0BAA0B,CAAC;IACxC;IACA,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE;QACnF,UAAU,CAAC,sDAAsD,CAAC;IACpE;AACA,IAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QAC/D,UAAU,CAAC,sCAAsC,CAAC;IACpD;AACA,IAAA,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE;QACnF,UAAU,CAAC,8CAA8C,CAAC;IAC5D;AACA,IAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC;AAC9D,QAAA,KAAK,CAAC,YAAY,GAAG,OAAO,EAAE;QAChC,UAAU,CAAC,8CAA8C,CAAC;IAC5D;AACA,IAAA,IAAI,KAAK,CAAC,qBAAqB,KAAK,IAAI;AACpC,SAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,CAAC,EAAE;QAC3F,UAAU,CAAC,sDAAsD,CAAC;IACpE;AACA,IAAA,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAU,EAAE;AACxF,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;AAC7D,YAAA,UAAU,CAAC,CAAA,EAAG,KAAK,CAAA,0BAAA,CAA4B,CAAC;QAClD;IACF;AACA,IAAA,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,sCAAsC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QAC/E,UAAU,CAAC,4DAA4D,CAAC;IAC1E;IACA,KAAK,MAAM,KAAK,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAU,EAAE;AAC/D,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAC7D,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,0CAA0C,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACjF,YAAA,UAAU,CAAC,CAAA,EAAG,KAAK,CAAA,gEAAA,CAAkE,CAAC;QACxF;IACF;IACA,KAAK,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,OAAO,CAAU,EAAE;AACjD,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,IAAI,KAAK,IAAI,KAAK,EAAE,IAAI,YAAY,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC;AACrE,YAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE;AAC/C,YAAA,UAAU,CAAC,CAAA,EAAG,KAAK,CAAA,8BAAA,CAAgC,CAAC;QACtD;IACF;AACA,IAAA,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK;QAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE;QACvE,UAAU,CAAC,uCAAuC,CAAC;IACrD;AACF;;AC1DA;AAKO,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,kBAA4C,CAAA;AAAvF,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAA0C,MAAM,wBAAwB;IAmE9F;AAjEE,IAAA,MAAM,YAAY,GAAA;;QAEhB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;AAClF,QAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE;AACtB,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,qCAAqC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;;IAElF;AAEA,IAAA,MAAM,SAAS,CAAC,KAA+B,EAAE,EAAW,EAAA;;QAE1D,aAAa,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,EAAE,KAAK,SAAS,EAAE;YACpB,cAAc,CAAC,EAAE,CAAC;QACpB;AACA,QAAA,MAAM,KAAK,GAAG,EAAE,KAAK;AACnB,cAAE,IAAI,CAAC,IAAI,CAAC,MAAM;AAClB,cAAE,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,UAAU,CAAC,sBAAsB,EAAE,GAAG,CAAC;QACzC;AACA,QAAA,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;AACnB,YAAA,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;YACvB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,YAAY,EAAE,KAAK,CAAC,YAAY;AAChC,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAChE,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC1D,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;YAClD,cAAc,EAAE,KAAK,CAAC,cAAc;AACrC,SAAA,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;IAE9B;AAEA,IAAA,MAAM,UAAU,CAAC,EAAU,EAAE,OAAgB,EAAA;;QAE3C,cAAc,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE;YAChC,UAAU,CAAC,4BAA4B,CAAC;QAC1C;AACA,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;QAC/C,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,UAAU,CAAC,sBAAsB,EAAE,GAAG,CAAC;QACzC;AACA,QAAA,KAAK,CAAC,OAAO,GAAG,OAAO;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;IAE9B;IAEA,MAAM,WAAW,CAAC,EAAU,EAAA;;QAE1B,cAAc,CAAC,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACpB,YAAA,UAAU,CAAC,sBAAsB,EAAE,GAAG,CAAC;QACzC;;IAEF;;AAnEW,4BAA4B,GAAA,UAAA,CAAA;AAHxC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,8BAA8B;KAC1C;AACY,CAAA,EAAA,4BAA4B,CAoExC;;ACtEM,IAAM,kDAAkD,GAAxD,MAAM,kDAAmD,SAAQ,iBAAiB,CAAA;AAAlF,IAAA,WAAA,GAAA;;AACY,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,CAAC;IA0E/E;IAxEE,MAAM,EAAE,CAAC,WAAwB,EAAA;;AAE/B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;AAChF,QAAA,MAAM,WAAW,CAAC,gBAAgB,EAAE;AACpC,QAAA,IAAI;YACF,IAAI,KAAK,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YACnD,IAAI,CAAC,KAAK,EAAE;AACV,gBAAA,MAAM,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC;YACvC;iBAAO;AACL,gBAAA,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO;AACrC,gBAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAC1C,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CACjE;AACD,gBAAA,IAAI,OAAO,CAAC,MAAM,EAAE;oBAClB,MAAM,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC;gBAC9C;YACF;YACA,KAAK,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/C,YAAA,MAAM,MAAM,GAAG,CAAC,IAAY,KAAK,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAC3E,YAAA,IAAI,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE;gBAChE,MAAM,WAAW,CAAC,KAAK,CACrB,UAAU,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,KAAA,EAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC;mBACrE,MAAM,CAAC,MAAM,CAAC,CAAA,UAAA,EAAa,MAAM,CAAC,aAAa,CAAC,CAAA,MAAA,CAAQ,CAClE;YACH;YACA,MAAM,WAAW,CAAC,KAAK,CACrB,UAAU,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAA,iBAAA,EAAoB,MAAM,CAAC,MAAM,CAAC,CAAA,KAAA,CAAO,CAC7F;AACD,YAAA,MAAM,WAAW,CAAC,iBAAiB,EAAE;QACvC;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,OAAO,CAAC,KAAK,CAAC,wDAAwD,EAAE,KAAK,CAAC;AAC9E,YAAA,MAAM,WAAW,CAAC,mBAAmB,EAAE;AACvC,YAAA,MAAM,KAAK;QACb;gBAAU;AACR,YAAA,MAAM,WAAW,CAAC,OAAO,EAAE;QAC7B;IACF;IAEA,MAAM,IAAI,CAAC,WAAwB,EAAA;AACjC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;AAChF,QAAA,MAAM,WAAW,CAAC,gBAAgB,EAAE;AACpC,QAAA,IAAI;YACF,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YACrD,IAAI,CAAC,KAAK,EAAE;AACV,gBAAA,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC;YACrF;AACA,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE;gBAChE,MAAM,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,WAAW,CAAC;AACjD,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,OAAO,EAAE,IAAI;AACd,iBAAA,CAAC,CAAC;YACL;AACA,YAAA,MAAM,MAAM,GAAG,CAAC,IAAY,KAAK,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YAC3E,MAAM,WAAW,CAAC,KAAK,CACrB,UAAU,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,aAAa,CAAC,CAAA,GAAA,EAAM,MAAM,CAAC,MAAM,CAAC,CAAA,CAAE,CACjF;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAC/C,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,gBAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAC9D;YACD,MAAM,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC;AACxD,YAAA,MAAM,WAAW,CAAC,iBAAiB,EAAE;QACvC;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,OAAO,CAAC,KAAK,CAAC,qDAAqD,EAAE,KAAK,CAAC;AAC3E,YAAA,MAAM,WAAW,CAAC,mBAAmB,EAAE;AACvC,YAAA,MAAM,KAAK;QACb;gBAAU;AACR,YAAA,MAAM,WAAW,CAAC,OAAO,EAAE;QAC7B;IACF;;AA1EW,kDAAkD,GAAA,UAAA,CAAA;AAH9D,IAAA,aAAa,CAAC;AACb,QAAA,SAAS,EAAE,oDAAoD;KAChE;AACY,CAAA,EAAA,kDAAkD,CA2E9D;;ACpFD;AAGA;AACO,MAAMA,yCAAuC,GAAG;AACrD,8BAA0B,sCAAsC;AAChE,8BAA0B,kDAAkD;CAC7E;AACD;;ACHO,MAAM,uCAAuC,GAAG;AACrD,IAAA,GAAGC,yCAAmB;;;ACNxB;AACA;;AAEG;AACI,MAAM,wBAAwB,GAAG;AACxC;;AAEG;AACI,MAAM,MAAM,GAAG;AACtB;;AAEG;AACI,MAAM,eAAe,GAAG;AAC/B;;AAEG;AACI,MAAM,gBAAgB,GAAG;AAChC;;AAEG;AACI,MAAM,4BAA4B,GAAG;AAC5C;;AAEG;AACI,MAAM,uBAAuB,GAAG;AAMvC;;AC3BA,MAAMC,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,iCAAiC,EAAE,EAAC,iCAAiC,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,8EAAgD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,8EAAgD,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;SAEpR,SAAS,GAAA;AACvB,IAAAA,GAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;AAC1C;;ACPA;AAGA;AACA;AAEA;AACA;;;;;AAKG;AACH,MAAM,OAAQ,SAAQ,sBAA0B,CAAA;AAC9C;;AAEG;IACI,CAAC,GAAA;AACN,QAAA,OAAO,CAAC,GAAG,CAAC,CAAA,oBAAA,CAAsB,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE;IACd;AAEA;;;AAGG;IACH,uBAAuB,GAAA;AACrB,QAAA,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC;AAChD,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACf;AACD;AACD;AAEA;AACA;;AAEG;AACH,MAAM,QAAS,SAAQ,sBAErB,CAAA;AACA;;AAEG;IACI,CAAC,GAAA;AACN,QAAA,OAAO,CAAC,GAAG,CAAC,CAAA,iCAAA,CAAmC,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE;IACd;AAEA;;AAEG;IACI,kBAAkB,GAAA;AACvB,QAAA,MAAM,GAAG,GAAG,uBAAuB,CACjC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,EACpC,SAAS,EACT;AACE,YAAA,YAAY,EAAE,eAAe;AAC9B,SAAA,CACF;AACD,QAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAA,CAAE,CAAC;AAC9C,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACf;AACD;AACD;AAEA;;;;AAIG;AACI,eAAe,QAAQ,CAC5B,KAAe,EACf,QAAgB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BhB,IAAA,QAAQ,KAAK,CAAC;AAChB;;ACnGA,MAAMA,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,0DAA0D,EAAE,EAAC,0DAA0D,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,qFAAuD,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,qFAAuD,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;AAE7V,MAAM,6BAA6B,GAAG;AAC3C,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;IAGA;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,gCAAA,CAAA,GAAA,gCAAiE;AACnE,CAAC,EAFW,qBAAqB,KAArB,qBAAqB,GAAA,EAAA,CAAA,CAAA;AAI1B,MAAM,kCAAkC,GAAG,IAAI,GAAG,CAAC;IACxD,CAAC,qBAAqB,CAAC,8BAA8B,EAAEA,GAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AACtF,CAAA;;ACbD;AAWO,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,sBAA6C,CAAA;;AAQtF,UAAA,CAAA;AANC,IAAA,YAAY,CAAC;AACZ,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,6BAA6B,CAAC,WAAW;KACnD;;;;AAEoB,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AARV,qBAAqB,GAAA,UAAA,CAAA;AATjC,IAAA,UAAU,CAAwB;AACjC,QAAA,SAAS,EAAE,uBAAuB;AAClC,QAAA,WAAW,EAAE,IAAI;;;;;;KAMlB;AACY,CAAA,EAAA,qBAAqB,CASjC;;ACpBD;AAKO,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,kBAAyC,CAAA;AAAjF,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAAuC,MAAM,qBAAqB;IAexF;AAbE;;AAEG;AACH,IAAA,MAAM,sBAAsB,GAAA;;AAE1B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;AAC9B,YAAA,KAAK,EAAE;gBACL,EAAE,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,CAAC;AACrC,aAAA;AACF,SAAA,CAAC;AACF,QAAA,OAAO,MAAM;;IAEf;;AAfW,yBAAyB,GAAA,UAAA,CAAA;AAHrC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,2BAA2B;KACvC;AACY,CAAA,EAAA,yBAAyB,CAgBrC;;;ACpBD;AAMO,IAAM,yBAAyB,GAAA,2BAAA,GAA/B,MAAM,yBAA0B,SAAQ,sBAM9C,CAAA;AANM,IAAA,WAAA,GAAA;;AAOL,QAAA,IAAA,CAAA,oBAAoB,GAAuC,MAAM,qBAAqB;AAErE,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC;;IAqB/F;;AAlBE;;AAEG;AAEH,IAAA,SAAS,CAAoB,QAAgB,EAAA;;AAE3C,QAAA,OAAO,OAAO,GAAG,EAAE,GAAG,KAAI;YACxB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;YAC3C,MAAM,oBAAoB,GACxB,MAAM,IAAI,CAAC,yBAAyB,CAAC,sBAAsB,EAAE;YAC/D,OAAO,CAAA,MAAA,EAAS,QAAQ,IAAI,OAAO,SAAS,yBAAyB,CAAC,2BAAyB,CAAC;sBAChF,aAAa,CAAA;QAC3B,oBAAoB,CAAA;OACrB;AACH,QAAA,CAAC;;IAEH;;AAZA,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACK,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,UAAU,CAAC,CAAA;;;;AAY3B,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA;AA5BU,yBAAyB,GAAA,2BAAA,GAAA,UAAA,CAAA;AAJrC,IAAA,cAAc,CAA4B;AACzC,QAAA,SAAS,EAAE,2BAA2B;;KAEvC;AACY,CAAA,EAAA,yBAAyB,CA8BrC;;ACvCD;AAEM,MAAO,yBAA0B,SAAQ,aAAa,CAAA;AAE3D;AAKM,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,gBAAgB,CAAA;AAAtD,IAAA,WAAA,GAAA;;QACL,IAAA,CAAA,4BAA4B,GAAY,IAAI;AAC5C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,yBAAyB,EAAE;IAO1C;IANE,KAAK,GAAA;QACH,OAAO;YACL,4BAA4B,EAAE,IAAI,CAAC,4BAA4B;AAC/D,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;SAC5B;IACH;;AARW,uBAAuB,GAAA,UAAA,CAAA;AAHnC,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,yBAAyB;KACrC;AACY,CAAA,EAAA,uBAAuB,CASnC;;ACrBD;AAQA;AACA;AACA;MAEa,8BAA8B,GAAG,aAAa,CAAC,OAAO;AACjE,IAAA,WAAW,EAAE,gCAAgC;AAC7C,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,qBAAqB,EAAE;IACnC,WAAW,EAAE,EAAE,yBAAyB,EAAE;AAC1C,IAAA,YAAY,EAAE;;QAEZ,yBAAyB;AAC1B,KAAA;IACD,SAAS,EAAE,EAAE,uBAAuB,EAAE;;;AAGvC,CAAA,CAAC;;ACrBF,MAAMA,GAAC,GAAG,WAAW,CAAC,GAAG,CAAC,0EAA0E,EAAE,EAAC,0EAA0E,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,6FAA+D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,6FAA+D,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;AAE7Y,MAAM,qCAAqC,GAAG;AACnD,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;IAGA;AAAZ,CAAA,UAAY,6BAA6B,EAAA;AACvC,IAAA,6BAAA,CAAA,gCAAA,CAAA,GAAA,gCAAiE;AACnE,CAAC,EAFW,6BAA6B,KAA7B,6BAA6B,GAAA,EAAA,CAAA,CAAA;AAIlC,MAAM,0CAA0C,GAAG,IAAI,GAAG,CAAC;IAChE,CAAC,6BAA6B,CAAC,8BAA8B,EAAEA,GAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC9F,CAAA;;ACbD;AAWO,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,sBAAqD,CAAA;;AAQtG,UAAA,CAAA;AANC,IAAA,YAAY,CAAC;AACZ,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,qCAAqC,CAAC,WAAW;KAC3D;;;;AAEoB,CAAA,EAAA,6BAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AARV,6BAA6B,GAAA,UAAA,CAAA;AATzC,IAAA,UAAU,CAAgC;AACzC,QAAA,SAAS,EAAE,+BAA+B;AAC1C,QAAA,WAAW,EAAE,IAAI;;;;;;KAMlB;AACY,CAAA,EAAA,6BAA6B,CASzC;;ACpBD;AAKO,IAAM,iCAAiC,GAAvC,MAAM,iCAAkC,SAAQ,kBAAiD,CAAA;AAAjG,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAA+C,MAAM,6BAA6B;IAexG;AAbE;;AAEG;AACH,IAAA,MAAM,sBAAsB,GAAA;;AAE1B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;AAC9B,YAAA,KAAK,EAAE;gBACL,EAAE,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,CAAC;AACrC,aAAA;AACF,SAAA,CAAC;AACF,QAAA,OAAO,MAAM;;IAEf;;AAfW,iCAAiC,GAAA,UAAA,CAAA;AAH7C,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,mCAAmC;KAC/C;AACY,CAAA,EAAA,iCAAiC,CAgB7C;;;ACpBD;AAMO,IAAM,iCAAiC,GAAA,mCAAA,GAAvC,MAAM,iCAAkC,SAAQ,sBAMtD,CAAA;AANM,IAAA,WAAA,GAAA;;AAOL,QAAA,IAAA,CAAA,oBAAoB,GAA+C,MAAM,6BAA6B;AAErF,QAAA,IAAA,CAAA,iCAAiC,GAAG,IAAI,CAAC,gBAAgB,CAAC,iCAAiC,CAAC;;IAqB/G;;AAlBE;;AAEG;AAEH,IAAA,SAAS,CAAoB,QAAgB,EAAA;;AAE3C,QAAA,OAAO,OAAO,GAAG,EAAE,GAAG,KAAI;YACxB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;YAC3C,MAAM,oBAAoB,GACxB,MAAM,IAAI,CAAC,iCAAiC,CAAC,sBAAsB,EAAE;YACvE,OAAO,CAAA,MAAA,EAAS,QAAQ,IAAI,OAAO,SAAS,yBAAyB,CAAC,mCAAiC,CAAC;sBACxF,aAAa,CAAA;QAC3B,oBAAoB,CAAA;OACrB;AACH,QAAA,CAAC;;IAEH;;AAZA,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACK,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,UAAU,CAAC,CAAA;;;;AAY3B,CAAA,EAAA,iCAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA;AA5BU,iCAAiC,GAAA,mCAAA,GAAA,UAAA,CAAA;AAJ7C,IAAA,cAAc,CAAoC;AACjD,QAAA,SAAS,EAAE,mCAAmC;;KAE/C;AACY,CAAA,EAAA,iCAAiC,CA8B7C;;ACvCD;AAEM,MAAO,iCAAkC,SAAQ,aAAa,CAAA;AAEnE;AAKM,IAAM,+BAA+B,GAArC,MAAM,+BAAgC,SAAQ,gBAAgB,CAAA;AAA9D,IAAA,WAAA,GAAA;;QACL,IAAA,CAAA,oCAAoC,GAAY,IAAI;AACpD,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,iCAAiC,EAAE;IAOlD;IANE,KAAK,GAAA;QACH,OAAO;YACL,oCAAoC,EAAE,IAAI,CAAC,oCAAoC;AAC/E,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;SAC5B;IACH;;AARW,+BAA+B,GAAA,UAAA,CAAA;AAH3C,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,iCAAiC;KAC7C;AACY,CAAA,EAAA,+BAA+B,CAS3C;;ACrBD;AAQA;AACA;AACA;MAEa,sCAAsC,GAAG,aAAa,CAAC,OAAO;AACzE,IAAA,WAAW,EAAE,wCAAwC;AACrD,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,6BAA6B,EAAE;IAC3C,WAAW,EAAE,EAAE,iCAAiC,EAAE;AAClD,IAAA,YAAY,EAAE;;QAEZ,iCAAiC;AAClC,KAAA;IACD,SAAS,EAAE,EAAE,+BAA+B,EAAE;;;AAG/C,CAAA,CAAC;;ACnBF;AASO,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,sBAMjD,CAAA;AANM,IAAA,WAAA,GAAA;;AAOL,QAAA,IAAA,CAAA,oBAAoB,GAA0C,MAAM,wBAAwB;AAE3E,QAAA,IAAA,CAAA,4BAA4B,GAAG,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,CAAC;IAmCrG;IAhCE,eAAe,GAAA;;QAEb,OAAO,YAAY,IAAI,CAAC,4BAA4B,CAAC,YAAY,EAAE;;IAErE;IAGA,SAAS,CACC,KAA+B,EAC1B,EAAW,EAAA;;AAGxB,QAAA,OAAO,YAAY,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;;IAE3E;IAGA,UAAU,CACK,EAAU,EACN,OAAgB,EAAA;;AAGjC,QAAA,OAAO,YAAY,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC;;IAE9E;AAGA,IAAA,WAAW,CAAc,EAAU,EAAA;;AAEjC,QAAA,OAAO,YAAY,IAAI,CAAC,4BAA4B,CAAC,WAAW,CAAC,EAAE,CAAC;;IAEtE;;AA/BA,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;;;;AAKL,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;IAEJ,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;AACN,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AAKb,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;AACX,IAAA,OAAA,CAAA,CAAA,EAAA,IAAI,CAAC,SAAS,CAAC,CAAA;;;;AAKjB,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;AADC,IAAA,MAAM,EAAE;AACI,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;AAIvB,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,aAAA,EAAA,IAAA,CAAA;AA3CU,4BAA4B,GAAA,UAAA,CAAA;AAPxC,IAAA,cAAc,CAA+B;AAC5C,QAAA,SAAS,EAAE,8BAA8B;AACzC,QAAA,cAAc,EAAE;AACd,YAAA,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB;YACvD,WAAW,EAAE,YAAY,EAAE,aAAa;AACzC,SAAA;KACF;AACY,CAAA,EAAA,4BAA4B,CA4CxC;;ACxDD;AAEM,MAAO,4BAA6B,SAAQ,aAAa,CAAA;AAE9D;AAKM,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,gBAAgB,CAAA;AAAzD,IAAA,WAAA,GAAA;;QACL,IAAA,CAAA,+BAA+B,GAAY,IAAI;AAC/C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,4BAA4B,EAAE;IAO7C;IANE,KAAK,GAAA;QACH,OAAO;YACL,+BAA+B,EAAE,IAAI,CAAC,+BAA+B;AACrE,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;SAC5B;IACH;;AARW,0BAA0B,GAAA,UAAA,CAAA;AAHtC,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,4BAA4B;KACxC;AACY,CAAA,EAAA,0BAA0B,CAStC;;ACrBD;AAQA;AACA;AACA;MAEa,iCAAiC,GAAG,aAAa,CAAC,OAAO;AACpE,IAAA,WAAW,EAAE,mCAAmC;AAChD,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,wBAAwB,EAAE;IACtC,WAAW,EAAE,EAAE,4BAA4B,EAAE;AAC7C,IAAA,YAAY,EAAE;;QAEZ,4BAA4B;AAC7B,KAAA;IACD,SAAS,EAAE,EAAE,0BAA0B,EAAE;;;AAG1C,CAAA,CAAC;;ACrBF,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,gEAAgE,EAAE,EAAC,gEAAgE,EAAC,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAA0D,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,YAAY,CAAC,MAAM,OAAO,wFAA0D,CAAC,EAAE,OAAO,EAAC,EAAQ,CAAC;AAE/W,MAAM,gCAAgC,GAAG;AAC9C,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;IAGA;AAAZ,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,gCAAA,CAAA,GAAA,gCAAiE;AACnE,CAAC,EAFW,wBAAwB,KAAxB,wBAAwB,GAAA,EAAA,CAAA,CAAA;AAI7B,MAAM,qCAAqC,GAAG,IAAI,GAAG,CAAC;IAC3D,CAAC,wBAAwB,CAAC,8BAA8B,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AACzF,CAAA;;ACbD;AAWO,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,sBAAgD,CAAA;;AAQ5F,UAAA,CAAA;AANC,IAAA,YAAY,CAAC;AACZ,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,gCAAgC,CAAC,WAAW;KACtD;;;;AAEoB,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AARV,wBAAwB,GAAA,UAAA,CAAA;AATpC,IAAA,UAAU,CAA2B;AACpC,QAAA,SAAS,EAAE,0BAA0B;AACrC,QAAA,WAAW,EAAE,IAAI;;;;;;KAMlB;AACY,CAAA,EAAA,wBAAwB,CASpC;;ACpBD;AAKO,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,kBAA4C,CAAA;AAAvF,IAAA,WAAA,GAAA;;AACL,QAAA,IAAA,CAAA,oBAAoB,GAA0C,MAAM,wBAAwB;IAe9F;AAbE;;AAEG;AACH,IAAA,MAAM,sBAAsB,GAAA;;AAE1B,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;AAC9B,YAAA,KAAK,EAAE;gBACL,EAAE,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,CAAC;AACrC,aAAA;AACF,SAAA,CAAC;AACF,QAAA,OAAO,MAAM;;IAEf;;AAfW,4BAA4B,GAAA,UAAA,CAAA;AAHxC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,8BAA8B;KAC1C;AACY,CAAA,EAAA,4BAA4B,CAgBxC;;;ACpBD;AAMO,IAAM,4BAA4B,GAAA,8BAAA,GAAlC,MAAM,4BAA6B,SAAQ,sBAMjD,CAAA;AANM,IAAA,WAAA,GAAA;;AAOL,QAAA,IAAA,CAAA,oBAAoB,GAA0C,MAAM,wBAAwB;AAE3E,QAAA,IAAA,CAAA,4BAA4B,GAAG,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,CAAC;;IAqBrG;;AAlBE;;AAEG;AAEH,IAAA,SAAS,CAAoB,QAAgB,EAAA;;AAE3C,QAAA,OAAO,OAAO,GAAG,EAAE,GAAG,KAAI;YACxB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;YAC3C,MAAM,oBAAoB,GACxB,MAAM,IAAI,CAAC,4BAA4B,CAAC,sBAAsB,EAAE;YAClE,OAAO,CAAA,MAAA,EAAS,QAAQ,IAAI,OAAO,SAAS,yBAAyB,CAAC,8BAA4B,CAAC;sBACnF,aAAa,CAAA;QAC3B,oBAAoB,CAAA;OACrB;AACH,QAAA,CAAC;;IAEH;;AAZA,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AACK,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,UAAU,CAAC,CAAA;;;;AAY3B,CAAA,EAAA,4BAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA;AA5BU,4BAA4B,GAAA,8BAAA,GAAA,UAAA,CAAA;AAJxC,IAAA,cAAc,CAA+B;AAC5C,QAAA,SAAS,EAAE,8BAA8B;;KAE1C;AACY,CAAA,EAAA,4BAA4B,CA8BxC;;ACvCD;AAEM,MAAO,4BAA6B,SAAQ,aAAa,CAAA;AAE9D;AAKM,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,gBAAgB,CAAA;AAAzD,IAAA,WAAA,GAAA;;QACL,IAAA,CAAA,+BAA+B,GAAY,IAAI;AAC/C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,4BAA4B,EAAE;IAO7C;IANE,KAAK,GAAA;QACH,OAAO;YACL,+BAA+B,EAAE,IAAI,CAAC,+BAA+B;AACrE,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;SAC5B;IACH;;AARW,0BAA0B,GAAA,UAAA,CAAA;AAHtC,IAAA,YAAY,CAAC;AACZ,QAAA,SAAS,EAAE,4BAA4B;KACxC;AACY,CAAA,EAAA,0BAA0B,CAStC;;ACrBD;AAQA;AACA;AACA;MAEa,iCAAiC,GAAG,aAAa,CAAC,OAAO;AACpE,IAAA,WAAW,EAAE,mCAAmC;AAChD,IAAA,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,eAAe,EAAE;IAC7B,QAAQ,EAAE,EAAE,wBAAwB,EAAE;IACtC,WAAW,EAAE,EAAE,4BAA4B,EAAE;AAC7C,IAAA,YAAY,EAAE;;QAEZ,4BAA4B;AAC7B,KAAA;IACD,SAAS,EAAE,EAAE,0BAA0B,EAAE;;;AAG1C,CAAA,CAAC;;MCjBW,4BAA4B,GAAG,aAAa,CAAC,OAAO;AAC/D,IAAA,WAAW,EAAE,8BAA8B;AAC3C,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE;QACR,sBAAsB;QAEtB,8BAA8B;QAC9B,sCAAsC;QACtC,iCAAiC;QACjC,iCAAiC;AAClC,KAAA;AACF,CAAA,CAAC;;ACnBF;AAQA;AAGM,MAAO,yBAA0B,SAAQ,sBAAsB,CAAA;AADrE,IAAA,WAAA,GAAA;;AAEkB,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC;AAa7F,IAAA;AAXC,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACvE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3B;IACH;AAEO,IAAA,UAAU,CAAC,IAAY,EAAA;QAC5B,OAAO,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAC9E,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAsB,CAAC,CACvC;IACH;8GAbW,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAzB,yBAAyB,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC;;;ACVD;AAOA;AAGM,MAAO,4BAA6B,SAAQ,sBAAsB,CAAA;AADxE,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC;AAU/E,IAAA;AARC,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,4BAA4B;IAClE;IAEA,KAAK,GAAA;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE;AACnD,QAAA,OAAO,MAAM;IACf;8GAVW,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA5B,4BAA4B,EAAA,CAAA,CAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC;;;ACDD;AAKO,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,oBAE/C,CAAA;IACA,MAAM,WAAW,CAAC,KAA8B,EAAA;AAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC;IAClC;;AALW,2BAA2B,GAAA,UAAA,CAAA;AAHvC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,6BAA6B;KACzC;AACY,CAAA,EAAA,2BAA2B,CAMvC;;AChBD;AAKO,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,kBAAkB,CAAA;;AAApD,yBAAyB,GAAA,UAAA,CAAA;AAHrC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,2BAA2B;KACvC;AACY,CAAA,EAAA,yBAAyB,CAA8B;;ACRpE;IAEc;AAAZ,CAAA,UAAY,+CAA+C,EAAA;AACzD,IAAA,+CAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,+CAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,+CAA+C,KAA/C,+CAA+C,GAAA,EAAA,CAAA,CAAA;AAK7D;;ACHA;AAMO,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,2BAA2B,CAAA;AAAnE,IAAA,WAAA,GAAA;;AACY,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC;IAIzF;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,qBAAqB;IAC9B;;AAJW,yBAAyB,GAAA,UAAA,CAAA;AAJrC,IAAA,cAAc,CAA4B;AACzC,QAAA,SAAS,EAAE,2BAA2B;;KAEvC;AACY,CAAA,EAAA,yBAAyB,CAKrC;;ACbD;AAEQ,SAAU,kCAAkC,CAAC,KAAa,EAAA;IAC9D,OAAO,KAAK,KAAK,QAAQ;AAC3B;AAEF;;ACLA;AAEE;AACA;;AAEG;AACI,MAAM,qDAAqD,GAAgB,CAChF,OAAwB,KACG;IAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACxC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAEpD,IAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,cAAc,EAAE;AAChC,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,OAAO,QAAQ,CAAC,KAAK,KAAK,cAAc,CAAC;AACvC,UAAE;UACA,EAAE,CAAC,qBAAqB,CAAC,8BAA8B,GAAG,IAAI,EAAE;AACtE;AACA;AAGF;;AC1BA;AAIA;MASa,gCAAgC,CAAA;8GAAhC,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb7C,iCAA+B,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDWR,YAAY,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEtB,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAP5C,SAAS;+BACE,+BAA+B,EAAA,eAAA,EAGxB,uBAAuB,CAAC,MAAM,WACtC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;;;;;;AEXpC;AAEA;;ACCA;AAEO,MAAM,6BAA6B,GAAW;AACnD,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MACb,iFAA+C,CAAC,IAAI,CAClD,CAAC,IAAI,CAAC,CAAC,gCAAgC,CACxC;AAEH,QAAA,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;YACrD,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;YAC1D,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;AAC3D,YAAA,cAAc,CAAC;AACb,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,MAAM,EAAE,MACN,uDAAkB,CAAC,IAAI,CACrB,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAC1C;aACJ,CAAC;AAEF,YAAA,cAAc,CAAC;AACb,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,QAAQ,EAAE,YAAY;AACtB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,MAAM,EAAE,MACN,uDAAkB,CAAC,IAAI,CACrB,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAC1C;aACJ,CAAC;AAEF,YAAA,cAAc,CAAC;AACb,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,QAAQ,EAAE,YAAY;AACtB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,MAAM,EAAE,MACN,uDAAkB,CAAC,IAAI,CACrB,CAAC,IAAI,CAAC,CAAC,uCAAuC,CAC/C;aACJ,CAAC;AAEF,YAAA,cAAc,CAAC;AACb,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,MAAM,EAAE,MACN,uDAAkB,CAAC,IAAI,CACrB,CAAC,IAAI,CAAC,CAAC,+BAA+B,CACvC;aACJ,CAAC;AACH,SAAA;AACF,KAAA;;AAGH;;;;AAIG;AACH;;ACrEA;AAQA;AAGM,MAAO,iCAAkC,SAAQ,sBAAsB,CAAA;AAD7E,IAAA,WAAA,GAAA;;AAEkB,QAAA,IAAA,CAAA,iCAAiC,GAAG,IAAI,CAAC,gBAAgB,CAAC,iCAAiC,CAAC;AAa7G,IAAA;AAXC,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAC/E,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3B;IACH;AAEO,IAAA,UAAU,CAAC,IAAY,EAAA;QAC5B,OAAO,IAAI,CAAC,iCAAiC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACtF,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAsB,CAAC,CACvC;IACH;8GAbW,iCAAiC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAjC,iCAAiC,EAAA,CAAA,CAAA;;2FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAD7C;;;ACVD;AAOA;AAGM,MAAO,oCAAqC,SAAQ,sBAAsB,CAAA;AADhF,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,+BAA+B,GAAG,IAAI,CAAC,cAAc,CAAC,+BAA+B,CAAC;AAU/F,IAAA;AARC,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,+BAA+B,CAAC,oCAAoC;IAClF;IAEA,KAAK,GAAA;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE;AAC3D,QAAA,OAAO,MAAM;IACf;8GAVW,oCAAoC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAApC,oCAAoC,EAAA,CAAA,CAAA;;2FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBADhD;;;ACDD;AAKO,IAAM,mCAAmC,GAAzC,MAAM,mCAAoC,SAAQ,oBAEvD,CAAA;IACA,MAAM,WAAW,CAAC,KAAsC,EAAA;AACtD,QAAA,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC;IAClC;;AALW,mCAAmC,GAAA,UAAA,CAAA;AAH/C,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,qCAAqC;KACjD;AACY,CAAA,EAAA,mCAAmC,CAM/C;;AChBD;AAKO,IAAM,iCAAiC,GAAvC,MAAM,iCAAkC,SAAQ,kBAAkB,CAAA;;AAA5D,iCAAiC,GAAA,UAAA,CAAA;AAH7C,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,mCAAmC;KAC/C;AACY,CAAA,EAAA,iCAAiC,CAA8B;;ACR5E;IAEc;AAAZ,CAAA,UAAY,+DAA+D,EAAA;AACzE,IAAA,+DAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,+DAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,+DAA+D,KAA/D,+DAA+D,GAAA,EAAA,CAAA,CAAA;AAK7E;;ACHA;AAMO,IAAM,iCAAiC,GAAvC,MAAM,iCAAkC,SAAQ,2BAA2B,CAAA;AAA3E,IAAA,WAAA,GAAA;;AACY,QAAA,IAAA,CAAA,+BAA+B,GAAG,IAAI,CAAC,cAAc,CAAC,+BAA+B,CAAC;IAIzG;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,6BAA6B;IACtC;;AAJW,iCAAiC,GAAA,UAAA,CAAA;AAJ7C,IAAA,cAAc,CAAoC;AACjD,QAAA,SAAS,EAAE,mCAAmC;;KAE/C;AACY,CAAA,EAAA,iCAAiC,CAK7C;;ACbD;AAEQ,SAAU,0CAA0C,CAAC,KAAa,EAAA;IACtE,OAAO,KAAK,KAAK,QAAQ;AAC3B;AAEF;;ACLA;AAEE;AACA;;AAEG;AACI,MAAM,6DAA6D,GAAgB,CACxF,OAAwB,KACG;IAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACxC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAEpD,IAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,cAAc,EAAE;AAChC,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,OAAO,QAAQ,CAAC,KAAK,KAAK,cAAc,CAAC;AACvC,UAAE;UACA,EAAE,CAAC,6BAA6B,CAAC,8BAA8B,GAAG,IAAI,EAAE;AAC9E;AACA;AAGF;;MCVa,kCAAkC,CAAA;AAN/C,IAAA,WAAA,GAAA;QAOW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA4B;AACzC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAgB,IAAI,oDAAC;QACrC,IAAA,CAAA,OAAO,GAAG,MAAM,EAAQ;QACxB,IAAA,CAAA,MAAM,GAAG,MAAM,EAAQ;QAEf,IAAA,CAAA,IAAI,GAAG,MAAM,CAAsC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACvF,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,EAAC,YAAgD,GAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE1F,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,wDAAC;AAC/D,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,wDAAC;AAc/E,IAAA;IAZC,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE;AACZ,YAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;QAClB;aAAO;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QACpB;IACF;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACnB,IAAI,CAAC,KAAK,EAAE;IACd;8GAvBW,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kCAAkC,gZChB/C,ijBAiBA,EAAA,MAAA,EAAA,CAAA,scAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDDa,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAN9C,SAAS;+BACE,8BAA8B,EAAA,eAAA,EAGvB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ijBAAA,EAAA,MAAA,EAAA,CAAA,scAAA,CAAA,EAAA;;;AEdjD;AASA;AAGM,MAAO,4BAA6B,SAAQ,sBAAsB,CAAA;AADxE,IAAA,WAAA,GAAA;;AAEkB,QAAA,IAAA,CAAA,4BAA4B,GAAG,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,CAAC;AA+BnG,IAAA;AA7BC,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAC1E,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3B;IACH;IAEO,eAAe,GAAA;QACpB,OAAO,IAAI,CAAC,4BAA4B,CAAC,eAAe,EAAE,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACnF,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1B;IACH;IAEO,SAAS,CAAC,KAA+B,EAAE,EAAW,EAAA;AAC3D,QAAA,OAAO,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACtF,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1B;IACH;IAEO,UAAU,CAAC,EAAU,EAAE,OAAgB,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACzF,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1B;IACH;AAEO,IAAA,WAAW,CAAC,EAAU,EAAA;QAC3B,OAAO,IAAI,CAAC,4BAA4B,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACjF,GAAG,CAAC,MAAM,SAAS,CAAC,CACrB;IACH;8GA/BW,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA5B,4BAA4B,EAAA,CAAA,CAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC;;;ACXD;AAOA;AAGM,MAAO,+BAAgC,SAAQ,sBAAsB,CAAA;AAD3E,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,CAAC,cAAc,CAAC,0BAA0B,CAAC;AAUrF,IAAA;AARC,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,0BAA0B,CAAC,+BAA+B;IACxE;IAEA,KAAK,GAAA;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE;AACtD,QAAA,OAAO,MAAM;IACf;8GAVW,+BAA+B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA/B,+BAA+B,EAAA,CAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAD3C;;;ACNM,MAAM,gCAAgC,GAAG;AAC9C,IAAA,IAAI,EAAE,EAAE;AACR,IAAA,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,sBAAsB,CAAC,MAAM;AACnC,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,qBAAqB,EAAE,IAAI;AAC3B,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,OAAO,EAAE,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;;;ACZZ;AAKO,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,oBAElD,CAAA;IACA,MAAM,WAAW,CAAC,KAAiC,EAAA;AACjD,QAAA,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC;IAClC;;AALW,8BAA8B,GAAA,UAAA,CAAA;AAH1C,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,gCAAgC;KAC5C;AACY,CAAA,EAAA,8BAA8B,CAM1C;;AChBD;AAKO,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,kBAAkB,CAAA;;AAAvD,4BAA4B,GAAA,UAAA,CAAA;AAHxC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,8BAA8B;KAC1C;AACY,CAAA,EAAA,4BAA4B,CAA8B;;ACJvE;AAMO,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,2BAA2B,CAAA;AAAtE,IAAA,WAAA,GAAA;;AACY,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,CAAC,cAAc,CAAC,0BAA0B,CAAC;IAI/F;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,wBAAwB;IACjC;;AAJW,4BAA4B,GAAA,UAAA,CAAA;AAJxC,IAAA,cAAc,CAA+B;AAC5C,QAAA,SAAS,EAAE,8BAA8B;;KAE1C;AACY,CAAA,EAAA,4BAA4B,CAKxC;;ACZD;AAEE;AACO,MAAM,uCAAuC,GAAgB,OAAO,IAAG;AAC5E,IAAA,MAAM,KAAK,GAAY,OAAO,CAAC,KAAK;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC9B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;aACtD,KAAK,CAAC,IAAI,IAAI,0CAA0C,CAAC,IAAI,CAAC;UAC/D,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE;AACjC;AAEO,MAAM,qCAAqC,GAAgB,OAAO,IAAG;AAC1E,IAAA,MAAM,KAAK,GAAY,OAAO,CAAC,KAAK;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ;AAC9B,SAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,sCAAsC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;UACpE,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC/B;AAEO,MAAM,yDAAyD,GAAgB,OAAO,IAC3F,OAAO,CAAC,KAAK,KAAK,IAAI;AACtB,KAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC;MACrD,IAAI,GAAG,EAAE,iBAAiB,EAAE,IAAI;AAE/B,MAAM,8CAA8C,GAAgB,OAAO,IAAG;AACnF,IAAA,MAAM,KAAK,GAAY,OAAO,CAAC,KAAK;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ;AAC9B,SAAC,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;UACnD,IAAI,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE;AAChC;AACA;AAEF;;MCsBa,4BAA4B,CAAA;AA/BzC,IAAA,WAAA,GAAA;QAgCW,IAAA,CAAA,YAAY,GAAG,KAAK,CAAkC,GAAG,IAAI,GAAG,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;QACjE,IAAA,CAAA,UAAU,GAAG,MAAM,EAA2B;QAC9C,IAAA,CAAA,UAAU,GAAG,MAAM,EAAW;AAC9B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAkC,IAAI,uDAAC;AAEnD,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAC1C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAC1B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;QACvC,IAAA,CAAA,OAAO,GAAmB,EAAE;QAC5B,IAAA,CAAA,OAAO,GAAwB,IAAI;QACnC,IAAA,CAAA,SAAS,GAA4D,IAAI;AAwMlF,IAAA;IApMC,QAAQ,GAAA;QACN,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACrC;QACF;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACrB,MAAM,CAAC,KAAK,IAAI,KAAK,YAAY,aAAa,CAAC,EAC/C,SAAS,CAAC,IAAI,CAAC,EACf,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,EACvB,SAAS,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,IAAI,CAC7C,UAAU,CAAC,CAAC,KAAc,KAAI;AAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAClB,YAAA,OAAO,KAAK;AACd,QAAA,CAAC,CAAC,CACH,CAAC,EACF,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CACpC,CAAC,SAAS,CAAC,MAAM,IAAG;AACnB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;YACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAChC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC1D,qCAAqC,CAAC,KAAK,CAAC;AAC5C,gBAAA,uCAAuC,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAChE,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,EAAE,CAAC,CAAC;AACnE,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,YAAY,EAAE;AACrB,QAAA,CAAC,CAAC;IACJ;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC;QACxC;IACF;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC;QACxC;AACA,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE;AAC5B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACrB,IAAI,GAAG,EAAE;YACP,GAAG,CAAC,KAAK,EAAE;YACX,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAClG;aAAO;YACL,IAAI,CAAC,YAAY,EAAE;QACrB;IACF;IAEQ,KAAK,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AACjB,QAAA,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE;AAC9B,QAAA,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE;AAC5B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YACzD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC;QACxC;AACA,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;IACvB;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACrE;QACF;AACA,QAAA,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC3E,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACpB,YAAA,IAAI;AACF,gBAAA,IAAI,qCAAqC,CAAC,IAAI,CAAC,KAAK,CAAC;oBACjD,uCAAuC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBACpE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAClC,oBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBACvB;YACF;YAAE,OAAO,KAAc,EAAE;AACvB,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAClB,IAAI,CAAC,KAAK,EAAE;YACd;YACA,IAAI,CAAC,YAAY,EAAE;AACrB,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,IAAI,CAAC,KAA+B,EAAA;QAC1C,MAAM,OAAO,GAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;QACpG,IAAI,QAAQ,GAAkB,IAAI;AAClC,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClE,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC9C,YAAA,IAAI,CAAC,sCAAsC,CAAC,QAAQ,CAAC,EAAE;gBACrD,MAAM,IAAI,KAAK,CAAC,CAAA,MAAA,EAAS,KAAK,CAAC,EAAE,CAAA,4DAAA,CAA8D,CAAC;YAClG;QACF;AACA,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACtB,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,CAAC,MAAM,EAAE;AAChD,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;QAC7B;aAAO;YACL,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;AAC/D,gBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;AACzB,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,QAAQ,EAAE,MAAM;AAChB,gBAAA,SAAS,EAAE,KAAK,CAAC,KAAK,IAAI,iBAAiB;AAC3C,gBAAA,SAAS,EAAE,gBAAgB;AAC5B,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,SAAS,GAAG,GAAG;AACpB,YAAA,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AAC3D,YAAA,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACzE,gBAAA,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;oBAC5B;gBACF;AACA,gBAAA,IAAI;AACF,oBAAA,IAAI,CAAC,qCAAqC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;wBAC/E,IAAI,CAAC,KAAK,EAAE;wBACZ;oBACF;AACA,oBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;gBAC7B;gBAAE,OAAO,KAAc,EAAE;AACvB,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBAClB,IAAI,CAAC,KAAK,EAAE;gBACd;AACF,YAAA,CAAC,CAAC;AACF,YAAA,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACzE,gBAAA,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;AAC5B,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;oBACrB,IAAI,CAAC,KAAK,EAAE;gBACd;AACF,YAAA,CAAC,CAAC;QACJ;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;IAC3B;AAEQ,IAAA,WAAW,CAAC,OAAqB,EAAA;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE;YACxB;QACF;QACA,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;QACtE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC7E,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;gBAC5B;YACF;AACA,YAAA,IAAI,qCAAqC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxD,gBAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAC3B;iBAAO;gBACL,IAAI,CAAC,KAAK,EAAE;YACd;AACF,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,UAAU,CAAC,KAA+B,EAAA;AAChD,QAAA,OAAO,CAAA,qBAAA,EAAwB,KAAK,CAAC,EAAE,WAAW;IACpD;IAEQ,KAAK,CAAC,OAAgB,EAAE,GAAW,EAAA;QACzC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;AAChC,QAAA,MAAM,KAAK,GAAG,GAAG,KAAK,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;AAC5C,QAAA,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YACnC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE;AAC7C,YAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,GAAG,CAAA,EAAA,CAAI,CAAC;QAC7E;AACA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,aAAa,CAAC,KAA+B,EAAA;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAClC,QAAA,OAAO,CAAC,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC;AACpE,aAAC,KAAK,CAAC,qBAAqB,KAAK,IAAI;AACnC,gBAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,qBAAqB,CAAC;IAClE;AAEQ,IAAA,aAAa,CAAC,OAAqB,EAAA;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC;AACpD,QAAA,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AACnD,QAAA,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;AACrD,QAAA,OAAO,CAAC,SAAS,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACxC;IAEQ,IAAI,CAAC,IAAqC,EAAE,OAAqB,EAAA;AACvE,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,IAAI;AACJ,YAAA,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,OAAO,CAAC,IAAI;AAClB,YAAA,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;YAC7D,SAAS,EAAE,IAAI,IAAI,EAAE;AACtB,SAAA,CAAC;IACJ;AAEQ,IAAA,MAAM,CAAC,KAAc,EAAA;AAC3B,QAAA,OAAO,CAAC,KAAK,CAAC,yDAAyD,EAAE,KAAK,CAAC;AAC/E,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7B;8GApNW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAF5B,CAAC,4BAA4B,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA3B/B;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAgBS,kCAAkC,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGjC,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBA/BxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAAA,QAAA,EACvB;;;;;;;;;;GAUT,EAAA,eAAA,EAegB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,kCAAkC,CAAC,EAAA,SAAA,EAClC,CAAC,4BAA4B,CAAC,EAAA,MAAA,EAAA,CAAA,4JAAA,CAAA,EAAA;;;ACtD3C;AAQA;AAGM,MAAO,4BAA6B,SAAQ,sBAAsB,CAAA;AADxE,IAAA,WAAA,GAAA;;AAEkB,QAAA,IAAA,CAAA,4BAA4B,GAAG,IAAI,CAAC,gBAAgB,CAAC,4BAA4B,CAAC;AAanG,IAAA;AAXC,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CAC1E,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAC3B;IACH;AAEO,IAAA,UAAU,CAAC,IAAY,EAAA;QAC5B,OAAO,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,CACjF,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAsB,CAAC,CACvC;IACH;8GAbW,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA5B,4BAA4B,EAAA,CAAA,CAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC;;;ACVD;AAOA;AAGM,MAAO,+BAAgC,SAAQ,sBAAsB,CAAA;AAD3E,IAAA,WAAA,GAAA;;AAEU,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,CAAC,cAAc,CAAC,0BAA0B,CAAC;AAUrF,IAAA;AARC,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,0BAA0B,CAAC,+BAA+B;IACxE;IAEA,KAAK,GAAA;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE;AACtD,QAAA,OAAO,MAAM;IACf;8GAVW,+BAA+B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA/B,+BAA+B,EAAA,CAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAD3C;;;ACDD;AAKO,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,oBAElD,CAAA;IACA,MAAM,WAAW,CAAC,KAAiC,EAAA;AACjD,QAAA,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC;IAClC;;AALW,8BAA8B,GAAA,UAAA,CAAA;AAH1C,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,gCAAgC;KAC5C;AACY,CAAA,EAAA,8BAA8B,CAM1C;;AChBD;AAKO,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,kBAAkB,CAAA;;AAAvD,4BAA4B,GAAA,UAAA,CAAA;AAHxC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,8BAA8B;KAC1C;AACY,CAAA,EAAA,4BAA4B,CAA8B;;ACRvE;IAEc;AAAZ,CAAA,UAAY,qDAAqD,EAAA;AAC/D,IAAA,qDAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,qDAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,qDAAqD,KAArD,qDAAqD,GAAA,EAAA,CAAA,CAAA;AAKnE;;ACHA;AAMO,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,2BAA2B,CAAA;AAAtE,IAAA,WAAA,GAAA;;AACY,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,CAAC,cAAc,CAAC,0BAA0B,CAAC;IAI/F;IAHE,QAAQ,GAAA;AACN,QAAA,OAAO,wBAAwB;IACjC;;AAJW,4BAA4B,GAAA,UAAA,CAAA;AAJxC,IAAA,cAAc,CAA+B;AAC5C,QAAA,SAAS,EAAE,8BAA8B;;KAE1C;AACY,CAAA,EAAA,4BAA4B,CAKxC;;ACbD;AAEQ,SAAU,qCAAqC,CAAC,KAAa,EAAA;IACjE,OAAO,KAAK,KAAK,QAAQ;AAC3B;AAEF;;ACLA;AAEE;AACA;;AAEG;AACI,MAAM,wDAAwD,GAAgB,CACnF,OAAwB,KACG;IAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACxC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAEpD,IAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,cAAc,EAAE;AAChC,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,OAAO,QAAQ,CAAC,KAAK,KAAK,cAAc,CAAC;AACvC,UAAE;UACA,EAAE,CAAC,wBAAwB,CAAC,8BAA8B,GAAG,IAAI,EAAE;AACzE;AACA;AAGF;;AC1BA;AAIA;MASa,kCAAkC,CAAA;8GAAlC,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlC,kCAAkC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb/C,gJAEgG,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDSzE,YAAY,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEtB,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAP9C,SAAS;+BACE,kCAAkC,EAAA,eAAA,EAG3B,uBAAuB,CAAC,MAAM,WACtC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,gJAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;;;;;;AEXpC;AAEA;;ACCA;AAEO,MAAM,+BAA+B,GAAW;AACrD,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MACb,mFAAkD,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAAC;AAEpG,QAAA,QAAQ,EAAE;;;;;;;;;AAST,SAAA;AACF,KAAA;;AAGH;;;;AAIG;AACH;;AC7BA;AAIA;MASa,0CAA0C,CAAA;8GAA1C,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1C,0CAA0C,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbvD,8IAEsF,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDS/D,YAAY,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEtB,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBAPtD,SAAS;+BACE,0CAA0C,EAAA,eAAA,EAGnC,uBAAuB,CAAC,MAAM,WACtC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,8IAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;;;;;;AEXpC;AAEA;;ACCA;AAEO,MAAM,uCAAuC,GAAW;AAC7D,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MACb,2FAA0D,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,0CAA0C,CAAC;AAEpH,QAAA,QAAQ,EAAE;;;;;;;;;AAST,SAAA;AACF,KAAA;;AAGH;;;;AAIG;AACH;;MCRa,iCAAiC,CAAA;AAR9C,IAAA,WAAA,GAAA;AASW,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAkC,eAAe,CAAC;AAChE,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC;AAC7C,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,KAAK,gDAAC;AACpB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAEV,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAC1C,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,EAAC,YAA+C,EAAC;AAC7D,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW;AAE5C,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AAC5B,YAAA,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1G,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC;YACvC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,sBAAsB,CAAC,MAAM,CAAC;YACzD,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC;YAChC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;YACpC,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC;YACtC,UAAU,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE,CAAC;YAC1C,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,qCAAqC,CAAC;AAC/E,YAAA,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAChH,YAAA,cAAc,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,uCAAuC,CAAC;AACvG,YAAA,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,uCAAuC,CAAC;AACnG,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,8CAA8C,CAAC;AAC9F,YAAA,KAAK,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,8CAA8C,CAAC;AAC1F,YAAA,qBAAqB,EAAE,IAAI,WAAW,CACpC,IAAI,CAAC,KAAK,EAAE,qBAAqB,IAAI,IAAI,EAAE,yDAAyD,CACrG;YACD,cAAc,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,IAAI,IAAI,CAAC;AACrD,SAAA,CAAC;AA6DH,IAAA;IA3DC,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;QAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACpC,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kDAAkD,CAAC;YAClE;QACF;QACA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI;QAC5E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI;QACtE,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,GAAG,KAAK,EAAE;AACvC,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC;YACvD;QACF;AACA,QAAA,MAAM,KAAK,GAA6B;AACtC,YAAA,GAAG,KAAK;AACR,YAAA,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;YACvB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI;AACjC,YAAA,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI;YACvC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,IAAI;YAC3C,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,IAAI;YACzC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC;YAChD,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;YAC5C,OAAO;YACP,KAAK;SACN;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAC5C,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CACrC,CAAC,SAAS,CAAC;AACV,YAAA,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;AACpC,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;AACxB,gBAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,KAAK,CAAC;AAC1E,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,+DAA+D,CAAC;YACjF,CAAC;AACF,SAAA,CAAC;IACJ;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;AAChB,YAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;QAClB;IACF;AAEQ,IAAA,KAAK,CAAC,KAAa,EAAA;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACxE,OAAO,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI;IACpC;AAEQ,IAAA,SAAS,CAAC,KAAuC,EAAA;QACvD,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,EAAE;QACX;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AAC5B,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC;QACzE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;IACzC;8GAzFW,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjC,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,SAAA,EAFjC,CAAC,4BAA4B,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnB3C,+4EA0CA,EAAA,MAAA,EAAA,CAAA,gOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDxBY,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGpD,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAR7C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAAA,eAAA,EAGtB,uBAAuB,CAAC,MAAM,WACtC,CAAC,mBAAmB,EAAE,eAAe,EAAE,eAAe,CAAC,EAAA,SAAA,EACrD,CAAC,4BAA4B,CAAC,EAAA,QAAA,EAAA,+4EAAA,EAAA,MAAA,EAAA,CAAA,gOAAA,CAAA,EAAA;;;AEnB3C;AAWA;MAUa,qCAAqC,CAAA;AARlD,IAAA,WAAA,GAAA;AAYmB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAC1C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAC1B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE,iDAAC;AAClB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,KAAK,gDAAC;AACpB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,4BAA4B;AAC5C,QAAA,IAAA,CAAA,OAAO,GAAoB;YAClC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC7C,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACjD,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACjD,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;AACvD,YAAA;AACE,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,OAAO,EAAE;AACP,oBAAA;wBACE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;AACjD,wBAAA,QAAQ,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE;wBAC3B,KAAK,EAAE,CAAC,KAA+B,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7D,qBAAA;AACD,oBAAA;wBACE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,wBAAwB;AAC3E,wBAAA,QAAQ,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE;wBAC3B,KAAK,EAAE,CAAC,KAA+B,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/D,qBAAA;AACD,oBAAA;wBACE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc;AACrD,wBAAA,QAAQ,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE;wBAC3B,KAAK,EAAE,CAAC,KAA+B,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/D,qBAAA;AACF,iBAAA;AACF,aAAA;SACF;AA6DF,IAAA;IA3DC,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;IACzB;AAEA,IAAA,IAAI,CAAC,KAAgC,EAAA;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE;YAC9D,IAAI,EAAE,KAAK,IAAI,IAAI;AACnB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC;AACF,QAAA,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;YAC5E,IAAI,KAAK,EAAE;AACT,gBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACzB;AACF,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,MAAM,CAAC,KAA+B,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAChD,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CACrC,CAAC,SAAS,CAAC;YACV,IAAI,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACnC,YAAA,KAAK,EAAE,CAAC,KAAc,KAAK,IAAI,CAAC,WAAW,CAAC,iCAAiC,EAAE,KAAK,CAAC;AACtF,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,CAAC,KAA+B,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;AACvD,YAAA,IAAI,EAAE;AACJ,gBAAA,KAAK,EAAE,eAAe;AACtB,gBAAA,OAAO,EAAE,CAAA,oBAAA,EAAuB,KAAK,CAAC,IAAI,CAAA,EAAA,CAAI;AAC9C,gBAAA,WAAW,EAAE,QAAQ;AACtB,aAAA;AACF,SAAA,CAAC;AACF,QAAA,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,IAAG;YAChF,IAAI,CAAC,SAAS,EAAE;AACd,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBACpB;YACF;AACA,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CACjC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CACrC,CAAC,SAAS,CAAC;gBACV,IAAI,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACnC,gBAAA,KAAK,EAAE,CAAC,KAAc,KAAK,IAAI,CAAC,WAAW,CAAC,iCAAiC,EAAE,KAAK,CAAC;AACtF,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;IAEQ,WAAW,CAAC,OAAe,EAAE,KAAc,EAAA;QACjD,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,OAAO,EAAE,KAAK,CAAC;AAClE,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IACzB;8GAlGW,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArC,qCAAqC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,SAAA,EAFrC,CAAC,4BAA4B,CAAC,qEAG9B,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBnC,6RAUiB,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDQL,sBAAsB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,eAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGrB,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBARjD,SAAS;+BACE,qCAAqC,EAAA,eAAA,EAG9B,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,sBAAsB,CAAC,EAAA,SAAA,EACtB,CAAC,4BAA4B,CAAC,EAAA,QAAA,EAAA,6RAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;sBAGxC,SAAS;uBAAC,sBAAsB;;;;;;;;AEtBnC;AAEA;;ACCA;AAEO,MAAM,kCAAkC,GAAW;AACxD,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MACb,sFAAqD,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,qCAAqC,CAAC;AAE1G,QAAA,QAAQ,EAAE;;;;;;;;;AAST,SAAA;AACF,KAAA;;AAGH;;;;AAIG;AACH;;AC7BA;AAIA;MASa,qCAAqC,CAAA;8GAArC,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArC,qCAAqC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECblD,iKAEyG,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDSlF,YAAY,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEtB,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBAPjD,SAAS;+BACE,qCAAqC,EAAA,eAAA,EAG9B,uBAAuB,CAAC,MAAM,WACtC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,iKAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;;;;;;AEXpC;AAEA;;ACCA;AAEO,MAAM,kCAAkC,GAAW;AACxD,IAAA;AACE,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,MACb,sFAAqD,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,qCAAqC,CAAC;AAE1G,QAAA,QAAQ,EAAE;;;;;;;;;AAST,SAAA;AACF,KAAA;;AAGH;;;;AAIG;AACH;;AC7BA;AACA;AACA;AACA;AACA;;ACEA,YAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNjB;;AAEG;;"}
|
|
1
|
+
{"version":3,"file":"marketing-websql-prod.mjs","sources":["../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/migrations/1791132517216_initial.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.entity.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.utils.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.validation.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.repository.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/migrations/1791659700000_popup_configuration.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/migrations/migrations_index._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/migrations/index.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/my-organization-proj.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/start-cli.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.constants.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.entity.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.repository.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.controller.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.provider.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.constants.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.entity.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.repository.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.controller.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.provider.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.controller.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.provider.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.constants.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.entity.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.repository.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.controller.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.provider.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing.abstract.context.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.api.service.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.config.service.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.kv.repository.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.middleware.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.utils.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.validators.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-backoffice/taon-marketing-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-backoffice/taon-marketing-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-backoffice/taon-marketing-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-backoffice/taon-marketing-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.api.service.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.config.service.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.kv.repository.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.middleware.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.utils.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.validators.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-content.component.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-content.component.html","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.api.service.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.config.service.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.constants.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.kv.repository.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.middleware.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.validators.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popups.component.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.api.service.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.config.service.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.kv.repository.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.middleware.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.subscriber.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.utils.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.validators.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-editor.component.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-editor.component.html","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.component.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.component.html","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.models.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.routes.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/lib/index.ts","../../../tmp-libs-for-dist-websql-prod/marketing/projects/marketing/src/marketing-websql-prod.ts"],"sourcesContent":["// import {\n// MyAppAuthorization,\n// MyAppGroup,\n// MyAppPermission,\n// MyAppRole,\n// } from '@taon-dev/cms/src';\n// import { TaonAuthContextRepository } from '@taon-dev/session/src';\nimport { TaonBaseMigration, TaonMigration, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { QueryRunner } from 'taon-typeorm/websql-prod';\n\n//#region Migration class for context \"MarketingContext\"\n@TaonMigration({\n className: 'MarketingContext_1791132517216_initial',\n})\nexport class MarketingContext_1791132517216_initial extends TaonBaseMigration {\n // private taonAuthContextRepository = this.injectCustomRepo(\n // TaonAuthContextRepository<MyAppAuthorization>,\n // );\n\n //#region up\n async up(queryRunner: QueryRunner): Promise<any> {\n // await queryRunner.startTransaction();\n // try {\n // await this.taonAuthContextRepository.persistTree({\n // enums: {\n // groups: MyAppGroup,\n // roles: MyAppRole,\n // permissions: MyAppPermission,\n // },\n // tree: {\n // groupAndRoles: {\n // [MyAppGroup.Administrator]: '*',\n // [MyAppGroup.Customers]: [MyAppRole.BlogReader],\n // },\n // rolesAndPermissions: {\n // [MyAppRole.Customer]: [\n // MyAppPermission.AccessCourseP2,\n // MyAppPermission.AccessCourseP2,\n // ],\n // [MyAppRole.CustomerPremium]: '*',\n // },\n // },\n // });\n\n // await queryRunner.commitTransaction();\n // } catch (error) {\n // console.error('Error in migration:', error);\n // await queryRunner.rollbackTransaction();\n // } finally {\n // await queryRunner.release();\n // }\n }\n //#endregion\n\n //#region down\n async down(queryRunner: QueryRunner): Promise<any> {\n // await queryRunner.startTransaction();\n // try {\n // await this.taonAuthContextRepository.clearRolesGroupPermissions();\n\n // await queryRunner.commitTransaction();\n // } catch (error) {\n // console.error('Error in migration:', error);\n // await queryRunner.rollbackTransaction();\n // } finally {\n // await queryRunner.release();\n // }\n }\n //#endregion\n}\n//#endregion","export enum TaonMarketingPopupType {\n Dialog = 'dialog',\n Bottom = 'bottom',\n}\n\nexport interface TaonMarketingPopupFields {\n name: string;\n enabled: boolean;\n type: TaonMarketingPopupType;\n title: string | null;\n content: string | null;\n imageKey: string | null;\n buttonText: string | null;\n buttonUrl: string | null;\n delaySeconds: number;\n displayOnPaths: string[] | null;\n excludePaths: string[] | null;\n startAt: Date | string | null;\n endAt: Date | string | null;\n maxDisplaysPerVisitor: number | null;\n oncePerSession: boolean;\n}\n\nexport interface TaonMarketingPopupEvent {\n name: 'popup-impression' | 'popup-click' | 'popup-close';\n category: 'marketing';\n path: string;\n data: { popupId: number; type: TaonMarketingPopupType };\n createdAt: Date;\n}\n\nexport type TaonMarketingPopupImageResolver = (key: string) => string;","//#region imports\nimport {\n Column, CreateDateColumn, UpdateDateColumn,\n TaonBaseAbstractEntity, TaonEntity,\n} from 'taon/websql-prod';\nimport { TaonMarketingPopupType } from './taon-marketing-popup.models';\n//#endregion\n\n@TaonEntity<TaonMarketingPopupEntity>({\n className: 'TaonMarketingPopupEntity',\n createTable: true,\n})\nexport class TaonMarketingPopupEntity extends TaonBaseAbstractEntity<TaonMarketingPopupEntity> {\n //#region @websql\n @Column({ type: 'varchar', length: 200, default: '' })\n //#endregion\n name: string = '';\n\n //#region @websql\n @Column({ type: 'boolean', default: false })\n //#endregion\n enabled: boolean = false;\n\n //#region @websql\n @Column({ type: 'varchar', default: TaonMarketingPopupType.Dialog })\n //#endregion\n type: TaonMarketingPopupType = TaonMarketingPopupType.Dialog;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n title: string | null = null;\n\n //#region @websql\n @Column({ type: 'text', nullable: true })\n //#endregion\n content: string | null = null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n imageKey: string | null = null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n buttonText: string | null = null;\n\n //#region @websql\n @Column({ type: 'varchar', nullable: true })\n //#endregion\n buttonUrl: string | null = null;\n\n //#region @websql\n @Column({ type: 'float', default: 0 })\n //#endregion\n delaySeconds: number = 0;\n\n //#region @websql\n @Column({ type: 'simple-json', nullable: true })\n //#endregion\n displayOnPaths: string[] | null = null;\n\n //#region @websql\n @Column({ type: 'simple-json', nullable: true })\n //#endregion\n excludePaths: string[] | null = null;\n\n //#region @websql\n @Column({ type: 'datetime', nullable: true })\n //#endregion\n startAt: Date | null = null;\n\n //#region @websql\n @Column({ type: 'datetime', nullable: true })\n //#endregion\n endAt: Date | null = null;\n\n //#region @websql\n @Column({ type: 'integer', nullable: true })\n //#endregion\n maxDisplaysPerVisitor: number | null = null;\n\n //#region @websql\n @Column({ type: 'boolean', default: true })\n //#endregion\n oncePerSession: boolean = true;\n\n //#region @websql\n @CreateDateColumn({ type: 'datetime' })\n //#endregion\n createdAt: Date;\n\n //#region @websql\n @UpdateDateColumn({ type: 'datetime' })\n //#endregion\n updatedAt: Date;\n}","import type { TaonMarketingPopupFields } from './taon-marketing-popup.models';\n\n//namespace TaonMarketingPopupUtils\n\n export function TaonMarketingPopupUtils__NS__isActive(\n popup: TaonMarketingPopupFields,\n now = new Date(),\n ): boolean {\n return popup.enabled &&\n (!popup.startAt || new Date(popup.startAt).getTime() <= now.getTime()) &&\n (!popup.endAt || new Date(popup.endAt).getTime() >= now.getTime());\n }\n\n export function TaonMarketingPopupUtils__NS__matchesPath(pattern: string, path: string): boolean {\n const pathname = path.split(/[?#]/, 1)[0];\n return pattern.endsWith('*')\n ? pathname.startsWith(pattern.slice(0, -1))\n : pathname === pattern;\n }\n\n export function TaonMarketingPopupUtils__NS__isPathPattern(value: string): boolean {\n return /^\\/[^?#\\s*]*\\*?$/.test(value);\n }\n\n export function TaonMarketingPopupUtils__NS__allowsPath(popup: TaonMarketingPopupFields, path: string): boolean {\n return (!popup.displayOnPaths?.length ||\n popup.displayOnPaths.some(pattern => TaonMarketingPopupUtils__NS__matchesPath(pattern, path))) &&\n !popup.excludePaths?.some(pattern => TaonMarketingPopupUtils__NS__matchesPath(pattern, path));\n }\n\n export function TaonMarketingPopupUtils__NS__isSafeUrl(value: string): boolean {\n return !/[\\s\\\\\\u0000-\\u001f\\u007f]/.test(value) &&\n (/^\\/(?!\\/)/.test(value) || /^https?:\\/\\/[^/]+/i.test(value));\n }\n\n//end of namespace TaonMarketingPopupUtils\n","import { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonMarketingPopupType } from './taon-marketing-popup.models';\nimport type { TaonMarketingPopupFields } from './taon-marketing-popup.models';\nimport { TaonMarketingPopupUtils__NS__allowsPath, TaonMarketingPopupUtils__NS__isActive, TaonMarketingPopupUtils__NS__isPathPattern, TaonMarketingPopupUtils__NS__isSafeUrl, TaonMarketingPopupUtils__NS__matchesPath } from './taon-marketing-popup.utils';\n\nexport function popupError(message: string, status = 400): never {\n Taon__NS__error({ message, status });\n throw new Error(message);\n}\n\nexport function requirePopupId(id: number): void {\n if (!Number.isSafeInteger(id) || id <= 0) {\n popupError('Popup ID must be a positive integer.');\n }\n}\n\nexport function validatePopup(input: TaonMarketingPopupFields): void {\n if (!input || typeof input !== 'object' || Array.isArray(input)) {\n popupError('Popup must be an object.');\n }\n if (typeof input.name !== 'string' || !input.name.trim() || input.name.length > 200) {\n popupError('Name is required and must not exceed 200 characters.');\n }\n if (!Object.values(TaonMarketingPopupType).includes(input.type)) {\n popupError('Popup type must be dialog or bottom.');\n }\n if (typeof input.enabled !== 'boolean' || typeof input.oncePerSession !== 'boolean') {\n popupError('Enabled and oncePerSession must be booleans.');\n }\n if (!Number.isFinite(input.delaySeconds) || input.delaySeconds < 0 ||\n input.delaySeconds > 2147483) {\n popupError('Delay must be between 0 and 2147483 seconds.');\n }\n if (input.maxDisplaysPerVisitor !== null &&\n (!Number.isSafeInteger(input.maxDisplaysPerVisitor) || input.maxDisplaysPerVisitor < 1)) {\n popupError('Maximum displays must be a positive integer or null.');\n }\n for (const field of ['title', 'content', 'imageKey', 'buttonText', 'buttonUrl'] as const) {\n if (input[field] !== null && typeof input[field] !== 'string') {\n popupError(`${field} must be a string or null.`);\n }\n }\n if (input.buttonUrl && !TaonMarketingPopupUtils__NS__isSafeUrl(input.buttonUrl)) {\n popupError('Button URL must be an HTTP(S) URL or a root-relative path.');\n }\n for (const field of ['displayOnPaths', 'excludePaths'] as const) {\n const paths = input[field];\n if (paths !== null && (!Array.isArray(paths) || paths.some(path =>\n typeof path !== 'string' || !TaonMarketingPopupUtils__NS__isPathPattern(path)))) {\n popupError(`${field} must contain paths beginning with / and an optional trailing *.`);\n }\n }\n for (const field of ['startAt', 'endAt'] as const) {\n const date = input[field];\n if (date !== null && (!(date instanceof Date || typeof date === 'string') ||\n !Number.isFinite(new Date(date).getTime()))) {\n popupError(`${field} must be a valid date or null.`);\n }\n }\n if (input.startAt && input.endAt &&\n new Date(input.startAt).getTime() > new Date(input.endAt).getTime()) {\n popupError('End date must not precede start date.');\n }\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\nimport type { TaonMarketingPopupFields } from './taon-marketing-popup.models';\nimport { TaonMarketingPopupUtils__NS__allowsPath, TaonMarketingPopupUtils__NS__isActive, TaonMarketingPopupUtils__NS__isPathPattern, TaonMarketingPopupUtils__NS__isSafeUrl, TaonMarketingPopupUtils__NS__matchesPath } from './taon-marketing-popup.utils';\nimport { popupError, requirePopupId, validatePopup } from './taon-marketing-popup.validation';\n//#endregion\n\n@TaonRepository({\n className: 'TaonMarketingPopupRepository',\n})\nexport class TaonMarketingPopupRepository extends TaonBaseRepository<TaonMarketingPopupEntity> {\n entityClassResolveFn: () => typeof TaonMarketingPopupEntity = () => TaonMarketingPopupEntity;\n\n async activePopups(): Promise<TaonMarketingPopupEntity[]> {\n //#region @websqlFunc\n const popups = await this.find({ where: { enabled: true }, order: { id: 'ASC' } });\n const now = new Date();\n return popups.filter(popup => TaonMarketingPopupUtils__NS__isActive(popup, now));\n //#endregion\n }\n\n async savePopup(input: TaonMarketingPopupFields, id?: number): Promise<TaonMarketingPopupEntity> {\n //#region @websqlFunc\n validatePopup(input);\n if (id !== undefined) {\n requirePopupId(id);\n }\n const popup = id === undefined\n ? this.repo.create()\n : await this.repo.findOneBy({ id });\n if (!popup) {\n popupError('Popup was not found.', 404);\n }\n Object.assign(popup, {\n name: input.name.trim(),\n enabled: input.enabled,\n type: input.type,\n title: input.title,\n content: input.content,\n imageKey: input.imageKey,\n buttonText: input.buttonText,\n buttonUrl: input.buttonUrl,\n delaySeconds: input.delaySeconds,\n displayOnPaths: input.displayOnPaths,\n excludePaths: input.excludePaths,\n startAt: input.startAt === null ? null : new Date(input.startAt),\n endAt: input.endAt === null ? null : new Date(input.endAt),\n maxDisplaysPerVisitor: input.maxDisplaysPerVisitor,\n oncePerSession: input.oncePerSession,\n });\n return this.repo.save(popup);\n //#endregion\n }\n\n async setEnabled(id: number, enabled: boolean): Promise<TaonMarketingPopupEntity> {\n //#region @websqlFunc\n requirePopupId(id);\n if (typeof enabled !== 'boolean') {\n popupError('Enabled must be a boolean.');\n }\n const popup = await this.repo.findOneBy({ id });\n if (!popup) {\n popupError('Popup was not found.', 404);\n }\n popup.enabled = enabled;\n return this.repo.save(popup);\n //#endregion\n }\n\n async deletePopup(id: number): Promise<void> {\n //#region @websqlFunc\n requirePopupId(id);\n const result = await this.repo.delete(id);\n if (!result.affected) {\n popupError('Popup was not found.', 404);\n }\n //#endregion\n }\n}","import { TaonBaseMigration, TaonMigration } from 'taon/websql-prod';\nimport { Table, TableColumn } from 'taon-typeorm/websql-prod';\nimport type { QueryRunner } from 'taon-typeorm/websql-prod';\n\nimport { TaonMarketingPopupRepository } from '../taon-marketing-popup/taon-marketing-popup.repository';\n\n@TaonMigration({\n className: 'MarketingContext_1791659700000_popup_configuration',\n})\nexport class MarketingContext_1791659700000_popup_configuration extends TaonBaseMigration {\n private readonly popups = this.injectCustomRepo(TaonMarketingPopupRepository);\n\n async up(queryRunner: QueryRunner): Promise<void> {\n // TODO What is this ?\n const schema = Table.create(this.popups.metadata, queryRunner.connection.driver);\n await queryRunner.startTransaction();\n try {\n let table = await queryRunner.getTable(schema.name);\n if (!table) {\n await queryRunner.createTable(schema);\n } else {\n const existingColumns = table.columns;\n const missing = schema.columns.filter(column =>\n !existingColumns.some(existing => existing.name === column.name),\n );\n if (missing.length) {\n await queryRunner.addColumns(table, missing);\n }\n }\n table = await queryRunner.getTable(schema.name);\n const escape = (name: string) => queryRunner.connection.driver.escape(name);\n if (table?.columns.some(column => column.name === 'description')) {\n await queryRunner.query(\n `UPDATE ${escape(schema.name)} SET ${escape('name')} = ${escape('description')}\n WHERE ${escape('name')} = '' AND ${escape('description')} <> ''`,\n );\n }\n await queryRunner.query(\n `UPDATE ${escape(schema.name)} SET ${escape('name')} = 'Popup' WHERE ${escape('name')} = ''`,\n );\n await queryRunner.commitTransaction();\n } catch (error: unknown) {\n console.error('[marketing migration] Unable to configure popup schema', error);\n await queryRunner.rollbackTransaction();\n throw error;\n } finally {\n await queryRunner.release();\n }\n }\n\n async down(queryRunner: QueryRunner): Promise<void> {\n const schema = Table.create(this.popups.metadata, queryRunner.connection.driver);\n await queryRunner.startTransaction();\n try {\n const table = await queryRunner.getTable(schema.name);\n if (!table) {\n throw new Error('Popup table is missing; the schema migration cannot be reverted.');\n }\n if (!table.columns.some(column => column.name === 'description')) {\n await queryRunner.addColumn(table, new TableColumn({\n name: 'description',\n type: 'varchar',\n length: '200',\n default: \"''\",\n }));\n }\n const escape = (name: string) => queryRunner.connection.driver.escape(name);\n await queryRunner.query(\n `UPDATE ${escape(schema.name)} SET ${escape('description')} = ${escape('name')}`,\n );\n const popupColumns = schema.columns.filter(column =>\n !['id', 'version'].includes(column.name) &&\n table.columns.some(existing => existing.name === column.name),\n );\n await queryRunner.dropColumns(schema.name, popupColumns);\n await queryRunner.commitTransaction();\n } catch (error: unknown) {\n console.error('[marketing migration] Unable to revert popup schema', error);\n await queryRunner.rollbackTransaction();\n throw error;\n } finally {\n await queryRunner.release();\n }\n }\n}\n","// THIS FILE IS GENERATED - DO NOT MODIFY\nimport { MarketingContext_1791132517216_initial } from './1791132517216_initial';\nimport { MarketingContext_1791659700000_popup_configuration } from './1791659700000_popup_configuration';\n// THIS FILE IS GENERATED - DO NOT MODIFY\nexport const MIGRATIONS_CLASSES_FOR_MarketingContext = {\n /* 04-10-2026 18:48:37 */ MarketingContext_1791132517216_initial,\n /* 10-10-2026 21:15:00 */ MarketingContext_1791659700000_popup_configuration,\n};\n// THIS FILE IS GENERATED - DO NOT MODIFY\n","import { MIGRATIONS_CLASSES_FOR_MarketingContext as generatedMigrations } from './migrations_index._auto-generated_';\n\nexport * from './migrations_index._auto-generated_';\nexport * from './1791659700000_popup_configuration';\n\nexport const MIGRATIONS_CLASSES_FOR_MarketingContext = {\n ...generatedMigrations,\n};\n","// THIS FILE IS GENERATED - DO NOT MODIFY\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_FRAMEWORK_CLI_NAME = 'tnp';\n/**\n * This value can be change in taon.jsonc (appId)\n */\nexport const APP_ID = 'com.domain.example.marketing';\n/**\n * Autogenerated by current cli tool\n */\nexport const BUILD_BASE_HREF = '';\n/**\n * This value can be change in taon.jsonc (overrideNpmName)\n */\nexport const PROJECT_NPM_NAME = '@taon-dev/marketing';\n/**\n * Taon version from you project taon.json\n */\nexport const CURRENT_PACKAGE_TAON_VERSION = 'v21';\n/**\n * Autogenerated by current cli tool. Use *tnp release* to bump version.\n */\nexport const CURRENT_PACKAGE_VERSION = '21.0.16';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","import { Translation } from \"@taon-dev/i18n/websql-prod\";\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from \"taon/websql-prod\";\n\nconst t = Translation.for('src/lib/my-organization-proj.ts', {\"src/lib/my-organization-proj.ts\":{\"en-US\":async () => (await import('./i18n/my-organization-proj.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/my-organization-proj.ts.pl-PL.i18n.data')).default}} as any);\n\nexport function myOrgProj() {\n t.gettext('My Translated Company Name!')\n}","//#region tnp-helpers cli template\nimport { UtilsJson__NS__AttrJsoncProp, UtilsJson__NS__getAtrributiesFromJsonWithComments, UtilsJson__NS__getAttributiesFromComment, UtilsJson__NS__getValue, UtilsJson__NS__readJson, UtilsJson__NS__readJsonWithComments, UtilsJson__NS__setValue, UtilsJson__NS__validateLodashPath } from 'tnp-core/websql-prod';\nimport { BaseCommandLineFeature, Helpers__NS___fixCommand, Helpers__NS__ActionInstance, Helpers__NS__actionStarted, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsVerboseModeOrTnp, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logTaskDone, Helpers__NS__logTaskStarted, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC } from 'tnp-helpers/websql-prod';\n/* */ \n//#endregion\n\n//#region CLI / global scope\n/**\n * This class is for handling global arguments. *\n * Cli engine will parse: hello:world:from:global:arg to helloWorldFromGlobalArg\n * (lower case, camel case) .. so you don't need to worry about misspelling\n * arguments\n */\nclass $Global extends BaseCommandLineFeature<{}> {\n /**\n * When you execute cli without arguments:`$ cli`\n */\n public _() {\n console.log(`Hello world from cli`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli hello:world:from:global:arg`\n * (or `$ cli helloWorldFromGlobalArg`)\n */\n helloWorldFromGlobalArg() {\n console.log('hello world from global argument!');\n this._exit(0);\n }\n}\n//#endregion\n\n//#region CLI / Version Scope\n/**\n *\n */\nclass $Version extends BaseCommandLineFeature<{\n anyCLIparamsHere: string;\n}> {\n /**\n * When you execute: `$ cli version`\n */\n public _() {\n console.log(`Hello world from version argument`);\n this._exit();\n }\n\n /**\n * When you execute: `$ cli version:getFromPackageJson`\n */\n public getFromPackageJson() {\n const ver = UtilsJson__NS__getValue(\n this.project.pathFor('package.json'),\n 'version',\n {\n defaultValue: '<not defined>',\n },\n );\n console.log(`Version from packageJson ${ver}`);\n this._exit(0);\n }\n}\n//#endregion\n\n/**\n *\n * @param argsv process.argsv\n * @param filename needed if you want ipc communicaiton\n */\nexport async function startCli(\n argsv: string[],\n filename: string,\n): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n}\n\nexport default startCli;","import type { TaonMarketingAbEntity } from './taon-marketing-ab.entity';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nconst t = Translation.for('src/lib/taon-marketing-ab/taon-marketing-ab.constants.ts', {\"src/lib/taon-marketing-ab/taon-marketing-ab.constants.ts\":{\"en-US\":async () => (await import('./i18n/taon-marketing-ab.constants.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-marketing-ab.constants.ts.pl-PL.i18n.data')).default}} as any);\n\nexport const TaonMarketingAbDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonMarketingAbEntity>;\n\nexport enum TaonMarketingAbErrors {\n INVALID_PASSWORD_EXAMPLE_ERROR = 'INVALID_PASSWORD_EXAMPLE_ERROR',\n}\n\nexport const TaonMarketingAbTranslationErorsMap = new Map([\n [TaonMarketingAbErrors.INVALID_PASSWORD_EXAMPLE_ERROR, t.gettext('Invalid Password')],\n]);","//#region imports\nimport { CustomColumn, Column, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonMarketingAbDefaultsValues } from './taon-marketing-ab.constants';\n//#endregion\n\n@TaonEntity<TaonMarketingAbEntity>({\n className: 'TaonMarketingAbEntity',\n createTable: true,\n // defaultModelMapping: () => ({\n // '': TaonMarketingAbEntity,\n // nestedObjectField: ClassField,\n // nestedArrField: [ClassObjArrField],\n // }),\n})\nexport class TaonMarketingAbEntity extends TaonBaseAbstractEntity<TaonMarketingAbEntity> {\n //#region @websql\n @CustomColumn({\n type: 'varchar',\n length: 100,\n default: TaonMarketingAbDefaultsValues.description,\n })\n //#endregion\n description?: string;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\n\nimport { TaonMarketingAbEntity } from './taon-marketing-ab.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonMarketingAbRepository',\n})\nexport class TaonMarketingAbRepository extends TaonBaseRepository<TaonMarketingAbEntity> {\n entityClassResolveFn: () => typeof TaonMarketingAbEntity = () => TaonMarketingAbEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonMarketingAbEntity } from './taon-marketing-ab.entity';\nimport { TaonMarketingAbRepository } from './taon-marketing-ab.repository';\n//#endregion\n\n@TaonController<TaonMarketingAbController>({\n className: 'TaonMarketingAbController',\n // allowedMethods: []\n})\nexport class TaonMarketingAbController extends TaonBaseCrudController<\n TaonMarketingAbEntity,\n {\n /* file upload query params type */\n },\n TaonMarketingAbController\n> {\n entityClassResolveFn: () => typeof TaonMarketingAbEntity = () => TaonMarketingAbEntity;\n\n private readonly taonMarketingAbRepository = this.injectCustomRepo(TaonMarketingAbRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonMarketingAbRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers__NS__getName(TaonMarketingAbController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}","//#region imports\nimport { TaonBaseClass, TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\nexport class TaonTaonMarketingAbConfig extends TaonBaseClass {\n declare name: string;\n}\n\n@TaonProvider({\n className: 'TaonMarketingAbProvider',\n})\nexport class TaonMarketingAbProvider extends TaonBaseProvider {\n enabledTaonMarketingAbOption: boolean = true;\n config = new TaonTaonMarketingAbConfig();\n clone() {\n return {\n enabledTaonMarketingAbOption: this.enabledTaonMarketingAbOption,\n config: this.config.clone(),\n };\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonMarketingAbEntity } from './taon-marketing-ab.entity';\nimport { TaonMarketingAbController } from './taon-marketing-ab.controller';\nimport { TaonMarketingAbRepository } from './taon-marketing-ab.repository';\n// import { TaonMarketingAbKvRepository } from './taon-marketing-ab.kv.repository';\nimport { TaonMarketingAbProvider } from './taon-marketing-ab.provider';\n// import { TaonMarketingAbMiddleware } from './taon-marketing-ab.middleware';\n// import { TaonMarketingAbSubscriber } from './taon-marketing-ab.subscriber';\n//#endregion\n\nexport const TaonMarketingAbAbstractContext = createContext(() => ({\n contextName: 'TaonMarketingAbAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonMarketingAbEntity },\n controllers: { TaonMarketingAbController },\n repositories: {\n // TaonMarketingAbKvRepository\n TaonMarketingAbRepository,\n },\n providers: { TaonMarketingAbProvider },\n // middlewares: { TaonMarketingAbMiddleware },\n // subscribers: { TaonMarketingAbSubscriber },\n}));","import type { TaonMarketingNewsletterEntity } from './taon-marketing-newsletter.entity';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nconst t = Translation.for('src/lib/taon-marketing-newsletter/taon-marketing-newsletter.constants.ts', {\"src/lib/taon-marketing-newsletter/taon-marketing-newsletter.constants.ts\":{\"en-US\":async () => (await import('./i18n/taon-marketing-newsletter.constants.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-marketing-newsletter.constants.ts.pl-PL.i18n.data')).default}} as any);\n\nexport const TaonMarketingNewsletterDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonMarketingNewsletterEntity>;\n\nexport enum TaonMarketingNewsletterErrors {\n INVALID_PASSWORD_EXAMPLE_ERROR = 'INVALID_PASSWORD_EXAMPLE_ERROR',\n}\n\nexport const TaonMarketingNewsletterTranslationErorsMap = new Map([\n [TaonMarketingNewsletterErrors.INVALID_PASSWORD_EXAMPLE_ERROR, t.gettext('Invalid Password')],\n]);","//#region imports\nimport { CustomColumn, Column, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonMarketingNewsletterDefaultsValues } from './taon-marketing-newsletter.constants';\n//#endregion\n\n@TaonEntity<TaonMarketingNewsletterEntity>({\n className: 'TaonMarketingNewsletterEntity',\n createTable: true,\n // defaultModelMapping: () => ({\n // '': TaonMarketingNewsletterEntity,\n // nestedObjectField: ClassField,\n // nestedArrField: [ClassObjArrField],\n // }),\n})\nexport class TaonMarketingNewsletterEntity extends TaonBaseAbstractEntity<TaonMarketingNewsletterEntity> {\n //#region @websql\n @CustomColumn({\n type: 'varchar',\n length: 100,\n default: TaonMarketingNewsletterDefaultsValues.description,\n })\n //#endregion\n description?: string;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\n\nimport { TaonMarketingNewsletterEntity } from './taon-marketing-newsletter.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonMarketingNewsletterRepository',\n})\nexport class TaonMarketingNewsletterRepository extends TaonBaseRepository<TaonMarketingNewsletterEntity> {\n entityClassResolveFn: () => typeof TaonMarketingNewsletterEntity = () => TaonMarketingNewsletterEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonMarketingNewsletterEntity } from './taon-marketing-newsletter.entity';\nimport { TaonMarketingNewsletterRepository } from './taon-marketing-newsletter.repository';\n//#endregion\n\n@TaonController<TaonMarketingNewsletterController>({\n className: 'TaonMarketingNewsletterController',\n // allowedMethods: []\n})\nexport class TaonMarketingNewsletterController extends TaonBaseCrudController<\n TaonMarketingNewsletterEntity,\n {\n /* file upload query params type */\n },\n TaonMarketingNewsletterController\n> {\n entityClassResolveFn: () => typeof TaonMarketingNewsletterEntity = () => TaonMarketingNewsletterEntity;\n\n private readonly taonMarketingNewsletterRepository = this.injectCustomRepo(TaonMarketingNewsletterRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonMarketingNewsletterRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers__NS__getName(TaonMarketingNewsletterController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}","//#region imports\nimport { TaonBaseClass, TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\nexport class TaonTaonMarketingNewsletterConfig extends TaonBaseClass {\n declare name: string;\n}\n\n@TaonProvider({\n className: 'TaonMarketingNewsletterProvider',\n})\nexport class TaonMarketingNewsletterProvider extends TaonBaseProvider {\n enabledTaonMarketingNewsletterOption: boolean = true;\n config = new TaonTaonMarketingNewsletterConfig();\n clone() {\n return {\n enabledTaonMarketingNewsletterOption: this.enabledTaonMarketingNewsletterOption,\n config: this.config.clone(),\n };\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonMarketingNewsletterEntity } from './taon-marketing-newsletter.entity';\nimport { TaonMarketingNewsletterController } from './taon-marketing-newsletter.controller';\nimport { TaonMarketingNewsletterRepository } from './taon-marketing-newsletter.repository';\n// import { TaonMarketingNewsletterKvRepository } from './taon-marketing-newsletter.kv.repository';\nimport { TaonMarketingNewsletterProvider } from './taon-marketing-newsletter.provider';\n// import { TaonMarketingNewsletterMiddleware } from './taon-marketing-newsletter.middleware';\n// import { TaonMarketingNewsletterSubscriber } from './taon-marketing-newsletter.subscriber';\n//#endregion\n\nexport const TaonMarketingNewsletterAbstractContext = createContext(() => ({\n contextName: 'TaonMarketingNewsletterAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonMarketingNewsletterEntity },\n controllers: { TaonMarketingNewsletterController },\n repositories: {\n // TaonMarketingNewsletterKvRepository\n TaonMarketingNewsletterRepository,\n },\n providers: { TaonMarketingNewsletterProvider },\n // middlewares: { TaonMarketingNewsletterMiddleware },\n // subscribers: { TaonMarketingNewsletterSubscriber },\n}));","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, POST, PUT, DELETE, Body, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\nimport { TaonMarketingPopupRepository } from './taon-marketing-popup.repository';\nimport type { TaonMarketingPopupFields } from './taon-marketing-popup.models';\n//#endregion\n\n@TaonController<TaonMarketingPopupController>({\n className: 'TaonMarketingPopupController',\n allowedMethods: [\n 'getAll', 'getBy', 'paginationQuery', 'getActivePopups',\n 'savePopup', 'setEnabled', 'deletePopup',\n ],\n})\nexport class TaonMarketingPopupController extends TaonBaseCrudController<\n TaonMarketingPopupEntity,\n {\n /* file upload query params type */\n },\n TaonMarketingPopupController\n> {\n entityClassResolveFn: () => typeof TaonMarketingPopupEntity = () => TaonMarketingPopupEntity;\n\n private readonly taonMarketingPopupRepository = this.injectCustomRepo(TaonMarketingPopupRepository);\n\n @GET()\n getActivePopups(): Taon__NS__Response<TaonMarketingPopupEntity[]> {\n //#region @websqlFunc\n return async () => this.taonMarketingPopupRepository.activePopups();\n //#endregion\n }\n\n @POST()\n savePopup(\n @Body() input: TaonMarketingPopupFields,\n @Query('id') id?: number,\n ): Taon__NS__Response<TaonMarketingPopupEntity> {\n //#region @websqlFunc\n return async () => this.taonMarketingPopupRepository.savePopup(input, id);\n //#endregion\n }\n\n @PUT()\n setEnabled(\n @Query('id') id: number,\n @Body('enabled') enabled: boolean,\n ): Taon__NS__Response<TaonMarketingPopupEntity> {\n //#region @websqlFunc\n return async () => this.taonMarketingPopupRepository.setEnabled(id, enabled);\n //#endregion\n }\n\n @DELETE()\n deletePopup(@Query('id') id: number): Taon__NS__Response<void> {\n //#region @websqlFunc\n return async () => this.taonMarketingPopupRepository.deletePopup(id);\n //#endregion\n }\n}","//#region imports\nimport { TaonBaseClass, TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\nexport class TaonTaonMarketingPopupConfig extends TaonBaseClass {\n declare name: string;\n}\n\n@TaonProvider({\n className: 'TaonMarketingPopupProvider',\n})\nexport class TaonMarketingPopupProvider extends TaonBaseProvider {\n enabledTaonMarketingPopupOption: boolean = true;\n config = new TaonTaonMarketingPopupConfig();\n clone() {\n return {\n enabledTaonMarketingPopupOption: this.enabledTaonMarketingPopupOption,\n config: this.config.clone(),\n };\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\nimport { TaonMarketingPopupController } from './taon-marketing-popup.controller';\nimport { TaonMarketingPopupRepository } from './taon-marketing-popup.repository';\n// import { TaonMarketingPopupKvRepository } from './taon-marketing-popup.kv.repository';\nimport { TaonMarketingPopupProvider } from './taon-marketing-popup.provider';\n// import { TaonMarketingPopupMiddleware } from './taon-marketing-popup.middleware';\n// import { TaonMarketingPopupSubscriber } from './taon-marketing-popup.subscriber';\n//#endregion\n\nexport const TaonMarketingPopupAbstractContext = createContext(() => ({\n contextName: 'TaonMarketingPopupAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonMarketingPopupEntity },\n controllers: { TaonMarketingPopupController },\n repositories: {\n // TaonMarketingPopupKvRepository\n TaonMarketingPopupRepository,\n },\n providers: { TaonMarketingPopupProvider },\n // middlewares: { TaonMarketingPopupMiddleware },\n // subscribers: { TaonMarketingPopupSubscriber },\n}));","import type { TaonMarketingPromoEntity } from './taon-marketing-promo.entity';\nimport { Translation } from '@taon-dev/i18n/websql-prod';\nimport { Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nconst t = Translation.for('src/lib/taon-marketing-promo/taon-marketing-promo.constants.ts', {\"src/lib/taon-marketing-promo/taon-marketing-promo.constants.ts\":{\"en-US\":async () => (await import('./i18n/taon-marketing-promo.constants.ts.en-US.i18n.data')).default,\"pl-PL\":async () => (await import('./i18n/taon-marketing-promo.constants.ts.pl-PL.i18n.data')).default}} as any);\n\nexport const TaonMarketingPromoDefaultsValues = {\n description: '',\n version: 0,\n id: void 0,\n} as Partial<TaonMarketingPromoEntity>;\n\nexport enum TaonMarketingPromoErrors {\n INVALID_PASSWORD_EXAMPLE_ERROR = 'INVALID_PASSWORD_EXAMPLE_ERROR',\n}\n\nexport const TaonMarketingPromoTranslationErorsMap = new Map([\n [TaonMarketingPromoErrors.INVALID_PASSWORD_EXAMPLE_ERROR, t.gettext('Invalid Password')],\n]);","//#region imports\nimport { CustomColumn, Column, TaonBaseAbstractEntity, TaonEntity, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonMarketingPromoDefaultsValues } from './taon-marketing-promo.constants';\n//#endregion\n\n@TaonEntity<TaonMarketingPromoEntity>({\n className: 'TaonMarketingPromoEntity',\n createTable: true,\n // defaultModelMapping: () => ({\n // '': TaonMarketingPromoEntity,\n // nestedObjectField: ClassField,\n // nestedArrField: [ClassObjArrField],\n // }),\n})\nexport class TaonMarketingPromoEntity extends TaonBaseAbstractEntity<TaonMarketingPromoEntity> {\n //#region @websql\n @CustomColumn({\n type: 'varchar',\n length: 100,\n default: TaonMarketingPromoDefaultsValues.description,\n })\n //#endregion\n description?: string;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/websql-prod';\nimport { Raw } from 'taon-typeorm/websql-prod';\n\nimport { TaonMarketingPromoEntity } from './taon-marketing-promo.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonMarketingPromoRepository',\n})\nexport class TaonMarketingPromoRepository extends TaonBaseRepository<TaonMarketingPromoEntity> {\n entityClassResolveFn: () => typeof TaonMarketingPromoEntity = () => TaonMarketingPromoEntity;\n\n /**\n * TODO remove this demo example method\n */\n async countEntitesWithEvenId(): Promise<number> {\n //#region @websqlFunc\n const result = await this.count({\n where: {\n id: Raw(alias => `${alias} % 2 = 0`),\n },\n });\n return result;\n //#endregion\n }\n}","//#region imports\nimport { TaonController, TaonBaseCrudController, Query, GET, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n\nimport { TaonMarketingPromoEntity } from './taon-marketing-promo.entity';\nimport { TaonMarketingPromoRepository } from './taon-marketing-promo.repository';\n//#endregion\n\n@TaonController<TaonMarketingPromoController>({\n className: 'TaonMarketingPromoController',\n // allowedMethods: []\n})\nexport class TaonMarketingPromoController extends TaonBaseCrudController<\n TaonMarketingPromoEntity,\n {\n /* file upload query params type */\n },\n TaonMarketingPromoController\n> {\n entityClassResolveFn: () => typeof TaonMarketingPromoEntity = () => TaonMarketingPromoEntity;\n\n private readonly taonMarketingPromoRepository = this.injectCustomRepo(TaonMarketingPromoRepository);\n\n //#region methods & getters / hello world\n /**\n * TODO remove this demo example method\n */\n @GET()\n helloWord(@Query('yourName') yourName: string): Taon__NS__Response<string> {\n //#region @websqlFunc\n return async (req, res) => {\n const numOfEntities = await this.db.count();\n const numberOfEvenEntities =\n await this.taonMarketingPromoRepository.countEntitesWithEvenId();\n return `Hello ${yourName || 'world'} from ${ClassHelpers__NS__getName(TaonMarketingPromoController)}\n controller.. ${numOfEntities} entites in db..\n ${numberOfEvenEntities} entites with even ids (2,4,6,8 etc.)\n `;\n };\n //#endregion\n }\n //#endregion\n}","//#region imports\nimport { TaonBaseClass, TaonBaseProvider, TaonProvider, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\nexport class TaonTaonMarketingPromoConfig extends TaonBaseClass {\n declare name: string;\n}\n\n@TaonProvider({\n className: 'TaonMarketingPromoProvider',\n})\nexport class TaonMarketingPromoProvider extends TaonBaseProvider {\n enabledTaonMarketingPromoOption: boolean = true;\n config = new TaonTaonMarketingPromoConfig();\n clone() {\n return {\n enabledTaonMarketingPromoOption: this.enabledTaonMarketingPromoOption,\n config: this.config.clone(),\n };\n }\n}","//#region imports\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonMarketingPromoEntity } from './taon-marketing-promo.entity';\nimport { TaonMarketingPromoController } from './taon-marketing-promo.controller';\nimport { TaonMarketingPromoRepository } from './taon-marketing-promo.repository';\n// import { TaonMarketingPromoKvRepository } from './taon-marketing-promo.kv.repository';\nimport { TaonMarketingPromoProvider } from './taon-marketing-promo.provider';\n// import { TaonMarketingPromoMiddleware } from './taon-marketing-promo.middleware';\n// import { TaonMarketingPromoSubscriber } from './taon-marketing-promo.subscriber';\n//#endregion\n\nexport const TaonMarketingPromoAbstractContext = createContext(() => ({\n contextName: 'TaonMarketingPromoAbstractContext',\n abstract: true,\n contexts: { TaonBaseContext },\n entities: { TaonMarketingPromoEntity },\n controllers: { TaonMarketingPromoController },\n repositories: {\n // TaonMarketingPromoKvRepository\n TaonMarketingPromoRepository,\n },\n providers: { TaonMarketingPromoProvider },\n // middlewares: { TaonMarketingPromoMiddleware },\n // subscribers: { TaonMarketingPromoSubscriber },\n}));","import { TaonCmsAbstractContext } from '@taon-dev/cms/websql-prod';\nimport { createContext, TaonBaseContext } from 'taon/websql-prod';\n\nimport { TaonMarketingAbAbstractContext } from './taon-marketing-ab/taon-marketing-ab.abstract.context';\nimport { TaonMarketingNewsletterAbstractContext } from './taon-marketing-newsletter/taon-marketing-newsletter.abstract.context';\nimport { TaonMarketingPopupAbstractContext } from './taon-marketing-popup/taon-marketing-popup.abstract.context';\nimport { TaonMarketingPromoAbstractContext } from './taon-marketing-promo/taon-marketing-promo.abstract.context';\n\nexport const TaonMarketingAbstractContext = createContext(() => ({\n contextName: 'TaonMarketingAbstractContext',\n abstract: true,\n contexts: {\n TaonCmsAbstractContext,\n\n TaonMarketingAbAbstractContext,\n TaonMarketingNewsletterAbstractContext,\n TaonMarketingPopupAbstractContext,\n TaonMarketingPromoAbstractContext,\n },\n}));\n","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonMarketingAbEntity } from './taon-marketing-ab.entity';\nimport { TaonMarketingAbController } from './taon-marketing-ab.controller';\n//#endregion\n\n@Injectable()\nexport class TaonMarketingAbApiService extends TaonBaseAngularService {\n public readonly taonMarketingAbController = this.injectController(TaonMarketingAbController);\n\n public get allMyEntities$(): Observable<TaonMarketingAbEntity[]> {\n return this.taonMarketingAbController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user: string): Observable<string> {\n return this.taonMarketingAbController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonMarketingAbProvider } from './taon-marketing-ab.provider';\n//#endregion\n\n@Injectable()\nexport class TaonMarketingAbConfigService extends TaonBaseAngularService {\n private taonMarketingAbProvider = this.injectProvider(TaonMarketingAbProvider);\n\n get isEnableOption() {\n return this.taonMarketingAbProvider.enabledTaonMarketingAbOption;\n }\n\n clone(): Partial<TaonMarketingAbProvider> {\n const cloned = this.taonMarketingAbProvider.clone();\n return cloned;\n }\n}","//#region imports\nimport {\n TaonBaseRepository,\n TaonBaseKvRepository,\n TaonRepository,\n} from 'taon/websql-prod';\n\nimport { TaonMarketingAbEntity } from './taon-marketing-ab.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonMarketingAbKvRepository',\n})\nexport class TaonMarketingAbKvRepository extends TaonBaseKvRepository<{\n usersToNotify: TaonMarketingAbEntity[];\n}> {\n async notifyUsers(users: TaonMarketingAbEntity[]) {\n this.set('usersToNotify', users);\n }\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonMarketingAbMiddleware',\n})\nexport class TaonMarketingAbMiddleware extends TaonBaseMiddleware {}","//namespace TaonMarketingAbModels\n\n export enum TaonMarketingAbModels__NS__TaonMarketingAbState {\n Active = 'active',\n Inactive = 'inactive',\n }\n\n//end of namespace TaonMarketingAbModels\n","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonMarketingAbEntity } from './taon-marketing-ab.entity';\nimport { TaonMarketingAbProvider } from './taon-marketing-ab.provider';\n//#endregion\n\n@TaonSubscriber<TaonMarketingAbSubscriber>({\n className: 'TaonMarketingAbSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonMarketingAbSubscriber extends TaonBaseSubscriberForEntity {\n private readonly taonMarketingAbProvider = this.injectProvider(TaonMarketingAbProvider);\n listenTo(): typeof TaonMarketingAbEntity {\n return TaonMarketingAbEntity;\n }\n}","import { TaonMarketingAbModels__NS__TaonMarketingAbState } from './taon-marketing-ab.models';\n\n//namespace TaonMarketingAbUtils\n\n export function TaonMarketingAbUtils__NS__isActive(state: string): state is TaonMarketingAbModels__NS__TaonMarketingAbState {\n return state === 'active';\n }\n\n//end of namespace TaonMarketingAbUtils","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; // @browser\nimport { TaonMarketingAbErrors } from './taon-marketing-ab.constants';\n\n//namespace TaonMarketingAbValidators\n\n //#region @browser\n /**\n * TODO REMOVE THIS EXAMPLE.\n */\n export const TaonMarketingAbValidators__NS__passwordMatchValidator: ValidatorFn = (\n control: AbstractControl,\n ): ValidationErrors | null => {\n const password = control.get('password');\n const passwordRepeat = control.get('passwordRepeat');\n\n if (!password || !passwordRepeat) {\n return null;\n }\n\n return password.value === passwordRepeat.value\n ? null\n : { [TaonMarketingAbErrors.INVALID_PASSWORD_EXAMPLE_ERROR]: true };\n };\n //#endregion\n\n\n//end of namespace TaonMarketingAbValidators\n","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n//#endregion\n\n@Component({\n selector: 'app-taon-marketing-backoffice',\n templateUrl: './taon-marketing-backoffice.component.html',\n styleUrls: ['./taon-marketing-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonMarketingBackofficeComponent {}","<router-outlet></router-outlet>","//namespace TaonMarketingBackofficeModels\n\n//end of namespace TaonMarketingBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql-prod';\n//#endregion\n\nexport const TaonMarketingBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-marketing-backoffice.component').then(\n m => m.TaonMarketingBackofficeComponent,\n ),\n\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'popups' },\n { path: 'popup', pathMatch: 'full', redirectTo: 'popups' },\n { path: 'ab-testing', pathMatch: 'full', redirectTo: 'ab' },\n adminLazyRoute({\n path: 'popups',\n menuItem: 'Popups',\n icon: 'chat_info',\n expandable: false,\n loader: () =>\n import('../index').then(\n m => m.TaonMarketingPopupBackofficeRoutes,\n ),\n }),\n\n adminLazyRoute({\n path: 'promotions',\n menuItem: 'Promotions',\n icon: 'sell',\n expandable: false,\n loader: () =>\n import('../index').then(\n m => m.TaonMarketingPromoBackofficeRoutes,\n ),\n }),\n\n adminLazyRoute({\n path: 'newsletter',\n menuItem: 'Newsletter',\n icon: 'info',\n expandable: false,\n loader: () =>\n import('../index').then(\n m => m.TaonMarketingNewsletterBackofficeRoutes,\n ),\n }),\n\n adminLazyRoute({\n path: 'ab',\n menuItem: 'AB',\n icon: 'science',\n expandable: false,\n loader: () =>\n import('../index').then(\n m => m.TaonMarketingAbBackofficeRoutes,\n ),\n }),\n ],\n },\n];\n\n/**\n * By default exporting TaonMarketingBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonMarketingBackofficeRoutes;\n","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonMarketingNewsletterEntity } from './taon-marketing-newsletter.entity';\nimport { TaonMarketingNewsletterController } from './taon-marketing-newsletter.controller';\n//#endregion\n\n@Injectable()\nexport class TaonMarketingNewsletterApiService extends TaonBaseAngularService {\n public readonly taonMarketingNewsletterController = this.injectController(TaonMarketingNewsletterController);\n\n public get allMyEntities$(): Observable<TaonMarketingNewsletterEntity[]> {\n return this.taonMarketingNewsletterController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user: string): Observable<string> {\n return this.taonMarketingNewsletterController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonMarketingNewsletterProvider } from './taon-marketing-newsletter.provider';\n//#endregion\n\n@Injectable()\nexport class TaonMarketingNewsletterConfigService extends TaonBaseAngularService {\n private taonMarketingNewsletterProvider = this.injectProvider(TaonMarketingNewsletterProvider);\n\n get isEnableOption() {\n return this.taonMarketingNewsletterProvider.enabledTaonMarketingNewsletterOption;\n }\n\n clone(): Partial<TaonMarketingNewsletterProvider> {\n const cloned = this.taonMarketingNewsletterProvider.clone();\n return cloned;\n }\n}","//#region imports\nimport {\n TaonBaseRepository,\n TaonBaseKvRepository,\n TaonRepository,\n} from 'taon/websql-prod';\n\nimport { TaonMarketingNewsletterEntity } from './taon-marketing-newsletter.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonMarketingNewsletterKvRepository',\n})\nexport class TaonMarketingNewsletterKvRepository extends TaonBaseKvRepository<{\n usersToNotify: TaonMarketingNewsletterEntity[];\n}> {\n async notifyUsers(users: TaonMarketingNewsletterEntity[]) {\n this.set('usersToNotify', users);\n }\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonMarketingNewsletterMiddleware',\n})\nexport class TaonMarketingNewsletterMiddleware extends TaonBaseMiddleware {}","//namespace TaonMarketingNewsletterModels\n\n export enum TaonMarketingNewsletterModels__NS__TaonMarketingNewsletterState {\n Active = 'active',\n Inactive = 'inactive',\n }\n\n//end of namespace TaonMarketingNewsletterModels\n","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonMarketingNewsletterEntity } from './taon-marketing-newsletter.entity';\nimport { TaonMarketingNewsletterProvider } from './taon-marketing-newsletter.provider';\n//#endregion\n\n@TaonSubscriber<TaonMarketingNewsletterSubscriber>({\n className: 'TaonMarketingNewsletterSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonMarketingNewsletterSubscriber extends TaonBaseSubscriberForEntity {\n private readonly taonMarketingNewsletterProvider = this.injectProvider(TaonMarketingNewsletterProvider);\n listenTo(): typeof TaonMarketingNewsletterEntity {\n return TaonMarketingNewsletterEntity;\n }\n}","import { TaonMarketingNewsletterModels__NS__TaonMarketingNewsletterState } from './taon-marketing-newsletter.models';\n\n//namespace TaonMarketingNewsletterUtils\n\n export function TaonMarketingNewsletterUtils__NS__isActive(state: string): state is TaonMarketingNewsletterModels__NS__TaonMarketingNewsletterState {\n return state === 'active';\n }\n\n//end of namespace TaonMarketingNewsletterUtils","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; // @browser\nimport { TaonMarketingNewsletterErrors } from './taon-marketing-newsletter.constants';\n\n//namespace TaonMarketingNewsletterValidators\n\n //#region @browser\n /**\n * TODO REMOVE THIS EXAMPLE.\n */\n export const TaonMarketingNewsletterValidators__NS__passwordMatchValidator: ValidatorFn = (\n control: AbstractControl,\n ): ValidationErrors | null => {\n const password = control.get('password');\n const passwordRepeat = control.get('passwordRepeat');\n\n if (!password || !passwordRepeat) {\n return null;\n }\n\n return password.value === passwordRepeat.value\n ? null\n : { [TaonMarketingNewsletterErrors.INVALID_PASSWORD_EXAMPLE_ERROR]: true };\n };\n //#endregion\n\n\n//end of namespace TaonMarketingNewsletterValidators\n","import { ChangeDetectionStrategy, Component, computed, inject, input, output } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport type { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\n\nexport interface TaonMarketingPopupDialogData {\n popup: TaonMarketingPopupEntity;\n imageUrl: string | null;\n}\n\n@Component({\n selector: 'taon-marketing-popup-content',\n templateUrl: './taon-marketing-popup-content.component.html',\n styleUrls: ['./taon-marketing-popup-content.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TaonMarketingPopupContentComponent {\n readonly popup = input<TaonMarketingPopupEntity>();\n readonly imageUrl = input<string | null>(null);\n readonly clicked = output<void>();\n readonly closed = output<void>();\n\n private readonly data = inject<TaonMarketingPopupDialogData | null>(MAT_DIALOG_DATA, { optional: true });\n private readonly ref = inject(MatDialogRef<TaonMarketingPopupContentComponent>, { optional: true });\n\n readonly currentPopup = computed(() => this.popup() ?? this.data?.popup);\n readonly currentImage = computed(() => this.imageUrl() ?? this.data?.imageUrl);\n\n close(): void {\n if (this.ref) {\n this.ref.close();\n } else {\n this.closed.emit();\n }\n }\n\n click(): void {\n this.clicked.emit();\n this.close();\n }\n}\n","@if (currentPopup(); as popup) {\n <section class=\"popup\">\n <button class=\"close\" type=\"button\" aria-label=\"Close popup\" (click)=\"close()\">×</button>\n @if (popup.title) {\n <h2>{{ popup.title }}</h2>\n }\n @if (popup.content) {\n <p>{{ popup.content }}</p>\n }\n @if (currentImage(); as image) {\n <img [src]=\"image\" alt=\"\">\n }\n @if (popup.buttonText && popup.buttonUrl) {\n <a class=\"cta\" [href]=\"popup.buttonUrl\" (click)=\"click()\">{{ popup.buttonText }}</a>\n }\n </section>\n}\n","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService } from 'taon/websql-prod';\n\nimport type { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\nimport { TaonMarketingPopupController } from './taon-marketing-popup.controller';\nimport type { TaonMarketingPopupFields } from './taon-marketing-popup.models';\n//#endregion\n\n@Injectable()\nexport class TaonMarketingPopupApiService extends TaonBaseAngularService {\n public readonly taonMarketingPopupController = this.injectController(TaonMarketingPopupController);\n\n public get allMyEntities$(): Observable<TaonMarketingPopupEntity[]> {\n return this.taonMarketingPopupController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public getActivePopups(): Observable<TaonMarketingPopupEntity[]> {\n return this.taonMarketingPopupController.getActivePopups().request!().observable.pipe(\n map(res => res.body.json),\n );\n }\n\n public savePopup(input: TaonMarketingPopupFields, id?: number): Observable<TaonMarketingPopupEntity> {\n return this.taonMarketingPopupController.savePopup(input, id).request!().observable.pipe(\n map(res => res.body.json),\n );\n }\n\n public setEnabled(id: number, enabled: boolean): Observable<TaonMarketingPopupEntity> {\n return this.taonMarketingPopupController.setEnabled(id, enabled).request!().observable.pipe(\n map(res => res.body.json),\n );\n }\n\n public deletePopup(id: number): Observable<void> {\n return this.taonMarketingPopupController.deletePopup(id).request!().observable.pipe(\n map(() => undefined),\n );\n }\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonMarketingPopupProvider } from './taon-marketing-popup.provider';\n//#endregion\n\n@Injectable()\nexport class TaonMarketingPopupConfigService extends TaonBaseAngularService {\n private taonMarketingPopupProvider = this.injectProvider(TaonMarketingPopupProvider);\n\n get isEnableOption() {\n return this.taonMarketingPopupProvider.enabledTaonMarketingPopupOption;\n }\n\n clone(): Partial<TaonMarketingPopupProvider> {\n const cloned = this.taonMarketingPopupProvider.clone();\n return cloned;\n }\n}","import type { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\nimport { TaonMarketingPopupType } from './taon-marketing-popup.models';\n\nexport const TaonMarketingPopupDefaultsValues = {\n name: '',\n enabled: false,\n type: TaonMarketingPopupType.Dialog,\n title: null,\n content: null,\n imageKey: null,\n buttonText: null,\n buttonUrl: null,\n delaySeconds: 0,\n displayOnPaths: null,\n excludePaths: null,\n startAt: null,\n endAt: null,\n maxDisplaysPerVisitor: null,\n oncePerSession: true,\n version: 0,\n id: void 0,\n} satisfies Partial<TaonMarketingPopupEntity>;","//#region imports\nimport {\n TaonBaseRepository,\n TaonBaseKvRepository,\n TaonRepository,\n} from 'taon/websql-prod';\n\nimport { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonMarketingPopupKvRepository',\n})\nexport class TaonMarketingPopupKvRepository extends TaonBaseKvRepository<{\n usersToNotify: TaonMarketingPopupEntity[];\n}> {\n async notifyUsers(users: TaonMarketingPopupEntity[]) {\n this.set('usersToNotify', users);\n }\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonMarketingPopupMiddleware',\n})\nexport class TaonMarketingPopupMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\nimport { TaonMarketingPopupProvider } from './taon-marketing-popup.provider';\n//#endregion\n\n@TaonSubscriber<TaonMarketingPopupSubscriber>({\n className: 'TaonMarketingPopupSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonMarketingPopupSubscriber extends TaonBaseSubscriberForEntity {\n private readonly taonMarketingPopupProvider = this.injectProvider(TaonMarketingPopupProvider);\n listenTo(): typeof TaonMarketingPopupEntity {\n return TaonMarketingPopupEntity;\n }\n}","import { ValidatorFn } from '@angular/forms'; // @browser\nimport { TaonMarketingPopupUtils__NS__allowsPath, TaonMarketingPopupUtils__NS__isActive, TaonMarketingPopupUtils__NS__isPathPattern, TaonMarketingPopupUtils__NS__isSafeUrl, TaonMarketingPopupUtils__NS__matchesPath } from './taon-marketing-popup.utils';\n\n//namespace TaonMarketingPopupValidators\n\n //#region @browser\n export const TaonMarketingPopupValidators__NS__paths: ValidatorFn = control => {\n const value: unknown = control.value;\n return typeof value === 'string' &&\n value.split('\\n').map(path => path.trim()).filter(Boolean)\n .every(path => TaonMarketingPopupUtils__NS__isPathPattern(path))\n ? null : { popupPaths: true };\n };\n\n export const TaonMarketingPopupValidators__NS__url: ValidatorFn = control => {\n const value: unknown = control.value;\n return typeof value === 'string' &&\n (!value.trim() || TaonMarketingPopupUtils__NS__isSafeUrl(value.trim()))\n ? null : { popupUrl: true };\n };\n\n export const TaonMarketingPopupValidators__NS__optionalPositiveInteger: ValidatorFn = control =>\n control.value === null ||\n (Number.isSafeInteger(control.value) && control.value > 0)\n ? null : { popupDisplayLimit: true };\n\n export const TaonMarketingPopupValidators__NS__optionalDate: ValidatorFn = control => {\n const value: unknown = control.value;\n return typeof value === 'string' &&\n (!value || Number.isFinite(new Date(value).getTime()))\n ? null : { popupDate: true };\n };\n //#endregion\n\n//end of namespace TaonMarketingPopupValidators","import { isPlatformBrowser } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, DestroyRef, PLATFORM_ID, inject, input, output, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { EMPTY, Subscription, catchError, filter, startWith, switchMap, tap, timer } from 'rxjs';\n\nimport { TaonMarketingPopupApiService } from './taon-marketing-popup.api.service';\nimport { TaonMarketingPopupContentComponent } from './taon-marketing-popup-content.component';\nimport type { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\nimport { TaonMarketingPopupType } from './taon-marketing-popup.models';\nimport type { TaonMarketingPopupEvent, TaonMarketingPopupImageResolver } from './taon-marketing-popup.models';\nimport { TaonMarketingPopupUtils__NS__allowsPath, TaonMarketingPopupUtils__NS__isActive, TaonMarketingPopupUtils__NS__isPathPattern, TaonMarketingPopupUtils__NS__isSafeUrl, TaonMarketingPopupUtils__NS__matchesPath } from './taon-marketing-popup.utils';\n\ninterface PendingPopup {\n popup: TaonMarketingPopupEntity;\n dueAt: number;\n}\n\ninterface VisiblePopup {\n popup: TaonMarketingPopupEntity;\n path: string;\n displayed: boolean;\n}\n\n@Component({\n selector: 'taon-marketing-popups',\n template: `\n @if (bottomPopup(); as popup) {\n <aside class=\"bottom-popup\" role=\"region\" [attr.aria-label]=\"popup.title || 'Marketing popup'\">\n <taon-marketing-popup-content\n [popup]=\"popup\"\n (clicked)=\"click()\"\n (closed)=\"close()\">\n </taon-marketing-popup-content>\n </aside>\n }\n `,\n styles: [`\n .bottom-popup {\n position: fixed;\n z-index: 1000;\n bottom: 0;\n left: 0;\n right: 0;\n max-height: 50vh;\n overflow: auto;\n color: #222;\n background: #fff;\n box-shadow: 0 -2px 12px #0003;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TaonMarketingPopupContentComponent],\n providers: [TaonMarketingPopupApiService],\n})\nexport class TaonMarketingPopupsComponent {\n readonly resolveImage = input<TaonMarketingPopupImageResolver>(key => key);\n readonly popupEvent = output<TaonMarketingPopupEvent>();\n readonly popupError = output<unknown>();\n readonly bottomPopup = signal<TaonMarketingPopupEntity | null>(null);\n\n private readonly api = inject(TaonMarketingPopupApiService);\n private readonly router = inject(Router);\n private readonly dialog = inject(MatDialog);\n private readonly destroyRef = inject(DestroyRef);\n private readonly platform = inject(PLATFORM_ID);\n private pending: PendingPopup[] = [];\n private visible: VisiblePopup | null = null;\n private dialogRef: MatDialogRef<TaonMarketingPopupContentComponent> | null = null;\n private delayTimer?: Subscription;\n private endTimer?: Subscription;\n\n ngOnInit(): void {\n if (!isPlatformBrowser(this.platform)) {\n return;\n }\n this.destroyRef.onDestroy(() => this.clear());\n this.router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n startWith(null),\n tap(() => this.clear()),\n switchMap(() => this.api.getActivePopups().pipe(\n catchError((error: unknown) => {\n this.report(error);\n return EMPTY;\n }),\n )),\n takeUntilDestroyed(this.destroyRef),\n ).subscribe(popups => {\n const now = Date.now();\n this.pending = popups.filter(popup =>\n Object.values(TaonMarketingPopupType).includes(popup.type) &&\n TaonMarketingPopupUtils__NS__isActive(popup) &&\n TaonMarketingPopupUtils__NS__allowsPath(popup, this.router.url),\n ).map(popup => ({ popup, dueAt: now + popup.delaySeconds * 1000 }));\n this.pending.sort((a, b) => a.dueAt - b.dueAt || a.popup.id - b.popup.id);\n this.scheduleNext();\n });\n }\n\n click(): void {\n if (this.visible?.displayed) {\n this.emit('popup-click', this.visible);\n }\n }\n\n close(): void {\n if (this.visible?.displayed) {\n this.emit('popup-close', this.visible);\n }\n this.visible = null;\n this.bottomPopup.set(null);\n this.endTimer?.unsubscribe();\n const ref = this.dialogRef;\n this.dialogRef = null;\n if (ref) {\n ref.close();\n ref.afterClosed().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.scheduleNext());\n } else {\n this.scheduleNext();\n }\n }\n\n private clear(): void {\n this.pending = [];\n this.delayTimer?.unsubscribe();\n this.endTimer?.unsubscribe();\n if (this.visible?.displayed && !this.destroyRef.destroyed) {\n this.emit('popup-close', this.visible);\n }\n this.visible = null;\n this.bottomPopup.set(null);\n this.dialogRef?.close();\n this.dialogRef = null;\n }\n\n private scheduleNext(): void {\n if (this.destroyRef.destroyed || this.visible || !this.pending.length) {\n return;\n }\n this.delayTimer?.unsubscribe();\n const next = this.pending[0];\n this.delayTimer = timer(Math.max(0, next.dueAt - Date.now())).subscribe(() => {\n this.pending.shift();\n try {\n if (TaonMarketingPopupUtils__NS__isActive(next.popup) &&\n TaonMarketingPopupUtils__NS__allowsPath(next.popup, this.router.url) &&\n this.allowsVisitor(next.popup)) {\n this.show(next.popup);\n }\n } catch (error: unknown) {\n this.report(error);\n this.close();\n }\n this.scheduleNext();\n });\n }\n\n private show(popup: TaonMarketingPopupEntity): void {\n const visible: VisiblePopup = { popup, path: this.router.url.split(/[?#]/, 1)[0], displayed: false };\n let imageUrl: string | null = null;\n if (popup.type === TaonMarketingPopupType.Dialog && popup.imageKey) {\n imageUrl = this.resolveImage()(popup.imageKey);\n if (!TaonMarketingPopupUtils__NS__isSafeUrl(imageUrl)) {\n throw new Error(`Popup ${popup.id} image must resolve to an HTTP(S) URL or root-relative path.`);\n }\n }\n this.visible = visible;\n if (popup.type === TaonMarketingPopupType.Bottom) {\n this.recordDisplay(visible);\n this.bottomPopup.set(popup);\n } else {\n const ref = this.dialog.open(TaonMarketingPopupContentComponent, {\n data: { popup, imageUrl },\n width: '480px',\n maxWidth: '95vw',\n ariaLabel: popup.title || 'Marketing popup',\n autoFocus: 'first-tabbable',\n });\n this.dialogRef = ref;\n ref.componentInstance.clicked.subscribe(() => this.click());\n ref.afterOpened().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (this.visible !== visible) {\n return;\n }\n try {\n if (!TaonMarketingPopupUtils__NS__isActive(popup) || !this.allowsVisitor(popup)) {\n this.close();\n return;\n }\n this.recordDisplay(visible);\n } catch (error: unknown) {\n this.report(error);\n this.close();\n }\n });\n ref.afterClosed().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (this.visible === visible) {\n this.dialogRef = null;\n this.close();\n }\n });\n }\n this.scheduleEnd(visible);\n }\n\n private scheduleEnd(visible: VisiblePopup): void {\n if (!visible.popup.endAt) {\n return;\n }\n const delay = new Date(visible.popup.endAt).getTime() - Date.now() + 1;\n this.endTimer = timer(Math.max(0, Math.min(delay, 2147483647))).subscribe(() => {\n if (this.visible !== visible) {\n return;\n }\n if (TaonMarketingPopupUtils__NS__isActive(visible.popup)) {\n this.scheduleEnd(visible);\n } else {\n this.close();\n }\n });\n }\n\n private storageKey(popup: TaonMarketingPopupEntity): string {\n return `taon-marketing:popup:${popup.id}:displays`;\n }\n\n private count(storage: Storage, key: string): number {\n const raw = storage.getItem(key);\n const count = raw === null ? 0 : Number(raw);\n if ((raw !== null && !/^\\d+$/.test(raw)) ||\n !Number.isSafeInteger(count) || count < 0) {\n throw new Error(`Invalid popup display count in browser storage (${key}).`);\n }\n return count;\n }\n\n private allowsVisitor(popup: TaonMarketingPopupEntity): boolean {\n const key = this.storageKey(popup);\n return (!popup.oncePerSession || this.count(sessionStorage, key) === 0) &&\n (popup.maxDisplaysPerVisitor === null ||\n this.count(localStorage, key) < popup.maxDisplaysPerVisitor);\n }\n\n private recordDisplay(visible: VisiblePopup): void {\n const key = this.storageKey(visible.popup);\n const visitorCount = this.count(localStorage, key);\n const sessionCount = this.count(sessionStorage, key);\n localStorage.setItem(key, String(visitorCount + 1));\n sessionStorage.setItem(key, String(sessionCount + 1));\n visible.displayed = true;\n this.emit('popup-impression', visible);\n }\n\n private emit(name: TaonMarketingPopupEvent['name'], visible: VisiblePopup): void {\n this.popupEvent.emit({\n name,\n category: 'marketing',\n path: visible.path,\n data: { popupId: visible.popup.id, type: visible.popup.type },\n createdAt: new Date(),\n });\n }\n\n private report(error: unknown): void {\n console.error('[taon-marketing-popups] Unable to load or display popup', error);\n this.popupError.emit(error);\n }\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport type { TaonMarketingPromoEntity } from './taon-marketing-promo.entity';\nimport { TaonMarketingPromoController } from './taon-marketing-promo.controller';\n//#endregion\n\n@Injectable()\nexport class TaonMarketingPromoApiService extends TaonBaseAngularService {\n public readonly taonMarketingPromoController = this.injectController(TaonMarketingPromoController);\n\n public get allMyEntities$(): Observable<TaonMarketingPromoEntity[]> {\n return this.taonMarketingPromoController.getAll().request!().observable.pipe(\n map(res => res.body?.json),\n );\n }\n\n public helloWorld(user: string): Observable<string> {\n return this.taonMarketingPromoController.helloWord(user).request!().observable.pipe(\n map(res => res.responseText as string),\n );\n }\n}","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TaonBaseAngularService, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\n\nimport { TaonMarketingPromoProvider } from './taon-marketing-promo.provider';\n//#endregion\n\n@Injectable()\nexport class TaonMarketingPromoConfigService extends TaonBaseAngularService {\n private taonMarketingPromoProvider = this.injectProvider(TaonMarketingPromoProvider);\n\n get isEnableOption() {\n return this.taonMarketingPromoProvider.enabledTaonMarketingPromoOption;\n }\n\n clone(): Partial<TaonMarketingPromoProvider> {\n const cloned = this.taonMarketingPromoProvider.clone();\n return cloned;\n }\n}","//#region imports\nimport {\n TaonBaseRepository,\n TaonBaseKvRepository,\n TaonRepository,\n} from 'taon/websql-prod';\n\nimport { TaonMarketingPromoEntity } from './taon-marketing-promo.entity';\n//#endregion\n\n@TaonRepository({\n className: 'TaonMarketingPromoKvRepository',\n})\nexport class TaonMarketingPromoKvRepository extends TaonBaseKvRepository<{\n usersToNotify: TaonMarketingPromoEntity[];\n}> {\n async notifyUsers(users: TaonMarketingPromoEntity[]) {\n this.set('usersToNotify', users);\n }\n}","//#region imports\nimport { TaonBaseMiddleware, TaonMiddleware, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/websql-prod';\nimport { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/websql-prod';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonMarketingPromoMiddleware',\n})\nexport class TaonMarketingPromoMiddleware extends TaonBaseMiddleware {}","//namespace TaonMarketingPromoModels\n\n export enum TaonMarketingPromoModels__NS__TaonMarketingPromoState {\n Active = 'active',\n Inactive = 'inactive',\n }\n\n//end of namespace TaonMarketingPromoModels\n","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/websql-prod';\nimport { TaonMarketingPromoEntity } from './taon-marketing-promo.entity';\nimport { TaonMarketingPromoProvider } from './taon-marketing-promo.provider';\n//#endregion\n\n@TaonSubscriber<TaonMarketingPromoSubscriber>({\n className: 'TaonMarketingPromoSubscriber',\n // allowedEvents: ['afterUpdate'],\n})\nexport class TaonMarketingPromoSubscriber extends TaonBaseSubscriberForEntity {\n private readonly taonMarketingPromoProvider = this.injectProvider(TaonMarketingPromoProvider);\n listenTo(): typeof TaonMarketingPromoEntity {\n return TaonMarketingPromoEntity;\n }\n}","import { TaonMarketingPromoModels__NS__TaonMarketingPromoState } from './taon-marketing-promo.models';\n\n//namespace TaonMarketingPromoUtils\n\n export function TaonMarketingPromoUtils__NS__isActive(state: string): state is TaonMarketingPromoModels__NS__TaonMarketingPromoState {\n return state === 'active';\n }\n\n//end of namespace TaonMarketingPromoUtils","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; // @browser\nimport { TaonMarketingPromoErrors } from './taon-marketing-promo.constants';\n\n//namespace TaonMarketingPromoValidators\n\n //#region @browser\n /**\n * TODO REMOVE THIS EXAMPLE.\n */\n export const TaonMarketingPromoValidators__NS__passwordMatchValidator: ValidatorFn = (\n control: AbstractControl,\n ): ValidationErrors | null => {\n const password = control.get('password');\n const passwordRepeat = control.get('passwordRepeat');\n\n if (!password || !passwordRepeat) {\n return null;\n }\n\n return password.value === passwordRepeat.value\n ? null\n : { [TaonMarketingPromoErrors.INVALID_PASSWORD_EXAMPLE_ERROR]: true };\n };\n //#endregion\n\n\n//end of namespace TaonMarketingPromoValidators\n","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n//#endregion\n\n@Component({\n selector: 'app-taon-marketing-ab-backoffice',\n templateUrl: './taon-marketing-ab-backoffice.component.html',\n styleUrls: ['./taon-marketing-ab-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonMarketingAbBackofficeComponent {}","<router-outlet></router-outlet>\n<h1>AB</h1>\n<p>Reserved for marketing content variants and measurement. Experiments are not implemented.</p>","//namespace TaonMarketingAbBackofficeModels\n\n//end of namespace TaonMarketingAbBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql-prod';\n//#endregion\n\nexport const TaonMarketingAbBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-marketing-ab-backoffice.component').then(m => m.TaonMarketingAbBackofficeComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonMarketingAbBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonMarketingAbBackofficeRoutes;","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n//#endregion\n\n@Component({\n selector: 'app-taon-marketing-newsletter-backoffice',\n templateUrl: './taon-marketing-newsletter-backoffice.component.html',\n styleUrls: ['./taon-marketing-newsletter-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonMarketingNewsletterBackofficeComponent {}","<router-outlet></router-outlet>\n<h1>Newsletter</h1>\n<p>Reserved for Taon email and newsletter integration. Sending is not implemented.</p>","//namespace TaonMarketingNewsletterBackofficeModels\n\n//end of namespace TaonMarketingNewsletterBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql-prod';\n//#endregion\n\nexport const TaonMarketingNewsletterBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-marketing-newsletter-backoffice.component').then(m => m.TaonMarketingNewsletterBackofficeComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonMarketingNewsletterBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonMarketingNewsletterBackofficeRoutes;","import { ChangeDetectionStrategy, Component, DestroyRef, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormBuilder, FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { finalize } from 'rxjs';\n\nimport { TaonMarketingPopupApiService } from '../taon-marketing-popup.api.service';\nimport type { TaonMarketingPopupEntity } from '../taon-marketing-popup.entity';\nimport { TaonMarketingPopupType } from '../taon-marketing-popup.models';\nimport type { TaonMarketingPopupFields } from '../taon-marketing-popup.models';\nimport { TaonMarketingPopupValidators__NS__optionalDate, TaonMarketingPopupValidators__NS__optionalPositiveInteger, TaonMarketingPopupValidators__NS__paths, TaonMarketingPopupValidators__NS__url } from '../taon-marketing-popup.validators';\n\n@Component({\n selector: 'taon-marketing-popup-editor',\n templateUrl: './taon-marketing-popup-editor.component.html',\n styleUrls: ['./taon-marketing-popup-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ReactiveFormsModule, MatButtonModule, MatDialogModule],\n providers: [TaonMarketingPopupApiService],\n})\nexport class TaonMarketingPopupEditorComponent {\n readonly popup = inject<TaonMarketingPopupEntity | null>(MAT_DIALOG_DATA);\n readonly types = Object.values(TaonMarketingPopupType);\n readonly busy = signal(false);\n readonly error = signal('');\n\n private readonly api = inject(TaonMarketingPopupApiService);\n private readonly ref = inject(MatDialogRef<TaonMarketingPopupEditorComponent>);\n private readonly destroyRef = inject(DestroyRef);\n private readonly fb = inject(FormBuilder).nonNullable;\n\n readonly form = this.fb.group({\n name: [this.popup?.name ?? '', [Validators.required, Validators.pattern(/\\S/), Validators.maxLength(200)]],\n enabled: [this.popup?.enabled ?? false],\n type: [this.popup?.type ?? TaonMarketingPopupType.Dialog],\n title: [this.popup?.title ?? ''],\n content: [this.popup?.content ?? ''],\n imageKey: [this.popup?.imageKey ?? ''],\n buttonText: [this.popup?.buttonText ?? ''],\n buttonUrl: [this.popup?.buttonUrl ?? '', TaonMarketingPopupValidators__NS__url],\n delaySeconds: [this.popup?.delaySeconds ?? 0, [Validators.required, Validators.min(0), Validators.max(2147483)]],\n displayOnPaths: [this.popup?.displayOnPaths?.join('\\n') ?? '', TaonMarketingPopupValidators__NS__paths],\n excludePaths: [this.popup?.excludePaths?.join('\\n') ?? '', TaonMarketingPopupValidators__NS__paths],\n startAt: [this.localDate(this.popup?.startAt), TaonMarketingPopupValidators__NS__optionalDate],\n endAt: [this.localDate(this.popup?.endAt), TaonMarketingPopupValidators__NS__optionalDate],\n maxDisplaysPerVisitor: new FormControl<number | null>(\n this.popup?.maxDisplaysPerVisitor ?? null, TaonMarketingPopupValidators__NS__optionalPositiveInteger,\n ),\n oncePerSession: [this.popup?.oncePerSession ?? true],\n });\n\n save(): void {\n this.form.markAllAsTouched();\n if (this.form.invalid || this.busy()) {\n this.error.set('Please correct the invalid fields before saving.');\n return;\n }\n const value = this.form.getRawValue();\n const startAt = value.startAt ? new Date(value.startAt).toISOString() : null;\n const endAt = value.endAt ? new Date(value.endAt).toISOString() : null;\n if (startAt && endAt && startAt > endAt) {\n this.error.set('End date must not precede start date.');\n return;\n }\n const input: TaonMarketingPopupFields = {\n ...value,\n name: value.name.trim(),\n title: value.title.trim() || null,\n content: value.content || null,\n imageKey: value.imageKey.trim() || null,\n buttonText: value.buttonText.trim() || null,\n buttonUrl: value.buttonUrl.trim() || null,\n displayOnPaths: this.paths(value.displayOnPaths),\n excludePaths: this.paths(value.excludePaths),\n startAt,\n endAt,\n };\n this.busy.set(true);\n this.error.set('');\n this.api.savePopup(input, this.popup?.id).pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n ).subscribe({\n next: saved => this.ref.close(saved),\n error: (error: unknown) => {\n console.error('[taon-marketing-popup-editor] Unable to save popup', error);\n this.error.set('The popup could not be saved. Check the fields and try again.');\n },\n });\n }\n\n close(): void {\n if (!this.busy()) {\n this.ref.close();\n }\n }\n\n private paths(value: string): string[] | null {\n const paths = value.split('\\n').map(path => path.trim()).filter(Boolean);\n return paths.length ? paths : null;\n }\n\n private localDate(value: Date | string | null | undefined): string {\n if (!value) {\n return '';\n }\n const date = new Date(value);\n const local = new Date(date.getTime() - date.getTimezoneOffset() * 60000);\n return local.toISOString().slice(0, 16);\n }\n}","<h2 mat-dialog-title>{{ popup ? 'Edit popup' : 'Add popup' }}</h2>\n<form [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <mat-dialog-content>\n @if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n }\n <fieldset [disabled]=\"busy()\">\n <label>Name <input formControlName=\"name\" maxlength=\"200\" required></label>\n <label class=\"checkbox\"><input type=\"checkbox\" formControlName=\"enabled\"> Enabled</label>\n <label>Type\n <select formControlName=\"type\">\n @for (type of types; track type) {\n <option [value]=\"type\">{{ type }}</option>\n }\n </select>\n </label>\n <label>Title <input formControlName=\"title\"></label>\n <label>Content <textarea formControlName=\"content\" rows=\"4\"></textarea></label>\n <label>Image key / URL (dialog only) <input formControlName=\"imageKey\"></label>\n <label>Button text <input formControlName=\"buttonText\"></label>\n <label>Button URL <input formControlName=\"buttonUrl\" placeholder=\"/shop or https://example.com\"></label>\n <label>Delay (seconds) <input type=\"number\" formControlName=\"delaySeconds\" min=\"0\" max=\"2147483\" step=\"any\" required></label>\n <label>Display on paths\n <textarea formControlName=\"displayOnPaths\" rows=\"3\" placeholder=\"/shop/*\"></textarea>\n </label>\n <label>Exclude paths\n <textarea formControlName=\"excludePaths\" rows=\"3\" placeholder=\"/checkout\"></textarea>\n </label>\n <p>One path per line. Exact paths or a trailing * prefix. Empty display paths means all pages.</p>\n <label>Start (local time) <input type=\"datetime-local\" formControlName=\"startAt\"></label>\n <label>End (local time) <input type=\"datetime-local\" formControlName=\"endAt\"></label>\n <label>Maximum displays per visitor (empty = unlimited)\n <input type=\"number\" formControlName=\"maxDisplaysPerVisitor\" min=\"1\" step=\"1\">\n </label>\n <label class=\"checkbox\"><input type=\"checkbox\" formControlName=\"oncePerSession\"> Once per session</label>\n </fieldset>\n </mat-dialog-content>\n <mat-dialog-actions align=\"end\">\n <button mat-button type=\"button\" [disabled]=\"busy()\" (click)=\"close()\">Cancel</button>\n <button mat-flat-button type=\"submit\" [disabled]=\"busy()\">{{ busy() ? 'Saving...' : 'Save' }}</button>\n </mat-dialog-actions>\n</form>\n","//#region imports\nimport { ChangeDetectionStrategy, Component, DestroyRef, ViewChild, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { TaonConfirmDialogComponent, TaonDatatableComponent } from '@taon-dev/ui/websql-prod';\nimport { finalize } from 'rxjs';\n\nimport { TaonMarketingPopupApiService } from '../taon-marketing-popup.api.service';\nimport type { TaonMarketingPopupEntity } from '../taon-marketing-popup.entity';\nimport { TaonMarketingPopupEditorComponent } from './taon-marketing-popup-editor.component';\n//#endregion\n\n@Component({\n selector: 'app-taon-marketing-popup-backoffice',\n templateUrl: './taon-marketing-popup-backoffice.component.html',\n styleUrls: ['./taon-marketing-popup-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TaonDatatableComponent],\n providers: [TaonMarketingPopupApiService],\n})\nexport class TaonMarketingPopupBackofficeComponent {\n @ViewChild(TaonDatatableComponent)\n readonly datatable!: TaonDatatableComponent;\n\n private readonly api = inject(TaonMarketingPopupApiService);\n private readonly dialog = inject(MatDialog);\n private readonly destroyRef = inject(DestroyRef);\n\n readonly error = signal('');\n readonly busy = signal(false);\n readonly crud = this.api.taonMarketingPopupController;\n readonly columns: MtxGridColumn[] = [\n { header: 'ID', field: 'id', sortable: true },\n { header: 'Name', field: 'name', sortable: true },\n { header: 'Type', field: 'type', sortable: true },\n { header: 'Enabled', field: 'enabled', sortable: true },\n {\n header: 'Actions',\n field: 'actions',\n type: 'button',\n buttons: [\n {\n type: 'icon', icon: 'edit', tooltip: 'Edit popup',\n disabled: () => this.busy(),\n click: (popup: TaonMarketingPopupEntity) => this.edit(popup),\n },\n {\n type: 'icon', icon: 'power_settings_new', tooltip: 'Enable / disable popup',\n disabled: () => this.busy(),\n click: (popup: TaonMarketingPopupEntity) => this.toggle(popup),\n },\n {\n type: 'icon', icon: 'delete', tooltip: 'Delete popup',\n disabled: () => this.busy(),\n click: (popup: TaonMarketingPopupEntity) => this.delete(popup),\n },\n ],\n },\n ];\n\n ngAfterViewInit(): void {\n this.datatable.reload();\n }\n\n edit(popup?: TaonMarketingPopupEntity): void {\n const ref = this.dialog.open(TaonMarketingPopupEditorComponent, {\n data: popup ?? null,\n width: '640px',\n maxWidth: '95vw',\n disableClose: true,\n });\n ref.afterClosed().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(saved => {\n if (saved) {\n this.datatable.reload();\n }\n });\n }\n\n toggle(popup: TaonMarketingPopupEntity): void {\n this.busy.set(true);\n this.error.set('');\n this.api.setEnabled(popup.id, !popup.enabled).pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n ).subscribe({\n next: () => this.datatable.reload(),\n error: (error: unknown) => this.reportError('The popup could not be updated.', error),\n });\n }\n\n delete(popup: TaonMarketingPopupEntity): void {\n this.busy.set(true);\n const ref = this.dialog.open(TaonConfirmDialogComponent, {\n data: {\n title: 'Delete popup?',\n message: `Permanently delete \"${popup.name}\"?`,\n confirmText: 'Delete',\n },\n });\n ref.afterClosed().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(confirmed => {\n if (!confirmed) {\n this.busy.set(false);\n return;\n }\n this.error.set('');\n this.api.deletePopup(popup.id).pipe(\n takeUntilDestroyed(this.destroyRef),\n finalize(() => this.busy.set(false)),\n ).subscribe({\n next: () => this.datatable.reload(),\n error: (error: unknown) => this.reportError('The popup could not be deleted.', error),\n });\n });\n }\n\n private reportError(message: string, error: unknown): void {\n console.error('[taon-marketing-popup-backoffice]', message, error);\n this.error.set(message);\n }\n}","<h1>Popups</h1>\n@if (error()) {\n <p role=\"alert\">{{ error() }}</p>\n}\n<taon-datatable\n [entityCrudController]=\"crud\"\n [columns]=\"columns\"\n [allowedColumns]=\"['id', 'name', 'type', 'enabled']\"\n searchMode=\"advanced\"\n (addingItem)=\"edit()\">\n</taon-datatable>","//namespace TaonMarketingPopupBackofficeModels\n\n//end of namespace TaonMarketingPopupBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql-prod';\n//#endregion\n\nexport const TaonMarketingPopupBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-marketing-popup-backoffice.component').then(m => m.TaonMarketingPopupBackofficeComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonMarketingPopupBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonMarketingPopupBackofficeRoutes;","//#region imports\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n//#endregion\n\n@Component({\n selector: 'app-taon-marketing-promo-backoffice',\n templateUrl: './taon-marketing-promo-backoffice.component.html',\n styleUrls: ['./taon-marketing-promo-backoffice.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, RouterOutlet],\n})\nexport class TaonMarketingPromoBackofficeComponent {}","<router-outlet></router-outlet>\n<h1>Promotions</h1>\n<p>Reserved for campaigns and promotion presentation. Coupons and discount logic belong to ecommerce.</p>","//namespace TaonMarketingPromoBackofficeModels\n\n//end of namespace TaonMarketingPromoBackofficeModels\n","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/websql-prod';\n//#endregion\n\nexport const TaonMarketingPromoBackofficeRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./taon-marketing-promo-backoffice.component').then(m => m.TaonMarketingPromoBackofficeComponent),\n\n children: [\n // adminLazyRoute({\n // path: 'dashboard',\n // menuItem: 'Dashboard',\n // icon: 'dashboard',\n // expandable: false,\n // loader: () =>\n // import('./anothermodule.routes').then(m => m.DashboardRoutes),\n // }),\n ],\n },\n];\n\n/**\n * By default exporting TaonMarketingPromoBackofficeRoutes,\n * the command `taon generate:app:routes`\n * will automatically add them to the root routes in ./src/app.ts.\n */\n// export default TaonMarketingPromoBackofficeRoutes;","// @ts-nocheck\n// This file is auto-generated during init process. Do not modify.\n// This disable this auto generate file.\n// set property \"shouldGenerateAutogenIndexFile: false\" \n// in taon.jsonc of your project. \nexport * from './build-info._auto-generated_'; \nexport * from './my-organization-proj'; \nexport * from './start-cli'; \nexport * from './taon-marketing.abstract.context'; \nexport * from './taon-marketing-ab/taon-marketing-ab.abstract.context'; \nexport * from './taon-marketing-ab/taon-marketing-ab.api.service'; // @browser\nexport * from './taon-marketing-ab/taon-marketing-ab.config.service'; // @browser\nexport * from './taon-marketing-ab/taon-marketing-ab.constants'; \nexport * from './taon-marketing-ab/taon-marketing-ab.controller'; \nexport * from './taon-marketing-ab/taon-marketing-ab.entity'; \nexport * from './taon-marketing-ab/taon-marketing-ab.kv.repository'; \nexport * from './taon-marketing-ab/taon-marketing-ab.middleware'; \nexport * from './taon-marketing-ab/taon-marketing-ab.models'; \nexport * from './taon-marketing-ab/taon-marketing-ab.provider'; \nexport * from './taon-marketing-ab/taon-marketing-ab.repository'; \nexport * from './taon-marketing-ab/taon-marketing-ab.subscriber'; \nexport * from './taon-marketing-ab/taon-marketing-ab.utils'; \nexport * from './taon-marketing-ab/taon-marketing-ab.validators'; \nexport * from './taon-marketing-backoffice/taon-marketing-backoffice.component'; // @browser\nexport * from './taon-marketing-backoffice/taon-marketing-backoffice.models'; \nexport * from './taon-marketing-backoffice/taon-marketing-backoffice.routes'; // @browser\nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.abstract.context'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.api.service'; // @browser\nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.config.service'; // @browser\nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.constants'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.controller'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.entity'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.kv.repository'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.middleware'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.models'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.provider'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.repository'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.subscriber'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.utils'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter.validators'; \nexport * from './taon-marketing-popup/taon-marketing-popup-content.component'; // @browser\nexport * from './taon-marketing-popup/taon-marketing-popup.abstract.context'; \nexport * from './taon-marketing-popup/taon-marketing-popup.api.service'; // @browser\nexport * from './taon-marketing-popup/taon-marketing-popup.config.service'; // @browser\nexport * from './taon-marketing-popup/taon-marketing-popup.constants'; \nexport * from './taon-marketing-popup/taon-marketing-popup.controller'; \nexport * from './taon-marketing-popup/taon-marketing-popup.entity'; \nexport * from './taon-marketing-popup/taon-marketing-popup.kv.repository'; \nexport * from './taon-marketing-popup/taon-marketing-popup.middleware'; \nexport * from './taon-marketing-popup/taon-marketing-popup.models'; \nexport * from './taon-marketing-popup/taon-marketing-popup.provider'; \nexport * from './taon-marketing-popup/taon-marketing-popup.repository'; \nexport * from './taon-marketing-popup/taon-marketing-popup.subscriber'; \nexport * from './taon-marketing-popup/taon-marketing-popup.utils'; \nexport * from './taon-marketing-popup/taon-marketing-popup.validation'; \nexport * from './taon-marketing-popup/taon-marketing-popup.validators'; \nexport * from './taon-marketing-popup/taon-marketing-popups.component'; // @browser\nexport * from './taon-marketing-promo/taon-marketing-promo.abstract.context'; \nexport * from './taon-marketing-promo/taon-marketing-promo.api.service'; // @browser\nexport * from './taon-marketing-promo/taon-marketing-promo.config.service'; // @browser\nexport * from './taon-marketing-promo/taon-marketing-promo.constants'; \nexport * from './taon-marketing-promo/taon-marketing-promo.controller'; \nexport * from './taon-marketing-promo/taon-marketing-promo.entity'; \nexport * from './taon-marketing-promo/taon-marketing-promo.kv.repository'; \nexport * from './taon-marketing-promo/taon-marketing-promo.middleware'; \nexport * from './taon-marketing-promo/taon-marketing-promo.models'; \nexport * from './taon-marketing-promo/taon-marketing-promo.provider'; \nexport * from './taon-marketing-promo/taon-marketing-promo.repository'; \nexport * from './taon-marketing-promo/taon-marketing-promo.subscriber'; \nexport * from './taon-marketing-promo/taon-marketing-promo.utils'; \nexport * from './taon-marketing-promo/taon-marketing-promo.validators'; \nexport * from './taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.component'; // @browser\nexport * from './taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.models'; \nexport * from './taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.routes'; // @browser\nexport * from './taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.component'; // @browser\nexport * from './taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.models'; \nexport * from './taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.routes'; // @browser\nexport * from './taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.component'; // @browser\nexport * from './taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.models'; \nexport * from './taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.routes'; // @browser\nexport * from './taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-editor.component'; // @browser\nexport * from './taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.component'; // @browser\nexport * from './taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.models'; \nexport * from './taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.routes'; // @browser","export * from './migrations';\n/* */ \nexport * from './index._auto-generated_';\nexport * from './my-organization-proj';\n/* */ \nexport * from './taon-marketing-popup/taon-marketing-popups.component'; // @browser\nexport default {};","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["MIGRATIONS_CLASSES_FOR_MarketingContext","generatedMigrations","t"],"mappings":"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"}
|