@taon-dev/marketing 21.0.13 → 21.0.15

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.
Files changed (60) hide show
  1. package/browser/fesm2022/marketing-browser.mjs +1 -1
  2. package/browser/fesm2022/marketing-browser.mjs.map +1 -1
  3. package/browser/package.json +1 -1
  4. package/browser/types/marketing-browser.d.ts +1 -1
  5. package/browser-prod/fesm2022/marketing-browser-prod.mjs +1 -1
  6. package/browser-prod/fesm2022/marketing-browser-prod.mjs.map +1 -1
  7. package/browser-prod/package.json +1 -1
  8. package/browser-prod/types/marketing-browser-prod.d.ts +1 -1
  9. package/full-dts/build-info._auto-generated_.d.ts +1 -1
  10. package/lib/build-info._auto-generated_.d.ts +1 -1
  11. package/lib/build-info._auto-generated_.js +1 -1
  12. package/lib/package.json +1 -1
  13. package/lib/taon-marketing-ab/taon-marketing-ab-backoffice/index.d.ts +1 -1
  14. package/lib/taon-marketing-ab/taon-marketing-ab-backoffice/index.js +2 -2
  15. package/lib/taon-marketing-backoffice/index.d.ts +1 -1
  16. package/lib/taon-marketing-backoffice/index.js +2 -2
  17. package/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/index.d.ts +1 -1
  18. package/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/index.js +2 -2
  19. package/lib/taon-marketing-popup/taon-marketing-popup-backoffice/index.d.ts +1 -1
  20. package/lib/taon-marketing-popup/taon-marketing-popup-backoffice/index.js +2 -2
  21. package/lib/taon-marketing-promo/taon-marketing-promo-backoffice/index.d.ts +1 -1
  22. package/lib/taon-marketing-promo/taon-marketing-promo-backoffice/index.js +2 -2
  23. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  24. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  25. package/lib-esm/lib/taon-marketing-ab/taon-marketing-ab-backoffice/index.d.ts +1 -1
  26. package/lib-esm/lib/taon-marketing-ab/taon-marketing-ab-backoffice/index.js +1 -1
  27. package/lib-esm/lib/taon-marketing-backoffice/index.d.ts +1 -1
  28. package/lib-esm/lib/taon-marketing-backoffice/index.js +1 -1
  29. package/lib-esm/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/index.d.ts +1 -1
  30. package/lib-esm/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/index.js +1 -1
  31. package/lib-esm/lib/taon-marketing-popup/taon-marketing-popup-backoffice/index.d.ts +1 -1
  32. package/lib-esm/lib/taon-marketing-popup/taon-marketing-popup-backoffice/index.js +1 -1
  33. package/lib-esm/lib/taon-marketing-promo/taon-marketing-promo-backoffice/index.d.ts +1 -1
  34. package/lib-esm/lib/taon-marketing-promo/taon-marketing-promo-backoffice/index.js +1 -1
  35. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  36. package/lib-prod/build-info._auto-generated_.js +1 -1
  37. package/lib-prod/package.json +1 -1
  38. package/lib-prod/taon-marketing-ab/taon-marketing-ab-backoffice/index.d.ts +1 -1
  39. package/lib-prod/taon-marketing-ab/taon-marketing-ab-backoffice/index.js +1 -1
  40. package/lib-prod/taon-marketing-backoffice/index.d.ts +1 -1
  41. package/lib-prod/taon-marketing-backoffice/index.js +1 -1
  42. package/lib-prod/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/index.d.ts +1 -1
  43. package/lib-prod/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/index.js +1 -1
  44. package/lib-prod/taon-marketing-popup/taon-marketing-popup-backoffice/index.d.ts +1 -1
  45. package/lib-prod/taon-marketing-popup/taon-marketing-popup-backoffice/index.js +1 -1
  46. package/lib-prod/taon-marketing-promo/taon-marketing-promo-backoffice/index.d.ts +1 -1
  47. package/lib-prod/taon-marketing-promo/taon-marketing-promo-backoffice/index.js +1 -1
  48. package/package.json +1 -1
  49. package/ts-source/browser-code/build-info._auto-generated_.ts +1 -1
  50. package/ts-source/browser-code-prod/build-info._auto-generated_.ts +1 -1
  51. package/ts-source/websql-code/build-info._auto-generated_.ts +1 -1
  52. package/ts-source/websql-code-prod/build-info._auto-generated_.ts +1 -1
  53. package/websql/fesm2022/marketing-websql.mjs +1 -1
  54. package/websql/fesm2022/marketing-websql.mjs.map +1 -1
  55. package/websql/package.json +1 -1
  56. package/websql/types/marketing-websql.d.ts +1 -1
  57. package/websql-prod/fesm2022/marketing-websql-prod.mjs +1 -1
  58. package/websql-prod/fesm2022/marketing-websql-prod.mjs.map +1 -1
  59. package/websql-prod/package.json +1 -1
  60. package/websql-prod/types/marketing-websql-prod.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"marketing-browser.mjs","sources":["../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/migrations/1791132517216_initial.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.models.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.entity.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.repository.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/migrations/1791659700000_popup_configuration.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/migrations/migrations_index._auto-generated_.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/migrations/index.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/my-organization-proj.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/start-cli.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.entity.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.repository.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.controller.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.provider.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.abstract.context.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.entity.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.repository.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.controller.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.provider.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.abstract.context.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.controller.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.provider.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.abstract.context.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.entity.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.repository.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.controller.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.provider.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.abstract.context.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing.abstract.context.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.api.service.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.config.service.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.constants.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.kv.repository.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.middleware.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.models.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.subscriber.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.utils.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.validators.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-backoffice/taon-marketing-backoffice.component.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-backoffice/taon-marketing-backoffice.component.html","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-backoffice/taon-marketing-backoffice.routes.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.api.service.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.config.service.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.constants.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.kv.repository.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.middleware.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.models.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.subscriber.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.utils.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.validators.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-content.component.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-content.component.html","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.api.service.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.config.service.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.constants.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.kv.repository.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.middleware.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.subscriber.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.utils.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.validation.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.validators.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popups.component.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.api.service.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.config.service.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.constants.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.kv.repository.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.middleware.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.models.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.subscriber.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.utils.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.validators.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.component.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.component.html","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.routes.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.component.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.component.html","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.routes.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-editor.component.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-editor.component.html","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.component.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.component.html","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.routes.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.component.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.component.html","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.routes.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/index.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/marketing-browser.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 { Taon, TaonBaseMigration, TaonMigration } from 'taon/browser';\nimport { QueryRunner } from 'taon-typeorm/browser';\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\n","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/browser';\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/* */\n/* */\n \n name: string = '';\n\n/* */\n/* */\n \n enabled: boolean = false;\n\n/* */\n/* */\n \n type: TaonMarketingPopupType = TaonMarketingPopupType.Dialog;\n\n/* */\n/* */\n \n title: string | null = null;\n\n/* */\n/* */\n \n content: string | null = null;\n\n/* */\n/* */\n \n imageKey: string | null = null;\n\n/* */\n/* */\n \n buttonText: string | null = null;\n\n/* */\n/* */\n \n buttonUrl: string | null = null;\n\n/* */\n/* */\n \n delaySeconds: number = 0;\n\n/* */\n/* */\n \n displayOnPaths: string[] | null = null;\n\n/* */\n/* */\n \n excludePaths: string[] | null = null;\n\n/* */\n/* */\n \n startAt: Date | null = null;\n\n/* */\n/* */\n \n endAt: Date | null = null;\n\n/* */\n/* */\n \n maxDisplaysPerVisitor: number | null = null;\n\n/* */\n/* */\n \n oncePerSession: boolean = true;\n\n/* */\n/* */\n \n createdAt: Date;\n\n/* */\n/* */\n \n updatedAt: Date;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser';\nimport { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\nimport type { TaonMarketingPopupFields } from './taon-marketing-popup.models';\nimport { TaonMarketingPopupUtils } 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/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async savePopup(input: TaonMarketingPopupFields, id?: number): Promise<TaonMarketingPopupEntity> {\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/* */\n return (void 0);\n }\n\n async setEnabled(id: number, enabled: boolean): Promise<TaonMarketingPopupEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async deletePopup(id: number): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","import { TaonBaseMigration, TaonMigration } from 'taon/browser';\nimport { Table, TableColumn } from 'taon-typeorm/browser';\nimport type { QueryRunner } from 'taon-typeorm/browser';\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.13';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","import { Translation } from \"@taon-dev/i18n/browser\";\nimport { Taon } from \"taon/browser\";\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}\n","//#region tnp-helpers cli template\nimport { UtilsJson } from 'tnp-core/browser';\nimport { Helpers, BaseCommandLineFeature } from 'tnp-helpers/browser';\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.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;\n","//#region imports\nimport {\n CustomColumn,\n Column,\n Taon,\n TaonBaseAbstractEntity,\n TaonEntity,\n} from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n description?: string;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser';\nimport { Raw } from 'taon-typeorm/browser';\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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.Response<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { Taon, TaonBaseClass, TaonBaseProvider, TaonProvider } from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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/browser';\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}));","//#region imports\nimport {\n CustomColumn,\n Column,\n Taon,\n TaonBaseAbstractEntity,\n TaonEntity,\n} from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n description?: string;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser';\nimport { Raw } from 'taon-typeorm/browser';\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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.Response<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { Taon, TaonBaseClass, TaonBaseProvider, TaonProvider } from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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/browser';\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 {\n Taon,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n POST,\n PUT,\n DELETE,\n Body,\n} from 'taon/browser';\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.Response<TaonMarketingPopupEntity[]> {\n/* */\n/* */\n return (void 0);\n }\n\n @POST()\n savePopup(\n @Body() input: TaonMarketingPopupFields,\n @Query('id') id?: number,\n ): Taon.Response<TaonMarketingPopupEntity> {\n/* */\n/* */\n return (void 0);\n }\n\n @PUT()\n setEnabled(\n @Query('id') id: number,\n @Body('enabled') enabled: boolean,\n ): Taon.Response<TaonMarketingPopupEntity> {\n/* */\n/* */\n return (void 0);\n }\n\n @DELETE()\n deletePopup(@Query('id') id: number): Taon.Response<void> {\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport { Taon, TaonBaseClass, TaonBaseProvider, TaonProvider } from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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/browser';\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}));","//#region imports\nimport {\n CustomColumn,\n Column,\n Taon,\n TaonBaseAbstractEntity,\n TaonEntity,\n} from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n description?: string;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser';\nimport { Raw } from 'taon-typeorm/browser';\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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.Response<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { Taon, TaonBaseClass, TaonBaseProvider, TaonProvider } from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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/browser';\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/browser';\nimport { createContext, TaonBaseContext } from 'taon/browser';\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 { Taon, TaonBaseAngularService } from 'taon/browser';\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 { Taon, TaonBaseAngularService } from 'taon/browser';\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}","import type { TaonMarketingAbEntity } from './taon-marketing-ab.entity';\nimport { Translation } from '@taon-dev/i18n/browser';\nimport { Taon } from 'taon/browser';\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 {\n TaonBaseRepository,\n TaonBaseKvRepository,\n TaonRepository,\n} from 'taon/browser';\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 { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonMarketingAbMiddleware',\n})\nexport class TaonMarketingAbMiddleware extends TaonBaseMiddleware {}","export namespace TaonMarketingAbModels {\n export enum TaonMarketingAbState {\n Active = 'active',\n Inactive = 'inactive',\n }\n}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/browser';\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 } from './taon-marketing-ab.models';\n\nexport namespace TaonMarketingAbUtils {\n export function isActive(state: string): state is TaonMarketingAbModels.TaonMarketingAbState {\n return state === 'active';\n }\n}","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; // @browser\nimport { TaonMarketingAbErrors } from './taon-marketing-ab.constants';\n\nexport namespace TaonMarketingAbValidators {\n //#region @browser\n /**\n * TODO REMOVE THIS EXAMPLE.\n */\n export const 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}","//#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>","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/browser';\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 { Taon, TaonBaseAngularService } from 'taon/browser';\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 { Taon, TaonBaseAngularService } from 'taon/browser';\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}","import type { TaonMarketingNewsletterEntity } from './taon-marketing-newsletter.entity';\nimport { Translation } from '@taon-dev/i18n/browser';\nimport { Taon } from 'taon/browser';\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 {\n TaonBaseRepository,\n TaonBaseKvRepository,\n TaonRepository,\n} from 'taon/browser';\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 { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonMarketingNewsletterMiddleware',\n})\nexport class TaonMarketingNewsletterMiddleware extends TaonBaseMiddleware {}","export namespace TaonMarketingNewsletterModels {\n export enum TaonMarketingNewsletterState {\n Active = 'active',\n Inactive = 'inactive',\n }\n}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/browser';\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 } from './taon-marketing-newsletter.models';\n\nexport namespace TaonMarketingNewsletterUtils {\n export function isActive(state: string): state is TaonMarketingNewsletterModels.TaonMarketingNewsletterState {\n return state === 'active';\n }\n}","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; // @browser\nimport { TaonMarketingNewsletterErrors } from './taon-marketing-newsletter.constants';\n\nexport namespace TaonMarketingNewsletterValidators {\n //#region @browser\n /**\n * TODO REMOVE THIS EXAMPLE.\n */\n export const 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}","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()\">&#215;</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/browser';\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 { Taon, TaonBaseAngularService } from 'taon/browser';\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/browser';\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 { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonMarketingPopupMiddleware',\n})\nexport class TaonMarketingPopupMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/browser';\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 type { TaonMarketingPopupFields } from './taon-marketing-popup.models';\n\nexport namespace TaonMarketingPopupUtils {\n export function 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 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 isPathPattern(value: string): boolean {\n return /^\\/[^?#\\s*]*\\*?$/.test(value);\n }\n\n export function allowsPath(popup: TaonMarketingPopupFields, path: string): boolean {\n return (!popup.displayOnPaths?.length ||\n popup.displayOnPaths.some(pattern => matchesPath(pattern, path))) &&\n !popup.excludePaths?.some(pattern => matchesPath(pattern, path));\n }\n\n export function isSafeUrl(value: string): boolean {\n return !/[\\s\\\\\\u0000-\\u001f\\u007f]/.test(value) &&\n (/^\\/(?!\\/)/.test(value) || /^https?:\\/\\/[^/]+/i.test(value));\n }\n}","import { Taon } from 'taon/browser';\n\nimport { TaonMarketingPopupType } from './taon-marketing-popup.models';\nimport type { TaonMarketingPopupFields } from './taon-marketing-popup.models';\nimport { TaonMarketingPopupUtils } from './taon-marketing-popup.utils';\n\nexport function popupError(message: string, status = 400): never {\n Taon.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.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.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}\n","import { ValidatorFn } from '@angular/forms'; // @browser\nimport { TaonMarketingPopupUtils } from './taon-marketing-popup.utils';\n\nexport namespace TaonMarketingPopupValidators {\n //#region @browser\n export const 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.isPathPattern(path))\n ? null : { popupPaths: true };\n };\n\n export const url: ValidatorFn = control => {\n const value: unknown = control.value;\n return typeof value === 'string' &&\n (!value.trim() || TaonMarketingPopupUtils.isSafeUrl(value.trim()))\n ? null : { popupUrl: true };\n };\n\n export const optionalPositiveInteger: ValidatorFn = control =>\n control.value === null ||\n (Number.isSafeInteger(control.value) && control.value > 0)\n ? null : { popupDisplayLimit: true };\n\n export const 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}","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 } 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.isActive(popup) &&\n TaonMarketingPopupUtils.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.isActive(next.popup) &&\n TaonMarketingPopupUtils.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.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.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.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}\n","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService } from 'taon/browser';\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 { Taon, TaonBaseAngularService } from 'taon/browser';\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}","import type { TaonMarketingPromoEntity } from './taon-marketing-promo.entity';\nimport { Translation } from '@taon-dev/i18n/browser';\nimport { Taon } from 'taon/browser';\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 {\n TaonBaseRepository,\n TaonBaseKvRepository,\n TaonRepository,\n} from 'taon/browser';\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 { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonMarketingPromoMiddleware',\n})\nexport class TaonMarketingPromoMiddleware extends TaonBaseMiddleware {}","export namespace TaonMarketingPromoModels {\n export enum TaonMarketingPromoState {\n Active = 'active',\n Inactive = 'inactive',\n }\n}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/browser';\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 } from './taon-marketing-promo.models';\n\nexport namespace TaonMarketingPromoUtils {\n export function isActive(state: string): state is TaonMarketingPromoModels.TaonMarketingPromoState {\n return state === 'active';\n }\n}","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; // @browser\nimport { TaonMarketingPromoErrors } from './taon-marketing-promo.constants';\n\nexport namespace TaonMarketingPromoValidators {\n //#region @browser\n /**\n * TODO REMOVE THIS EXAMPLE.\n */\n export const 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}","//#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>","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/browser';\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>","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/browser';\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 } 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.url],\n delaySeconds: [this.popup?.delaySeconds ?? 0, [Validators.required, Validators.min(0), Validators.max(2147483)]],\n displayOnPaths: [this.popup?.displayOnPaths?.join('\\n') ?? '', TaonMarketingPopupValidators.paths],\n excludePaths: [this.popup?.excludePaths?.join('\\n') ?? '', TaonMarketingPopupValidators.paths],\n startAt: [this.localDate(this.popup?.startAt), TaonMarketingPopupValidators.optionalDate],\n endAt: [this.localDate(this.popup?.endAt), TaonMarketingPopupValidators.optionalDate],\n maxDisplaysPerVisitor: new FormControl<number | null>(\n this.popup?.maxDisplaysPerVisitor ?? null, TaonMarketingPopupValidators.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}\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/browser';\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>","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/browser';\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>","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/browser';\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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"}
1
+ {"version":3,"file":"marketing-browser.mjs","sources":["../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/migrations/1791132517216_initial.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.models.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.entity.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.repository.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/migrations/1791659700000_popup_configuration.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/migrations/migrations_index._auto-generated_.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/migrations/index.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/build-info._auto-generated_.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/my-organization-proj.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/start-cli.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.entity.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.repository.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.controller.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.provider.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.abstract.context.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.entity.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.repository.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.controller.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.provider.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.abstract.context.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.controller.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.provider.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.abstract.context.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.entity.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.repository.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.controller.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.provider.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.abstract.context.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing.abstract.context.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.api.service.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.config.service.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.constants.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.kv.repository.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.middleware.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.models.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.subscriber.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.utils.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab.validators.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-backoffice/taon-marketing-backoffice.component.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-backoffice/taon-marketing-backoffice.component.html","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-backoffice/taon-marketing-backoffice.routes.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.api.service.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.config.service.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.constants.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.kv.repository.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.middleware.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.models.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.subscriber.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.utils.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter.validators.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-content.component.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-content.component.html","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.api.service.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.config.service.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.constants.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.kv.repository.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.middleware.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.subscriber.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.utils.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.validation.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup.validators.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popups.component.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.api.service.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.config.service.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.constants.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.kv.repository.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.middleware.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.models.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.subscriber.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.utils.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo.validators.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.component.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.component.html","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-ab/taon-marketing-ab-backoffice/taon-marketing-ab-backoffice.routes.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.component.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.component.html","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-newsletter/taon-marketing-newsletter-backoffice/taon-marketing-newsletter-backoffice.routes.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-editor.component.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-editor.component.html","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.component.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.component.html","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-popup/taon-marketing-popup-backoffice/taon-marketing-popup-backoffice.routes.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.component.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.component.html","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/taon-marketing-promo/taon-marketing-promo-backoffice/taon-marketing-promo-backoffice.routes.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/index._auto-generated_.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/lib/index.ts","../../../tmp-libs-for-dist/marketing/projects/marketing/src/marketing-browser.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 { Taon, TaonBaseMigration, TaonMigration } from 'taon/browser';\nimport { QueryRunner } from 'taon-typeorm/browser';\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\n","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/browser';\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/* */\n/* */\n \n name: string = '';\n\n/* */\n/* */\n \n enabled: boolean = false;\n\n/* */\n/* */\n \n type: TaonMarketingPopupType = TaonMarketingPopupType.Dialog;\n\n/* */\n/* */\n \n title: string | null = null;\n\n/* */\n/* */\n \n content: string | null = null;\n\n/* */\n/* */\n \n imageKey: string | null = null;\n\n/* */\n/* */\n \n buttonText: string | null = null;\n\n/* */\n/* */\n \n buttonUrl: string | null = null;\n\n/* */\n/* */\n \n delaySeconds: number = 0;\n\n/* */\n/* */\n \n displayOnPaths: string[] | null = null;\n\n/* */\n/* */\n \n excludePaths: string[] | null = null;\n\n/* */\n/* */\n \n startAt: Date | null = null;\n\n/* */\n/* */\n \n endAt: Date | null = null;\n\n/* */\n/* */\n \n maxDisplaysPerVisitor: number | null = null;\n\n/* */\n/* */\n \n oncePerSession: boolean = true;\n\n/* */\n/* */\n \n createdAt: Date;\n\n/* */\n/* */\n \n updatedAt: Date;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser';\nimport { TaonMarketingPopupEntity } from './taon-marketing-popup.entity';\nimport type { TaonMarketingPopupFields } from './taon-marketing-popup.models';\nimport { TaonMarketingPopupUtils } 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/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async savePopup(input: TaonMarketingPopupFields, id?: number): Promise<TaonMarketingPopupEntity> {\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/* */\n return (void 0);\n }\n\n async setEnabled(id: number, enabled: boolean): Promise<TaonMarketingPopupEntity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async deletePopup(id: number): Promise<void> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","import { TaonBaseMigration, TaonMigration } from 'taon/browser';\nimport { Table, TableColumn } from 'taon-typeorm/browser';\nimport type { QueryRunner } from 'taon-typeorm/browser';\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.15';\n\n\n\n\n\n// THIS FILE IS GENERATED - DO NOT MODIFY\n ","import { Translation } from \"@taon-dev/i18n/browser\";\nimport { Taon } from \"taon/browser\";\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}\n","//#region tnp-helpers cli template\nimport { UtilsJson } from 'tnp-core/browser';\nimport { Helpers, BaseCommandLineFeature } from 'tnp-helpers/browser';\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.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;\n","//#region imports\nimport {\n CustomColumn,\n Column,\n Taon,\n TaonBaseAbstractEntity,\n TaonEntity,\n} from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n description?: string;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser';\nimport { Raw } from 'taon-typeorm/browser';\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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.Response<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { Taon, TaonBaseClass, TaonBaseProvider, TaonProvider } from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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/browser';\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}));","//#region imports\nimport {\n CustomColumn,\n Column,\n Taon,\n TaonBaseAbstractEntity,\n TaonEntity,\n} from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n description?: string;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser';\nimport { Raw } from 'taon-typeorm/browser';\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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.Response<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { Taon, TaonBaseClass, TaonBaseProvider, TaonProvider } from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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/browser';\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 {\n Taon,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n POST,\n PUT,\n DELETE,\n Body,\n} from 'taon/browser';\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.Response<TaonMarketingPopupEntity[]> {\n/* */\n/* */\n return (void 0);\n }\n\n @POST()\n savePopup(\n @Body() input: TaonMarketingPopupFields,\n @Query('id') id?: number,\n ): Taon.Response<TaonMarketingPopupEntity> {\n/* */\n/* */\n return (void 0);\n }\n\n @PUT()\n setEnabled(\n @Query('id') id: number,\n @Body('enabled') enabled: boolean,\n ): Taon.Response<TaonMarketingPopupEntity> {\n/* */\n/* */\n return (void 0);\n }\n\n @DELETE()\n deletePopup(@Query('id') id: number): Taon.Response<void> {\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport { Taon, TaonBaseClass, TaonBaseProvider, TaonProvider } from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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/browser';\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}));","//#region imports\nimport {\n CustomColumn,\n Column,\n Taon,\n TaonBaseAbstractEntity,\n TaonEntity,\n} from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n description?: string;\n}","//#region imports\nimport { TaonBaseRepository, TaonRepository } from 'taon/browser';\nimport { Raw } from 'taon-typeorm/browser';\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/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n}","//#region imports\nimport {\n Taon,\n ClassHelpers,\n TaonController,\n TaonBaseCrudController,\n Query,\n GET,\n} from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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.Response<string> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n //#endregion\n}","//#region imports\nimport { Taon, TaonBaseClass, TaonBaseProvider, TaonProvider } from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\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/browser';\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/browser';\nimport { createContext, TaonBaseContext } from 'taon/browser';\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 { Taon, TaonBaseAngularService } from 'taon/browser';\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 { Taon, TaonBaseAngularService } from 'taon/browser';\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}","import type { TaonMarketingAbEntity } from './taon-marketing-ab.entity';\nimport { Translation } from '@taon-dev/i18n/browser';\nimport { Taon } from 'taon/browser';\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 {\n TaonBaseRepository,\n TaonBaseKvRepository,\n TaonRepository,\n} from 'taon/browser';\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 { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonMarketingAbMiddleware',\n})\nexport class TaonMarketingAbMiddleware extends TaonBaseMiddleware {}","export namespace TaonMarketingAbModels {\n export enum TaonMarketingAbState {\n Active = 'active',\n Inactive = 'inactive',\n }\n}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/browser';\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 } from './taon-marketing-ab.models';\n\nexport namespace TaonMarketingAbUtils {\n export function isActive(state: string): state is TaonMarketingAbModels.TaonMarketingAbState {\n return state === 'active';\n }\n}","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; // @browser\nimport { TaonMarketingAbErrors } from './taon-marketing-ab.constants';\n\nexport namespace TaonMarketingAbValidators {\n //#region @browser\n /**\n * TODO REMOVE THIS EXAMPLE.\n */\n export const 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}","//#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>","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/browser';\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 { Taon, TaonBaseAngularService } from 'taon/browser';\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 { Taon, TaonBaseAngularService } from 'taon/browser';\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}","import type { TaonMarketingNewsletterEntity } from './taon-marketing-newsletter.entity';\nimport { Translation } from '@taon-dev/i18n/browser';\nimport { Taon } from 'taon/browser';\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 {\n TaonBaseRepository,\n TaonBaseKvRepository,\n TaonRepository,\n} from 'taon/browser';\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 { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonMarketingNewsletterMiddleware',\n})\nexport class TaonMarketingNewsletterMiddleware extends TaonBaseMiddleware {}","export namespace TaonMarketingNewsletterModels {\n export enum TaonMarketingNewsletterState {\n Active = 'active',\n Inactive = 'inactive',\n }\n}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/browser';\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 } from './taon-marketing-newsletter.models';\n\nexport namespace TaonMarketingNewsletterUtils {\n export function isActive(state: string): state is TaonMarketingNewsletterModels.TaonMarketingNewsletterState {\n return state === 'active';\n }\n}","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; // @browser\nimport { TaonMarketingNewsletterErrors } from './taon-marketing-newsletter.constants';\n\nexport namespace TaonMarketingNewsletterValidators {\n //#region @browser\n /**\n * TODO REMOVE THIS EXAMPLE.\n */\n export const 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}","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()\">&#215;</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/browser';\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 { Taon, TaonBaseAngularService } from 'taon/browser';\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/browser';\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 { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonMarketingPopupMiddleware',\n})\nexport class TaonMarketingPopupMiddleware extends TaonBaseMiddleware {}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/browser';\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 type { TaonMarketingPopupFields } from './taon-marketing-popup.models';\n\nexport namespace TaonMarketingPopupUtils {\n export function 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 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 isPathPattern(value: string): boolean {\n return /^\\/[^?#\\s*]*\\*?$/.test(value);\n }\n\n export function allowsPath(popup: TaonMarketingPopupFields, path: string): boolean {\n return (!popup.displayOnPaths?.length ||\n popup.displayOnPaths.some(pattern => matchesPath(pattern, path))) &&\n !popup.excludePaths?.some(pattern => matchesPath(pattern, path));\n }\n\n export function isSafeUrl(value: string): boolean {\n return !/[\\s\\\\\\u0000-\\u001f\\u007f]/.test(value) &&\n (/^\\/(?!\\/)/.test(value) || /^https?:\\/\\/[^/]+/i.test(value));\n }\n}","import { Taon } from 'taon/browser';\n\nimport { TaonMarketingPopupType } from './taon-marketing-popup.models';\nimport type { TaonMarketingPopupFields } from './taon-marketing-popup.models';\nimport { TaonMarketingPopupUtils } from './taon-marketing-popup.utils';\n\nexport function popupError(message: string, status = 400): never {\n Taon.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.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.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}\n","import { ValidatorFn } from '@angular/forms'; // @browser\nimport { TaonMarketingPopupUtils } from './taon-marketing-popup.utils';\n\nexport namespace TaonMarketingPopupValidators {\n //#region @browser\n export const 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.isPathPattern(path))\n ? null : { popupPaths: true };\n };\n\n export const url: ValidatorFn = control => {\n const value: unknown = control.value;\n return typeof value === 'string' &&\n (!value.trim() || TaonMarketingPopupUtils.isSafeUrl(value.trim()))\n ? null : { popupUrl: true };\n };\n\n export const optionalPositiveInteger: ValidatorFn = control =>\n control.value === null ||\n (Number.isSafeInteger(control.value) && control.value > 0)\n ? null : { popupDisplayLimit: true };\n\n export const 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}","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 } 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.isActive(popup) &&\n TaonMarketingPopupUtils.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.isActive(next.popup) &&\n TaonMarketingPopupUtils.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.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.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.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}\n","//#region imports\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Taon, TaonBaseAngularService } from 'taon/browser';\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 { Taon, TaonBaseAngularService } from 'taon/browser';\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}","import type { TaonMarketingPromoEntity } from './taon-marketing-promo.entity';\nimport { Translation } from '@taon-dev/i18n/browser';\nimport { Taon } from 'taon/browser';\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 {\n TaonBaseRepository,\n TaonBaseKvRepository,\n TaonRepository,\n} from 'taon/browser';\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 { Taon, TaonBaseMiddleware, TaonMiddleware } from 'taon/browser';\nimport { _ } from 'tnp-core/browser';\n//#endregion\n\n@TaonMiddleware({\n className: 'TaonMarketingPromoMiddleware',\n})\nexport class TaonMarketingPromoMiddleware extends TaonBaseMiddleware {}","export namespace TaonMarketingPromoModels {\n export enum TaonMarketingPromoState {\n Active = 'active',\n Inactive = 'inactive',\n }\n}","//#region imports\nimport { TaonBaseSubscriberForEntity, TaonSubscriber } from 'taon/browser';\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 } from './taon-marketing-promo.models';\n\nexport namespace TaonMarketingPromoUtils {\n export function isActive(state: string): state is TaonMarketingPromoModels.TaonMarketingPromoState {\n return state === 'active';\n }\n}","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; // @browser\nimport { TaonMarketingPromoErrors } from './taon-marketing-promo.constants';\n\nexport namespace TaonMarketingPromoValidators {\n //#region @browser\n /**\n * TODO REMOVE THIS EXAMPLE.\n */\n export const 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}","//#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>","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/browser';\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>","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/browser';\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 } 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.url],\n delaySeconds: [this.popup?.delaySeconds ?? 0, [Validators.required, Validators.min(0), Validators.max(2147483)]],\n displayOnPaths: [this.popup?.displayOnPaths?.join('\\n') ?? '', TaonMarketingPopupValidators.paths],\n excludePaths: [this.popup?.excludePaths?.join('\\n') ?? '', TaonMarketingPopupValidators.paths],\n startAt: [this.localDate(this.popup?.startAt), TaonMarketingPopupValidators.optionalDate],\n endAt: [this.localDate(this.popup?.endAt), TaonMarketingPopupValidators.optionalDate],\n maxDisplaysPerVisitor: new FormControl<number | null>(\n this.popup?.maxDisplaysPerVisitor ?? null, TaonMarketingPopupValidators.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}\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/browser';\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>","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/browser';\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>","//#region imports\nimport { Routes } from '@angular/router';\nimport { adminLazyRoute } from '@taon-dev/ui/browser';\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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"}