@acorex/modules 20.6.0-next.13 → 20.6.0-next.14

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 (61) hide show
  1. package/dashboard-management/index.d.ts +2 -15
  2. package/fesm2022/acorex-modules-conversation.mjs +1 -1
  3. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  4. package/fesm2022/{acorex-modules-dashboard-management-acorex-modules-dashboard-management-D2sEG8P9.mjs → acorex-modules-dashboard-management-acorex-modules-dashboard-management-DxvJ5FUP.mjs} +22 -17
  5. package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-DxvJ5FUP.mjs.map +1 -0
  6. package/fesm2022/{acorex-modules-dashboard-management-permission-definition.provider-CDof9JW9.mjs → acorex-modules-dashboard-management-permission-definition.provider-tvIEsms4.mjs} +2 -2
  7. package/fesm2022/{acorex-modules-dashboard-management-permission-definition.provider-CDof9JW9.mjs.map → acorex-modules-dashboard-management-permission-definition.provider-tvIEsms4.mjs.map} +1 -1
  8. package/fesm2022/acorex-modules-dashboard-management.mjs +1 -1
  9. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-BQg63TCL.mjs → acorex-modules-document-management-acorex-modules-document-management-B3AbD1tJ.mjs} +16 -16
  10. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-BQg63TCL.mjs.map → acorex-modules-document-management-acorex-modules-document-management-B3AbD1tJ.mjs.map} +1 -1
  11. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-DsVm2GMs.mjs → acorex-modules-document-management-attachment-widget.component-CzDOiRIY.mjs} +2 -2
  12. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-DsVm2GMs.mjs.map → acorex-modules-document-management-attachment-widget.component-CzDOiRIY.mjs.map} +1 -1
  13. package/fesm2022/{acorex-modules-document-management-details-view.component-CPS-Hi0y.mjs → acorex-modules-document-management-details-view.component-DKTHo8ne.mjs} +2 -2
  14. package/fesm2022/{acorex-modules-document-management-details-view.component-CPS-Hi0y.mjs.map → acorex-modules-document-management-details-view.component-DKTHo8ne.mjs.map} +1 -1
  15. package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-BdG1o9DR.mjs → acorex-modules-document-management-document-signature-popup.component-DGzzdmDb.mjs} +2 -2
  16. package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-BdG1o9DR.mjs.map → acorex-modules-document-management-document-signature-popup.component-DGzzdmDb.mjs.map} +1 -1
  17. package/fesm2022/{acorex-modules-document-management-drive-choose.component-9GYqFNTa.mjs → acorex-modules-document-management-drive-choose.component-D5aiNVzj.mjs} +2 -2
  18. package/fesm2022/{acorex-modules-document-management-drive-choose.component-9GYqFNTa.mjs.map → acorex-modules-document-management-drive-choose.component-D5aiNVzj.mjs.map} +1 -1
  19. package/fesm2022/{acorex-modules-document-management-drive.component-GEe-dEOj.mjs → acorex-modules-document-management-drive.component-CeBlGsLR.mjs} +6 -5
  20. package/fesm2022/acorex-modules-document-management-drive.component-CeBlGsLR.mjs.map +1 -0
  21. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-nbzNqi8U.mjs → acorex-modules-document-management-large-icons-view.component-CAHXm46u.mjs} +2 -2
  22. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-nbzNqi8U.mjs.map → acorex-modules-document-management-large-icons-view.component-CAHXm46u.mjs.map} +1 -1
  23. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-UaLWEWFL.mjs → acorex-modules-document-management-large-tiles-view.component-or2Wyl76.mjs} +2 -2
  24. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-UaLWEWFL.mjs.map → acorex-modules-document-management-large-tiles-view.component-or2Wyl76.mjs.map} +1 -1
  25. package/fesm2022/{acorex-modules-document-management-list-view.component-DrrI8IQy.mjs → acorex-modules-document-management-list-view.component-gmOyQGvk.mjs} +2 -2
  26. package/fesm2022/{acorex-modules-document-management-list-view.component-DrrI8IQy.mjs.map → acorex-modules-document-management-list-view.component-gmOyQGvk.mjs.map} +1 -1
  27. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-CceGO8sF.mjs → acorex-modules-document-management-permission-definition.provider-CcZ1NTWk.mjs} +2 -2
  28. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-CceGO8sF.mjs.map → acorex-modules-document-management-permission-definition.provider-CcZ1NTWk.mjs.map} +1 -1
  29. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-D8ndB-9C.mjs → acorex-modules-document-management-small-icons-view.component-VD2PaT-1.mjs} +2 -2
  30. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-D8ndB-9C.mjs.map → acorex-modules-document-management-small-icons-view.component-VD2PaT-1.mjs.map} +1 -1
  31. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-BYIgOhLJ.mjs → acorex-modules-document-management-small-tiles-view.component-fGLTqZyQ.mjs} +2 -2
  32. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-BYIgOhLJ.mjs.map → acorex-modules-document-management-small-tiles-view.component-fGLTqZyQ.mjs.map} +1 -1
  33. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  34. package/fesm2022/{acorex-modules-notification-management-notification-page.component-Lz8J7q4k.mjs → acorex-modules-notification-management-notification-page.component-XCr4A447.mjs} +35 -23
  35. package/fesm2022/acorex-modules-notification-management-notification-page.component-XCr4A447.mjs.map +1 -0
  36. package/fesm2022/acorex-modules-notification-management.mjs +1 -1
  37. package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-TfQFYkDv.mjs → acorex-modules-report-management-report-runner-root-page.component-BPHpCx1z.mjs} +8 -7
  38. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-BPHpCx1z.mjs.map +1 -0
  39. package/fesm2022/acorex-modules-report-management.mjs +16 -15
  40. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  41. package/fesm2022/{acorex-modules-settings-management-acorex-modules-settings-management-DTjfgbLU.mjs → acorex-modules-settings-management-acorex-modules-settings-management-DiK4w5LW.mjs} +18 -19
  42. package/fesm2022/acorex-modules-settings-management-acorex-modules-settings-management-DiK4w5LW.mjs.map +1 -0
  43. package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-DNgLTnFb.mjs → acorex-modules-settings-management-permission-definition.provider-Ddk4v4RY.mjs} +2 -2
  44. package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-DNgLTnFb.mjs.map → acorex-modules-settings-management-permission-definition.provider-Ddk4v4RY.mjs.map} +1 -1
  45. package/fesm2022/{acorex-modules-settings-management-setting-page.component-CXXHizT0.mjs → acorex-modules-settings-management-setting-page.component-XfmsDcZt.mjs} +20 -17
  46. package/fesm2022/acorex-modules-settings-management-setting-page.component-XfmsDcZt.mjs.map +1 -0
  47. package/fesm2022/{acorex-modules-settings-management-setting-view.component-CGolAf-a.mjs → acorex-modules-settings-management-setting-view.component-BZzDT3gG.mjs} +2 -2
  48. package/fesm2022/{acorex-modules-settings-management-setting-view.component-CGolAf-a.mjs.map → acorex-modules-settings-management-setting-view.component-BZzDT3gG.mjs.map} +1 -1
  49. package/fesm2022/acorex-modules-settings-management.mjs +1 -1
  50. package/fesm2022/{acorex-modules-task-management-task-board.page-9rGlt3Fd.mjs → acorex-modules-task-management-task-board.page-Bceu03Yj.mjs} +5 -4
  51. package/fesm2022/{acorex-modules-task-management-task-board.page-9rGlt3Fd.mjs.map → acorex-modules-task-management-task-board.page-Bceu03Yj.mjs.map} +1 -1
  52. package/fesm2022/acorex-modules-task-management.mjs +1 -1
  53. package/package.json +6 -6
  54. package/report-management/index.d.ts +2 -15
  55. package/settings-management/index.d.ts +2 -2
  56. package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-D2sEG8P9.mjs.map +0 -1
  57. package/fesm2022/acorex-modules-document-management-drive.component-GEe-dEOj.mjs.map +0 -1
  58. package/fesm2022/acorex-modules-notification-management-notification-page.component-Lz8J7q4k.mjs.map +0 -1
  59. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-TfQFYkDv.mjs.map +0 -1
  60. package/fesm2022/acorex-modules-settings-management-acorex-modules-settings-management-DTjfgbLU.mjs.map +0 -1
  61. package/fesm2022/acorex-modules-settings-management-setting-page.component-CXXHizT0.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-modules-dashboard-management-acorex-modules-dashboard-management-D2sEG8P9.mjs","sources":["../tmp-esm2022/dashboard-management/lib/const.js","../tmp-esm2022/dashboard-management/lib/entities/dashboard/dashboard.service.js","../tmp-esm2022/dashboard-management/lib/entities/dashboard/dashboard.entity.js","../tmp-esm2022/dashboard-management/lib/entities/dashboard/dashboard.module.js","../tmp-esm2022/dashboard-management/lib/entities/index.js","../tmp-esm2022/dashboard-management/lib/entity.provider.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/analog-clock/analog-clock.component.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/analog-clock/analog-clock-widget-view.component.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/analog-clock/analog-clock-widget.config.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/bar-chart/bar-chart-widget.component.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/chart.type.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/bar-chart/bar-chart-widget.config.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/clock-calendar/clock-calendar-widget.component.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/clock-calendar/clock-calendar.types.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/clock-calendar/clock-calendar-widget.config.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/dashboard-shortcut/dashboard-shortcut-widget-view.component.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/dashboard-shortcut/dashboard-shortcut-widget.config.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/donut-chart/donut-chart-widget.component.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/donut-chart/donut-chart-widget.config.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/gauge-chart/gauge-chart-widget.component.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/gauge-chart/gauge-chart-widget.config.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/line-chart/line-chart-widget.component.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/line-chart/line-chart-widget.config.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/sticky-note/sticky-note-widget.component.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/sticky-note/sticky-note-widget.config.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/weather/weather-services/weather-api.abstract.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/weather/weather-services/weather-api.mock.service.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/weather/weather-services/weather-api.key.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/weather/weather-services/weather-api.service.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/weather/advanced-weather/advanced-weather.component.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/weather/advanced-weather/advanced-weather.config.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/weather/minimal-weather/minimal-weather.component.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/weather/minimal-weather/minimal-weather.config.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/weather/weather-widget.component.js","../tmp-esm2022/dashboard-management/lib/features/shared/widgets/weather/weather-widget.config.js","../tmp-esm2022/dashboard-management/lib/menu.keys.js","../tmp-esm2022/dashboard-management/lib/permission.keys.js","../tmp-esm2022/dashboard-management/lib/menu.provider.js","../tmp-esm2022/dashboard-management/lib/dashboard-management.module.js","../tmp-esm2022/dashboard-management/lib/features/home-dashboard/widget-wrapper/dashboard-widget-wrapper.js","../tmp-esm2022/dashboard-management/lib/settings.keys.js","../tmp-esm2022/dashboard-management/lib/features/home-dashboard/dashboard-popups/configuration-popup.js","../tmp-esm2022/dashboard-management/lib/features/home-dashboard/dashboard-popups/dashboard-popup.service.js","../tmp-esm2022/dashboard-management/lib/features/home-dashboard/dashboard-home/home-dashboard.store.js","../tmp-esm2022/dashboard-management/lib/features/home-dashboard/dashboard-home/home-dashboard.js","../tmp-esm2022/dashboard-management/lib/features/home-dashboard/dashboard-popups/add-dashboard-popup.js","../tmp-esm2022/dashboard-management/lib/features/home-dashboard/setrting.keys.js","../tmp-esm2022/dashboard-management/acorex-modules-dashboard-management.js"],"sourcesContent":["const config = {\n i18n: 'dashboard-management',\n};\nexport const RootConfig = {\n config,\n module: {\n module: 'DashboardManagement',\n name: 'DashboardManagement',\n title: `@${config.i18n}:module.title`,\n icon: 'fa-regular fa-tachometer-alt',\n },\n entities: {\n dashboard: {\n name: 'Dashboard',\n title: '@dashboard-management:dashboards.terms.dashboard',\n titlePlural: '@dashboard-management:dashboards.terms.dashboards',\n icon: 'fa-regular fa-tachometer-alt',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE1BQU0sR0FBRztJQUNiLElBQUksRUFBRSxzQkFBc0I7Q0FDN0IsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixNQUFNO0lBQ04sTUFBTSxFQUFFO1FBQ04sTUFBTSxFQUFFLHFCQUFxQjtRQUM3QixJQUFJLEVBQUUscUJBQXFCO1FBQzNCLEtBQUssRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLGVBQWU7UUFDckMsSUFBSSxFQUFFLDhCQUE4QjtLQUNyQztJQUNELFFBQVEsRUFBRTtRQUNSLFNBQVMsRUFBRTtZQUNULElBQUksRUFBRSxXQUFXO1lBQ2pCLEtBQUssRUFBRSxrREFBa0Q7WUFDekQsV0FBVyxFQUFFLG1EQUFtRDtZQUNoRSxJQUFJLEVBQUUsOEJBQThCO1NBQ3JDO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29uZmlnID0ge1xuICBpMThuOiAnZGFzaGJvYXJkLW1hbmFnZW1lbnQnLFxufTtcbmV4cG9ydCBjb25zdCBSb290Q29uZmlnID0ge1xuICBjb25maWcsXG4gIG1vZHVsZToge1xuICAgIG1vZHVsZTogJ0Rhc2hib2FyZE1hbmFnZW1lbnQnLFxuICAgIG5hbWU6ICdEYXNoYm9hcmRNYW5hZ2VtZW50JyxcbiAgICB0aXRsZTogYEAke2NvbmZpZy5pMThufTptb2R1bGUudGl0bGVgLFxuICAgIGljb246ICdmYS1yZWd1bGFyIGZhLXRhY2hvbWV0ZXItYWx0JyxcbiAgfSxcbiAgZW50aXRpZXM6IHtcbiAgICBkYXNoYm9hcmQ6IHtcbiAgICAgIG5hbWU6ICdEYXNoYm9hcmQnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkLW1hbmFnZW1lbnQ6ZGFzaGJvYXJkcy50ZXJtcy5kYXNoYm9hcmQnLFxuICAgICAgdGl0bGVQbHVyYWw6ICdAZGFzaGJvYXJkLW1hbmFnZW1lbnQ6ZGFzaGJvYXJkcy50ZXJtcy5kYXNoYm9hcmRzJyxcbiAgICAgIGljb246ICdmYS1yZWd1bGFyIGZhLXRhY2hvbWV0ZXItYWx0JyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport * as i0 from \"@angular/core\";\nexport class AXMDashboardService extends AXMEntityCrudServiceImpl {\n}\nexport class AXMDashboardServiceImpl extends AXMDashboardService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.dashboard.name}`);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardServiceImpl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardServiceImpl, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy9kYXNoYm9hcmQvZGFzaGJvYXJkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUd6QyxNQUFNLE9BQWdCLG1CQUFvQixTQUFRLHdCQUErRDtDQUFHO0FBR3BILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxtQkFBbUI7SUFDOUQ7UUFDRSxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7K0dBSFUsdUJBQXVCO21IQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWE1FbnRpdHlDcnVkU2VydmljZUltcGwgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbnN0JztcbmltcG9ydCB7IEFYTUNvbW1vbkRhc2hib2FyZEVudGl0eU1vZGVsIH0gZnJvbSAnLi9kYXNoYm9hcmQudHlwZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhNRGFzaGJvYXJkU2VydmljZSBleHRlbmRzIEFYTUVudGl0eUNydWRTZXJ2aWNlSW1wbDxzdHJpbmcsIEFYTUNvbW1vbkRhc2hib2FyZEVudGl0eU1vZGVsPiB7fVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhNRGFzaGJvYXJkU2VydmljZUltcGwgZXh0ZW5kcyBBWE1EYXNoYm9hcmRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoYCR7Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtSb290Q29uZmlnLmVudGl0aWVzLmRhc2hib2FyZC5uYW1lfWApO1xuICB9XG59XG4iXX0=","import { AXPEntityQueryType, createAllQueryView } from '@acorex/platform/common';\nimport { entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { RootConfig } from '../../const';\nimport { AXMDashboardService } from './dashboard.service';\nexport async function dashboardFactory(injector) {\n const dataService = injector.get(AXMDashboardService);\n const i18n = RootConfig.config.i18n;\n const entityDef = {\n module: RootConfig.module.name,\n name: RootConfig.entities.dashboard.name,\n title: RootConfig.entities.dashboard.title,\n icon: RootConfig.entities.dashboard.icon,\n formats: {\n individual: RootConfig.entities.dashboard.title,\n plural: RootConfig.entities.dashboard.titlePlural,\n searchResult: {\n title: '{{ title }}',\n description: RootConfig.module.title,\n },\n },\n relatedEntities: [],\n groups: [\n {\n id: 'section',\n title: RootConfig.entities.dashboard.title,\n },\n ],\n properties: [\n {\n name: 'name',\n title: '@general:terms.common.name',\n groupId: 'section',\n options: {\n sort: {\n enabled: false,\n },\n filter: {\n advance: {\n enabled: false,\n },\n inline: {\n enabled: false,\n },\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n },\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'section',\n options: {\n sort: {\n enabled: true,\n },\n filter: {\n advance: {\n enabled: true,\n },\n inline: {\n enabled: true,\n },\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'description',\n title: `t(\"description\", { scope: \"${i18n}\" })`,\n groupId: 'section',\n options: {\n sort: {\n enabled: false,\n },\n filter: {\n advance: {\n enabled: false,\n },\n inline: {\n enabled: false,\n },\n },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n },\n ],\n columns: [{ name: 'name' }, { name: 'title' }, { name: 'description' }],\n commands: {\n create: {\n execute: async (data) => {\n const res = await dataService.insertOne(data);\n return { id: res };\n },\n },\n delete: {\n execute: async (id) => {\n return await dataService.deleteOne(id);\n },\n },\n update: {\n execute: async (data) => {\n return await dataService.updateOne(data.id, data);\n },\n },\n },\n queries: {\n byKey: {\n execute: async (id) => {\n return await dataService.getOne(id);\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e) => {\n return await dataService.query(e);\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'section',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 1,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 2,\n },\n },\n },\n },\n {\n name: 'description',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 3,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'section',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 1,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 2,\n },\n },\n },\n },\n {\n name: 'description',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 3,\n },\n },\n },\n },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'section',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 1,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 2,\n },\n },\n },\n },\n {\n name: 'description',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 3,\n },\n },\n },\n },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [\n createAllQueryView({\n sorts: [{ name: 'name', dir: 'asc' }],\n }),\n ],\n },\n },\n },\n };\n return entityDef;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2VudGl0aWVzL2Rhc2hib2FyZC9kYXNoYm9hcmQuZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0Msa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTFELE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsUUFBa0I7SUFDdkQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBRXBDLE1BQU0sU0FBUyxHQUFjO1FBQzNCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDOUIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUk7UUFDeEMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUs7UUFDMUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUk7UUFDeEMsT0FBTyxFQUFFO1lBQ1AsVUFBVSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUs7WUFDL0MsTUFBTSxFQUFFLFVBQVUs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WixNQUFNLEVBQUU7Z0NBQ04sU0FBUyxFQUFFO29DQUNULEVBQUUsRUFBRTt3Q0FDRixPQUFPLEVBQUUsQ0FBQzt3Q0FDVixLQUFLLEVBQUUsQ0FBQztxQ0FDVDtpQ0FDRjs2QkFDRjt5QkFDRjt3QkFFRDs0QkFDRSxJQUFJLEVBQUUsT0FBTzs0QkFDYixNQUFNLEVBQUU7Z0NBQ04sU0FBUyxFQUFFO29DQUNULEVBQUUsRUFBRTt3Q0FDRixPQUFPLEVBQUUsQ0FBQzt3Q0FDVixLQUFLLEVBQUUsQ0FBQztxQ0FDVDtpQ0FDRjs2QkFDRjt5QkFDRjt3QkFFRDs0QkFDRSxJQUFJLEVBQUUsYUFBYTs0QkFDbkIsTUFBTSxFQUFFO2dDQUNOLFNBQVMsRUFBRTtvQ0FDVCxFQUFFLEVBQUU7d0NBQ0YsT0FBTyxFQUFFLEVBQUU7d0NBQ1gsS0FBSyxFQUFFLENBQUM7cUNBQ1Q7aUNBQ0Y7NkJBQ0Y7eUJBQ0Y7cUJBQ0Y7b0JBQ0QsT0FBTyxFQUFFLENBQUMsR0FBRyx5QkFBeUIsRUFBRSxDQUFDO2lCQUMxQztnQkFDRCxJQUFJLEVBQUU7b0JBQ0osT0FBTyxFQUFFLENBQUMsR0FBRyx1QkFBdUIsRUFBRSxDQUFDO29CQUN2QyxLQUFLLEVBQUU7d0JBQ0wsa0JBQWtCLENBQUM7NEJBQ2pCLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7eUJBQ3RDLENBQUM7cUJBQ0g7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQztJQUVGLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBFbnRpdHksIEFYUEVudGl0eUNvbW1hbmRTY29wZSwgQVhQRW50aXR5UXVlcnlUeXBlLCBjcmVhdGVBbGxRdWVyeVZpZXcgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBlbnRpdHlNYXN0ZXJDcnVkQWN0aW9ucywgZW50aXR5TWFzdGVyUmVjb3JkQWN0aW9ucyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRzQ2F0YWxvZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi4vLi4vY29uc3QnO1xuaW1wb3J0IHsgQVhNRGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4vZGFzaGJvYXJkLnNlcnZpY2UnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGFzaGJvYXJkRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBQcm9taXNlPEFYUEVudGl0eSB8IG51bGw+IHtcbiAgY29uc3QgZGF0YVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQVhNRGFzaGJvYXJkU2VydmljZSk7XG4gIGNvbnN0IGkxOG4gPSBSb290Q29uZmlnLmNvbmZpZy5pMThuO1xuXG4gIGNvbnN0IGVudGl0eURlZjogQVhQRW50aXR5ID0ge1xuICAgIG1vZHVsZTogUm9vdENvbmZpZy5tb2R1bGUubmFtZSxcbiAgICBuYW1lOiBSb290Q29uZmlnLmVudGl0aWVzLmRhc2hib2FyZC5uYW1lLFxuICAgIHRpdGxlOiBSb290Q29uZmlnLmVudGl0aWVzLmRhc2hib2FyZC50aXRsZSxcbiAgICBpY29uOiBSb290Q29uZmlnLmVudGl0aWVzLmRhc2hib2FyZC5pY29uLFxuICAgIGZvcm1hdHM6IHtcbiAgICAgIGluZGl2aWR1YWw6IFJvb3RDb25maWcuZW50aXRpZXMuZGFzaGJvYXJkLnRpdGxlLFxuICAgICAgcGx1cmFsOiBSb290Q29uZmlnLmVudGl0aWVzLmRhc2hib2FyZC50aXRsZVBsdXJhbCxcbiAgICAgIHNlYXJjaFJlc3VsdDoge1xuICAgICAgICB0aXRsZTogJ3t7IHRpdGxlIH19JyxcbiAgICAgICAgZGVzY3JpcHRpb246IFJvb3RDb25maWcubW9kdWxlLnRpdGxlLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHJlbGF0ZWRFbnRpdGllczogW10sXG4gICAgZ3JvdXBzOiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnc2VjdGlvbicsXG4gICAgICAgIHRpdGxlOiBSb290Q29uZmlnLmVudGl0aWVzLmRhc2hib2FyZC50aXRsZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICduYW1lJyxcbiAgICAgICAgdGl0bGU6ICdAZ2VuZXJhbDp0ZXJtcy5jb21tb24ubmFtZScsXG4gICAgICAgIGdyb3VwSWQ6ICdzZWN0aW9uJyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHNvcnQ6IHtcbiAgICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICBhZHZhbmNlOiB7XG4gICAgICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlubGluZToge1xuICAgICAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcblxuICAgICAge1xuICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOnRlcm1zLmNvbW1vbi50aXRsZScsXG4gICAgICAgIGdyb3VwSWQ6ICdzZWN0aW9uJyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHNvcnQ6IHtcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgIGFkdmFuY2U6IHtcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbmxpbmU6IHtcbiAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB2YWxpZGF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJ1bGU6ICdyZXF1aXJlZCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG5cbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgdGl0bGU6IGB0KFwiZGVzY3JpcHRpb25cIiwgeyBzY29wZTogXCIke2kxOG59XCIgfSlgLFxuICAgICAgICBncm91cElkOiAnc2VjdGlvbicsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7XG4gICAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZpbHRlcjoge1xuICAgICAgICAgICAgYWR2YW5jZToge1xuICAgICAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbmxpbmU6IHtcbiAgICAgICAgICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBjb2x1bW5zOiBbeyBuYW1lOiAnbmFtZScgfSwgeyBuYW1lOiAndGl0bGUnIH0sIHsgbmFtZTogJ2Rlc2NyaXB0aW9uJyB9XSxcbiAgICBjb21tYW5kczoge1xuICAgICAgY3JlYXRlOiB7XG4gICAgICAgIGV4ZWN1dGU6IGFzeW5jIChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBkYXRhU2VydmljZS5pbnNlcnRPbmUoZGF0YSk7XG4gICAgICAgICAgcmV0dXJuIHsgaWQ6IHJlcyB9O1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGRlbGV0ZToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoaWQ6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBkYXRhU2VydmljZS5kZWxldGVPbmUoaWQpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVwZGF0ZToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IGRhdGFTZXJ2aWNlLnVwZGF0ZU9uZShkYXRhLmlkLCBkYXRhKTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBxdWVyaWVzOiB7XG4gICAgICBieUtleToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoaWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBkYXRhU2VydmljZS5nZXRPbmUoaWQpO1xuICAgICAgICB9LFxuICAgICAgICB0eXBlOiBBWFBFbnRpdHlRdWVyeVR5cGUuU2luZ2xlLFxuICAgICAgfSxcbiAgICAgIGxpc3Q6IHtcbiAgICAgICAgZXhlY3V0ZTogYXN5bmMgKGU6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBkYXRhU2VydmljZS5xdWVyeShlKTtcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogQVhQRW50aXR5UXVlcnlUeXBlLkxpc3QsXG4gICAgICB9LFxuICAgIH0sXG4gICAgaW50ZXJmYWNlczoge1xuICAgICAgbWFzdGVyOiB7XG4gICAgICAgIGNyZWF0ZToge1xuICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAnc2VjdGlvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcHJvcGVydGllczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnbmFtZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDEsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdkZXNjcmlwdGlvbicsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogMTIsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAzLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICB1cGRhdGU6IHtcbiAgICAgICAgICBzZWN0aW9uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogJ3NlY3Rpb24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAxLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAyLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnZGVzY3JpcHRpb24nLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDEyLFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgc2luZ2xlOiB7XG4gICAgICAgICAgdGl0bGU6ICd7e3RpdGxlfX0nLFxuICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAnc2VjdGlvbicsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogMTIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcHJvcGVydGllczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnbmFtZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDEsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdkZXNjcmlwdGlvbicsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogMTIsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAzLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGFjdGlvbnM6IFsuLi5lbnRpdHlNYXN0ZXJSZWNvcmRBY3Rpb25zKCldLFxuICAgICAgICB9LFxuICAgICAgICBsaXN0OiB7XG4gICAgICAgICAgYWN0aW9uczogWy4uLmVudGl0eU1hc3RlckNydWRBY3Rpb25zKCldLFxuICAgICAgICAgIHZpZXdzOiBbXG4gICAgICAgICAgICBjcmVhdGVBbGxRdWVyeVZpZXcoe1xuICAgICAgICAgICAgICBzb3J0czogW3sgbmFtZTogJ25hbWUnLCBkaXI6ICdhc2MnIH1dLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICByZXR1cm4gZW50aXR5RGVmO1xufVxuIl19","import { NgModule } from '@angular/core';\nimport { AXMDashboardService, AXMDashboardServiceImpl } from './dashboard.service';\nimport * as i0 from \"@angular/core\";\nexport class AXMDashboardEntityModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardEntityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardEntityModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardEntityModule, providers: [\n {\n provide: AXMDashboardService,\n useClass: AXMDashboardServiceImpl,\n },\n ] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardEntityModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMDashboardService,\n useClass: AXMDashboardServiceImpl,\n },\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2VudGl0aWVzL2Rhc2hib2FyZC9kYXNoYm9hcmQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBYW5GLE1BQU0sT0FBTyx3QkFBd0I7K0dBQXhCLHdCQUF3QjtnSEFBeEIsd0JBQXdCO2dIQUF4Qix3QkFBd0IsYUFQdEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixRQUFRLEVBQUUsdUJBQXVCO2FBQ3BDO1NBQ0o7OzRGQUVRLHdCQUF3QjtrQkFYcEMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsRUFBRTtvQkFDWCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxZQUFZLEVBQUUsRUFBRTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFFBQVEsRUFBRSx1QkFBdUI7eUJBQ3BDO3FCQUNKO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTURhc2hib2FyZFNlcnZpY2UsIEFYTURhc2hib2FyZFNlcnZpY2VJbXBsIH0gZnJvbSAnLi9kYXNoYm9hcmQuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW10sXG4gICAgZXhwb3J0czogW10sXG4gICAgZGVjbGFyYXRpb25zOiBbXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVhNRGFzaGJvYXJkU2VydmljZSxcbiAgICAgICAgICAgIHVzZUNsYXNzOiBBWE1EYXNoYm9hcmRTZXJ2aWNlSW1wbCxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1EYXNoYm9hcmRFbnRpdHlNb2R1bGUgeyB9XG4iXX0=","// Entity Services\nexport * from './dashboard';\n// Entity Modules\nexport * from './dashboard/dashboard.module';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQkFBa0I7QUFDbEIsY0FBYyxhQUFhLENBQUM7QUFFNUIsaUJBQWlCO0FBQ2pCLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBFbnRpdHkgU2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vZGFzaGJvYXJkJztcblxuLy8gRW50aXR5IE1vZHVsZXNcbmV4cG9ydCAqIGZyb20gJy4vZGFzaGJvYXJkL2Rhc2hib2FyZC5tb2R1bGUnO1xuIl19","import { Injectable, Injector, inject } from '@angular/core';\nimport { RootConfig } from './const';\nimport * as i0 from \"@angular/core\";\nexport class AXMEntityProvider {\n constructor() {\n this.injector = inject(Injector);\n }\n preload() {\n const module = RootConfig.module.name;\n return Array.from(Object.values(RootConfig.entities)).map((entity) => ({\n module: module,\n entity: entity.name,\n }));\n }\n async get(moduleName, entityName) {\n if (moduleName == RootConfig.module.name) {\n switch (entityName) {\n case RootConfig.entities.dashboard.name:\n return (await import('./entities/dashboard/dashboard.entity')).dashboardFactory(this.injector);\n }\n }\n return null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMEntityProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMEntityProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMEntityProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Rhc2hib2FyZC1tYW5hZ2VtZW50L3NyYy9saWIvZW50aXR5LnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUdyQyxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRVUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQW1CckM7SUFqQlEsT0FBTztRQUNaLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3RDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxRSxNQUFNLEVBQUUsTUFBTTtZQUNkLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSTtTQUNwQixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQWtCLEVBQUUsVUFBa0I7UUFDOUMsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QyxRQUFRLFVBQVUsRUFBRSxDQUFDO2dCQUNuQixLQUFLLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUk7b0JBQ3JDLE9BQU8sQ0FBQyxNQUFNLE1BQU0sQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25HLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQW5CVSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEVudGl0eSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7XG4gIEFYUEVudGl0eURlZmluaXRpb25Mb2FkZXIsXG4gIEFYUEVudGl0eURlZmluaXRpb25QcmVsb2FkZXIsXG4gIEFYUEVudGl0eVByZWxvYWRFbnRpdHksXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi9jb25zdCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWE1FbnRpdHlQcm92aWRlciBpbXBsZW1lbnRzIEFYUEVudGl0eURlZmluaXRpb25Mb2FkZXIsIEFYUEVudGl0eURlZmluaXRpb25QcmVsb2FkZXIge1xuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwdWJsaWMgcHJlbG9hZCgpOiBBWFBFbnRpdHlQcmVsb2FkRW50aXR5W10ge1xuICAgIGNvbnN0IG1vZHVsZSA9IFJvb3RDb25maWcubW9kdWxlLm5hbWU7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oT2JqZWN0LnZhbHVlcyhSb290Q29uZmlnLmVudGl0aWVzKSkubWFwKChlbnRpdHk6IGFueSkgPT4gKHtcbiAgICAgIG1vZHVsZTogbW9kdWxlLFxuICAgICAgZW50aXR5OiBlbnRpdHkubmFtZSxcbiAgICB9KSk7XG4gIH1cblxuICBhc3luYyBnZXQobW9kdWxlTmFtZTogc3RyaW5nLCBlbnRpdHlOYW1lOiBzdHJpbmcpOiBQcm9taXNlPEFYUEVudGl0eSB8IG51bGw+IHtcbiAgICBpZiAobW9kdWxlTmFtZSA9PSBSb290Q29uZmlnLm1vZHVsZS5uYW1lKSB7XG4gICAgICBzd2l0Y2ggKGVudGl0eU5hbWUpIHtcbiAgICAgICAgY2FzZSBSb290Q29uZmlnLmVudGl0aWVzLmRhc2hib2FyZC5uYW1lOlxuICAgICAgICAgIHJldHVybiAoYXdhaXQgaW1wb3J0KCcuL2VudGl0aWVzL2Rhc2hib2FyZC9kYXNoYm9hcmQuZW50aXR5JykpLmRhc2hib2FyZEZhY3RvcnkodGhpcy5pbmplY3Rvcik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=","import { ChangeDetectionStrategy, Component, computed, effect, input, signal, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXMAnalogClockComponent {\n constructor() {\n this.timezone = input(...(ngDevMode ? [undefined, { debugName: \"timezone\" }] : []));\n this.classes = input(...(ngDevMode ? [undefined, { debugName: \"classes\" }] : []));\n this.showNumbers = input(true, ...(ngDevMode ? [{ debugName: \"showNumbers\" }] : []));\n this.currentTime = signal(new Date(), ...(ngDevMode ? [{ debugName: \"currentTime\" }] : []));\n this.timeParts = signal({ hours: 0, minutes: 0, seconds: 0 }, ...(ngDevMode ? [{ debugName: \"timeParts\" }] : []));\n this.hourHandTransform = computed(() => {\n const { hours, minutes } = this.timeParts();\n const hoursAngle = (hours % 12) * 30 + minutes * 0.5;\n return `translateX(-50%) rotate(${hoursAngle}deg)`;\n }, ...(ngDevMode ? [{ debugName: \"hourHandTransform\" }] : []));\n this.minuteHandTransform = computed(() => {\n const { minutes, seconds } = this.timeParts();\n const minutesAngle = minutes * 6 + seconds * 0.1;\n return `translateX(-50%) rotate(${minutesAngle}deg)`;\n }, ...(ngDevMode ? [{ debugName: \"minuteHandTransform\" }] : []));\n this.secondHandTransform = computed(() => {\n const { seconds } = this.timeParts();\n const secondsAngle = seconds * 6;\n return `translateX(-50%) rotate(${secondsAngle}deg)`;\n }, ...(ngDevMode ? [{ debugName: \"secondHandTransform\" }] : []));\n this.hourLines = [];\n this.hourNumbers = [];\n this.dots = [];\n effect(() => {\n const now = this.currentTime();\n const tz = this.timezone();\n let hours, minutes, seconds;\n if (tz) {\n try {\n const formatter = new Intl.DateTimeFormat('en-US', {\n timeZone: tz,\n hour12: false,\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n });\n const parts = formatter.formatToParts(now);\n hours = parseInt(parts.find((p) => p.type === 'hour')?.value ?? '0', 10);\n minutes = parseInt(parts.find((p) => p.type === 'minute')?.value ?? '0', 10);\n seconds = parseInt(parts.find((p) => p.type === 'second')?.value ?? '0', 10);\n }\n catch (e) {\n console.error(`Invalid timezone provided: \"${tz}\". Falling back to local time.`);\n hours = now.getHours();\n minutes = now.getMinutes();\n seconds = now.getSeconds();\n }\n }\n else {\n hours = now.getHours();\n minutes = now.getMinutes();\n seconds = now.getSeconds();\n }\n this.timeParts.set({ hours, minutes, seconds });\n });\n }\n ngOnInit() {\n this.createClockMarks();\n this.timerId = window.setInterval(() => {\n this.currentTime.set(new Date());\n }, 1000);\n }\n ngOnDestroy() {\n if (this.timerId) {\n clearInterval(this.timerId);\n }\n }\n createClockMarks() {\n const majorHours = [12, 3, 6, 9];\n // Hour Lines\n this.hourLines = [];\n for (let i = 1; i <= 12; i++) {\n this.hourLines.push({\n transform: `translateX(-50%) rotate(${i * 30}deg)`,\n });\n }\n // Hour Numbers\n this.hourNumbers = [];\n for (const hour of majorHours) {\n const angleRad = (hour * 30 - 90) * (Math.PI / 180);\n this.hourNumbers.push({\n value: hour,\n top: `calc(50% + ${30 * Math.sin(angleRad)}%)`,\n left: `calc(50% + ${30 * Math.cos(angleRad)}%)`,\n });\n }\n // Dots\n this.dots = [];\n for (let i = 1; i <= 60; i++) {\n if (i % 5 !== 0) {\n this.dots.push({\n transform: `translateX(-50%) rotate(${i * 6}deg)`,\n });\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAnalogClockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXMAnalogClockComponent, isStandalone: true, selector: \"axm-analog-clock\", inputs: { timezone: { classPropertyName: \"timezone\", publicName: \"timezone\", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: \"classes\", publicName: \"classes\", isSignal: true, isRequired: false, transformFunction: null }, showNumbers: { classPropertyName: \"showNumbers\", publicName: \"showNumbers\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n <div class=\"axm-analog-clock-container\">\n <div class=\"axm-analog-clock-face\" [class]=\"classes()\">\n <div class=\"axm-analog-clock-marks-container\">\n @for (line of hourLines; track $index) {\n <div class=\"axm-analog-clock-hour-line\" [style.transform]=\"line.transform\">\n <div class=\"axm-analog-clock-hour-line-inner\"></div>\n </div>\n }\n @for (dot of dots; track $index) {\n <div class=\"axm-analog-clock-dot-line\" [style.transform]=\"dot.transform\">\n <div class=\"axm-analog-clock-dot-line-inner\"></div>\n </div>\n }\n </div>\n\n @if (showNumbers()) {\n <div class=\"axm-analog-clock-numbers-container\">\n @for (num of hourNumbers; track num.value) {\n <div class=\"axm-analog-clock-hour-number\" [style.top]=\"num.top\" [style.left]=\"num.left\">\n {{ num.value }}\n </div>\n }\n </div>\n }\n <div class=\"axm-analog-clock-hands\">\n <div class=\"axm-analog-clock-hand axm-analog-clock-hour-hand\" [style.transform]=\"hourHandTransform()\"></div>\n <div\n class=\"axm-analog-clock-hand axm-analog-clock-minute-hand\"\n [style.transform]=\"minuteHandTransform()\"\n ></div>\n <div\n class=\"axm-analog-clock-hand axm-analog-clock-second-hand\"\n [style.transform]=\"secondHandTransform()\"\n ></div>\n <div class=\"axm-analog-clock-center-point\"></div>\n </div>\n </div>\n </div>\n `, isInline: true, styles: [\":host{display:grid;width:100%;height:100%;place-items:center}.axm-analog-clock-container{position:relative;max-height:100%;width:100%;aspect-ratio:1;container-type:inline-size}.axm-analog-clock-face{position:relative;height:100%;width:100%;border-radius:9999px}.axm-analog-clock-marks-container,.axm-analog-clock-numbers-container,.axm-analog-clock-hands{position:absolute;inset:0}.axm-analog-clock-hour-line,.axm-analog-clock-dot-line{position:absolute;bottom:50%;left:50%;height:50%;transform-origin:bottom}.axm-analog-clock-hour-line,.axm-analog-clock-dot-line{width:1.8cqw}.axm-analog-clock-hour-line-inner{position:absolute;top:6cqw;left:50%;height:5.5cqw;width:100%;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-on-darker-surface),var(--tw-bg-opacity, 1))}.axm-analog-clock-dot-line-inner{position:absolute;top:6cqw;left:50%;height:2cqw;width:1.2cqw;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-on-dark-surface),var(--tw-bg-opacity, 1))}.axm-analog-clock-hour-number{position:absolute;--tw-translate-x: -50%;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));font-size:10cqw;font-weight:500;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-surface),var(--tw-text-opacity, 1))}.axm-analog-clock-hand{position:absolute;bottom:50%;left:50%;transform-origin:bottom;border-top-left-radius:.5rem;border-top-right-radius:.5rem}.axm-analog-clock-hand:after{content:\\\"\\\";position:absolute;left:0;width:100%}.axm-analog-clock-hour-hand{z-index:2;height:25%;width:2.7cqw;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.axm-analog-clock-hour-hand:after{bottom:-20%;height:20%;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.axm-analog-clock-minute-hand{z-index:3;height:35%;width:2.1cqw;--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.axm-analog-clock-minute-hand:after{bottom:-20%;height:20%;--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.axm-analog-clock-second-hand{z-index:4;height:42%;width:1.5cqw;--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.axm-analog-clock-second-hand:after{bottom:-20%;height:20%;--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.axm-analog-clock-center-point{position:absolute;top:50%;left:50%;z-index:5;height:9cqw;width:9cqw;--tw-translate-x: -50%;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;border-width:1.8cqw;--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAnalogClockComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axm-analog-clock', standalone: true, imports: [], template: `\n <div class=\"axm-analog-clock-container\">\n <div class=\"axm-analog-clock-face\" [class]=\"classes()\">\n <div class=\"axm-analog-clock-marks-container\">\n @for (line of hourLines; track $index) {\n <div class=\"axm-analog-clock-hour-line\" [style.transform]=\"line.transform\">\n <div class=\"axm-analog-clock-hour-line-inner\"></div>\n </div>\n }\n @for (dot of dots; track $index) {\n <div class=\"axm-analog-clock-dot-line\" [style.transform]=\"dot.transform\">\n <div class=\"axm-analog-clock-dot-line-inner\"></div>\n </div>\n }\n </div>\n\n @if (showNumbers()) {\n <div class=\"axm-analog-clock-numbers-container\">\n @for (num of hourNumbers; track num.value) {\n <div class=\"axm-analog-clock-hour-number\" [style.top]=\"num.top\" [style.left]=\"num.left\">\n {{ num.value }}\n </div>\n }\n </div>\n }\n <div class=\"axm-analog-clock-hands\">\n <div class=\"axm-analog-clock-hand axm-analog-clock-hour-hand\" [style.transform]=\"hourHandTransform()\"></div>\n <div\n class=\"axm-analog-clock-hand axm-analog-clock-minute-hand\"\n [style.transform]=\"minuteHandTransform()\"\n ></div>\n <div\n class=\"axm-analog-clock-hand axm-analog-clock-second-hand\"\n [style.transform]=\"secondHandTransform()\"\n ></div>\n <div class=\"axm-analog-clock-center-point\"></div>\n </div>\n </div>\n </div>\n `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\":host{display:grid;width:100%;height:100%;place-items:center}.axm-analog-clock-container{position:relative;max-height:100%;width:100%;aspect-ratio:1;container-type:inline-size}.axm-analog-clock-face{position:relative;height:100%;width:100%;border-radius:9999px}.axm-analog-clock-marks-container,.axm-analog-clock-numbers-container,.axm-analog-clock-hands{position:absolute;inset:0}.axm-analog-clock-hour-line,.axm-analog-clock-dot-line{position:absolute;bottom:50%;left:50%;height:50%;transform-origin:bottom}.axm-analog-clock-hour-line,.axm-analog-clock-dot-line{width:1.8cqw}.axm-analog-clock-hour-line-inner{position:absolute;top:6cqw;left:50%;height:5.5cqw;width:100%;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-on-darker-surface),var(--tw-bg-opacity, 1))}.axm-analog-clock-dot-line-inner{position:absolute;top:6cqw;left:50%;height:2cqw;width:1.2cqw;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-on-dark-surface),var(--tw-bg-opacity, 1))}.axm-analog-clock-hour-number{position:absolute;--tw-translate-x: -50%;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));font-size:10cqw;font-weight:500;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-surface),var(--tw-text-opacity, 1))}.axm-analog-clock-hand{position:absolute;bottom:50%;left:50%;transform-origin:bottom;border-top-left-radius:.5rem;border-top-right-radius:.5rem}.axm-analog-clock-hand:after{content:\\\"\\\";position:absolute;left:0;width:100%}.axm-analog-clock-hour-hand{z-index:2;height:25%;width:2.7cqw;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.axm-analog-clock-hour-hand:after{bottom:-20%;height:20%;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.axm-analog-clock-minute-hand{z-index:3;height:35%;width:2.1cqw;--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.axm-analog-clock-minute-hand:after{bottom:-20%;height:20%;--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.axm-analog-clock-second-hand{z-index:4;height:42%;width:1.5cqw;--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.axm-analog-clock-second-hand:after{bottom:-20%;height:20%;--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.axm-analog-clock-center-point{position:absolute;top:50%;left:50%;z-index:5;height:9cqw;width:9cqw;--tw-translate-x: -50%;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;border-width:1.8cqw;--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { timezone: [{ type: i0.Input, args: [{ isSignal: true, alias: \"timezone\", required: false }] }], classes: [{ type: i0.Input, args: [{ isSignal: true, alias: \"classes\", required: false }] }], showNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: \"showNumbers\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbG9nLWNsb2NrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NoYXJlZC93aWRnZXRzL2FuYWxvZy1jbG9jay9hbmFsb2ctY2xvY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQzs7QUErSXZCLE1BQU0sT0FBTyx1QkFBdUI7SUFRbEM7UUFQQSxhQUFRLEdBQUcsS0FBSyw4REFBVSxDQUFDO1FBQzNCLFlBQU8sR0FBRyxLQUFLLDZEQUFVLENBQUM7UUFDMUIsZ0JBQVcsR0FBRyxLQUFLLENBQVUsSUFBSSx1REFBQyxDQUFDO1FBRWxCLGdCQUFXLEdBQXlCLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSx1REFBQyxDQUFDO1FBQ3ZELGNBQVMsR0FBRyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxxREFBQyxDQUFDO1FBb0NqRSxzQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3pDLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzVDLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLEdBQUcsR0FBRyxDQUFDO1lBQ3JELE9BQU8sMkJBQTJCLFVBQVUsTUFBTSxDQUFDO1FBQ3JELENBQUMsNkRBQUMsQ0FBQztRQUVNLHdCQUFtQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7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QUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSTtnQkFDOUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUk7YUFDaEQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU87UUFDUCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUNiLFNBQVMsRUFBRSwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsTUFBTTtpQkFDbEQsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOytHQTlHVSx1QkFBdUI7bUdBQXZCLHVCQUF1QixpZUFsSXhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Q1Q7OzRGQTJGVSx1QkFBdUI7a0JBdEluQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsRUFBRSxZQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Q1QsbUJBeUZnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBzaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW50ZXJmYWNlIEFYTUNsb2NrTWFyayB7XG4gIHRyYW5zZm9ybT86IHN0cmluZztcbiAgdG9wPzogc3RyaW5nO1xuICBsZWZ0Pzogc3RyaW5nO1xuICB2YWx1ZT86IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhtLWFuYWxvZy1jbG9jaycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJheG0tYW5hbG9nLWNsb2NrLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImF4bS1hbmFsb2ctY2xvY2stZmFjZVwiIFtjbGFzc109XCJjbGFzc2VzKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4bS1hbmFsb2ctY2xvY2stbWFya3MtY29udGFpbmVyXCI+XG4gICAgICAgICAgQGZvciAobGluZSBvZiBob3VyTGluZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4bS1hbmFsb2ctY2xvY2staG91ci1saW5lXCIgW3N0eWxlLnRyYW5zZm9ybV09XCJsaW5lLnRyYW5zZm9ybVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXhtLWFuYWxvZy1jbG9jay1ob3VyLWxpbmUtaW5uZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICBAZm9yIChkb3Qgb2YgZG90czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXhtLWFuYWxvZy1jbG9jay1kb3QtbGluZVwiIFtzdHlsZS50cmFuc2Zvcm1dPVwiZG90LnRyYW5zZm9ybVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXhtLWFuYWxvZy1jbG9jay1kb3QtbGluZS1pbm5lclwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKHNob3dOdW1iZXJzKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXhtLWFuYWxvZy1jbG9jay1udW1iZXJzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgQGZvciAobnVtIG9mIGhvdXJOdW1iZXJzOyB0cmFjayBudW0udmFsdWUpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4bS1hbmFsb2ctY2xvY2staG91ci1udW1iZXJcIiBbc3R5bGUudG9wXT1cIm51bS50b3BcIiBbc3R5bGUubGVmdF09XCJudW0ubGVmdFwiPlxuICAgICAgICAgICAgICAgIHt7IG51bS52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXhtLWFuYWxvZy1jbG9jay1oYW5kc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheG0tYW5hbG9nLWNsb2NrLWhhbmQgYXhtLWFuYWxvZy1jbG9jay1ob3VyLWhhbmRcIiBbc3R5bGUudHJhbnNmb3JtXT1cImhvdXJIYW5kVHJhbnNmb3JtKClcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImF4bS1hbmFsb2ctY2xvY2staGFuZCBheG0tYW5hbG9nLWNsb2NrLW1pbnV0ZS1oYW5kXCJcbiAgICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwibWludXRlSGFuZFRyYW5zZm9ybSgpXCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJheG0tYW5hbG9nLWNsb2NrLWhhbmQgYXhtLWFuYWxvZy1jbG9jay1zZWNvbmQtaGFuZFwiXG4gICAgICAgICAgICBbc3R5bGUudHJhbnNmb3JtXT1cInNlY29uZEhhbmRUcmFuc2Zvcm0oKVwiXG4gICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheG0tYW5hbG9nLWNsb2NrLWNlbnRlci1wb2ludFwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIEBhcHBseSBheC1ncmlkIGF4LXBsYWNlLWl0ZW1zLWNlbnRlciBheC1zaXplLWZ1bGw7XG4gICAgICB9XG5cbiAgICAgIC5heG0tYW5hbG9nLWNsb2NrLWNvbnRhaW5lciB7XG4gICAgICAgIEBhcHBseSBheC1yZWxhdGl2ZSBheC13LWZ1bGwgYXgtbWF4LWgtZnVsbDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgICAgICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG4gICAgICB9XG5cbiAgICAgIC5heG0tYW5hbG9nLWNsb2NrLWZhY2Uge1xuICAgICAgICBAYXBwbHkgYXgtdy1mdWxsIGF4LWgtZnVsbCBheC1yZWxhdGl2ZSBheC1yb3VuZGVkLWZ1bGw7XG4gICAgICB9XG5cbiAgICAgIC5heG0tYW5hbG9nLWNsb2NrLW1hcmtzLWNvbnRhaW5lcixcbiAgICAgIC5heG0tYW5hbG9nLWNsb2NrLW51bWJlcnMtY29udGFpbmVyIHtcbiAgICAgICAgQGFwcGx5IGF4LWFic29sdXRlIGF4LWluc2V0LTA7XG4gICAgICB9XG5cbiAgICAgIC5heG0tYW5hbG9nLWNsb2NrLWhhbmRzIHtcbiAgICAgICAgQGFwcGx5IGF4LWFic29sdXRlIGF4LWluc2V0LTA7XG4gICAgICB9XG5cbiAgICAgIC5heG0tYW5hbG9nLWNsb2NrLWhvdXItbGluZSxcbiAgICAgIC5heG0tYW5hbG9nLWNsb2NrLWRvdC1saW5lIHtcbiAgICAgICAgQGFwcGx5IGF4LWFic29sdXRlIGF4LWJvdHRvbS0xLzIgYXgtbGVmdC0xLzIgYXgtaC0xLzIgYXgtb3JpZ2luLWJvdHRvbTtcbiAgICAgIH1cblxuICAgICAgLmF4bS1hbmFsb2ctY2xvY2staG91ci1saW5lIHtcbiAgICAgICAgQGFwcGx5IGF4LXctWzEuOGNxd107XG4gICAgICB9XG5cbiAgICAgIC5heG0tYW5hbG9nLWNsb2NrLWRvdC1saW5lIHtcbiAgICAgICAgQGFwcGx5IGF4LXctWzEuOGNxd107XG4gICAgICB9XG5cbiAgICAgIC5heG0tYW5hbG9nLWNsb2NrLWhvdXItbGluZS1pbm5lciB7XG4gICAgICAgIEBhcHBseSBheC1hYnNvbHV0ZSBheC10b3AtWzZjcXddIGF4LWxlZnQtMS8yIC1heC10cmFuc2xhdGUteC0xLzIgYXgtdy1mdWxsIGF4LWgtWzUuNWNxd10gYXgtYmctb24tZGFya2VyO1xuICAgICAgfVxuXG4gICAgICAuYXhtLWFuYWxvZy1jbG9jay1kb3QtbGluZS1pbm5lciB7XG4gICAgICAgIEBhcHBseSBheC1hYnNvbHV0ZSBheC10b3AtWzZjcXddIGF4LWxlZnQtMS8yIC1heC10cmFuc2xhdGUteC0xLzIgYXgtdy1bMS4yY3F3XSBheC1oLVsyY3F3XSBheC1iZy1vbi1kYXJrIGF4LXJvdW5kZWQtZnVsbDtcbiAgICAgIH1cblxuICAgICAgLmF4bS1hbmFsb2ctY2xvY2staG91ci1udW1iZXIge1xuICAgICAgICBAYXBwbHkgYXgtYWJzb2x1dGUgLWF4LXRyYW5zbGF0ZS14LTEvMiAtYXgtdHJhbnNsYXRlLXktMS8yIGF4LXRleHQtWzEwY3F3XSBheC1mb250LW1lZGl1bSBheC10ZXh0LW9uLXN1cmZhY2U7XG4gICAgICB9XG5cbiAgICAgIC5heG0tYW5hbG9nLWNsb2NrLWhhbmQge1xuICAgICAgICBAYXBwbHkgYXgtYWJzb2x1dGUgYXgtYm90dG9tLTEvMiBheC1sZWZ0LTEvMiBheC1vcmlnaW4tYm90dG9tIGF4LXJvdW5kZWQtdC1sZztcbiAgICAgIH1cblxuICAgICAgLmF4bS1hbmFsb2ctY2xvY2staGFuZDo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgQGFwcGx5IGF4LWFic29sdXRlIGF4LWxlZnQtMCBheC13LWZ1bGw7XG4gICAgICB9XG5cbiAgICAgIC5heG0tYW5hbG9nLWNsb2NrLWhvdXItaGFuZCB7XG4gICAgICAgIEBhcHBseSBheC16LVsyXSBheC13LVsyLjdjcXddIGF4LWgtMS80IGF4LWJnLWJsYWNrO1xuICAgICAgfVxuXG4gICAgICAuYXhtLWFuYWxvZy1jbG9jay1ob3VyLWhhbmQ6OmFmdGVyIHtcbiAgICAgICAgQGFwcGx5IGF4LWgtWzIwJV0gLWF4LWJvdHRvbS1bMjAlXSBheC1iZy1ibGFjaztcbiAgICAgIH1cblxuICAgICAgLmF4bS1hbmFsb2ctY2xvY2stbWludXRlLWhhbmQge1xuICAgICAgICBAYXBwbHkgYXgtei1bM10gYXgtdy1bMi4xY3F3XSBheC1oLVszNSVdIGF4LWJnLWdyYXktNDAwO1xuICAgICAgfVxuXG4gICAgICAuYXhtLWFuYWxvZy1jbG9jay1taW51dGUtaGFuZDo6YWZ0ZXIge1xuICAgICAgICBAYXBwbHkgYXgtaC1bMjAlXSAtYXgtYm90dG9tLVsyMCVdIGF4LWJnLWdyYXktNDAwO1xuICAgICAgfVxuXG4gICAgICAuYXhtLWFuYWxvZy1jbG9jay1zZWNvbmQtaGFuZCB7XG4gICAgICAgIEBhcHBseSBheC16LVs0XSBheC13LVsxLjVjcXddIGF4LWgtWzQyJV0gYXgtYmctcmVkLTUwMDtcbiAgICAgIH1cblxuICAgICAgLmF4bS1hbmFsb2ctY2xvY2stc2Vjb25kLWhhbmQ6OmFmdGVyIHtcbiAgICAgICAgQGFwcGx5IGF4LWgtWzIwJV0gLWF4LWJvdHRvbS1bMjAlXSBheC1iZy1yZWQtNTAwO1xuICAgICAgfVxuXG4gICAgICAuYXhtLWFuYWxvZy1jbG9jay1jZW50ZXItcG9pbnQge1xuICAgICAgICBAYXBwbHkgYXgtYWJzb2x1dGUgYXgtdG9wLTEvMiBheC1sZWZ0LTEvMiAtYXgtdHJhbnNsYXRlLXgtMS8yIC1heC10cmFuc2xhdGUteS0xLzIgYXgtdy1bOWNxd10gYXgtaC1bOWNxd10gYXgtYmctd2hpdGUgYXgtYm9yZGVyLVsxLjhjcXddIGF4LWJvcmRlci1ibGFjayBheC1yb3VuZGVkLWZ1bGwgYXgtei1bNV07XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYTUFuYWxvZ0Nsb2NrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICB0aW1lem9uZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgY2xhc3NlcyA9IGlucHV0PHN0cmluZz4oKTtcbiAgc2hvd051bWJlcnMgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGN1cnJlbnRUaW1lOiBXcml0YWJsZVNpZ25hbDxEYXRlPiA9IHNpZ25hbChuZXcgRGF0ZSgpKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1lUGFydHMgPSBzaWduYWwoeyBob3VyczogMCwgbWludXRlczogMCwgc2Vjb25kczogMCB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgbm93ID0gdGhpcy5jdXJyZW50VGltZSgpO1xuICAgICAgY29uc3QgdHogPSB0aGlzLnRpbWV6b25lKCk7XG4gICAgICBsZXQgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHM7XG5cbiAgICAgIGlmICh0eikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbi1VUycsIHtcbiAgICAgICAgICAgIHRpbWVab25lOiB0eixcbiAgICAgICAgICAgIGhvdXIxMjogZmFsc2UsXG4gICAgICAgICAgICBob3VyOiAnbnVtZXJpYycsXG4gICAgICAgICAgICBtaW51dGU6ICdudW1lcmljJyxcbiAgICAgICAgICAgIHNlY29uZDogJ251bWVyaWMnLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnN0IHBhcnRzID0gZm9ybWF0dGVyLmZvcm1hdFRvUGFydHMobm93KTtcbiAgICAgICAgICBob3VycyA9IHBhcnNlSW50KHBhcnRzLmZpbmQoKHApID0+IHAudHlwZSA9PT0gJ2hvdXInKT8udmFsdWUgPz8gJzAnLCAxMCk7XG4gICAgICAgICAgbWludXRlcyA9IHBhcnNlSW50KHBhcnRzLmZpbmQoKHApID0+IHAudHlwZSA9PT0gJ21pbnV0ZScpPy52YWx1ZSA/PyAnMCcsIDEwKTtcbiAgICAgICAgICBzZWNvbmRzID0gcGFyc2VJbnQocGFydHMuZmluZCgocCkgPT4gcC50eXBlID09PSAnc2Vjb25kJyk/LnZhbHVlID8/ICcwJywgMTApO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgSW52YWxpZCB0aW1lem9uZSBwcm92aWRlZDogXCIke3R6fVwiLiBGYWxsaW5nIGJhY2sgdG8gbG9jYWwgdGltZS5gKTtcbiAgICAgICAgICBob3VycyA9IG5vdy5nZXRIb3VycygpO1xuICAgICAgICAgIG1pbnV0ZXMgPSBub3cuZ2V0TWludXRlcygpO1xuICAgICAgICAgIHNlY29uZHMgPSBub3cuZ2V0U2Vjb25kcygpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBob3VycyA9IG5vdy5nZXRIb3VycygpO1xuICAgICAgICBtaW51dGVzID0gbm93LmdldE1pbnV0ZXMoKTtcbiAgICAgICAgc2Vjb25kcyA9IG5vdy5nZXRTZWNvbmRzKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnRpbWVQYXJ0cy5zZXQoeyBob3VycywgbWludXRlcywgc2Vjb25kcyB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRvbmx5IGhvdXJIYW5kVHJhbnNmb3JtID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHsgaG91cnMsIG1pbnV0ZXMgfSA9IHRoaXMudGltZVBhcnRzKCk7XG4gICAgY29uc3QgaG91cnNBbmdsZSA9IChob3VycyAlIDEyKSAqIDMwICsgbWludXRlcyAqIDAuNTtcbiAgICByZXR1cm4gYHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKCR7aG91cnNBbmdsZX1kZWcpYDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgbWludXRlSGFuZFRyYW5zZm9ybSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB7IG1pbnV0ZXMsIHNlY29uZHMgfSA9IHRoaXMudGltZVBhcnRzKCk7XG4gICAgY29uc3QgbWludXRlc0FuZ2xlID0gbWludXRlcyAqIDYgKyBzZWNvbmRzICogMC4xO1xuICAgIHJldHVybiBgdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoJHttaW51dGVzQW5nbGV9ZGVnKWA7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHNlY29uZEhhbmRUcmFuc2Zvcm0gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgeyBzZWNvbmRzIH0gPSB0aGlzLnRpbWVQYXJ0cygpO1xuICAgIGNvbnN0IHNlY29uZHNBbmdsZSA9IHNlY29uZHMgKiA2O1xuICAgIHJldHVybiBgdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoJHtzZWNvbmRzQW5nbGV9ZGVnKWA7XG4gIH0pO1xuXG4gIGhvdXJMaW5lczogQVhNQ2xvY2tNYXJrW10gPSBbXTtcbiAgaG91ck51bWJlcnM6IEFYTUNsb2NrTWFya1tdID0gW107XG4gIGRvdHM6IEFYTUNsb2NrTWFya1tdID0gW107XG5cbiAgcHJpdmF0ZSB0aW1lcklkPzogbnVtYmVyO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlQ2xvY2tNYXJrcygpO1xuICAgIHRoaXMudGltZXJJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICB0aGlzLmN1cnJlbnRUaW1lLnNldChuZXcgRGF0ZSgpKTtcbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRpbWVySWQpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcklkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNsb2NrTWFya3MoKTogdm9pZCB7XG4gICAgY29uc3QgbWFqb3JIb3VycyA9IFsxMiwgMywgNiwgOV07XG5cbiAgICAvLyBIb3VyIExpbmVzXG4gICAgdGhpcy5ob3VyTGluZXMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8PSAxMjsgaSsrKSB7XG4gICAgICB0aGlzLmhvdXJMaW5lcy5wdXNoKHtcbiAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoJHtpICogMzB9ZGVnKWAsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBIb3VyIE51bWJlcnNcbiAgICB0aGlzLmhvdXJOdW1iZXJzID0gW107XG4gICAgZm9yIChjb25zdCBob3VyIG9mIG1ham9ySG91cnMpIHtcbiAgICAgIGNvbnN0IGFuZ2xlUmFkID0gKGhvdXIgKiAzMCAtIDkwKSAqIChNYXRoLlBJIC8gMTgwKTtcbiAgICAgIHRoaXMuaG91ck51bWJlcnMucHVzaCh7XG4gICAgICAgIHZhbHVlOiBob3VyLFxuICAgICAgICB0b3A6IGBjYWxjKDUwJSArICR7MzAgKiBNYXRoLnNpbihhbmdsZVJhZCl9JSlgLFxuICAgICAgICBsZWZ0OiBgY2FsYyg1MCUgKyAkezMwICogTWF0aC5jb3MoYW5nbGVSYWQpfSUpYCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIERvdHNcbiAgICB0aGlzLmRvdHMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8PSA2MDsgaSsrKSB7XG4gICAgICBpZiAoaSAlIDUgIT09IDApIHtcbiAgICAgICAgdGhpcy5kb3RzLnB1c2goe1xuICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKCR7aSAqIDZ9ZGVnKWAsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19","import { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXMLocaleManagementService } from '@acorex/modules/locale-management';\nimport { AXPLayoutBaseWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed, ElementRef, inject, signal, } from '@angular/core';\nimport { AXMAnalogClockComponent } from './analog-clock.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/tooltip\";\nexport class AXMClockWidgetViewComponent extends AXPLayoutBaseWidgetComponent {\n constructor() {\n super();\n this.regionalService = inject(AXMLocaleManagementService);\n this.elementRef = inject(ElementRef);\n this.userTimezone = signal(null, ...(ngDevMode ? [{ debugName: \"userTimezone\" }] : []));\n this.containerWidth = signal(0, ...(ngDevMode ? [{ debugName: \"containerWidth\" }] : []));\n this.containerHeight = signal(0, ...(ngDevMode ? [{ debugName: \"containerHeight\" }] : []));\n this.resizeObserver = null;\n this.timezone = computed(() => {\n const configuredTimezone = this.options()?.['timezone'];\n return configuredTimezone || this.userTimezone();\n }, ...(ngDevMode ? [{ debugName: \"timezone\" }] : []));\n this.others = computed(() => (this.options()?.['others'] ?? []), ...(ngDevMode ? [{ debugName: \"others\" }] : []));\n this.isHorizontal = computed(() => {\n const width = this.containerWidth();\n const height = this.containerHeight();\n // If width is greater than height or they are equal, use horizontal layout\n return width >= height - (this.others().length > 0 ? 75 : 0);\n }, ...(ngDevMode ? [{ debugName: \"isHorizontal\" }] : []));\n this.hasEnoughSpaceForHorizontal = computed(() => {\n const width = this.containerWidth();\n const clockCount = this.others().length;\n // Estimate minimum width needed for horizontal layout\n // Each clock needs about 100px (60px clock + padding + text)\n const minWidthNeeded = clockCount * 100;\n return width >= minWidthNeeded && clockCount <= 4;\n }, ...(ngDevMode ? [{ debugName: \"hasEnoughSpaceForHorizontal\" }] : []));\n // Dynamically compute font sizes for timezone code and abbreviation\n this.codeFontSize = computed(() => {\n const width = this.containerWidth();\n const codeLength = this.timezone()?.code?.length ?? 0;\n // Base scales with container width (100px -> ~10px, 400px -> ~22px)\n const base = (width / 400) * 14 + 8;\n // Penalize long codes more aggressively to allow two-line fit\n const penalty = codeLength > 14 ? (codeLength - 14) * 0.8 : 0;\n const size = Math.max(9, Math.min(22, base - penalty));\n return Math.round(size);\n }, ...(ngDevMode ? [{ debugName: \"codeFontSize\" }] : []));\n this.abbrFontSize = computed(() => {\n const width = this.containerWidth();\n const abbrLength = this.timezone()?.abbr?.length ?? 0;\n // Base scales with container width (100px -> ~16px, 400px -> ~30px)\n const base = (width / 400) * 18 + 12;\n // Penalize unusually long abbreviations\n const penalty = abbrLength > 4 ? (abbrLength - 4) * 1 : 0;\n const size = Math.max(14, Math.min(28, base - penalty));\n return Math.round(size);\n }, ...(ngDevMode ? [{ debugName: \"abbrFontSize\" }] : []));\n this.loadUserTimezone();\n }\n ngAfterViewInit() {\n this.setupResizeObserver();\n }\n ngOnDestroy() {\n this.resizeObserver?.disconnect();\n }\n setupResizeObserver() {\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === this.elementRef.nativeElement) {\n const { width, height } = entry.contentRect;\n this.containerWidth.set(width);\n this.containerHeight.set(height);\n }\n }\n });\n this.resizeObserver.observe(this.elementRef.nativeElement);\n }\n }\n async loadUserTimezone() {\n try {\n const timezoneCode = await this.regionalService.getBrowserTimeZoneCode();\n const timezones = await this.regionalService.getTimeZones();\n const timezone = timezones.find((tz) => tz.code === timezoneCode);\n if (timezone) {\n this.userTimezone.set(timezone);\n }\n }\n catch (error) {\n console.error('Failed to load user timezone', error);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMClockWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXMClockWidgetViewComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-p-2 ax-h-full ax-overflow-hidden\" [class.ax-bg-light]=\"others().length > 0\">\n <!-- Main Clock Section -->\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-around ax-gap-2 ax-flex-1 ax-h-full\">\n <div\n class=\"ax-flex ax-items-center ax-justify-around ax-gap-2 ax-w-full ax-grow\"\n [class.ax-flex-row]=\"isHorizontal()\"\n [class.ax-rounded-full]=\"isHorizontal() && others().length > 0\"\n [class.ax-flex-col]=\"!isHorizontal()\"\n [class.ax-rounded-xl]=\"!isHorizontal() && others().length > 0\"\n [class.ax-border]=\"others().length > 0\"\n [class.ax-border-gray-100]=\"others().length > 0\"\n [class.ax-shadow-lg]=\"others().length > 0\"\n [class.ax-bg-lighter]=\"others().length > 0\"\n [class.ax-p-2]=\"others().length > 0\"\n >\n <div\n class=\"ax-aspect-square ax-flex ax-items-center ax-justify-center ax-min-w-[100px] ax-min-h-[100px]\"\n [style.height]=\"isHorizontal() ? '65%' : 'auto'\"\n [style.width]=\"isHorizontal() ? 'auto' : '65%'\"\n >\n <axm-analog-clock\n [timezone]=\"timezone()?.iana\"\n [classes]=\"others().length > 0 ? 'ax-bg-lightest' : undefined\"\n ></axm-analog-clock>\n </div>\n @if (timezone()?.abbr) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-text-center ax-min-w-[50px] ax-gap-2\">\n @if (timezone()?.code) {\n <span\n class=\"ax-font-medium ax-opacity-75 ax-uppercase ax-block ax-2line\"\n [style.fontSize.px]=\"codeFontSize()\"\n >{{ timezone()?.code }}</span\n >\n }\n <span class=\"ax-font-bold ax-mt-0\" [style.fontSize.px]=\"abbrFontSize()\">{{ timezone()?.abbr }}</span>\n </div>\n }\n </div>\n\n <!-- Additional Clocks Section -->\n @if (others().length > 0) {\n <div class=\"ax-w-full ax-max-w-4xl ax-mx-auto\">\n <div\n class=\"ax-flex ax-justify-around ax-items-center\"\n [class.ax-flex-wrap]=\"hasEnoughSpaceForHorizontal()\"\n [class.ax-gap-3]=\"true\"\n [class.ax-overflow-auto]=\"true\"\n >\n @for (clock of others(); track clock.code) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-p-2 ax-flex-wrap ax-gap-2\">\n <div\n [axTooltip]=\"clock.code\"\n [axTooltipPlacement]=\"'top'\"\n class=\"ax-aspect-square ax-flex ax-items-center ax-justify-center ax-rounded-lg ax-size-16\"\n >\n <axm-analog-clock\n [timezone]=\"clock.iana\"\n [showNumbers]=\"false\"\n [classes]=\"'ax-bg-lightest'\"\n ></axm-analog-clock>\n </div>\n @if (clock.abbr) {\n <div\n [class.ax-text-center]=\"hasEnoughSpaceForHorizontal()\"\n [class.ax-pt-1]=\"hasEnoughSpaceForHorizontal()\"\n [class.ax-pl-1]=\"!hasEnoughSpaceForHorizontal()\"\n >\n <span class=\"ax-text-xs ax-font-medium ax-truncate ax-block\">{{ clock.abbr }}</span>\n @if (clock.code) {\n <span class=\"ax-text-xs ax-font-light ax-opacity-75 ax-truncate ax-block\">{{\n clock.code\n }}</span>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n `, isInline: true, styles: [\":host{display:block;width:100%;height:100%}.ax-2line{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;line-height:1.1;max-height:2.2em}.ax-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\\n\"], dependencies: [{ kind: \"component\", type: AXMAnalogClockComponent, selector: \"axm-analog-clock\", inputs: [\"timezone\", \"classes\", \"showNumbers\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"directive\", type: i1.AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMClockWidgetViewComponent, decorators: [{\n type: Component,\n args: [{ template: `\n <div class=\"ax-p-2 ax-h-full ax-overflow-hidden\" [class.ax-bg-light]=\"others().length > 0\">\n <!-- Main Clock Section -->\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-around ax-gap-2 ax-flex-1 ax-h-full\">\n <div\n class=\"ax-flex ax-items-center ax-justify-around ax-gap-2 ax-w-full ax-grow\"\n [class.ax-flex-row]=\"isHorizontal()\"\n [class.ax-rounded-full]=\"isHorizontal() && others().length > 0\"\n [class.ax-flex-col]=\"!isHorizontal()\"\n [class.ax-rounded-xl]=\"!isHorizontal() && others().length > 0\"\n [class.ax-border]=\"others().length > 0\"\n [class.ax-border-gray-100]=\"others().length > 0\"\n [class.ax-shadow-lg]=\"others().length > 0\"\n [class.ax-bg-lighter]=\"others().length > 0\"\n [class.ax-p-2]=\"others().length > 0\"\n >\n <div\n class=\"ax-aspect-square ax-flex ax-items-center ax-justify-center ax-min-w-[100px] ax-min-h-[100px]\"\n [style.height]=\"isHorizontal() ? '65%' : 'auto'\"\n [style.width]=\"isHorizontal() ? 'auto' : '65%'\"\n >\n <axm-analog-clock\n [timezone]=\"timezone()?.iana\"\n [classes]=\"others().length > 0 ? 'ax-bg-lightest' : undefined\"\n ></axm-analog-clock>\n </div>\n @if (timezone()?.abbr) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-text-center ax-min-w-[50px] ax-gap-2\">\n @if (timezone()?.code) {\n <span\n class=\"ax-font-medium ax-opacity-75 ax-uppercase ax-block ax-2line\"\n [style.fontSize.px]=\"codeFontSize()\"\n >{{ timezone()?.code }}</span\n >\n }\n <span class=\"ax-font-bold ax-mt-0\" [style.fontSize.px]=\"abbrFontSize()\">{{ timezone()?.abbr }}</span>\n </div>\n }\n </div>\n\n <!-- Additional Clocks Section -->\n @if (others().length > 0) {\n <div class=\"ax-w-full ax-max-w-4xl ax-mx-auto\">\n <div\n class=\"ax-flex ax-justify-around ax-items-center\"\n [class.ax-flex-wrap]=\"hasEnoughSpaceForHorizontal()\"\n [class.ax-gap-3]=\"true\"\n [class.ax-overflow-auto]=\"true\"\n >\n @for (clock of others(); track clock.code) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-p-2 ax-flex-wrap ax-gap-2\">\n <div\n [axTooltip]=\"clock.code\"\n [axTooltipPlacement]=\"'top'\"\n class=\"ax-aspect-square ax-flex ax-items-center ax-justify-center ax-rounded-lg ax-size-16\"\n >\n <axm-analog-clock\n [timezone]=\"clock.iana\"\n [showNumbers]=\"false\"\n [classes]=\"'ax-bg-lightest'\"\n ></axm-analog-clock>\n </div>\n @if (clock.abbr) {\n <div\n [class.ax-text-center]=\"hasEnoughSpaceForHorizontal()\"\n [class.ax-pt-1]=\"hasEnoughSpaceForHorizontal()\"\n [class.ax-pl-1]=\"!hasEnoughSpaceForHorizontal()\"\n >\n <span class=\"ax-text-xs ax-font-medium ax-truncate ax-block\">{{ clock.abbr }}</span>\n @if (clock.code) {\n <span class=\"ax-text-xs ax-font-light ax-opacity-75 ax-truncate ax-block\">{{\n clock.code\n }}</span>\n }\n </div>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n `, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXMAnalogClockComponent, AXTooltipModule], styles: [\":host{display:block;width:100%;height:100%}.ax-2line{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;line-height:1.1;max-height:2.2em}.ax-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbG9nLWNsb2NrLXdpZGdldC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NoYXJlZC93aWRnZXRzL2FuYWxvZy1jbG9jay9hbmFsb2ctY2xvY2std2lkZ2V0LXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRixPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sRUFFTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQTRIbkUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLDRCQUE0QjtJQVEzRTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBUk8sb0JBQWUsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNyRCxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pDLGlCQUFZLEdBQUcsTUFBTSxDQUFxQixJQUFJLHdEQUFDLENBQUM7UUFDaEQsbUJBQWMsR0FBRyxNQUFNLENBQVMsQ0FBQywwREFBQyxDQUFDO1FBQ25DLG9CQUFlLEdBQUcsTUFBTSxDQUFTLENBQUMsMkRBQUMsQ0FBQztRQUNwQyxtQkFBYyxHQUEwQixJQUFJLENBQUM7UUEyQ3JELGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sa0JBQWtCLEdBQUcsSUFB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QUFNLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsQ0FBQztZQUNsRSxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xDLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsOEJBQThCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkQsQ0FBQztJQUNILENBQUM7K0dBL0NVLDJCQUEyQjttR0FBM0IsMkJBQTJCLCtGQXpINUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUZULHdXQW9DUyx1QkFBdUIsNEdBQUUsZUFBZTs7NEZBRXZDLDJCQUEyQjtrQkExSHZDLFNBQVM7K0JBQ0U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUZULGNBa0NXLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLHVCQUF1QixFQUFFLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEFYTUxvY2FsZU1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9tb2R1bGVzL2xvY2FsZS1tYW5hZ2VtZW50JztcbmltcG9ydCB7IEFYUFRpbWVab25lIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIE9uRGVzdHJveSxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTUFuYWxvZ0Nsb2NrQ29tcG9uZW50IH0gZnJvbSAnLi9hbmFsb2ctY2xvY2suY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LXAtMiBheC1oLWZ1bGwgYXgtb3ZlcmZsb3ctaGlkZGVuXCIgW2NsYXNzLmF4LWJnLWxpZ2h0XT1cIm90aGVycygpLmxlbmd0aCA+IDBcIj5cbiAgICAgIDwhLS0gTWFpbiBDbG9jayBTZWN0aW9uIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktYXJvdW5kIGF4LWdhcC0yIGF4LWZsZXgtMSBheC1oLWZ1bGxcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1hcm91bmQgYXgtZ2FwLTIgYXgtdy1mdWxsIGF4LWdyb3dcIlxuICAgICAgICAgIFtjbGFzcy5heC1mbGV4LXJvd109XCJpc0hvcml6b250YWwoKVwiXG4gICAgICAgICAgW2NsYXNzLmF4LXJvdW5kZWQtZnVsbF09XCJpc0hvcml6b250YWwoKSAmJiBvdGhlcnMoKS5sZW5ndGggPiAwXCJcbiAgICAgICAgICBbY2xhc3MuYXgtZmxleC1jb2xdPVwiIWlzSG9yaXpvbnRhbCgpXCJcbiAgICAgICAgICBbY2xhc3MuYXgtcm91bmRlZC14bF09XCIhaXNIb3Jpem9udGFsKCkgJiYgb3RoZXJzKCkubGVuZ3RoID4gMFwiXG4gICAgICAgICAgW2NsYXNzLmF4LWJvcmRlcl09XCJvdGhlcnMoKS5sZW5ndGggPiAwXCJcbiAgICAgICAgICBbY2xhc3MuYXgtYm9yZGVyLWdyYXktMTAwXT1cIm90aGVycygpLmxlbmd0aCA+IDBcIlxuICAgICAgICAgIFtjbGFzcy5heC1zaGFkb3ctbGddPVwib3RoZXJzKCkubGVuZ3RoID4gMFwiXG4gICAgICAgICAgW2NsYXNzLmF4LWJnLWxpZ2h0ZXJdPVwib3RoZXJzKCkubGVuZ3RoID4gMFwiXG4gICAgICAgICAgW2NsYXNzLmF4LXAtMl09XCJvdGhlcnMoKS5sZW5ndGggPiAwXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYXgtYXNwZWN0LXNxdWFyZSBheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1taW4tdy1bMTAwcHhdIGF4LW1pbi1oLVsxMDBweF1cIlxuICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJpc0hvcml6b250YWwoKSA/ICc2NSUnIDogJ2F1dG8nXCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJpc0hvcml6b250YWwoKSA/ICdhdXRvJyA6ICc2NSUnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXhtLWFuYWxvZy1jbG9ja1xuICAgICAgICAgICAgICBbdGltZXpvbmVdPVwidGltZXpvbmUoKT8uaWFuYVwiXG4gICAgICAgICAgICAgIFtjbGFzc2VzXT1cIm90aGVycygpLmxlbmd0aCA+IDAgPyAnYXgtYmctbGlnaHRlc3QnIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgID48L2F4bS1hbmFsb2ctY2xvY2s+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgQGlmICh0aW1lem9uZSgpPy5hYmJyKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXIgYXgtdGV4dC1jZW50ZXIgYXgtbWluLXctWzUwcHhdIGF4LWdhcC0yXCI+XG4gICAgICAgICAgICAgIEBpZiAodGltZXpvbmUoKT8uY29kZSkge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWZvbnQtbWVkaXVtIGF4LW9wYWNpdHktNzUgYXgtdXBwZXJjYXNlIGF4LWJsb2NrIGF4LTJsaW5lXCJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS5mb250U2l6ZS5weF09XCJjb2RlRm9udFNpemUoKVwiXG4gICAgICAgICAgICAgICAgICA+e3sgdGltZXpvbmUoKT8uY29kZSB9fTwvc3BhblxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZvbnQtYm9sZCBheC1tdC0wXCIgW3N0eWxlLmZvbnRTaXplLnB4XT1cImFiYnJGb250U2l6ZSgpXCI+e3sgdGltZXpvbmUoKT8uYWJiciB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBBZGRpdGlvbmFsIENsb2NrcyBTZWN0aW9uIC0tPlxuICAgICAgICBAaWYgKG90aGVycygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdy1mdWxsIGF4LW1heC13LTR4bCBheC1teC1hdXRvXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiYXgtZmxleCBheC1qdXN0aWZ5LWFyb3VuZCBheC1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICBbY2xhc3MuYXgtZmxleC13cmFwXT1cImhhc0Vub3VnaFNwYWNlRm9ySG9yaXpvbnRhbCgpXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmF4LWdhcC0zXT1cInRydWVcIlxuICAgICAgICAgICAgICBbY2xhc3MuYXgtb3ZlcmZsb3ctYXV0b109XCJ0cnVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQGZvciAoY2xvY2sgb2Ygb3RoZXJzKCk7IHRyYWNrIGNsb2NrLmNvZGUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXIgYXgtcC0yIGF4LWZsZXgtd3JhcCBheC1nYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBbYXhUb29sdGlwXT1cImNsb2NrLmNvZGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXhUb29sdGlwUGxhY2VtZW50XT1cIid0b3AnXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1hc3BlY3Qtc3F1YXJlIGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LXJvdW5kZWQtbGcgYXgtc2l6ZS0xNlwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxheG0tYW5hbG9nLWNsb2NrXG4gICAgICAgICAgICAgICAgICAgICAgW3RpbWV6b25lXT1cImNsb2NrLmlhbmFcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93TnVtYmVyc109XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiJ2F4LWJnLWxpZ2h0ZXN0J1wiXG4gICAgICAgICAgICAgICAgICAgID48L2F4bS1hbmFsb2ctY2xvY2s+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIEBpZiAoY2xvY2suYWJicikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LXRleHQtY2VudGVyXT1cImhhc0Vub3VnaFNwYWNlRm9ySG9yaXpvbnRhbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtcHQtMV09XCJoYXNFbm91Z2hTcGFjZUZvckhvcml6b250YWwoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LXBsLTFdPVwiIWhhc0Vub3VnaFNwYWNlRm9ySG9yaXpvbnRhbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC14cyBheC1mb250LW1lZGl1bSBheC10cnVuY2F0ZSBheC1ibG9ja1wiPnt7IGNsb2NrLmFiYnIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChjbG9jay5jb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LXRleHQteHMgYXgtZm9udC1saWdodCBheC1vcGFjaXR5LTc1IGF4LXRydW5jYXRlIGF4LWJsb2NrXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvY2suY29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IGBcbiAgICA6aG9zdCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIC8qIEVuc3VyZSB0ZXh0IGRvZXNuJ3Qgb3ZlcmZsb3cgb24gdmVyeSBzbWFsbCBzY3JlZW5zICovXG4gICAgLmF4LXRydW5jYXRlIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgLyogVHdvLWxpbmUgY2xhbXAgdXRpbGl0eSBmb3Igd3JhcHBpbmcgbG9uZyB0aW1lem9uZSBjb2RlcyAqL1xuICAgIC5heC0ybGluZSB7XG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMS4xZW0gKiAyKTtcbiAgICB9XG5cbiAgICAvKiBFbnN1cmUgdGV4dCBkb2Vzbid0IG92ZXJmbG93IG9uIHZlcnkgc21hbGwgc2NyZWVucyAqL1xuICAgIC5heC10cnVuY2F0ZSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBWE1BbmFsb2dDbG9ja0NvbXBvbmVudCwgQVhUb29sdGlwTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNQ2xvY2tXaWRnZXRWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVnaW9uYWxTZXJ2aWNlID0gaW5qZWN0KEFYTUxvY2FsZU1hbmFnZW1lbnRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHVzZXJUaW1lem9uZSA9IHNpZ25hbDxBWFBUaW1lWm9uZSB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIGNvbnRhaW5lcldpZHRoID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByaXZhdGUgY29udGFpbmVySGVpZ2h0ID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmxvYWRVc2VyVGltZXpvbmUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldHVwUmVzaXplT2JzZXJ2ZXIoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBSZXNpemVPYnNlcnZlcigpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIFJlc2l6ZU9ic2VydmVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgICBpZiAoZW50cnkudGFyZ2V0ID09PSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBlbnRyeS5jb250ZW50UmVjdDtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyV2lkdGguc2V0KHdpZHRoKTtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVySGVpZ2h0LnNldChoZWlnaHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFVzZXJUaW1lem9uZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdGltZXpvbmVDb2RlID0gYXdhaXQgdGhpcy5yZWdpb25hbFNlcnZpY2UuZ2V0QnJvd3NlclRpbWVab25lQ29kZSgpO1xuICAgICAgY29uc3QgdGltZXpvbmVzID0gYXdhaXQgdGhpcy5yZWdpb25hbFNlcnZpY2UuZ2V0VGltZVpvbmVzKCk7XG4gICAgICBjb25zdCB0aW1lem9uZSA9IHRpbWV6b25lcy5maW5kKCh0eikgPT4gdHouY29kZSA9PT0gdGltZXpvbmVDb2RlKTtcbiAgICAgIGlmICh0aW1lem9uZSkge1xuICAgICAgICB0aGlzLnVzZXJUaW1lem9uZS5zZXQodGltZXpvbmUpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gbG9hZCB1c2VyIHRpbWV6b25lJywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHRpbWV6b25lID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ3VyZWRUaW1lem9uZSA9IHRoaXMub3B0aW9ucygpPy5bJ3RpbWV6b25lJ10gYXMgQVhQVGltZVpvbmUgfCB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGNvbmZpZ3VyZWRUaW1lem9uZSB8fCB0aGlzLnVzZXJUaW1lem9uZSgpO1xuICB9KTtcblxuICBvdGhlcnMgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5vcHRpb25zKCk/Llsnb3RoZXJzJ10gPz8gW10pIGFzIEFYUFRpbWVab25lW10pO1xuXG4gIGlzSG9yaXpvbnRhbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuY29udGFpbmVyV2lkdGgoKTtcbiAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmNvbnRhaW5lckhlaWdodCgpO1xuICAgIC8vIElmIHdpZHRoIGlzIGdyZWF0ZXIgdGhhbiBoZWlnaHQgb3IgdGhleSBhcmUgZXF1YWwsIHVzZSBob3Jpem9udGFsIGxheW91dFxuICAgIHJldHVybiB3aWR0aCA+PSBoZWlnaHQgLSAodGhpcy5vdGhlcnMoKS5sZW5ndGggPiAwID8gNzUgOiAwKTtcbiAgfSk7XG5cbiAgaGFzRW5vdWdoU3BhY2VGb3JIb3Jpem9udGFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5jb250YWluZXJXaWR0aCgpO1xuICAgIGNvbnN0IGNsb2NrQ291bnQgPSB0aGlzLm90aGVycygpLmxlbmd0aDtcblxuICAgIC8vIEVzdGltYXRlIG1pbmltdW0gd2lkdGggbmVlZGVkIGZvciBob3Jpem9udGFsIGxheW91dFxuICAgIC8vIEVhY2ggY2xvY2sgbmVlZHMgYWJvdXQgMTAwcHggKDYwcHggY2xvY2sgKyBwYWRkaW5nICsgdGV4dClcbiAgICBjb25zdCBtaW5XaWR0aE5lZWRlZCA9IGNsb2NrQ291bnQgKiAxMDA7XG5cbiAgICByZXR1cm4gd2lkdGggPj0gbWluV2lkdGhOZWVkZWQgJiYgY2xvY2tDb3VudCA8PSA0O1xuICB9KTtcblxuICAvLyBEeW5hbWljYWxseSBjb21wdXRlIGZvbnQgc2l6ZXMgZm9yIHRpbWV6b25lIGNvZGUgYW5kIGFiYnJldmlhdGlvblxuICBjb2RlRm9udFNpemUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLmNvbnRhaW5lcldpZHRoKCk7XG4gICAgY29uc3QgY29kZUxlbmd0aCA9IHRoaXMudGltZXpvbmUoKT8uY29kZT8ubGVuZ3RoID8/IDA7XG5cbiAgICAvLyBCYXNlIHNjYWxlcyB3aXRoIGNvbnRhaW5lciB3aWR0aCAoMTAwcHggLT4gfjEwcHgsIDQwMHB4IC0+IH4yMnB4KVxuICAgIGNvbnN0IGJhc2UgPSAod2lkdGggLyA0MDApICogMTQgKyA4O1xuXG4gICAgLy8gUGVuYWxpemUgbG9uZyBjb2RlcyBtb3JlIGFnZ3Jlc3NpdmVseSB0byBhbGxvdyB0d28tbGluZSBmaXRcbiAgICBjb25zdCBwZW5hbHR5ID0gY29kZUxlbmd0aCA+IDE0ID8gKGNvZGVMZW5ndGggLSAxNCkgKiAwLjggOiAwO1xuICAgIGNvbnN0IHNpemUgPSBNYXRoLm1heCg5LCBNYXRoLm1pbigyMiwgYmFzZSAtIHBlbmFsdHkpKTtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChzaXplKTtcbiAgfSk7XG5cbiAgYWJickZvbnRTaXplID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy5jb250YWluZXJXaWR0aCgpO1xuICAgIGNvbnN0IGFiYnJMZW5ndGggPSB0aGlzLnRpbWV6b25lKCk/LmFiYnI/Lmxlbmd0aCA/PyAwO1xuXG4gICAgLy8gQmFzZSBzY2FsZXMgd2l0aCBjb250YWluZXIgd2lkdGggKDEwMHB4IC0+IH4xNnB4LCA0MDBweCAtPiB+MzBweClcbiAgICBjb25zdCBiYXNlID0gKHdpZHRoIC8gNDAwKSAqIDE4ICsgMTI7XG5cbiAgICAvLyBQZW5hbGl6ZSB1bnVzdWFsbHkgbG9uZyBhYmJyZXZpYXRpb25zXG4gICAgY29uc3QgcGVuYWx0eSA9IGFiYnJMZW5ndGggPiA0ID8gKGFiYnJMZW5ndGggLSA0KSAqIDEgOiAwO1xuICAgIGNvbnN0IHNpemUgPSBNYXRoLm1heCgxNCwgTWF0aC5taW4oMjgsIGJhc2UgLSBwZW5hbHR5KSk7XG4gICAgcmV0dXJuIE1hdGgucm91bmQoc2l6ZSk7XG4gIH0pO1xufVxuIl19","import { AXPWidgetGroupEnum, AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { AXP_DATA_PROPERTY_GROUP } from '@acorex/platform/layout/widgets';\nexport const AXPAnalogClockWidget = {\n name: 'analog-clock',\n title: 'Analog Clock',\n description: '',\n type: 'view',\n categories: [],\n groups: [AXPWidgetGroupEnum.DashboardWidget],\n icon: 'fa-light fa-clock',\n properties: [\n {\n name: 'timezone',\n title: '@dashboard:widgets.analog-clock.timezone',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n dataType: 'object',\n interface: {\n name: 'timezone',\n path: 'options.timezone',\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: 'timezones',\n textField: 'title',\n valueField: 'code',\n },\n },\n },\n visible: true,\n order: 1,\n },\n {\n name: 'others',\n title: '@dashboard:widgets.analog-clock.other-timezones',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n dataType: 'object',\n interface: {\n name: 'others',\n path: 'options.others',\n type: AXPWidgetsCatalog.select,\n options: {\n multiple: true,\n dataSource: 'timezones',\n textField: 'title',\n valueField: 'code',\n },\n },\n },\n visible: true,\n order: 2,\n },\n ],\n components: {\n view: {\n component: () => import('./analog-clock-widget-view.component').then((c) => c.AXMClockWidgetViewComponent),\n },\n },\n meta: {\n dimensions: {\n width: 3,\n height: 3,\n minWidth: 3,\n minHeight: 2,\n maxWidth: 3,\n maxHeight: 7,\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbG9nLWNsb2NrLXdpZGdldC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zaGFyZWQvd2lkZ2V0cy9hbmFsb2ctY2xvY2svYW5hbG9nLWNsb2NrLXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFvQjtJQUNuRCxJQUFJLEVBQUUsY0FBYztJQUNwQixLQUFLLEVBQUUsY0FBYztJQUNyQixXQUFXLEVBQUUsRUFBRTtJQUNmLElBQUksRUFBRSxNQUFNO0lBQ1osVUFBVSxFQUFFLEVBQUU7SUFDZCxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7SUFDNUMsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixVQUFVLEVBQUU7UUFDVjtZQUNFLElBQUksRUFBRSxVQUFVO1lBQ2hCLEtBQUssRUFBRSwwQ0FBMEM7WUFDakQsS0FBSyxFQUFFLHVCQUF1QjtZQUM5QixNQUFNLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsVUFBVTtvQkFDaEIsSUFBSSxFQUFFLGtCQUFrQjtvQkFDeEIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLE1BQU07b0JBQzlCLE9BQU8sRUFBRTt3QkFDUCxVQUFVLEVBQUUsV0FBVzt3QkFDdkIsU0FBUyxFQUFFLE9BQU87d0JBQ2xCLFVBQVUsRUFBRSxNQUFNO3FCQUNuQjtpQkFDRjthQUNGO1lBQ0QsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUUsQ0FBQztTQUNUO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsUUFBUTtZQUNkLEtBQUssRUFBRSxpREFBaUQ7WUFDeEQsS0FBSyxFQUFFLHVCQUF1QjtZQUM5QixNQUFNLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsUUFBUTtvQkFDZCxJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixJQUFJLEVBQUUsaUJBQWlCLENBQUMsTUFBTTtvQkFDOUIsT0FBTyxFQUFFO3dCQUNQLFFBQVEsRUFBRSxJQUFJO3dCQUNkLFVBQVUsRUFBRSxXQUFXO3dCQUN2QixTQUFTLEVBQUUsT0FBTzt3QkFDbEIsVUFBVSxFQUFFLE1BQU07cUJBQ25CO2lCQUNGO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsSUFBSTtZQUNiLEtBQUssRUFBRSxDQUFDO1NBQ1Q7S0FDRjtJQUNELFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsc0NBQXNDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQztTQUMzRztLQUNGO0lBQ0QsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFO1lBQ1YsS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLEVBQUUsQ0FBQztZQUVULFFBQVEsRUFBRSxDQUFDO1lBQ1gsU0FBUyxFQUFFLENBQUM7WUFFWixRQUFRLEVBQUUsQ0FBQztZQUNYLFNBQVMsRUFBRSxDQUFDO1NBQ2I7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBXaWRnZXRDb25maWcsIEFYUFdpZGdldEdyb3VwRW51bSwgQVhQV2lkZ2V0c0NhdGFsb2cgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQgeyBBWFBfREFUQV9QUk9QRVJUWV9HUk9VUCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldHMnO1xuXG5leHBvcnQgY29uc3QgQVhQQW5hbG9nQ2xvY2tXaWRnZXQ6IEFYUFdpZGdldENvbmZpZyA9IHtcbiAgbmFtZTogJ2FuYWxvZy1jbG9jaycsXG4gIHRpdGxlOiAnQW5hbG9nIENsb2NrJyxcbiAgZGVzY3JpcHRpb246ICcnLFxuICB0eXBlOiAndmlldycsXG4gIGNhdGVnb3JpZXM6IFtdLFxuICBncm91cHM6IFtBWFBXaWRnZXRHcm91cEVudW0uRGFzaGJvYXJkV2lkZ2V0XSxcbiAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWNsb2NrJyxcbiAgcHJvcGVydGllczogW1xuICAgIHtcbiAgICAgIG5hbWU6ICd0aW1lem9uZScsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5hbmFsb2ctY2xvY2sudGltZXpvbmUnLFxuICAgICAgZ3JvdXA6IEFYUF9EQVRBX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRhdGFUeXBlOiAnb2JqZWN0JyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3RpbWV6b25lJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy50aW1lem9uZScsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuc2VsZWN0LFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6ICd0aW1lem9uZXMnLFxuICAgICAgICAgICAgdGV4dEZpZWxkOiAndGl0bGUnLFxuICAgICAgICAgICAgdmFsdWVGaWVsZDogJ2NvZGUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgIG9yZGVyOiAxLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ290aGVycycsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5hbmFsb2ctY2xvY2sub3RoZXItdGltZXpvbmVzJyxcbiAgICAgIGdyb3VwOiBBWFBfREFUQV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkYXRhVHlwZTogJ29iamVjdCcsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdvdGhlcnMnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLm90aGVycycsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuc2VsZWN0LFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIG11bHRpcGxlOiB0cnVlLFxuICAgICAgICAgICAgZGF0YVNvdXJjZTogJ3RpbWV6b25lcycsXG4gICAgICAgICAgICB0ZXh0RmllbGQ6ICd0aXRsZScsXG4gICAgICAgICAgICB2YWx1ZUZpZWxkOiAnY29kZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgb3JkZXI6IDIsXG4gICAgfSxcbiAgXSxcbiAgY29tcG9uZW50czoge1xuICAgIHZpZXc6IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL2FuYWxvZy1jbG9jay13aWRnZXQtdmlldy5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYTUNsb2NrV2lkZ2V0Vmlld0NvbXBvbmVudCksXG4gICAgfSxcbiAgfSxcbiAgbWV0YToge1xuICAgIGRpbWVuc2lvbnM6IHtcbiAgICAgIHdpZHRoOiAzLFxuICAgICAgaGVpZ2h0OiAzLFxuXG4gICAgICBtaW5XaWR0aDogMyxcbiAgICAgIG1pbkhlaWdodDogMixcblxuICAgICAgbWF4V2lkdGg6IDMsXG4gICAgICBtYXhIZWlnaHQ6IDcsXG4gICAgfSxcbiAgfSxcbn07XG5kZWNsYXJlIG1vZHVsZSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnIHtcbiAgaW50ZXJmYWNlIEFYUFdpZGdldFR5cGVzTWFwIHtcbiAgICBhbmFsb2dDbG9jazogJ2FuYWxvZy1jbG9jayc7XG4gIH1cbn1cbiJdfQ==","import { AXBarChartComponent } from '@acorex/charts/bar-chart';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Bar Chart Widget Component\n * Renders data as vertical bars with interactive hover effects and animations\n */\nexport class AXPBarChartWidgetViewComponent extends AXPValueWidgetComponent {\n constructor() {\n super();\n this.barChartData = computed(() => this.getValue(), ...(ngDevMode ? [{ debugName: \"barChartData\" }] : []));\n this.barChartOptions = computed(() => this.options(), ...(ngDevMode ? [{ debugName: \"barChartOptions\" }] : []));\n this.setOptions({\n ...this.options(),\n showXAxis: true,\n showYAxis: true,\n barWidth: 80,\n cornerRadius: 4,\n showGrid: true,\n showDataLabels: false,\n showTooltip: true,\n animationEasing: 'cubic-out',\n animationDuration: 800,\n });\n }\n handleBarClick(event) {\n //console.log(event);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPBarChartWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.12\", type: AXPBarChartWidgetViewComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: \"<ax-bar-chart [data]=\\\"barChartData()\\\" [options]=\\\"barChartOptions()\\\" (barClick)=\\\"handleBarClick($event)\\\"></ax-bar-chart>\\n\", styles: [\":host{display:block;width:100%;height:100%}\\n\"], dependencies: [{ kind: \"component\", type: AXBarChartComponent, selector: \"ax-bar-chart\", inputs: [\"data\", \"options\"], outputs: [\"barClick\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPBarChartWidgetViewComponent, decorators: [{\n type: Component,\n args: [{ imports: [AXBarChartComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ax-bar-chart [data]=\\\"barChartData()\\\" [options]=\\\"barChartOptions()\\\" (barClick)=\\\"handleBarClick($event)\\\"></ax-bar-chart>\\n\", styles: [\":host{display:block;width:100%;height:100%}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLWNoYXJ0LXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zaGFyZWQvd2lkZ2V0cy9iYXItY2hhcnQvYmFyLWNoYXJ0LXdpZGdldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zaGFyZWQvd2lkZ2V0cy9iYXItY2hhcnQvYmFyLWNoYXJ0LXdpZGdldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQW9DLE1BQU0sMEJBQTBCLENBQUM7QUFDakcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBRXJGOzs7R0FHRztBQU9ILE1BQU0sT0FBTyw4QkFBK0IsU0FBUSx1QkFBdUI7SUFNekU7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQU5WLGlCQUFZLEdBQTZCLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLHdEQUFDLENBQUM7UUFDekUsb0JBQWUsR0FBaUQsUUFBUSxDQUN0RSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUEwQywyREFDN0QsQ0FBQztRQUlBLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDZCxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsU0FBUyxFQUFFLElBQUk7WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLFFBQVEsRUFBRSxFQUFFO1lBQ1osWUFBWSxFQUFFLENBQUM7WUFDZixRQUFRLEVBQUUsSUFBSTtZQUNkLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGVBQWUsRUFBRSxXQUFXO1lBQzVCLGlCQUFpQixFQUFFLEdBQUc7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3ZCLHFCQUFxQjtJQUN2QixDQUFDOytHQXhCVSw4QkFBOEI7bUdBQTlCLDhCQUE4QiwrRkNkM0MsaUlBQ0EsdUdEVVksbUJBQW1COzs0RkFHbEIsOEJBQThCO2tCQU4xQyxTQUFTOzhCQUdDLENBQUMsbUJBQW1CLENBQUMsbUJBQ2IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFyQ2hhcnRDb21wb25lbnQsIEFYQmFyQ2hhcnREYXRhLCBBWEJhckNoYXJ0T3B0aW9uIH0gZnJvbSAnQGFjb3JleC9jaGFydHMvYmFyLWNoYXJ0JztcbmltcG9ydCB7IEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEJhciBDaGFydCBXaWRnZXQgQ29tcG9uZW50XG4gKiBSZW5kZXJzIGRhdGEgYXMgdmVydGljYWwgYmFycyB3aXRoIGludGVyYWN0aXZlIGhvdmVyIGVmZmVjdHMgYW5kIGFuaW1hdGlvbnNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9iYXItY2hhcnQtd2lkZ2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmFyLWNoYXJ0LXdpZGdldC5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbQVhCYXJDaGFydENvbXBvbmVudF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBCYXJDaGFydFdpZGdldFZpZXdDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB7XG4gIGJhckNoYXJ0RGF0YTogU2lnbmFsPEFYQmFyQ2hhcnREYXRhW10+ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5nZXRWYWx1ZSgpKTtcbiAgYmFyQ2hhcnRPcHRpb25zOiBTaWduYWw8QVhCYXJDaGFydE9wdGlvbiAmIHsgdGl0bGU6IHN0cmluZyB9PiA9IGNvbXB1dGVkKFxuICAgICgpID0+IHRoaXMub3B0aW9ucygpIGFzIEFYQmFyQ2hhcnRPcHRpb24gJiB7IHRpdGxlOiBzdHJpbmcgfSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc2V0T3B0aW9ucyh7XG4gICAgICAuLi50aGlzLm9wdGlvbnMoKSxcbiAgICAgIHNob3dYQXhpczogdHJ1ZSxcbiAgICAgIHNob3dZQXhpczogdHJ1ZSxcbiAgICAgIGJhcldpZHRoOiA4MCxcbiAgICAgIGNvcm5lclJhZGl1czogNCxcbiAgICAgIHNob3dHcmlkOiB0cnVlLFxuICAgICAgc2hvd0RhdGFMYWJlbHM6IGZhbHNlLFxuICAgICAgc2hvd1Rvb2x0aXA6IHRydWUsXG4gICAgICBhbmltYXRpb25FYXNpbmc6ICdjdWJpYy1vdXQnLFxuICAgICAgYW5pbWF0aW9uRHVyYXRpb246IDgwMCxcbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZUJhckNsaWNrKGV2ZW50OiBhbnkpIHtcbiAgICAvL2NvbnNvbGUubG9nKGV2ZW50KTtcbiAgfVxufVxuIiwiPGF4LWJhci1jaGFydCBbZGF0YV09XCJiYXJDaGFydERhdGEoKVwiIFtvcHRpb25zXT1cImJhckNoYXJ0T3B0aW9ucygpXCIgKGJhckNsaWNrKT1cImhhbmRsZUJhckNsaWNrKCRldmVudClcIj48L2F4LWJhci1jaGFydD5cbiJdfQ==","export const AXP_WIDGETS_CHART_CATEGORY = {\n name: 'chart',\n order: 6,\n title: 'Charts',\n};\nexport const AXP_WIDGETS_UTILITY_CATEGORY = {\n name: 'utility',\n order: 7,\n title: 'Utilities',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NoYXJlZC93aWRnZXRzL2NoYXJ0LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQXNCO0lBQzNELElBQUksRUFBRSxPQUFPO0lBQ2IsS0FBSyxFQUFFLENBQUM7SUFDUixLQUFLLEVBQUUsUUFBUTtDQUNoQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQXNCO0lBQzdELElBQUksRUFBRSxTQUFTO0lBQ2YsS0FBSyxFQUFFLENBQUM7SUFDUixLQUFLLEVBQUUsV0FBVztDQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQV2lkZ2V0Q2F0ZWdvcnkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5cbmV4cG9ydCBjb25zdCBBWFBfV0lER0VUU19DSEFSVF9DQVRFR09SWTogQVhQV2lkZ2V0Q2F0ZWdvcnkgPSB7XG4gIG5hbWU6ICdjaGFydCcsXG4gIG9yZGVyOiA2LFxuICB0aXRsZTogJ0NoYXJ0cycsXG59O1xuXG5leHBvcnQgY29uc3QgQVhQX1dJREdFVFNfVVRJTElUWV9DQVRFR09SWTogQVhQV2lkZ2V0Q2F0ZWdvcnkgPSB7XG4gIG5hbWU6ICd1dGlsaXR5JyxcbiAgb3JkZXI6IDcsXG4gIHRpdGxlOiAnVXRpbGl0aWVzJyxcbn07XG5cblxuIl19","import { AXPWidgetGroupEnum, AXPWidgetsCatalog, cloneProperty } from '@acorex/platform/layout/widget-core';\nimport { AXP_APPEARANCE_PROPERTY_GROUP, AXP_DATA_PATH_PROPERTY, AXP_NAME_PROPERTY, } from '@acorex/platform/layout/widgets';\nimport { AXP_WIDGETS_CHART_CATEGORY } from '../chart.type';\nexport const AXPBarChartWidget = {\n name: 'bar-chart',\n title: 'Bar Chart Widget',\n categories: [AXP_WIDGETS_CHART_CATEGORY],\n groups: [AXPWidgetGroupEnum.DashboardWidget],\n type: 'dashboard',\n icon: 'fa-light fa-chart-bar',\n properties: [\n cloneProperty(AXP_NAME_PROPERTY, { visible: false }),\n cloneProperty(AXP_DATA_PATH_PROPERTY, { visible: false }),\n // ====== Chart Title ======\n {\n name: 'title',\n title: '@dashboard:widgets.bar-chart.chart-title',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: '',\n dataType: 'string',\n interface: {\n name: 'title',\n path: 'options.title',\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: 'Enter chart title',\n },\n },\n },\n visible: true,\n },\n // ====== X Axis Settings ======\n {\n name: 'xAxisLabel',\n title: '@dashboard:widgets.bar-chart.x-axis-label',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: '',\n dataType: 'string',\n interface: {\n name: 'xAxisLabel',\n path: 'options.xAxisLabel',\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: true,\n },\n // ====== Y Axis Settings ======\n {\n name: 'yAxisLabel',\n title: '@dashboard:widgets.bar-chart.y-axis-label',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: '',\n dataType: 'string',\n interface: {\n name: 'yAxisLabel',\n path: 'options.yAxisLabel',\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: true,\n },\n /* Commented out properties\n // ====== Layout & Dimensions ======\n {\n name: 'width',\n title: '@dashboard:widgets.bar-chart.width',\n group: AXP_STYLING_PROPERTY_GROUP,\n schema: {\n defaultValue: null,\n dataType: 'number',\n interface: {\n name: 'width',\n path: 'options.width',\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 0,\n maxValue: 1200,\n },\n },\n },\n visible: true,\n },\n {\n name: 'height',\n title: '@dashboard:widgets.bar-chart.height',\n group: AXP_STYLING_PROPERTY_GROUP,\n schema: {\n defaultValue: 300,\n dataType: 'number',\n interface: {\n name: 'height',\n path: 'options.height',\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 0,\n maxValue: 800,\n },\n },\n },\n visible: true,\n },\n // ====== X Axis Settings ======\n {\n name: 'showXAxis',\n title: '@dashboard:widgets.bar-chart.show-x-axis',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showXAxis',\n path: 'options.showXAxis',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n // ====== Y Axis Settings ======\n {\n name: 'showYAxis',\n title: '@dashboard:widgets.bar-chart.show-y-axis',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showYAxis',\n path: 'options.showYAxis',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n // ====== Bar Appearance ======\n {\n name: 'barWidth',\n title: '@dashboard:widgets.bar-chart.bar-width',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 80,\n dataType: 'number',\n interface: {\n name: 'barWidth',\n path: 'options.barWidth',\n type: AXPWidgetsCatalog.number,\n options: {\n placeholder: '1-100',\n minValue: 1,\n maxValue: 100,\n },\n },\n },\n visible: true,\n },\n {\n name: 'cornerRadius',\n title: '@dashboard:widgets.bar-chart.corner-radius',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 4,\n dataType: 'number',\n interface: {\n name: 'cornerRadius',\n path: 'options.cornerRadius',\n type: AXPWidgetsCatalog.number,\n options: {\n placeholder: '0-20',\n minValue: 0,\n maxValue: 20,\n },\n },\n },\n visible: true,\n },\n // ====== Grid Settings ======\n {\n name: 'showGrid',\n title: '@dashboard:widgets.bar-chart.show-grid',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showGrid',\n path: 'options.showGrid',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'showDataLabels',\n title: '@dashboard:widgets.bar-chart.show-data-labels',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showDataLabels',\n path: 'options.showDataLabels',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n // ====== Tooltip Settings ======\n {\n name: 'showTooltip',\n title: '@dashboard:widgets.bar-chart.show-tooltip',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showTooltip',\n path: 'options.showTooltip',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n // ====== Animation Settings ======\n {\n name: 'animationEasing',\n title: '@dashboard:widgets.bar-chart.animation-easing',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 'cubic-out',\n dataType: 'string',\n interface: {\n name: 'animationEasing',\n path: 'options.animationEasing',\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: [\n { value: 'linear', text: 'Linear' },\n { value: 'ease', text: 'Ease' },\n { value: 'ease-in', text: 'Ease In' },\n { value: 'ease-out', text: 'Ease Out' },\n { value: 'ease-in-out', text: 'Ease In Out' },\n { value: 'cubic', text: 'Cubic' },\n { value: 'cubic-in', text: 'Cubic In' },\n { value: 'cubic-out', text: 'Cubic Out' },\n { value: 'cubic-in-out', text: 'Cubic In Out' },\n ],\n textField: 'text',\n valueField: 'value',\n },\n },\n },\n visible: true,\n },\n {\n name: 'animationDuration',\n title: '@dashboard:widgets.bar-chart.animation-duration',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 800,\n dataType: 'number',\n interface: {\n name: 'animationDuration',\n path: 'options.animationDuration',\n type: AXPWidgetsCatalog.number,\n options: {\n placeholder: '0-2000',\n minValue: 0,\n maxValue: 2000,\n },\n },\n },\n visible: true,\n },\n */\n ],\n components: {\n view: {\n component: () => import('./bar-chart-widget.component').then((c) => c.AXPBarChartWidgetViewComponent),\n },\n },\n meta: {\n dimensions: {\n width: 5,\n height: 6,\n minWidth: 2,\n minHeight: 2,\n maxWidth: 6,\n maxHeight: 7,\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLWNoYXJ0LXdpZGdldC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zaGFyZWQvd2lkZ2V0cy9iYXItY2hhcnQvYmFyLWNoYXJ0LXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1SCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLHNCQUFzQixFQUN0QixpQkFBaUIsR0FFbEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQW9CO0lBQ2hELElBQUksRUFBRSxXQUFXO0lBQ2pCLEtBQUssRUFBRSxrQkFBa0I7SUFDekIsVUFBVSxFQUFFLENBQUMsMEJBQTBCLENBQUM7SUFDeEMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDO0lBQzVDLElBQUksRUFBRSxXQUFXO0lBQ2pCLElBQUksRUFBRSx1QkFBdUI7SUFDN0IsVUFBVSxFQUFFO1FBQ1YsYUFBYSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3BELGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN6RCw0QkFBNEI7UUFDNUI7WUFDRSxJQUFJLEVBQUUsT0FBTztZQUNiLEtBQUssRUFBRSwwQ0FBMEM7WUFDakQsS0FBSyxFQUFFLDZCQUE2QjtZQUNwQyxNQUFNLEVBQUU7Z0JBQ04sWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLE9BQU87b0JBQ2IsSUFBSSxFQUFFLGVBQWU7b0JBQ3JCLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUM1QixPQUFPLEVBQUU7d0JBQ1AsV0FBVyxFQUFFLG1CQUFtQjtxQkFDakM7aUJBQ0Y7YUFDRjtZQUNELE9BQU8sRUFBRSxJQUFJO1NBQ2Q7UUFDRCxnQ0FBZ0M7UUFDaEM7WUFDRSxJQUFJLEVBQUUsWUFBWTtZQUNsQixLQUFLLEVBQUUsMkNBQTJDO1lBQ2xELEtBQUssRUFBRSw2QkFBNkI7WUFDcEMsTUFBTSxFQUFFO2dCQUNOLFlBQVksRUFBRSxFQUFFO2dCQUNoQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxZQUFZO29CQUNsQixJQUFJLEVBQUUsb0JBQW9CO29CQUMxQixJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDN0I7YUFDRjtZQUNELE9BQU8sRUFBRSxJQUFJO1NBQ2Q7UUFDRCxnQ0FBZ0M7UUFDaEM7WUFDRSxJQUFJLEVBQUUsWUFBWTtZQUNsQixLQUFLLEVBQUUsMkNBQTJDO1lBQ2xELEtBQUssRUFBRSw2QkFBNkI7WUFDcEMsTUFBTSxFQUFFO2dCQUNOLFlBQVksRUFBRSxFQUFFO2dCQUNoQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxZQUFZO29CQUNsQixJQUFJLEVBQUUsb0JBQW9CO29CQUMxQixJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDN0I7YUFDRjtZQUNELE9BQU8sRUFBRSxJQUFJO1NBQ2Q7UUFDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztVQW1ORTtLQUNIO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUFDO1NBQ3RHO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUU7WUFDVixLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sRUFBRSxDQUFDO1lBRVQsUUFBUSxFQUFFLENBQUM7WUFDWCxTQUFTLEVBQUUsQ0FBQztZQUVaLFFBQVEsRUFBRSxDQUFDO1lBQ1gsU0FBUyxFQUFFLENBQUM7U0FDYjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFdpZGdldENvbmZpZywgQVhQV2lkZ2V0R3JvdXBFbnVtLCBBWFBXaWRnZXRzQ2F0YWxvZywgY2xvbmVQcm9wZXJ0eSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7XG4gIEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICBBWFBfREFUQV9QQVRIX1BST1BFUlRZLFxuICBBWFBfTkFNRV9QUk9QRVJUWSxcbiAgQVhQX1NUWUxJTkdfUFJPUEVSVFlfR1JPVVAsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldHMnO1xuaW1wb3J0IHsgQVhQX1dJREdFVFNfQ0hBUlRfQ0FURUdPUlkgfSBmcm9tICcuLi9jaGFydC50eXBlJztcblxuZXhwb3J0IGNvbnN0IEFYUEJhckNoYXJ0V2lkZ2V0OiBBWFBXaWRnZXRDb25maWcgPSB7XG4gIG5hbWU6ICdiYXItY2hhcnQnLFxuICB0aXRsZTogJ0JhciBDaGFydCBXaWRnZXQnLFxuICBjYXRlZ29yaWVzOiBbQVhQX1dJREdFVFNfQ0hBUlRfQ0FURUdPUlldLFxuICBncm91cHM6IFtBWFBXaWRnZXRHcm91cEVudW0uRGFzaGJvYXJkV2lkZ2V0XSxcbiAgdHlwZTogJ2Rhc2hib2FyZCcsXG4gIGljb246ICdmYS1saWdodCBmYS1jaGFydC1iYXInLFxuICBwcm9wZXJ0aWVzOiBbXG4gICAgY2xvbmVQcm9wZXJ0eShBWFBfTkFNRV9QUk9QRVJUWSwgeyB2aXNpYmxlOiBmYWxzZSB9KSxcbiAgICBjbG9uZVByb3BlcnR5KEFYUF9EQVRBX1BBVEhfUFJPUEVSVFksIHsgdmlzaWJsZTogZmFsc2UgfSksXG4gICAgLy8gPT09PT09IENoYXJ0IFRpdGxlID09PT09PVxuICAgIHtcbiAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5iYXItY2hhcnQuY2hhcnQtdGl0bGUnLFxuICAgICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJycsXG4gICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3RpdGxlJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy50aXRsZScsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJ0VudGVyIGNoYXJ0IHRpdGxlJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICAvLyA9PT09PT0gWCBBeGlzIFNldHRpbmdzID09PT09PVxuICAgIHtcbiAgICAgIG5hbWU6ICd4QXhpc0xhYmVsJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmJhci1jaGFydC54LWF4aXMtbGFiZWwnLFxuICAgICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJycsXG4gICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3hBeGlzTGFiZWwnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLnhBeGlzTGFiZWwnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIC8vID09PT09PSBZIEF4aXMgU2V0dGluZ3MgPT09PT09XG4gICAge1xuICAgICAgbmFtZTogJ3lBeGlzTGFiZWwnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMuYmFyLWNoYXJ0LnktYXhpcy1sYWJlbCcsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAnJyxcbiAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAneUF4aXNMYWJlbCcsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMueUF4aXNMYWJlbCcsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAgLyogQ29tbWVudGVkIG91dCBwcm9wZXJ0aWVzXG4gICAgLy8gPT09PT09IExheW91dCAmIERpbWVuc2lvbnMgPT09PT09XG4gICAge1xuICAgICAgbmFtZTogJ3dpZHRoJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmJhci1jaGFydC53aWR0aCcsXG4gICAgICBncm91cDogQVhQX1NUWUxJTkdfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBudWxsLFxuICAgICAgICBkYXRhVHlwZTogJ251bWJlcicsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICd3aWR0aCcsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMud2lkdGgnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLm51bWJlcixcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBtaW5WYWx1ZTogMCxcbiAgICAgICAgICAgIG1heFZhbHVlOiAxMjAwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdoZWlnaHQnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMuYmFyLWNoYXJ0LmhlaWdodCcsXG4gICAgICBncm91cDogQVhQX1NUWUxJTkdfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAzMDAsXG4gICAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ2hlaWdodCcsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMuaGVpZ2h0JyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5udW1iZXIsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgbWluVmFsdWU6IDAsXG4gICAgICAgICAgICBtYXhWYWx1ZTogODAwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIC8vID09PT09PSBYIEF4aXMgU2V0dGluZ3MgPT09PT09XG4gICAge1xuICAgICAgbmFtZTogJ3Nob3dYQXhpcycsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5iYXItY2hhcnQuc2hvdy14LWF4aXMnLFxuICAgICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3Nob3dYQXhpcycsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMuc2hvd1hBeGlzJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIC8vID09PT09PSBZIEF4aXMgU2V0dGluZ3MgPT09PT09XG4gICAge1xuICAgICAgbmFtZTogJ3Nob3dZQXhpcycsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5iYXItY2hhcnQuc2hvdy15LWF4aXMnLFxuICAgICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3Nob3dZQXhpcycsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMuc2hvd1lBeGlzJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIC8vID09PT09PSBCYXIgQXBwZWFyYW5jZSA9PT09PT1cbiAgICB7XG4gICAgICBuYW1lOiAnYmFyV2lkdGgnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMuYmFyLWNoYXJ0LmJhci13aWR0aCcsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiA4MCxcbiAgICAgICAgZGF0YVR5cGU6ICdudW1iZXInLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnYmFyV2lkdGgnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLmJhcldpZHRoJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5udW1iZXIsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICcxLTEwMCcsXG4gICAgICAgICAgICBtaW5WYWx1ZTogMSxcbiAgICAgICAgICAgIG1heFZhbHVlOiAxMDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2Nvcm5lclJhZGl1cycsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5iYXItY2hhcnQuY29ybmVyLXJhZGl1cycsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiA0LFxuICAgICAgICBkYXRhVHlwZTogJ251bWJlcicsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdjb3JuZXJSYWRpdXMnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLmNvcm5lclJhZGl1cycsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubnVtYmVyLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnMC0yMCcsXG4gICAgICAgICAgICBtaW5WYWx1ZTogMCxcbiAgICAgICAgICAgIG1heFZhbHVlOiAyMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICAvLyA9PT09PT0gR3JpZCBTZXR0aW5ncyA9PT09PT1cbiAgICB7XG4gICAgICBuYW1lOiAnc2hvd0dyaWQnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMuYmFyLWNoYXJ0LnNob3ctZ3JpZCcsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgICAgICBkYXRhVHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnc2hvd0dyaWQnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLnNob3dHcmlkJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdzaG93RGF0YUxhYmVscycsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5iYXItY2hhcnQuc2hvdy1kYXRhLWxhYmVscycsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgICAgICBkYXRhVHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnc2hvd0RhdGFMYWJlbHMnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLnNob3dEYXRhTGFiZWxzJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIC8vID09PT09PSBUb29sdGlwIFNldHRpbmdzID09PT09PVxuICAgIHtcbiAgICAgIG5hbWU6ICdzaG93VG9vbHRpcCcsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5iYXItY2hhcnQuc2hvdy10b29sdGlwJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgICAgIGRhdGFUeXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdzaG93VG9vbHRpcCcsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMuc2hvd1Rvb2x0aXAnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRvZ2dsZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAgLy8gPT09PT09IEFuaW1hdGlvbiBTZXR0aW5ncyA9PT09PT1cbiAgICB7XG4gICAgICBuYW1lOiAnYW5pbWF0aW9uRWFzaW5nJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmJhci1jaGFydC5hbmltYXRpb24tZWFzaW5nJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6ICdjdWJpYy1vdXQnLFxuICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdhbmltYXRpb25FYXNpbmcnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLmFuaW1hdGlvbkVhc2luZycsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuc2VsZWN0LFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IFtcbiAgICAgICAgICAgICAgeyB2YWx1ZTogJ2xpbmVhcicsIHRleHQ6ICdMaW5lYXInIH0sXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdlYXNlJywgdGV4dDogJ0Vhc2UnIH0sXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdlYXNlLWluJywgdGV4dDogJ0Vhc2UgSW4nIH0sXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdlYXNlLW91dCcsIHRleHQ6ICdFYXNlIE91dCcgfSxcbiAgICAgICAgICAgICAgeyB2YWx1ZTogJ2Vhc2UtaW4tb3V0JywgdGV4dDogJ0Vhc2UgSW4gT3V0JyB9LFxuICAgICAgICAgICAgICB7IHZhbHVlOiAnY3ViaWMnLCB0ZXh0OiAnQ3ViaWMnIH0sXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdjdWJpYy1pbicsIHRleHQ6ICdDdWJpYyBJbicgfSxcbiAgICAgICAgICAgICAgeyB2YWx1ZTogJ2N1YmljLW91dCcsIHRleHQ6ICdDdWJpYyBPdXQnIH0sXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdjdWJpYy1pbi1vdXQnLCB0ZXh0OiAnQ3ViaWMgSW4gT3V0JyB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHRleHRGaWVsZDogJ3RleHQnLFxuICAgICAgICAgICAgdmFsdWVGaWVsZDogJ3ZhbHVlJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnYW5pbWF0aW9uRHVyYXRpb24nLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMuYmFyLWNoYXJ0LmFuaW1hdGlvbi1kdXJhdGlvbicsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiA4MDAsXG4gICAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ2FuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5hbmltYXRpb25EdXJhdGlvbicsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubnVtYmVyLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnMC0yMDAwJyxcbiAgICAgICAgICAgIG1pblZhbHVlOiAwLFxuICAgICAgICAgICAgbWF4VmFsdWU6IDIwMDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAgKi9cbiAgXSxcbiAgY29tcG9uZW50czoge1xuICAgIHZpZXc6IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL2Jhci1jaGFydC13aWRnZXQuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBCYXJDaGFydFdpZGdldFZpZXdDb21wb25lbnQpLFxuICAgIH0sXG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkaW1lbnNpb25zOiB7XG4gICAgICB3aWR0aDogNSxcbiAgICAgIGhlaWdodDogNixcblxuICAgICAgbWluV2lkdGg6IDIsXG4gICAgICBtaW5IZWlnaHQ6IDIsXG5cbiAgICAgIG1heFdpZHRoOiA2LFxuICAgICAgbWF4SGVpZ2h0OiA3LFxuICAgIH0sXG4gIH0sXG59O1xuXG5kZWNsYXJlIG1vZHVsZSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnIHtcbiAgaW50ZXJmYWNlIEFYUFdpZGdldFR5cGVzTWFwIHtcbiAgICBiYXJDaGFydDogJ2Jhci1jaGFydCc7XG4gIH1cbn1cbiJdfQ==","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTagModule } from '@acorex/components/tag';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, inject, } from '@angular/core';\nimport { interval } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/core/format\";\nexport class AXPClockCalendarWidgetViewComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n // Dependencies\n this.cdr = inject(ChangeDetectorRef);\n // Time state\n this.currentTime = new Date();\n this.currentDate = new Date();\n this.clockSubscription = null;\n // Static clock elements\n this.clockHours = Array.from({ length: 12 }, (_, i) => i + 1);\n this.clockHourNumbers = Array.from({ length: 12 }, (_, i) => ({\n number: i === 0 ? 12 : i,\n angle: i * 30,\n }));\n // Clock hands rotation angles\n this.hourRotation = 0;\n this.minuteRotation = 0;\n this.secondRotation = 0;\n // Options with computed properties and defaults\n this.displayLayout = computed(() => this.options()?.['displayLayout']?.id ?? 'both', ...(ngDevMode ? [{ debugName: \"displayLayout\" }] : []));\n this.showDigitalClock = computed(() => {\n const layout = this.displayLayout();\n return layout === 'both' || layout === 'digital';\n }, ...(ngDevMode ? [{ debugName: \"showDigitalClock\" }] : []));\n this.showAnalogClock = computed(() => {\n const layout = this.displayLayout();\n return layout === 'both' || layout === 'analog';\n }, ...(ngDevMode ? [{ debugName: \"showAnalogClock\" }] : []));\n this.showDate = computed(() => this.options()?.['showDate'] !== false, ...(ngDevMode ? [{ debugName: \"showDate\" }] : []));\n this.showDayOfWeek = computed(() => this.options()?.['showDayOfWeek'] !== false, ...(ngDevMode ? [{ debugName: \"showDayOfWeek\" }] : []));\n this.use24Hour = computed(() => this.options()?.['use24Hour'] === true, ...(ngDevMode ? [{ debugName: \"use24Hour\" }] : []));\n this.showSeconds = computed(() => this.options()?.['showSeconds'] !== false, ...(ngDevMode ? [{ debugName: \"showSeconds\" }] : []));\n this.dateFormat = computed(() => this.options()?.['dateFormat']?.id ?? 'DD MMM YYYY', ...(ngDevMode ? [{ debugName: \"dateFormat\" }] : []));\n this.timezone = computed(() => this.options()?.['timezone']?.id ?? 'local', ...(ngDevMode ? [{ debugName: \"timezone\" }] : []));\n // protected readonly showTimezoneIndicator: Signal<boolean> = computed(() => this.timezone() !== 'local');\n this.displayTimezone = computed(() => {\n const tz = this.timezone();\n if (tz === 'local')\n return '';\n if (tz.startsWith('UTC')) {\n const [match, sign, hours, minutes] = tz.match(/UTC([+-])(\\d+):?(\\d+)?/) ?? [];\n if (match) {\n if (!minutes || minutes === '00') {\n return `UTC${sign}${parseInt(hours)}`;\n }\n return `UTC${sign}${parseInt(hours)}:${minutes}`;\n }\n }\n return tz;\n }, ...(ngDevMode ? [{ debugName: \"displayTimezone\" }] : []));\n this.timeFormat = computed(() => this.showSeconds() ? (this.use24Hour() ? 'HH:mm:ss' : 'hh:mm:ss a') : this.use24Hour() ? 'HH:mm' : 'hh:mm a', ...(ngDevMode ? [{ debugName: \"timeFormat\" }] : []));\n }\n ngOnInit() {\n super.ngOnInit();\n this.startClockTimer();\n this.updateTime();\n }\n ngOnDestroy() {\n this.stopClockTimer();\n }\n startClockTimer() {\n this.stopClockTimer();\n this.clockSubscription = interval(1000).subscribe(() => this.updateTime());\n }\n stopClockTimer() {\n this.clockSubscription?.unsubscribe();\n this.clockSubscription = null;\n }\n updateTime() {\n const now = this.getAdjustedTime();\n this.currentTime = now;\n this.currentDate = now;\n this.updateClockHandsRotation(now);\n this.cdr.markForCheck();\n }\n getAdjustedTime() {\n const now = new Date();\n const tz = this.timezone();\n if (tz === 'local' || !tz.startsWith('UTC')) {\n return now;\n }\n const [match, sign, hours, minutes] = tz.match(/UTC([+-])(\\d+):?(\\d+)?/) ?? [];\n if (!match) {\n return now;\n }\n const offsetHours = parseInt(hours) * (sign === '+' ? 1 : -1);\n const offsetMinutes = minutes ? parseInt(minutes) * (sign === '+' ? 1 : -1) : 0;\n const utcTime = now.getTime() + now.getTimezoneOffset() * 60000;\n return new Date(utcTime + (offsetHours * 3600000 + offsetMinutes * 60000));\n }\n updateClockHandsRotation(now) {\n const hours = now.getHours() % 12;\n const minutes = now.getMinutes();\n const seconds = now.getSeconds();\n // For analog clocks:\n // - 12 o'clock is 0°\n // - 3 o'clock is 90°\n // - 6 o'clock is 180°\n // - 9 o'clock is 270°\n // Hour hand: 30° per hour (360°/12) plus gradual movement from minutes\n this.hourRotation = hours * 30 + minutes / 2 + 180;\n // Minute hand: 6° per minute (360°/60)\n this.minuteRotation = minutes * 6 + 180;\n // Second hand: 6° per second (360°/60)\n this.secondRotation = seconds * 6 + 180;\n }\n initializeWidget() {\n this.updateTime();\n }\n updateWidget() {\n this.stopClockTimer();\n this.startClockTimer();\n this.updateTime();\n }\n destroyWidget() {\n this.stopClockTimer();\n }\n getDayOfWeek() {\n const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n return days[this.currentDate.getDay()];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPClockCalendarWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPClockCalendarWidgetViewComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: \"<div class=\\\"axp-clock-calendar-container\\\">\\n <!-- Timezone indicator (only shown when not local) -->\\n <!-- @if (showTimezoneIndicator()) {\\n <div class=\\\"axp-clock-calendar-timezone-badge\\\"><i class=\\\"fa-solid fa-globe\\\"></i> {{ displayTimezone() }}</div>\\n } -->\\n\\n <!-- Day of week display -->\\n @if (showDayOfWeek()) {\\n <div class=\\\"axp-clock-calendar-day-label\\\">{{ getDayOfWeek() }}</div>\\n }\\n\\n <div class=\\\"axp-clock-calendar-content\\\">\\n <!-- Digital Clock Display -->\\n @if (showDigitalClock()) {\\n <div class=\\\"axp-clock-calendar-digital-clock\\\">\\n {{ currentTime | format: 'datetime' : timeFormat() | async }}\\n </div>\\n }\\n\\n <!-- Analog Clock Display -->\\n @if (showAnalogClock()) {\\n <div class=\\\"axp-clock-calendar-analog-clock\\\">\\n <!-- Hour markers -->\\n @for (hour of clockHours; track hour) {\\n <div\\n class=\\\"axp-clock-calendar-hour-marker\\\"\\n [style.transform]=\\\"'rotate(' + hour * 30 + 'deg) translateY(-80px)'\\\"\\n ></div>\\n }\\n\\n <!-- Clock Numbers -->\\n <div class=\\\"axp-clock-calendar-numbers-container\\\">\\n @for (hour of clockHourNumbers; track hour) {\\n <div\\n class=\\\"axp-clock-calendar-hour-number\\\"\\n [style.transform]=\\\"'rotate(' + hour.angle + 'deg) translateY(-82px)'\\\"\\n >\\n <span [style.transform]=\\\"'rotate(' + -hour.angle + 'deg)'\\\">{{ hour.number }}</span>\\n </div>\\n }\\n </div>\\n\\n <!-- Clock Hands -->\\n <div class=\\\"axp-clock-calendar-hands-container\\\">\\n <div class=\\\"axp-clock-calendar-hour-hand\\\" [style.transform]=\\\"'rotate(' + hourRotation + 'deg)'\\\"></div>\\n <div class=\\\"axp-clock-calendar-minute-hand\\\" [style.transform]=\\\"'rotate(' + minuteRotation + 'deg)'\\\"></div>\\n @if (showSeconds()) {\\n <div class=\\\"axp-clock-calendar-second-hand\\\" [style.transform]=\\\"'rotate(' + secondRotation + 'deg)'\\\"></div>\\n }\\n <div class=\\\"axp-clock-calendar-center-dot\\\"></div>\\n </div>\\n </div>\\n }\\n\\n <!-- Date Display -->\\n @if (showDate()) {\\n <div class=\\\"axp-clock-calendar-date-display\\\">\\n <i class=\\\"fa-regular fa-calendar\\\"></i>\\n {{ currentDate | format: 'datetime' : dateFormat() | async }}\\n </div>\\n }\\n </div>\\n</div>\\n\", styles: [\":host{display:block;width:100%;height:100%}.axp-clock-calendar-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:1rem;position:relative;overflow:hidden;box-shadow:var(--ax-shadow-sm);background-color:var(--ax-surface-color);color:var(--ax-text-color)}.axp-clock-calendar-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;width:100%;height:100%;position:relative}.axp-clock-calendar-timezone-badge{position:absolute;top:.5rem;right:.5rem;font-size:.75rem;padding:.25rem;border-radius:1rem;border-width:1px;border-color:#17171780}.axp-clock-calendar-timezone-badge:is(.ax-dark *){border-color:#f5f5f580}.axp-clock-calendar-timezone-badge{display:flex;align-items:center;gap:.25rem}.axp-clock-calendar-timezone-badge i{font-size:.75rem}.axp-clock-calendar-day-label{font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.05rem;margin-bottom:.25rem}.axp-clock-calendar-digital-clock{font-size:1.5rem;font-weight:500;letter-spacing:.05rem;font-family:monospace;padding:.5rem .75rem;border-radius:.25rem}.axp-clock-calendar-analog-clock{position:relative;border-radius:50%;border-width:1px;border-color:#17171780}.axp-clock-calendar-analog-clock:is(.ax-dark *){border-color:#f5f5f580}.axp-clock-calendar-analog-clock{display:flex;align-items:center;justify-content:center;background:var(--ax-surface-color);width:min(180px,100%);height:0;padding-bottom:min(180px,100%);margin:.5rem auto;min-width:120px;min-height:120px;box-shadow:var(--ax-shadow-sm)}.axp-clock-calendar-hands-container,.axp-clock-calendar-numbers-container{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%}.axp-clock-calendar-hour-marker{position:absolute;left:50%;top:50%;width:2px;height:4%;margin-left:-1px;border-radius:1px;background-color:var(--ax-text-muted);transform-origin:50% 0}.axp-clock-calendar-hour-number{position:absolute;left:50%;top:50%;transform-origin:50% 0;font-size:clamp(.7rem,2.5vw,.9rem);font-weight:600;color:var(--ax-text-color)}.axp-clock-calendar-hour-number span{display:block}.axp-clock-calendar-hour-hand{position:absolute;top:50%;left:50%;width:4px;height:25%;margin-left:-2px;background-color:#171717bf}.axp-clock-calendar-hour-hand:is(.ax-dark *){background-color:#f5f5f5bf}.axp-clock-calendar-hour-hand{transform-origin:50% 0;border-radius:3px;box-shadow:0 0 4px #0000004d}.axp-clock-calendar-minute-hand{position:absolute;top:50%;left:50%;width:3px;height:38%;margin-left:-1.5px;background-color:#17171780}.axp-clock-calendar-minute-hand:is(.ax-dark *){background-color:#f5f5f580}.axp-clock-calendar-minute-hand{transform-origin:50% 0;border-radius:2px;box-shadow:0 0 4px #0000004d}.axp-clock-calendar-second-hand{position:absolute;top:50%;left:50%;width:2px;height:42%;margin-left:-1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-500),var(--tw-bg-opacity, 1))}.axp-clock-calendar-second-hand:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-400),var(--tw-bg-opacity, 1))}.axp-clock-calendar-second-hand{transform-origin:50% 0;border-radius:1px;box-shadow:0 0 3px #0003}.axp-clock-calendar-center-dot{position:absolute;top:50%;left:50%;width:10px;height:10px;border-radius:50%;margin-top:-5px;margin-left:-5px;background-color:#d81159;border:2px solid var(--ax-surface-color);box-shadow:0 0 4px #0000004d}.axp-clock-calendar-date-display{display:flex;align-items:center;gap:.5rem;font-size:.85rem;padding:.25rem .6rem;border-radius:.25rem;background-color:var(--ax-surface-hover);color:var(--ax-text-color)}.axp-clock-calendar-date-display i{font-size:.85rem;opacity:.7}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXDateTimeModule }, { kind: \"ngmodule\", type: AXFormatModule }, { kind: \"ngmodule\", type: AXTagModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i2.AXFormatPipe, name: \"format\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPClockCalendarWidgetViewComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, imports: [CommonModule, AXDateTimeModule, AXFormatModule, AXTagModule, AXDecoratorModule], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<div class=\\\"axp-clock-calendar-container\\\">\\n <!-- Timezone indicator (only shown when not local) -->\\n <!-- @if (showTimezoneIndicator()) {\\n <div class=\\\"axp-clock-calendar-timezone-badge\\\"><i class=\\\"fa-solid fa-globe\\\"></i> {{ displayTimezone() }}</div>\\n } -->\\n\\n <!-- Day of week display -->\\n @if (showDayOfWeek()) {\\n <div class=\\\"axp-clock-calendar-day-label\\\">{{ getDayOfWeek() }}</div>\\n }\\n\\n <div class=\\\"axp-clock-calendar-content\\\">\\n <!-- Digital Clock Display -->\\n @if (showDigitalClock()) {\\n <div class=\\\"axp-clock-calendar-digital-clock\\\">\\n {{ currentTime | format: 'datetime' : timeFormat() | async }}\\n </div>\\n }\\n\\n <!-- Analog Clock Display -->\\n @if (showAnalogClock()) {\\n <div class=\\\"axp-clock-calendar-analog-clock\\\">\\n <!-- Hour markers -->\\n @for (hour of clockHours; track hour) {\\n <div\\n class=\\\"axp-clock-calendar-hour-marker\\\"\\n [style.transform]=\\\"'rotate(' + hour * 30 + 'deg) translateY(-80px)'\\\"\\n ></div>\\n }\\n\\n <!-- Clock Numbers -->\\n <div class=\\\"axp-clock-calendar-numbers-container\\\">\\n @for (hour of clockHourNumbers; track hour) {\\n <div\\n class=\\\"axp-clock-calendar-hour-number\\\"\\n [style.transform]=\\\"'rotate(' + hour.angle + 'deg) translateY(-82px)'\\\"\\n >\\n <span [style.transform]=\\\"'rotate(' + -hour.angle + 'deg)'\\\">{{ hour.number }}</span>\\n </div>\\n }\\n </div>\\n\\n <!-- Clock Hands -->\\n <div class=\\\"axp-clock-calendar-hands-container\\\">\\n <div class=\\\"axp-clock-calendar-hour-hand\\\" [style.transform]=\\\"'rotate(' + hourRotation + 'deg)'\\\"></div>\\n <div class=\\\"axp-clock-calendar-minute-hand\\\" [style.transform]=\\\"'rotate(' + minuteRotation + 'deg)'\\\"></div>\\n @if (showSeconds()) {\\n <div class=\\\"axp-clock-calendar-second-hand\\\" [style.transform]=\\\"'rotate(' + secondRotation + 'deg)'\\\"></div>\\n }\\n <div class=\\\"axp-clock-calendar-center-dot\\\"></div>\\n </div>\\n </div>\\n }\\n\\n <!-- Date Display -->\\n @if (showDate()) {\\n <div class=\\\"axp-clock-calendar-date-display\\\">\\n <i class=\\\"fa-regular fa-calendar\\\"></i>\\n {{ currentDate | format: 'datetime' : dateFormat() | async }}\\n </div>\\n }\\n </div>\\n</div>\\n\", styles: [\":host{display:block;width:100%;height:100%}.axp-clock-calendar-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:1rem;position:relative;overflow:hidden;box-shadow:var(--ax-shadow-sm);background-color:var(--ax-surface-color);color:var(--ax-text-color)}.axp-clock-calendar-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;width:100%;height:100%;position:relative}.axp-clock-calendar-timezone-badge{position:absolute;top:.5rem;right:.5rem;font-size:.75rem;padding:.25rem;border-radius:1rem;border-width:1px;border-color:#17171780}.axp-clock-calendar-timezone-badge:is(.ax-dark *){border-color:#f5f5f580}.axp-clock-calendar-timezone-badge{display:flex;align-items:center;gap:.25rem}.axp-clock-calendar-timezone-badge i{font-size:.75rem}.axp-clock-calendar-day-label{font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.05rem;margin-bottom:.25rem}.axp-clock-calendar-digital-clock{font-size:1.5rem;font-weight:500;letter-spacing:.05rem;font-family:monospace;padding:.5rem .75rem;border-radius:.25rem}.axp-clock-calendar-analog-clock{position:relative;border-radius:50%;border-width:1px;border-color:#17171780}.axp-clock-calendar-analog-clock:is(.ax-dark *){border-color:#f5f5f580}.axp-clock-calendar-analog-clock{display:flex;align-items:center;justify-content:center;background:var(--ax-surface-color);width:min(180px,100%);height:0;padding-bottom:min(180px,100%);margin:.5rem auto;min-width:120px;min-height:120px;box-shadow:var(--ax-shadow-sm)}.axp-clock-calendar-hands-container,.axp-clock-calendar-numbers-container{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%}.axp-clock-calendar-hour-marker{position:absolute;left:50%;top:50%;width:2px;height:4%;margin-left:-1px;border-radius:1px;background-color:var(--ax-text-muted);transform-origin:50% 0}.axp-clock-calendar-hour-number{position:absolute;left:50%;top:50%;transform-origin:50% 0;font-size:clamp(.7rem,2.5vw,.9rem);font-weight:600;color:var(--ax-text-color)}.axp-clock-calendar-hour-number span{display:block}.axp-clock-calendar-hour-hand{position:absolute;top:50%;left:50%;width:4px;height:25%;margin-left:-2px;background-color:#171717bf}.axp-clock-calendar-hour-hand:is(.ax-dark *){background-color:#f5f5f5bf}.axp-clock-calendar-hour-hand{transform-origin:50% 0;border-radius:3px;box-shadow:0 0 4px #0000004d}.axp-clock-calendar-minute-hand{position:absolute;top:50%;left:50%;width:3px;height:38%;margin-left:-1.5px;background-color:#17171780}.axp-clock-calendar-minute-hand:is(.ax-dark *){background-color:#f5f5f580}.axp-clock-calendar-minute-hand{transform-origin:50% 0;border-radius:2px;box-shadow:0 0 4px #0000004d}.axp-clock-calendar-second-hand{position:absolute;top:50%;left:50%;width:2px;height:42%;margin-left:-1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-500),var(--tw-bg-opacity, 1))}.axp-clock-calendar-second-hand:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-400),var(--tw-bg-opacity, 1))}.axp-clock-calendar-second-hand{transform-origin:50% 0;border-radius:1px;box-shadow:0 0 3px #0003}.axp-clock-calendar-center-dot{position:absolute;top:50%;left:50%;width:10px;height:10px;border-radius:50%;margin-top:-5px;margin-left:-5px;background-color:#d81159;border:2px solid var(--ax-surface-color);box-shadow:0 0 4px #0000004d}.axp-clock-calendar-date-display{display:flex;align-items:center;gap:.5rem;font-size:.85rem;padding:.25rem .6rem;border-radius:.25rem;background-color:var(--ax-surface-hover);color:var(--ax-text-color)}.axp-clock-calendar-date-display i{font-size:.85rem;opacity:.7}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvY2stY2FsZW5kYXItd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NoYXJlZC93aWRnZXRzL2Nsb2NrLWNhbGVuZGFyL2Nsb2NrLWNhbGVuZGFyLXdpZGdldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zaGFyZWQvd2lkZ2V0cy9jbG9jay1jYWxlbmRhci9jbG9jay1jYWxlbmRhci13aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUlULFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnQixRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFVOUMsTUFBTSxPQUFPLG1DQUFvQyxTQUFRLHVCQUF1QjtJQVBoRjs7UUFRRSxlQUFlO1FBQ0UsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRWpE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Q3BCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFUyxhQUFhO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRVMsWUFBWTtRQUNwQixNQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzVGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDOytHQTNKVSxtQ0FBbUM7bUdBQW5DLG1DQUFtQywrRkMxQmhELGczRUErREEsNHBIRHhDWSxZQUFZLDhCQUFFLGdCQUFnQiw4QkFBRSxjQUFjLDhCQUFFLFdBQVcsOEJBQUUsaUJBQWlCOzs0RkFHN0UsbUNBQW1DO2tCQVAvQyxTQUFTO2lDQUdJLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixDQUFDLG1CQUN4RSx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFRhZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWcnO1xuaW1wb3J0IHsgQVhEYXRlVGltZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlLXRpbWUnO1xuaW1wb3J0IHsgQVhGb3JtYXRNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgU2lnbmFsLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUEhvdXJOdW1iZXIgfSBmcm9tICcuL2Nsb2NrLWNhbGVuZGFyLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9jbG9jay1jYWxlbmRhci13aWRnZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jbG9jay1jYWxlbmRhci13aWRnZXQuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhEYXRlVGltZU1vZHVsZSwgQVhGb3JtYXRNb2R1bGUsIEFYVGFnTW9kdWxlLCBBWERlY29yYXRvck1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBDbG9ja0NhbGVuZGFyV2lkZ2V0Vmlld0NvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvLyBEZXBlbmRlbmNpZXNcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIC8vIFRpbWUgc3RhdGVcbiAgcHJvdGVjdGVkIGN1cnJlbnRUaW1lID0gbmV3IERhdGUoKTtcbiAgcHJvdGVjdGVkIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcbiAgcHJpdmF0ZSBjbG9ja1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gU3RhdGljIGNsb2NrIGVsZW1lbnRzXG4gIHByb3RlY3RlZCByZWFkb25seSBjbG9ja0hvdXJzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMTIgfSwgKF8sIGkpID0+IGkgKyAxKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNsb2NrSG91ck51bWJlcnM6IEFYUEhvdXJOdW1iZXJbXSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDEyIH0sIChfLCBpKSA9PiAoe1xuICAgIG51bWJlcjogaSA9PT0gMCA/IDEyIDogaSxcbiAgICBhbmdsZTogaSAqIDMwLFxuICB9KSk7XG5cbiAgLy8gQ2xvY2sgaGFuZHMgcm90YXRpb24gYW5nbGVzXG4gIHByb3RlY3RlZCBob3VyUm90YXRpb24gPSAwO1xuICBwcm90ZWN0ZWQgbWludXRlUm90YXRpb24gPSAwO1xuICBwcm90ZWN0ZWQgc2Vjb25kUm90YXRpb24gPSAwO1xuXG4gIC8vIE9wdGlvbnMgd2l0aCBjb21wdXRlZCBwcm9wZXJ0aWVzIGFuZCBkZWZhdWx0c1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGlzcGxheUxheW91dDogU2lnbmFsPHN0cmluZz4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKT8uWydkaXNwbGF5TGF5b3V0J10/LmlkID8/ICdib3RoJyk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dEaWdpdGFsQ2xvY2s6IFNpZ25hbDxib29sZWFuPiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBsYXlvdXQgPSB0aGlzLmRpc3BsYXlMYXlvdXQoKTtcbiAgICByZXR1cm4gbGF5b3V0ID09PSAnYm90aCcgfHwgbGF5b3V0ID09PSAnZGlnaXRhbCc7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93QW5hbG9nQ2xvY2s6IFNpZ25hbDxib29sZWFuPiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBsYXlvdXQgPSB0aGlzLmRpc3BsYXlMYXlvdXQoKTtcbiAgICByZXR1cm4gbGF5b3V0ID09PSAnYm90aCcgfHwgbGF5b3V0ID09PSAnYW5hbG9nJztcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dEYXRlOiBTaWduYWw8Ym9vbGVhbj4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKT8uWydzaG93RGF0ZSddICE9PSBmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dEYXlPZldlZWs6IFNpZ25hbDxib29sZWFuPiA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpPy5bJ3Nob3dEYXlPZldlZWsnXSAhPT0gZmFsc2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB1c2UyNEhvdXI6IFNpZ25hbDxib29sZWFuPiA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpPy5bJ3VzZTI0SG91ciddID09PSB0cnVlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hvd1NlY29uZHM6IFNpZ25hbDxib29sZWFuPiA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpPy5bJ3Nob3dTZWNvbmRzJ10gIT09IGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0ZUZvcm1hdDogU2lnbmFsPHN0cmluZz4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKT8uWydkYXRlRm9ybWF0J10/LmlkID8/ICdERCBNTU0gWVlZWScpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB0aW1lem9uZTogU2lnbmFsPHN0cmluZz4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKT8uWyd0aW1lem9uZSddPy5pZCA/PyAnbG9jYWwnKTtcblxuICAvLyBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hvd1RpbWV6b25lSW5kaWNhdG9yOiBTaWduYWw8Ym9vbGVhbj4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRpbWV6b25lKCkgIT09ICdsb2NhbCcpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBkaXNwbGF5VGltZXpvbmU6IFNpZ25hbDxzdHJpbmc+ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHR6ID0gdGhpcy50aW1lem9uZSgpO1xuICAgIGlmICh0eiA9PT0gJ2xvY2FsJykgcmV0dXJuICcnO1xuXG4gICAgaWYgKHR6LnN0YXJ0c1dpdGgoJ1VUQycpKSB7XG4gICAgICBjb25zdCBbbWF0Y2gsIHNpZ24sIGhvdXJzLCBtaW51dGVzXSA9IHR6Lm1hdGNoKC9VVEMoWystXSkoXFxkKyk6PyhcXGQrKT8vKSA/PyBbXTtcbiAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICBpZiAoIW1pbnV0ZXMgfHwgbWludXRlcyA9PT0gJzAwJykge1xuICAgICAgICAgIHJldHVybiBgVVRDJHtzaWdufSR7cGFyc2VJbnQoaG91cnMpfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGBVVEMke3NpZ259JHtwYXJzZUludChob3Vycyl9OiR7bWludXRlc31gO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHo7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB0aW1lRm9ybWF0OiBTaWduYWw8c3RyaW5nPiA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5zaG93U2Vjb25kcygpID8gKHRoaXMudXNlMjRIb3VyKCkgPyAnSEg6bW06c3MnIDogJ2hoOm1tOnNzIGEnKSA6IHRoaXMudXNlMjRIb3VyKCkgPyAnSEg6bW0nIDogJ2hoOm1tIGEnLFxuICApO1xuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5zdGFydENsb2NrVGltZXIoKTtcbiAgICB0aGlzLnVwZGF0ZVRpbWUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcENsb2NrVGltZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRDbG9ja1RpbWVyKCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcENsb2NrVGltZXIoKTtcbiAgICB0aGlzLmNsb2NrU3Vic2NyaXB0aW9uID0gaW50ZXJ2YWwoMTAwMCkuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlVGltZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RvcENsb2NrVGltZXIoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9ja1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNsb2NrU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGltZSgpOiB2b2lkIHtcbiAgICBjb25zdCBub3cgPSB0aGlzLmdldEFkanVzdGVkVGltZSgpO1xuICAgIHRoaXMuY3VycmVudFRpbWUgPSBub3c7XG4gICAgdGhpcy5jdXJyZW50RGF0ZSA9IG5vdztcblxuICAgIHRoaXMudXBkYXRlQ2xvY2tIYW5kc1JvdGF0aW9uKG5vdyk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGdldEFkanVzdGVkVGltZSgpOiBEYXRlIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHR6ID0gdGhpcy50aW1lem9uZSgpO1xuXG4gICAgaWYgKHR6ID09PSAnbG9jYWwnIHx8ICF0ei5zdGFydHNXaXRoKCdVVEMnKSkge1xuICAgICAgcmV0dXJuIG5vdztcbiAgICB9XG5cbiAgICBjb25zdCBbbWF0Y2gsIHNpZ24sIGhvdXJzLCBtaW51dGVzXSA9IHR6Lm1hdGNoKC9VVEMoWystXSkoXFxkKyk6PyhcXGQrKT8vKSA/PyBbXTtcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICByZXR1cm4gbm93O1xuICAgIH1cblxuICAgIGNvbnN0IG9mZnNldEhvdXJzID0gcGFyc2VJbnQoaG91cnMpICogKHNpZ24gPT09ICcrJyA/IDEgOiAtMSk7XG4gICAgY29uc3Qgb2Zmc2V0TWludXRlcyA9IG1pbnV0ZXMgPyBwYXJzZUludChtaW51dGVzKSAqIChzaWduID09PSAnKycgPyAxIDogLTEpIDogMDtcblxuICAgIGNvbnN0IHV0Y1RpbWUgPSBub3cuZ2V0VGltZSgpICsgbm93LmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMDtcbiAgICByZXR1cm4gbmV3IERhdGUodXRjVGltZSArIChvZmZzZXRIb3VycyAqIDM2MDAwMDAgKyBvZmZzZXRNaW51dGVzICogNjAwMDApKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ2xvY2tIYW5kc1JvdGF0aW9uKG5vdzogRGF0ZSk6IHZvaWQge1xuICAgIGNvbnN0IGhvdXJzID0gbm93LmdldEhvdXJzKCkgJSAxMjtcbiAgICBjb25zdCBtaW51dGVzID0gbm93LmdldE1pbnV0ZXMoKTtcbiAgICBjb25zdCBzZWNvbmRzID0gbm93LmdldFNlY29uZHMoKTtcblxuICAgIC8vIEZvciBhbmFsb2cgY2xvY2tzOlxuICAgIC8vIC0gMTIgbydjbG9jayBpcyAwwrBcbiAgICAvLyAtIDMgbydjbG9jayBpcyA5MMKwXG4gICAgLy8gLSA2IG8nY2xvY2sgaXMgMTgwwrBcbiAgICAvLyAtIDkgbydjbG9jayBpcyAyNzDCsFxuXG4gICAgLy8gSG91ciBoYW5kOiAzMMKwIHBlciBob3VyICgzNjDCsC8xMikgcGx1cyBncmFkdWFsIG1vdmVtZW50IGZyb20gbWludXRlc1xuICAgIHRoaXMuaG91clJvdGF0aW9uID0gaG91cnMgKiAzMCArIG1pbnV0ZXMgLyAyICsgMTgwO1xuXG4gICAgLy8gTWludXRlIGhhbmQ6IDbCsCBwZXIgbWludXRlICgzNjDCsC82MClcbiAgICB0aGlzLm1pbnV0ZVJvdGF0aW9uID0gbWludXRlcyAqIDYgKyAxODA7XG5cbiAgICAvLyBTZWNvbmQgaGFuZDogNsKwIHBlciBzZWNvbmQgKDM2MMKwLzYwKVxuICAgIHRoaXMuc2Vjb25kUm90YXRpb24gPSBzZWNvbmRzICogNiArIDE4MDtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbml0aWFsaXplV2lkZ2V0KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVGltZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVdpZGdldCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3BDbG9ja1RpbWVyKCk7XG4gICAgdGhpcy5zdGFydENsb2NrVGltZXIoKTtcbiAgICB0aGlzLnVwZGF0ZVRpbWUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZXN0cm95V2lkZ2V0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcENsb2NrVGltZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREYXlPZldlZWsoKTogc3RyaW5nIHtcbiAgICBjb25zdCBkYXlzID0gWydTdW5kYXknLCAnTW9uZGF5JywgJ1R1ZXNkYXknLCAnV2VkbmVzZGF5JywgJ1RodXJzZGF5JywgJ0ZyaWRheScsICdTYXR1cmRheSddO1xuICAgIHJldHVybiBkYXlzW3RoaXMuY3VycmVudERhdGUuZ2V0RGF5KCldO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXhwLWNsb2NrLWNhbGVuZGFyLWNvbnRhaW5lclwiPlxuICA8IS0tIFRpbWV6b25lIGluZGljYXRvciAob25seSBzaG93biB3aGVuIG5vdCBsb2NhbCkgLS0+XG4gIDwhLS0gQGlmIChzaG93VGltZXpvbmVJbmRpY2F0b3IoKSkge1xuICA8ZGl2IGNsYXNzPVwiYXhwLWNsb2NrLWNhbGVuZGFyLXRpbWV6b25lLWJhZGdlXCI+PGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1nbG9iZVwiPjwvaT4ge3sgZGlzcGxheVRpbWV6b25lKCkgfX08L2Rpdj5cbiAgfSAtLT5cblxuICA8IS0tIERheSBvZiB3ZWVrIGRpc3BsYXkgLS0+XG4gIEBpZiAoc2hvd0RheU9mV2VlaygpKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4cC1jbG9jay1jYWxlbmRhci1kYXktbGFiZWxcIj57eyBnZXREYXlPZldlZWsoKSB9fTwvZGl2PlxuICB9XG5cbiAgPGRpdiBjbGFzcz1cImF4cC1jbG9jay1jYWxlbmRhci1jb250ZW50XCI+XG4gICAgPCEtLSBEaWdpdGFsIENsb2NrIERpc3BsYXkgLS0+XG4gICAgQGlmIChzaG93RGlnaXRhbENsb2NrKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJheHAtY2xvY2stY2FsZW5kYXItZGlnaXRhbC1jbG9ja1wiPlxuICAgICAgICB7eyBjdXJyZW50VGltZSB8IGZvcm1hdDogJ2RhdGV0aW1lJyA6IHRpbWVGb3JtYXQoKSB8IGFzeW5jIH19XG4gICAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8IS0tIEFuYWxvZyBDbG9jayBEaXNwbGF5IC0tPlxuICAgIEBpZiAoc2hvd0FuYWxvZ0Nsb2NrKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJheHAtY2xvY2stY2FsZW5kYXItYW5hbG9nLWNsb2NrXCI+XG4gICAgICAgIDwhLS0gSG91ciBtYXJrZXJzIC0tPlxuICAgICAgICBAZm9yIChob3VyIG9mIGNsb2NrSG91cnM7IHRyYWNrIGhvdXIpIHtcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImF4cC1jbG9jay1jYWxlbmRhci1ob3VyLW1hcmtlclwiXG4gICAgICAgICAgICBbc3R5bGUudHJhbnNmb3JtXT1cIidyb3RhdGUoJyArIGhvdXIgKiAzMCArICdkZWcpIHRyYW5zbGF0ZVkoLTgwcHgpJ1wiXG4gICAgICAgICAgPjwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBDbG9jayBOdW1iZXJzIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXhwLWNsb2NrLWNhbGVuZGFyLW51bWJlcnMtY29udGFpbmVyXCI+XG4gICAgICAgICAgQGZvciAoaG91ciBvZiBjbG9ja0hvdXJOdW1iZXJzOyB0cmFjayBob3VyKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiYXhwLWNsb2NrLWNhbGVuZGFyLWhvdXItbnVtYmVyXCJcbiAgICAgICAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCIncm90YXRlKCcgKyBob3VyLmFuZ2xlICsgJ2RlZykgdHJhbnNsYXRlWSgtODJweCknXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gW3N0eWxlLnRyYW5zZm9ybV09XCIncm90YXRlKCcgKyAtaG91ci5hbmdsZSArICdkZWcpJ1wiPnt7IGhvdXIubnVtYmVyIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIENsb2NrIEhhbmRzIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXhwLWNsb2NrLWNhbGVuZGFyLWhhbmRzLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheHAtY2xvY2stY2FsZW5kYXItaG91ci1oYW5kXCIgW3N0eWxlLnRyYW5zZm9ybV09XCIncm90YXRlKCcgKyBob3VyUm90YXRpb24gKyAnZGVnKSdcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXhwLWNsb2NrLWNhbGVuZGFyLW1pbnV0ZS1oYW5kXCIgW3N0eWxlLnRyYW5zZm9ybV09XCIncm90YXRlKCcgKyBtaW51dGVSb3RhdGlvbiArICdkZWcpJ1wiPjwvZGl2PlxuICAgICAgICAgIEBpZiAoc2hvd1NlY29uZHMoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4cC1jbG9jay1jYWxlbmRhci1zZWNvbmQtaGFuZFwiIFtzdHlsZS50cmFuc2Zvcm1dPVwiJ3JvdGF0ZSgnICsgc2Vjb25kUm90YXRpb24gKyAnZGVnKSdcIj48L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4cC1jbG9jay1jYWxlbmRhci1jZW50ZXItZG90XCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPCEtLSBEYXRlIERpc3BsYXkgLS0+XG4gICAgQGlmIChzaG93RGF0ZSgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXhwLWNsb2NrLWNhbGVuZGFyLWRhdGUtZGlzcGxheVwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtY2FsZW5kYXJcIj48L2k+XG4gICAgICAgIHt7IGN1cnJlbnREYXRlIHwgZm9ybWF0OiAnZGF0ZXRpbWUnIDogZGF0ZUZvcm1hdCgpIHwgYXN5bmMgfX1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==","/**\n * ACoreX Clock Calendar Widget Types\n * Contains all types and interfaces for the Clock Calendar widget\n */\n/**\n * Common timezone options for the widget configuration\n */\nexport const AXP_TIMEZONE_OPTIONS = [\n { id: 'local', title: 'Local Time' },\n { id: 'UTC+0', title: 'UTC (GMT)' },\n { id: 'UTC+1', title: 'Central European Time (UTC+1)' },\n { id: 'UTC+2', title: 'Eastern European Time (UTC+2)' },\n { id: 'UTC+3', title: 'Moscow Time (UTC+3)' },\n { id: 'UTC+4', title: 'Gulf Time (UTC+4)' },\n { id: 'UTC+5:30', title: 'Indian Time (UTC+5:30)' },\n { id: 'UTC+8', title: 'China Time (UTC+8)' },\n { id: 'UTC+9', title: 'Japan Time (UTC+9)' },\n { id: 'UTC+10', title: 'Australian Eastern Time (UTC+10)' },\n { id: 'UTC-5', title: 'Eastern Time (UTC-5)' },\n { id: 'UTC-6', title: 'Central Time (UTC-6)' },\n { id: 'UTC-7', title: 'Mountain Time (UTC-7)' },\n { id: 'UTC-8', title: 'Pacific Time (UTC-8)' },\n];\n/**\n * Common date format options for the widget configuration\n */\nexport const AXP_DATE_FORMAT_OPTIONS = [\n { id: 'DD MMM YYYY', title: '31 Dec 2023' },\n { id: 'MMM DD, YYYY', title: 'Dec 31, 2023' },\n { id: 'DD/MM/YYYY', title: '31/12/2023' },\n { id: 'MM/DD/YYYY', title: '12/31/2023' },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvY2stY2FsZW5kYXIudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zaGFyZWQvd2lkZ2V0cy9jbG9jay1jYWxlbmRhci9jbG9jay1jYWxlbmRhci50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFvREg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBd0I7SUFDdkQsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7SUFDcEMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7SUFDbkMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSwrQkFBK0IsRUFBRTtJQUN2RCxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLCtCQUErQixFQUFFO0lBQ3ZELEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUU7SUFDN0MsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRTtJQUMzQyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFO0lBQ25ELEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUU7SUFDNUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRTtJQUM1QyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGtDQUFrQyxFQUFFO0lBQzNELEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUU7SUFDOUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRTtJQUM5QyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFO0lBQy9DLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUU7Q0FDL0MsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQTBCO0lBQzVELEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO0lBQzNDLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFO0lBQzdDLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO0lBQ3pDLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO0NBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFDb3JlWCBDbG9jayBDYWxlbmRhciBXaWRnZXQgVHlwZXNcbiAqIENvbnRhaW5zIGFsbCB0eXBlcyBhbmQgaW50ZXJmYWNlcyBmb3IgdGhlIENsb2NrIENhbGVuZGFyIHdpZGdldFxuICovXG5cbi8qKlxuICogQ2xvY2sgbGF5b3V0IGRpc3BsYXkgb3B0aW9uc1xuICovXG5leHBvcnQgdHlwZSBBWFBDbG9ja0xheW91dCA9ICdib3RoJyB8ICdkaWdpdGFsJyB8ICdhbmFsb2cnO1xuXG4vKipcbiAqIENsb2NrIHRpbWV6b25lIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBUaW1lem9uZU9wdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGF0ZSBmb3JtYXQgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUERhdGVGb3JtYXRPcHRpb24ge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEhvdXIgbnVtYmVyIGRlZmluaXRpb24gZm9yIHRoZSBhbmFsb2cgY2xvY2tcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBIb3VyTnVtYmVyIHtcbiAgbnVtYmVyOiBudW1iZXI7XG4gIGFuZ2xlOiBudW1iZXI7XG59XG5cbi8qKlxuICogV2lkZ2V0IG9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBjbG9jay1jYWxlbmRhclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUENsb2NrQ2FsZW5kYXJPcHRpb25zIHtcbiAgLy8gRGlzcGxheSBvcHRpb25zXG4gIGRpc3BsYXlMYXlvdXQ/OiBBWFBDbG9ja0xheW91dDtcbiAgc2hvd0RhdGU/OiBib29sZWFuO1xuICBzaG93RGF5T2ZXZWVrPzogYm9vbGVhbjtcblxuICAvLyBDbG9jayBzZXR0aW5nc1xuICB1c2UyNEhvdXI/OiBib29sZWFuO1xuICBzaG93U2Vjb25kcz86IGJvb2xlYW47XG4gIHNob3dIb3VyTWFya2Vycz86IGJvb2xlYW47XG5cbiAgLy8gRGF0ZSBmb3JtYXRcbiAgZGF0ZUZvcm1hdD86IHN0cmluZztcblxuICAvLyBUaW1lem9uZVxuICB0aW1lem9uZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb21tb24gdGltZXpvbmUgb3B0aW9ucyBmb3IgdGhlIHdpZGdldCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBBWFBfVElNRVpPTkVfT1BUSU9OUzogQVhQVGltZXpvbmVPcHRpb25bXSA9IFtcbiAgeyBpZDogJ2xvY2FsJywgdGl0bGU6ICdMb2NhbCBUaW1lJyB9LFxuICB7IGlkOiAnVVRDKzAnLCB0aXRsZTogJ1VUQyAoR01UKScgfSxcbiAgeyBpZDogJ1VUQysxJywgdGl0bGU6ICdDZW50cmFsIEV1cm9wZWFuIFRpbWUgKFVUQysxKScgfSxcbiAgeyBpZDogJ1VUQysyJywgdGl0bGU6ICdFYXN0ZXJuIEV1cm9wZWFuIFRpbWUgKFVUQysyKScgfSxcbiAgeyBpZDogJ1VUQyszJywgdGl0bGU6ICdNb3Njb3cgVGltZSAoVVRDKzMpJyB9LFxuICB7IGlkOiAnVVRDKzQnLCB0aXRsZTogJ0d1bGYgVGltZSAoVVRDKzQpJyB9LFxuICB7IGlkOiAnVVRDKzU6MzAnLCB0aXRsZTogJ0luZGlhbiBUaW1lIChVVEMrNTozMCknIH0sXG4gIHsgaWQ6ICdVVEMrOCcsIHRpdGxlOiAnQ2hpbmEgVGltZSAoVVRDKzgpJyB9LFxuICB7IGlkOiAnVVRDKzknLCB0aXRsZTogJ0phcGFuIFRpbWUgKFVUQys5KScgfSxcbiAgeyBpZDogJ1VUQysxMCcsIHRpdGxlOiAnQXVzdHJhbGlhbiBFYXN0ZXJuIFRpbWUgKFVUQysxMCknIH0sXG4gIHsgaWQ6ICdVVEMtNScsIHRpdGxlOiAnRWFzdGVybiBUaW1lIChVVEMtNSknIH0sXG4gIHsgaWQ6ICdVVEMtNicsIHRpdGxlOiAnQ2VudHJhbCBUaW1lIChVVEMtNiknIH0sXG4gIHsgaWQ6ICdVVEMtNycsIHRpdGxlOiAnTW91bnRhaW4gVGltZSAoVVRDLTcpJyB9LFxuICB7IGlkOiAnVVRDLTgnLCB0aXRsZTogJ1BhY2lmaWMgVGltZSAoVVRDLTgpJyB9LFxuXTtcblxuLyoqXG4gKiBDb21tb24gZGF0ZSBmb3JtYXQgb3B0aW9ucyBmb3IgdGhlIHdpZGdldCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBBWFBfREFURV9GT1JNQVRfT1BUSU9OUzogQVhQRGF0ZUZvcm1hdE9wdGlvbltdID0gW1xuICB7IGlkOiAnREQgTU1NIFlZWVknLCB0aXRsZTogJzMxIERlYyAyMDIzJyB9LFxuICB7IGlkOiAnTU1NIERELCBZWVlZJywgdGl0bGU6ICdEZWMgMzEsIDIwMjMnIH0sXG4gIHsgaWQ6ICdERC9NTS9ZWVlZJywgdGl0bGU6ICczMS8xMi8yMDIzJyB9LFxuICB7IGlkOiAnTU0vREQvWVlZWScsIHRpdGxlOiAnMTIvMzEvMjAyMycgfSxcbl07XG4iXX0=","import { AXPWidgetGroupEnum, AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { AXP_APPEARANCE_PROPERTY_GROUP, AXP_BEHAVIOR_PROPERTY_GROUP } from '@acorex/platform/layout/widgets';\nimport { AXP_WIDGETS_UTILITY_CATEGORY } from '../chart.type';\nimport { AXP_DATE_FORMAT_OPTIONS, AXP_TIMEZONE_OPTIONS } from './clock-calendar.types';\nexport const AXPClockCalendarWidget = {\n name: 'clock-calendar',\n title: 'Clock & Calendar',\n categories: [AXP_WIDGETS_UTILITY_CATEGORY],\n groups: [AXPWidgetGroupEnum.DashboardWidget],\n type: 'dashboard',\n icon: 'fa-light fa-clock',\n properties: [\n // ====== Title ======\n {\n name: 'title',\n title: '@dashboard:widgets.clock-calendar.chart-title',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: '',\n dataType: 'string',\n interface: {\n name: 'title',\n path: 'options.title',\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: 'Enter chart title',\n },\n },\n },\n visible: true,\n },\n // ====== Display Settings ======\n {\n name: 'displayLayout',\n title: '@dashboard:widgets.clock-calendar.display-layout',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n dataType: 'string',\n defaultValue: 'both',\n interface: {\n name: 'displayLayout',\n path: 'options.displayLayout',\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: [\n { id: 'both', title: 'Digital & Analog' },\n { id: 'digital', title: 'Digital Only' },\n { id: 'analog', title: 'Analog Only' },\n ],\n },\n },\n },\n visible: true,\n },\n {\n name: 'showDate',\n title: '@dashboard:widgets.clock-calendar.show-date',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showDate',\n path: 'options.showDate',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'showDayOfWeek',\n title: '@dashboard:widgets.clock-calendar.show-day-of-week',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showDayOfWeek',\n path: 'options.showDayOfWeek',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n // ====== Time Format Settings ======\n {\n name: 'use24Hour',\n title: '@dashboard:widgets.clock-calendar.use-24-hour',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n schema: {\n defaultValue: false,\n dataType: 'boolean',\n interface: {\n name: 'use24Hour',\n path: 'options.use24Hour',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'showSeconds',\n title: '@dashboard:widgets.clock-calendar.show-seconds',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showSeconds',\n path: 'options.showSeconds',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n // {\n // name: 'showHourMarkers',\n // title: 'Show Hour Markers',\n // group: AXP_APPEARANCE_PROPERTY_GROUP,\n // schema: {\n // defaultValue: true,\n // dataType: 'boolean',\n // interface: {\n // name: 'showHourMarkers',\n // path: 'options.showHourMarkers',\n // type: AXPWidgetsCatalog.toggle,\n // },\n // },\n // visible: true,\n // },\n {\n name: 'dateFormat',\n title: '@dashboard:widgets.clock-calendar.date-format',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n schema: {\n defaultValue: 'DD MMM YYYY',\n dataType: 'string',\n interface: {\n name: 'dateFormat',\n path: 'options.dateFormat',\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: AXP_DATE_FORMAT_OPTIONS,\n },\n },\n },\n visible: true,\n },\n {\n name: 'timezone',\n title: '@dashboard:widgets.clock-calendar.timezone',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n schema: {\n defaultValue: 'local',\n dataType: 'string',\n interface: {\n name: 'timezone',\n path: 'options.timezone',\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: AXP_TIMEZONE_OPTIONS,\n },\n },\n },\n visible: true,\n },\n ],\n components: {\n view: {\n component: () => import('./clock-calendar-widget.component').then((m) => m.AXPClockCalendarWidgetViewComponent),\n },\n },\n meta: {\n dimensions: {\n width: 2,\n height: 5,\n minWidth: 2,\n minHeight: 2,\n maxWidth: 3,\n maxHeight: 6,\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvY2stY2FsZW5kYXItd2lkZ2V0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NoYXJlZC93aWRnZXRzL2Nsb2NrLWNhbGVuZGFyL2Nsb2NrLWNhbGVuZGFyLXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBb0I7SUFDckQsSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLFVBQVUsRUFBRSxDQUFDLDRCQUE0QixDQUFDO0lBQzFDLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQztJQUM1QyxJQUFJLEVBQUUsV0FBVztJQUNqQixJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLFVBQVUsRUFBRTtRQUNWLHNCQUFzQjtRQUN0QjtZQUNFLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFLCtDQUErQztZQUN0RCxLQUFLLEVBQUUsNkJBQTZCO1lBQ3BDLE1BQU0sRUFBRTtnQkFDTixZQUFZLEVBQUUsRUFBRTtnQkFDaEIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsT0FBTztvQkFDYixJQUFJLEVBQUUsZUFBZTtvQkFDckIsSUFBSSxFQUFFLGlC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QUFFLENBQUM7WUFFWixRQUFRLEVBQUUsQ0FBQztZQUNYLFNBQVMsRUFBRSxDQUFDO1NBQ2I7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBXaWRnZXRDb25maWcsIEFYUFdpZGdldEdyb3VwRW51bSwgQVhQV2lkZ2V0c0NhdGFsb2cgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQgeyBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCwgQVhQX0JFSEFWSU9SX1BST1BFUlRZX0dST1VQIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0cyc7XG5pbXBvcnQgeyBBWFBfV0lER0VUU19VVElMSVRZX0NBVEVHT1JZIH0gZnJvbSAnLi4vY2hhcnQudHlwZSc7XG5pbXBvcnQgeyBBWFBfREFURV9GT1JNQVRfT1BUSU9OUywgQVhQX1RJTUVaT05FX09QVElPTlMgfSBmcm9tICcuL2Nsb2NrLWNhbGVuZGFyLnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IEFYUENsb2NrQ2FsZW5kYXJXaWRnZXQ6IEFYUFdpZGdldENvbmZpZyA9IHtcbiAgbmFtZTogJ2Nsb2NrLWNhbGVuZGFyJyxcbiAgdGl0bGU6ICdDbG9jayAmIENhbGVuZGFyJyxcbiAgY2F0ZWdvcmllczogW0FYUF9XSURHRVRTX1VUSUxJVFlfQ0FURUdPUlldLFxuICBncm91cHM6IFtBWFBXaWRnZXRHcm91cEVudW0uRGFzaGJvYXJkV2lkZ2V0XSxcbiAgdHlwZTogJ2Rhc2hib2FyZCcsXG4gIGljb246ICdmYS1saWdodCBmYS1jbG9jaycsXG4gIHByb3BlcnRpZXM6IFtcbiAgICAvLyA9PT09PT0gVGl0bGUgPT09PT09XG4gICAge1xuICAgICAgbmFtZTogJ3RpdGxlJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmNsb2NrLWNhbGVuZGFyLmNoYXJ0LXRpdGxlJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6ICcnLFxuICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMudGl0bGUnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdFbnRlciBjaGFydCB0aXRsZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAgLy8gPT09PT09IERpc3BsYXkgU2V0dGluZ3MgPT09PT09XG4gICAge1xuICAgICAgbmFtZTogJ2Rpc3BsYXlMYXlvdXQnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMuY2xvY2stY2FsZW5kYXIuZGlzcGxheS1sYXlvdXQnLFxuICAgICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAnYm90aCcsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdkaXNwbGF5TGF5b3V0JyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5kaXNwbGF5TGF5b3V0JyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgZGF0YVNvdXJjZTogW1xuICAgICAgICAgICAgICB7IGlkOiAnYm90aCcsIHRpdGxlOiAnRGlnaXRhbCAmIEFuYWxvZycgfSxcbiAgICAgICAgICAgICAgeyBpZDogJ2RpZ2l0YWwnLCB0aXRsZTogJ0RpZ2l0YWwgT25seScgfSxcbiAgICAgICAgICAgICAgeyBpZDogJ2FuYWxvZycsIHRpdGxlOiAnQW5hbG9nIE9ubHknIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdzaG93RGF0ZScsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5jbG9jay1jYWxlbmRhci5zaG93LWRhdGUnLFxuICAgICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3Nob3dEYXRlJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5zaG93RGF0ZScsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudG9nZ2xlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnc2hvd0RheU9mV2VlaycsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5jbG9jay1jYWxlbmRhci5zaG93LWRheS1vZi13ZWVrJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgICAgIGRhdGFUeXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdzaG93RGF5T2ZXZWVrJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5zaG93RGF5T2ZXZWVrJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuXG4gICAgLy8gPT09PT09IFRpbWUgRm9ybWF0IFNldHRpbmdzID09PT09PVxuICAgIHtcbiAgICAgIG5hbWU6ICd1c2UyNEhvdXInLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMuY2xvY2stY2FsZW5kYXIudXNlLTI0LWhvdXInLFxuICAgICAgZ3JvdXA6IEFYUF9CRUhBVklPUl9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgICBkYXRhVHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAndXNlMjRIb3VyJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy51c2UyNEhvdXInLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRvZ2dsZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ3Nob3dTZWNvbmRzJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmNsb2NrLWNhbGVuZGFyLnNob3ctc2Vjb25kcycsXG4gICAgICBncm91cDogQVhQX0JFSEFWSU9SX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3Nob3dTZWNvbmRzJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5zaG93U2Vjb25kcycsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudG9nZ2xlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICAvLyB7XG4gICAgLy8gICBuYW1lOiAnc2hvd0hvdXJNYXJrZXJzJyxcbiAgICAvLyAgIHRpdGxlOiAnU2hvdyBIb3VyIE1hcmtlcnMnLFxuICAgIC8vICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgIC8vICAgc2NoZW1hOiB7XG4gICAgLy8gICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICAvLyAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAvLyAgICAgaW50ZXJmYWNlOiB7XG4gICAgLy8gICAgICAgbmFtZTogJ3Nob3dIb3VyTWFya2VycycsXG4gICAgLy8gICAgICAgcGF0aDogJ29wdGlvbnMuc2hvd0hvdXJNYXJrZXJzJyxcbiAgICAvLyAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgLy8gICAgIH0sXG4gICAgLy8gICB9LFxuICAgIC8vICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAvLyB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdkYXRlRm9ybWF0JyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmNsb2NrLWNhbGVuZGFyLmRhdGUtZm9ybWF0JyxcbiAgICAgIGdyb3VwOiBBWFBfQkVIQVZJT1JfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAnREQgTU1NIFlZWVknLFxuICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdkYXRlRm9ybWF0JyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5kYXRlRm9ybWF0JyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgZGF0YVNvdXJjZTogQVhQX0RBVEVfRk9STUFUX09QVElPTlMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ3RpbWV6b25lJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmNsb2NrLWNhbGVuZGFyLnRpbWV6b25lJyxcbiAgICAgIGdyb3VwOiBBWFBfQkVIQVZJT1JfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAnbG9jYWwnLFxuICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICd0aW1lem9uZScsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMudGltZXpvbmUnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnNlbGVjdCxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBkYXRhU291cmNlOiBBWFBfVElNRVpPTkVfT1BUSU9OUyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgY29tcG9uZW50czoge1xuICAgIHZpZXc6IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL2Nsb2NrLWNhbGVuZGFyLXdpZGdldC5jb21wb25lbnQnKS50aGVuKChtKSA9PiBtLkFYUENsb2NrQ2FsZW5kYXJXaWRnZXRWaWV3Q29tcG9uZW50KSxcbiAgICB9LFxuICB9LFxuICBtZXRhOiB7XG4gICAgZGltZW5zaW9uczoge1xuICAgICAgd2lkdGg6IDIsXG4gICAgICBoZWlnaHQ6IDUsXG5cbiAgICAgIG1pbldpZHRoOiAyLFxuICAgICAgbWluSGVpZ2h0OiAyLFxuXG4gICAgICBtYXhXaWR0aDogMyxcbiAgICAgIG1heEhlaWdodDogNixcbiAgICB9LFxuICB9LFxufTtcblxuLy8gQWRkIHRvIHRoZSBBWFBXaWRnZXRUeXBlc01hcFxuZGVjbGFyZSBtb2R1bGUgJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJyB7XG4gIGludGVyZmFjZSBBWFBXaWRnZXRUeXBlc01hcCB7XG4gICAgY2xvY2tDYWxlbmRhcjogJ2Nsb2NrLWNhbGVuZGFyJztcbiAgfVxufVxuIl19","import { AXPopupService } from '@acorex/components/popup';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXP_GLOBAL_SEARCH_CONFIG_TOKEN } from '@acorex/modules/common';\nimport { AXPDataGenerator } from '@acorex/platform/core';\nimport { AXPLayoutBaseWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, HostBinding, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/core/translation\";\nexport class AXPDashboardShortcutWidgetViewComponent extends AXPLayoutBaseWidgetComponent {\n constructor() {\n super(...arguments);\n this.popupService = inject(AXPopupService);\n this.workflow = inject(AXPWorkflowService);\n this.searchConfig = inject(AXP_GLOBAL_SEARCH_CONFIG_TOKEN);\n this.item = computed(() => this.options()['item'], ...(ngDevMode ? [{ debugName: \"item\" }] : []));\n this.color = computed(() => this.options()['color'], ...(ngDevMode ? [{ debugName: \"color\" }] : []));\n }\n ngOnInit() {\n super.ngOnInit();\n if (!this.color()) {\n this.setOptions({\n color: AXPDataGenerator.color(),\n });\n }\n }\n async executeCommand() {\n if (this.item()?.command) {\n await this.workflow.execute(this.item().command.name, this.item().command.options);\n }\n }\n async setCommand() {\n const component = await this.searchConfig.window();\n const popup = await this.popupService.open(component, {\n title: 'Choose command...',\n size: 'fit',\n closeOnBackdropClick: true,\n header: false,\n });\n if (popup.data) {\n const result = popup.data;\n if (result && result.command) {\n this.setOptions({\n item: {\n name: result.name,\n title: result.title,\n description: result.description,\n icon: result.icon,\n command: result.command,\n },\n });\n }\n }\n }\n get __style() {\n const cls = {};\n cls[`background-color`] = this.color();\n return cls;\n }\n get __class() {\n const cls = {};\n cls[`ax-flex`] = true;\n cls[`ax-flex-col`] = true;\n cls[`ax-items-center`] = true;\n cls[`ax-justify-center`] = true;\n cls[`ax-w-full`] = true;\n cls[`ax-h-full`] = true;\n cls[`ax-text-center`] = true;\n cls[`ax-overflow-hidden`] = true;\n cls[`ax-cursor-pointer`] = true;\n cls[`ax-text-white`] = true;\n return cls;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDashboardShortcutWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPDashboardShortcutWidgetViewComponent, isStandalone: true, selector: \"ng-component\", host: { properties: { \"style\": \"this.__style\", \"class\": \"this.__class\" } }, usesInheritance: true, ngImport: i0, template: `\n @if (item()) {\n <div\n class=\"ax-group ax-flex ax-flex-col ax-items-center ax-justify-center ax-p-3 ax-w-full ax-h-full ax-relative ax-overflow-hidden \"\n (click)=\"executeCommand()\"\n >\n <div class=\"ax-absolute ax-inset-0 ax-bg-black/0 hover:ax-bg-black/10 ax-transition-opacity\"></div>\n <i [class]=\"item().icon + ' ax-text-3xl'\"></i>\n <span class=\"ax-text-xl ax-font-semibold\">{{ item().title | translate | async }}</span>\n @if (item().description) {\n <span class=\"ax-text-sm ax-opacity-90 ax-text-center ax-px-2\">{{\n item().description! | translate | async\n }}</span>\n }\n </div>\n } @else {\n <div\n (click)=\"setCommand()\"\n class=\"ax-group ax-flex ax-flex-col ax-items-center ax-justify-center ax-p-3 ax-w-full ax-h-full ax-relative ax-overflow-hidden\"\n >\n <div class=\"ax-absolute ax-inset-0 ax-bg-black/0 hover:ax-bg-black/5 ax-transition-opacity\"></div>\n <i class=\"fa-light fa-plus ax-text-3xl\"></i>\n <span class=\"ax-text-xl ax-font-semibold\">{{\n '@dashboard:widgets.dashboard-shortcut.add-shortcut' | translate | async\n }}</span>\n </div>\n }\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i2.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDashboardShortcutWidgetViewComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n @if (item()) {\n <div\n class=\"ax-group ax-flex ax-flex-col ax-items-center ax-justify-center ax-p-3 ax-w-full ax-h-full ax-relative ax-overflow-hidden \"\n (click)=\"executeCommand()\"\n >\n <div class=\"ax-absolute ax-inset-0 ax-bg-black/0 hover:ax-bg-black/10 ax-transition-opacity\"></div>\n <i [class]=\"item().icon + ' ax-text-3xl'\"></i>\n <span class=\"ax-text-xl ax-font-semibold\">{{ item().title | translate | async }}</span>\n @if (item().description) {\n <span class=\"ax-text-sm ax-opacity-90 ax-text-center ax-px-2\">{{\n item().description! | translate | async\n }}</span>\n }\n </div>\n } @else {\n <div\n (click)=\"setCommand()\"\n class=\"ax-group ax-flex ax-flex-col ax-items-center ax-justify-center ax-p-3 ax-w-full ax-h-full ax-relative ax-overflow-hidden\"\n >\n <div class=\"ax-absolute ax-inset-0 ax-bg-black/0 hover:ax-bg-black/5 ax-transition-opacity\"></div>\n <i class=\"fa-light fa-plus ax-text-3xl\"></i>\n <span class=\"ax-text-xl ax-font-semibold\">{{\n '@dashboard:widgets.dashboard-shortcut.add-shortcut' | translate | async\n }}</span>\n </div>\n }\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, AXTranslationModule],\n }]\n }], propDecorators: { __style: [{\n type: HostBinding,\n args: ['style']\n }], __class: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXNob3J0Y3V0LXdpZGdldC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NoYXJlZC93aWRnZXRzL2Rhc2hib2FyZC1zaG9ydGN1dC9kYXNoYm9hcmQtc2hvcnRjdXQtd2lkZ2V0LXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQXFCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUEyQ2xHLE1BQU0sT0FBTyx1Q0FBd0MsU0FBUSw0QkFBNEI7SUFqQ3pGOztRQWtDVSxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxhQUFRLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdEMsaUJBQVksR0FBRyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUVwRCxTQUFJLEdBQUcsUUFBUSxDQUFrQixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMs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QUFDOytHQXBFVSx1Q0FBdUM7bUdBQXZDLHVDQUF1QywyS0FoQ3hDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQsMkRBR1MsWUFBWSw4QkFBRSxtQkFBbUI7OzRGQUVoQyx1Q0FBdUM7a0JBakNuRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDO2lCQUM3Qzs7c0JBZ0RFLFdBQVc7dUJBQUMsT0FBTzs7c0JBT25CLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQX0dMT0JBTF9TRUFSQ0hfQ09ORklHX1RPS0VOIH0gZnJvbSAnQGFjb3JleC9tb2R1bGVzL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBTZWFyY2hEaXNwbGF5UmVzdWx0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQRGF0YUdlbmVyYXRvciwgQVhQRXhlY3V0ZUNvbW1hbmQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBIb3N0QmluZGluZywgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQU2hvcnRjdXRJdGVtIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBjb21tYW5kOiBBWFBFeGVjdXRlQ29tbWFuZDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChpdGVtKCkpIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJheC1ncm91cCBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1wLTMgYXgtdy1mdWxsIGF4LWgtZnVsbCBheC1yZWxhdGl2ZSBheC1vdmVyZmxvdy1oaWRkZW4gXCJcbiAgICAgICAgKGNsaWNrKT1cImV4ZWN1dGVDb21tYW5kKClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtYWJzb2x1dGUgYXgtaW5zZXQtMCBheC1iZy1ibGFjay8wIGhvdmVyOmF4LWJnLWJsYWNrLzEwIGF4LXRyYW5zaXRpb24tb3BhY2l0eVwiPjwvZGl2PlxuICAgICAgICA8aSBbY2xhc3NdPVwiaXRlbSgpLmljb24gKyAnIGF4LXRleHQtM3hsJ1wiPjwvaT5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LXhsIGF4LWZvbnQtc2VtaWJvbGRcIj57eyBpdGVtKCkudGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc3Bhbj5cbiAgICAgICAgQGlmIChpdGVtKCkuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LXRleHQtc20gYXgtb3BhY2l0eS05MCBheC10ZXh0LWNlbnRlciBheC1weC0yXCI+e3tcbiAgICAgICAgICAgIGl0ZW0oKS5kZXNjcmlwdGlvbiEgfCB0cmFuc2xhdGUgfCBhc3luY1xuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXZcbiAgICAgICAgKGNsaWNrKT1cInNldENvbW1hbmQoKVwiXG4gICAgICAgIGNsYXNzPVwiYXgtZ3JvdXAgYXgtZmxleCBheC1mbGV4LWNvbCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXIgYXgtcC0zIGF4LXctZnVsbCBheC1oLWZ1bGwgIGF4LXJlbGF0aXZlIGF4LW92ZXJmbG93LWhpZGRlblwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1hYnNvbHV0ZSBheC1pbnNldC0wIGF4LWJnLWJsYWNrLzAgaG92ZXI6YXgtYmctYmxhY2svNSBheC10cmFuc2l0aW9uLW9wYWNpdHlcIj48L2Rpdj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1wbHVzIGF4LXRleHQtM3hsXCI+PC9pPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImF4LXRleHQteGwgYXgtZm9udC1zZW1pYm9sZFwiPnt7XG4gICAgICAgICAgJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5kYXNoYm9hcmQtc2hvcnRjdXQuYWRkLXNob3J0Y3V0JyB8IHRyYW5zbGF0ZSB8IGFzeW5jXG4gICAgICAgIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhUcmFuc2xhdGlvbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUERhc2hib2FyZFNob3J0Y3V0V2lkZ2V0Vmlld0NvbXBvbmVudCBleHRlbmRzIEFYUExheW91dEJhc2VXaWRnZXRDb21wb25lbnQge1xuICBwcml2YXRlIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG4gIHByaXZhdGUgd29ya2Zsb3cgPSBpbmplY3QoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzZWFyY2hDb25maWcgPSBpbmplY3QoQVhQX0dMT0JBTF9TRUFSQ0hfQ09ORklHX1RPS0VOKTtcblxuICBwcm90ZWN0ZWQgaXRlbSA9IGNvbXB1dGVkPEFYUFNob3J0Y3V0SXRlbT4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2l0ZW0nXSBhcyBBWFBTaG9ydGN1dEl0ZW0pO1xuICBwcm90ZWN0ZWQgY29sb3IgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMub3B0aW9ucygpWydjb2xvciddIGFzIHN0cmluZyk7XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBpZiAoIXRoaXMuY29sb3IoKSkge1xuICAgICAgdGhpcy5zZXRPcHRpb25zKHtcbiAgICAgICAgY29sb3I6IEFYUERhdGFHZW5lcmF0b3IuY29sb3IoKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBleGVjdXRlQ29tbWFuZCgpIHtcbiAgICBpZiAodGhpcy5pdGVtKCk/LmNvbW1hbmQpIHtcbiAgICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSh0aGlzLml0ZW0oKS5jb21tYW5kLm5hbWUsIHRoaXMuaXRlbSgpLmNvbW1hbmQub3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNldENvbW1hbmQoKSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gYXdhaXQgdGhpcy5zZWFyY2hDb25maWcud2luZG93KCk7XG4gICAgY29uc3QgcG9wdXAgPSBhd2FpdCB0aGlzLnBvcHVwU2VydmljZS5vcGVuKGNvbXBvbmVudCwge1xuICAgICAgdGl0bGU6ICdDaG9vc2UgY29tbWFuZC4uLicsXG4gICAgICBzaXplOiAnZml0JyxcbiAgICAgIGNsb3NlT25CYWNrZHJvcENsaWNrOiB0cnVlLFxuICAgICAgaGVhZGVyOiBmYWxzZSxcbiAgICB9KTtcbiAgICBpZiAocG9wdXAuZGF0YSkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gcG9wdXAuZGF0YSBhcyBBWFBTZWFyY2hEaXNwbGF5UmVzdWx0O1xuICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuY29tbWFuZCkge1xuICAgICAgICB0aGlzLnNldE9wdGlvbnMoe1xuICAgICAgICAgIGl0ZW06IHtcbiAgICAgICAgICAgIG5hbWU6IHJlc3VsdC5uYW1lLFxuICAgICAgICAgICAgdGl0bGU6IHJlc3VsdC50aXRsZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByZXN1bHQuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBpY29uOiByZXN1bHQuaWNvbixcbiAgICAgICAgICAgIGNvbW1hbmQ6IHJlc3VsdC5jb21tYW5kLFxuICAgICAgICAgIH0gYXMgQVhQU2hvcnRjdXRJdGVtLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlJylcbiAgcHJpdmF0ZSBnZXQgX19zdHlsZSgpIHtcbiAgICBjb25zdCBjbHM6IGFueSA9IHt9O1xuICAgIGNsc1tgYmFja2dyb3VuZC1jb2xvcmBdID0gdGhpcy5jb2xvcigpO1xuICAgIHJldHVybiBjbHM7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19jbGFzcygpIHtcbiAgICBjb25zdCBjbHM6IGFueSA9IHt9O1xuICAgIGNsc1tgYXgtZmxleGBdID0gdHJ1ZTtcbiAgICBjbHNbYGF4LWZsZXgtY29sYF0gPSB0cnVlO1xuICAgIGNsc1tgYXgtaXRlbXMtY2VudGVyYF0gPSB0cnVlO1xuICAgIGNsc1tgYXgtanVzdGlmeS1jZW50ZXJgXSA9IHRydWU7XG4gICAgY2xzW2BheC13LWZ1bGxgXSA9IHRydWU7XG4gICAgY2xzW2BheC1oLWZ1bGxgXSA9IHRydWU7XG4gICAgY2xzW2BheC10ZXh0LWNlbnRlcmBdID0gdHJ1ZTtcbiAgICBjbHNbYGF4LW92ZXJmbG93LWhpZGRlbmBdID0gdHJ1ZTtcbiAgICBjbHNbYGF4LWN1cnNvci1wb2ludGVyYF0gPSB0cnVlO1xuICAgIGNsc1tgYXgtdGV4dC13aGl0ZWBdID0gdHJ1ZTtcbiAgICByZXR1cm4gY2xzO1xuICB9XG59XG4iXX0=","import { AXPWidgetGroupEnum } from '@acorex/platform/layout/widget-core';\nimport { AXP_COLOR_PROPERTY } from '@acorex/platform/layout/widgets';\nimport { AXP_WIDGETS_UTILITY_CATEGORY } from '../chart.type';\nexport const AXPDashboardShortcutWidget = {\n name: 'dashboard-shortcut',\n title: 'Shortcut',\n description: 'Quick access to your key features.',\n type: 'view',\n categories: [AXP_WIDGETS_UTILITY_CATEGORY],\n groups: [AXPWidgetGroupEnum.DashboardWidget],\n icon: 'fa-light fa-link',\n properties: [\n {\n ...AXP_COLOR_PROPERTY,\n title: '@dashboard:widgets.dashboard-shortcut.color',\n },\n ],\n meta: {\n dimensions: {\n width: 2,\n height: 2,\n minWidth: 1,\n minHeight: 1,\n maxWidth: 3,\n maxHeight: 2,\n },\n },\n components: {\n view: {\n component: () => import('./dashboard-shortcut-widget-view.component').then((c) => c.AXPDashboardShortcutWidgetViewComponent),\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXNob3J0Y3V0LXdpZGdldC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zaGFyZWQvd2lkZ2V0cy9kYXNoYm9hcmQtc2hvcnRjdXQvZGFzaGJvYXJkLXNob3J0Y3V0LXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBb0I7SUFDekQsSUFBSSxFQUFFLG9CQUFvQjtJQUMxQixLQUFLLEVBQUUsVUFBVTtJQUNqQixXQUFXLEVBQUUsb0NBQW9DO0lBQ2pELElBQUksRUFBRSxNQUFNO0lBQ1osVUFBVSxFQUFFLENBQUMsNEJBQTRCLENBQUM7SUFDMUMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDO0lBQzVDLElBQUksRUFBRSxrQkFBa0I7SUFDeEIsVUFBVSxFQUFFO1FBQ1Y7WUFDRSxHQUFHLGtCQUFrQjtZQUNyQixLQUFLLEVBQUUsNkNBQTZDO1NBQ3JEO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUU7WUFDVixLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sRUFBRSxDQUFDO1lBQ1QsUUFBUSxFQUFFLENBQUM7WUFDWCxTQUFTLEVBQUUsQ0FBQztZQUNaLFFBQVEsRUFBRSxDQUFDO1lBQ1gsU0FBUyxFQUFFLENBQUM7U0FDYjtLQUNGO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUNkLE1BQU0sQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHVDQUF1QyxDQUFDO1NBQzlHO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQV2lkZ2V0Q29uZmlnLCBBWFBXaWRnZXRHcm91cEVudW0gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQgeyBBWFBfQ09MT1JfUFJPUEVSVFkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXRzJztcbmltcG9ydCB7IEFYUF9XSURHRVRTX1VUSUxJVFlfQ0FURUdPUlkgfSBmcm9tICcuLi9jaGFydC50eXBlJztcblxuZXhwb3J0IGNvbnN0IEFYUERhc2hib2FyZFNob3J0Y3V0V2lkZ2V0OiBBWFBXaWRnZXRDb25maWcgPSB7XG4gIG5hbWU6ICdkYXNoYm9hcmQtc2hvcnRjdXQnLFxuICB0aXRsZTogJ1Nob3J0Y3V0JyxcbiAgZGVzY3JpcHRpb246ICdRdWljayBhY2Nlc3MgdG8geW91ciBrZXkgZmVhdHVyZXMuJyxcbiAgdHlwZTogJ3ZpZXcnLFxuICBjYXRlZ29yaWVzOiBbQVhQX1dJREdFVFNfVVRJTElUWV9DQVRFR09SWV0sXG4gIGdyb3VwczogW0FYUFdpZGdldEdyb3VwRW51bS5EYXNoYm9hcmRXaWRnZXRdLFxuICBpY29uOiAnZmEtbGlnaHQgZmEtbGluaycsXG4gIHByb3BlcnRpZXM6IFtcbiAgICB7XG4gICAgICAuLi5BWFBfQ09MT1JfUFJPUEVSVFksXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5kYXNoYm9hcmQtc2hvcnRjdXQuY29sb3InLFxuICAgIH0sXG4gIF0sXG4gIG1ldGE6IHtcbiAgICBkaW1lbnNpb25zOiB7XG4gICAgICB3aWR0aDogMixcbiAgICAgIGhlaWdodDogMixcbiAgICAgIG1pbldpZHRoOiAxLFxuICAgICAgbWluSGVpZ2h0OiAxLFxuICAgICAgbWF4V2lkdGg6IDMsXG4gICAgICBtYXhIZWlnaHQ6IDIsXG4gICAgfSxcbiAgfSxcbiAgY29tcG9uZW50czoge1xuICAgIHZpZXc6IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT5cbiAgICAgICAgaW1wb3J0KCcuL2Rhc2hib2FyZC1zaG9ydGN1dC13aWRnZXQtdmlldy5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUERhc2hib2FyZFNob3J0Y3V0V2lkZ2V0Vmlld0NvbXBvbmVudCksXG4gICAgfSxcbiAgfSxcbn07XG4iXX0=","import { AXDonutChartComponent } from '@acorex/charts/donut-chart';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Donut Chart Widget Component\n * Displays data in a circular donut chart with interactive segments\n */\nexport class AXPDonutChartWidgetViewComponent extends AXPValueWidgetComponent {\n constructor() {\n super();\n this.donutChartData = computed(() => this.getValue(), ...(ngDevMode ? [{ debugName: \"donutChartData\" }] : []));\n this.donutChartOptions = computed(() => this.options(), ...(ngDevMode ? [{ debugName: \"donutChartOptions\" }] : []));\n this.setOptions({\n ...this.options(),\n width: 300,\n height: 300,\n showDataLabels: false,\n donutWidth: 35,\n cornerRadius: 4,\n showTooltip: true,\n animationEasing: 'cubic-out',\n animationDuration: 800,\n });\n }\n handleDonutChartSegmentClick(event) {\n //console.log(event);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDonutChartWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.12\", type: AXPDonutChartWidgetViewComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: \"<ax-donut-chart\\n [data]=\\\"donutChartData()\\\"\\n [options]=\\\"donutChartOptions()\\\"\\n (segmentClick)=\\\"handleDonutChartSegmentClick($event)\\\"\\n></ax-donut-chart>\\n\", styles: [\":host{display:block;width:100%;height:100%}\\n\"], dependencies: [{ kind: \"component\", type: AXDonutChartComponent, selector: \"ax-donut-chart\", inputs: [\"data\", \"options\"], outputs: [\"segmentClick\", \"segmentHover\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDonutChartWidgetViewComponent, decorators: [{\n type: Component,\n args: [{ imports: [AXDonutChartComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ax-donut-chart\\n [data]=\\\"donutChartData()\\\"\\n [options]=\\\"donutChartOptions()\\\"\\n (segmentClick)=\\\"handleDonutChartSegmentClick($event)\\\"\\n></ax-donut-chart>\\n\", styles: [\":host{display:block;width:100%;height:100%}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9udXQtY2hhcnQtd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NoYXJlZC93aWRnZXRzL2RvbnV0LWNoYXJ0L2RvbnV0LWNoYXJ0LXdpZGdldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zaGFyZWQvd2lkZ2V0cy9kb251dC1jaGFydC9kb251dC1jaGFydC13aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUF3QyxNQUFNLDRCQUE0QixDQUFDO0FBQ3pHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQUVyRjs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsdUJBQXVCO0lBTTNFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFOVixtQkFBYyxHQUErQixRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSwwREFBQyxDQUFDO1FBQzdFLHNCQUFpQixHQUFtRCxRQUFRLENBQzFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQTRDLDZEQUMvRCxDQUFDO1FBSUEsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNkLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixLQUFLLEVBQUUsR0FBRztZQUNWLE1BQU0sRUFBRSxHQUFHO1lBQ1gsY0FBYyxFQUFFLEtBQUs7WUFDckIsVUFBVSxFQUFFLEVBQUU7WUFDZCxZQUFZLEVBQUUsQ0FBQztZQUNmLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGVBQWUsRUFBRSxXQUFXO1lBQzVCLGlCQUFpQixFQUFFLEdBQUc7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDRCQUE0QixDQUFDLEtBQVU7UUFDckMscUJBQXFCO0lBQ3ZCLENBQUM7K0dBdkJVLGdDQUFnQzttR0FBaEMsZ0NBQWdDLCtGQ2Q3QyxzS0FLQSx1R0RNWSxxQkFBcUI7OzRGQUdwQixnQ0FBZ0M7a0JBTjVDLFNBQVM7OEJBR0MsQ0FBQyxxQkFBcUIsQ0FBQyxtQkFDZix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEb251dENoYXJ0Q29tcG9uZW50LCBBWERvbnV0Q2hhcnREYXRhLCBBWERvbnV0Q2hhcnRPcHRpb24gfSBmcm9tICdAYWNvcmV4L2NoYXJ0cy9kb251dC1jaGFydCc7XG5pbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBEb251dCBDaGFydCBXaWRnZXQgQ29tcG9uZW50XG4gKiBEaXNwbGF5cyBkYXRhIGluIGEgY2lyY3VsYXIgZG9udXQgY2hhcnQgd2l0aCBpbnRlcmFjdGl2ZSBzZWdtZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2RvbnV0LWNoYXJ0LXdpZGdldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvbnV0LWNoYXJ0LXdpZGdldC5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbQVhEb251dENoYXJ0Q29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYUERvbnV0Q2hhcnRXaWRnZXRWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQge1xuICBkb251dENoYXJ0RGF0YTogU2lnbmFsPEFYRG9udXRDaGFydERhdGFbXT4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmdldFZhbHVlKCkpO1xuICBkb251dENoYXJ0T3B0aW9uczogU2lnbmFsPEFYRG9udXRDaGFydE9wdGlvbiAmIHsgdGl0bGU6IHN0cmluZyB9PiA9IGNvbXB1dGVkKFxuICAgICgpID0+IHRoaXMub3B0aW9ucygpIGFzIEFYRG9udXRDaGFydE9wdGlvbiAmIHsgdGl0bGU6IHN0cmluZyB9LFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zZXRPcHRpb25zKHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucygpLFxuICAgICAgd2lkdGg6IDMwMCxcbiAgICAgIGhlaWdodDogMzAwLFxuICAgICAgc2hvd0RhdGFMYWJlbHM6IGZhbHNlLFxuICAgICAgZG9udXRXaWR0aDogMzUsXG4gICAgICBjb3JuZXJSYWRpdXM6IDQsXG4gICAgICBzaG93VG9vbHRpcDogdHJ1ZSxcbiAgICAgIGFuaW1hdGlvbkVhc2luZzogJ2N1YmljLW91dCcsXG4gICAgICBhbmltYXRpb25EdXJhdGlvbjogODAwLFxuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlRG9udXRDaGFydFNlZ21lbnRDbGljayhldmVudDogYW55KSB7XG4gICAgLy9jb25zb2xlLmxvZyhldmVudCk7XG4gIH1cbn1cbiIsIjxheC1kb251dC1jaGFydFxuICBbZGF0YV09XCJkb251dENoYXJ0RGF0YSgpXCJcbiAgW29wdGlvbnNdPVwiZG9udXRDaGFydE9wdGlvbnMoKVwiXG4gIChzZWdtZW50Q2xpY2spPVwiaGFuZGxlRG9udXRDaGFydFNlZ21lbnRDbGljaygkZXZlbnQpXCJcbj48L2F4LWRvbnV0LWNoYXJ0PlxuIl19","import { AXPWidgetGroupEnum, AXPWidgetsCatalog, cloneProperty } from '@acorex/platform/layout/widget-core';\nimport { AXP_APPEARANCE_PROPERTY_GROUP, AXP_DATA_PATH_PROPERTY, AXP_NAME_PROPERTY, } from '@acorex/platform/layout/widgets';\nimport { AXP_WIDGETS_CHART_CATEGORY } from '../chart.type';\nexport const AXPDonutChartWidget = {\n name: 'donut-chart',\n title: 'Donut Chart Widget',\n categories: AXP_WIDGETS_CHART_CATEGORY,\n groups: [AXPWidgetGroupEnum.DashboardWidget],\n type: 'dashboard',\n icon: 'fa-light fa-donut',\n properties: [\n cloneProperty(AXP_NAME_PROPERTY, { visible: false }),\n cloneProperty(AXP_DATA_PATH_PROPERTY, { visible: false }),\n // ====== Chart Title ======\n {\n name: 'title',\n title: '@dashboard:widgets.donut-chart.chart-title',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: '',\n dataType: 'string',\n interface: {\n name: 'title',\n path: 'options.title',\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: 'Enter chart title',\n },\n },\n },\n visible: true,\n },\n /* Commented out properties\n // ====== Size & Layout ======\n {\n name: 'width',\n title: '@dashboard:widgets.donut-chart.width',\n group: AXP_STYLING_PROPERTY_GROUP,\n schema: {\n defaultValue: 300,\n dataType: 'number',\n interface: {\n name: 'width',\n path: 'options.width',\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 200,\n maxValue: 1200,\n },\n },\n },\n visible: true,\n },\n {\n name: 'height',\n title: '@dashboard:widgets.donut-chart.height',\n group: AXP_STYLING_PROPERTY_GROUP,\n schema: {\n defaultValue: 300,\n dataType: 'number',\n interface: {\n name: 'height',\n path: 'options.height',\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 200,\n maxValue: 800,\n },\n },\n },\n visible: true,\n },\n // ====== Donut Appearance ======\n {\n name: 'showDataLabels',\n title: '@dashboard:widgets.donut-chart.show-data-labels',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showDataLabels',\n path: 'options.showDataLabels',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'donutWidth',\n title: '@dashboard:widgets.donut-chart.donut-width',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 35,\n dataType: 'number',\n interface: {\n name: 'donutWidth',\n path: 'options.donutWidth',\n type: AXPWidgetsCatalog.number,\n options: {\n placeholder: '10-80',\n minValue: 10,\n maxValue: 80,\n },\n },\n },\n visible: true,\n },\n {\n name: 'cornerRadius',\n title: '@dashboard:widgets.donut-chart.corner-radius',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 4,\n dataType: 'number',\n interface: {\n name: 'cornerRadius',\n path: 'options.cornerRadius',\n type: AXPWidgetsCatalog.number,\n options: {\n placeholder: '0-20',\n minValue: 0,\n maxValue: 20,\n },\n },\n },\n visible: true,\n },\n // ====== Legend ======\n // {\n // name: 'showLegend',\n // title: 'Show Legend',\n // group: AXP_APPEARANCE_PROPERTY_GROUP,\n // schema: {\n // defaultValue: true,\n // dataType: 'boolean',\n // interface: {\n // name: 'showLegend',\n // path: 'options.showLegend',\n // type: AXPWidgetsCatalog.toggle,\n // },\n // },\n // visible: true,\n // },\n // {\n // name: 'legendPosition',\n // title: 'Legend Position',\n // group: AXP_APPEARANCE_PROPERTY_GROUP,\n // schema: {\n // defaultValue: 'right',\n // dataType: 'string',\n // interface: {\n // name: 'legendPosition',\n // path: 'options.legendPosition',\n // type: AXPWidgetsCatalog.select,\n // options: {\n // dataSource: ['right', 'bottom'],\n // },\n // },\n // },\n // visible: true,\n // },\n // ====== Tooltip ======\n {\n name: 'showTooltip',\n title: '@dashboard:widgets.donut-chart.show-tooltip',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showTooltip',\n path: 'options.showTooltip',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n // ====== Animation Settings ======\n {\n name: 'animationEasing',\n title: '@dashboard:widgets.donut-chart.animation-easing',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 'cubic-out',\n dataType: 'string',\n interface: {\n name: 'animationEasing',\n path: 'options.animationEasing',\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: [\n { value: 'linear', text: 'Linear' },\n { value: 'ease', text: 'Ease' },\n { value: 'ease-in', text: 'Ease In' },\n { value: 'ease-out', text: 'Ease Out' },\n { value: 'ease-in-out', text: 'Ease In Out' },\n { value: 'cubic', text: 'Cubic' },\n { value: 'cubic-in', text: 'Cubic In' },\n { value: 'cubic-out', text: 'Cubic Out' },\n { value: 'cubic-in-out', text: 'Cubic In Out' },\n ],\n textField: 'text',\n valueField: 'value',\n },\n },\n },\n visible: true,\n },\n {\n name: 'animationDuration',\n title: '@dashboard:widgets.donut-chart.animation-duration',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 800,\n dataType: 'number',\n interface: {\n name: 'animationDuration',\n path: 'options.animationDuration',\n type: AXPWidgetsCatalog.number,\n options: {\n placeholder: '0-2000',\n minValue: 0,\n maxValue: 2000,\n },\n },\n },\n visible: true,\n },\n */\n ],\n components: {\n view: {\n component: () => import('./donut-chart-widget.component').then((c) => c.AXPDonutChartWidgetViewComponent),\n },\n },\n meta: {\n dimensions: {\n width: 4,\n height: 4,\n minWidth: 2,\n minHeight: 2,\n maxWidth: 5,\n maxHeight: 6,\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9udXQtY2hhcnQtd2lkZ2V0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NoYXJlZC93aWRnZXRzL2RvbnV0LWNoYXJ0L2RvbnV0LWNoYXJ0LXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1SCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLHNCQUFzQixFQUN0QixpQkFBaUIsR0FFbEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQW9CO0lBQ2xELElBQUksRUFBRSxhQUFhO0lBQ25CLEtBQUssRUFBRSxvQkFBb0I7SUFDM0IsVUFBVSxFQUFFLDBCQUEwQjtJQUN0QyxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7SUFDNUMsSUFBSSxFQUFFLFdBQVc7SUFDakIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixVQUFVLEVBQUU7UUFDVixhQUFhLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDcEQsYUFBYSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3pELDRCQUE0QjtRQUM1QjtZQUNFLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFLDRDQUE0QztZQUNuRCxLQUFLLEVBQUUsNkJBQTZCO1lBQ3BDLE1BQU0sRUFBRTtnQkFDTixZQUFZLEVBQUUsRUFBRTtnQkFDaEIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsT0FBTztvQkFDYixJQUFJLEVBQUUsZUFBZTtvQkFDckIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQzVCLE9BQU8sRUFBRTt3QkFDUCxXQUFXLEVBQUUsbUJBQW1CO3FCQUNqQztpQkFDRjthQUNGO1lBQ0QsT0FBTyxFQUFFLElBQUk7U0FDZDtRQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztVQXFNRTtLQUNIO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDO1NBQzFHO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUU7WUFDVixLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sRUFBRSxDQUFDO1lBRVQsUUFBUSxFQUFFLENBQUM7WUFDWCxTQUFTLEVBQUUsQ0FBQztZQUVaLFFBQVEsRUFBRSxDQUFDO1lBQ1gsU0FBUyxFQUFFLENBQUM7U0FDYjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFdpZGdldENvbmZpZywgQVhQV2lkZ2V0R3JvdXBFbnVtLCBBWFBXaWRnZXRzQ2F0YWxvZywgY2xvbmVQcm9wZXJ0eSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7XG4gIEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICBBWFBfREFUQV9QQVRIX1BST1BFUlRZLFxuICBBWFBfTkFNRV9QUk9QRVJUWSxcbiAgQVhQX1NUWUxJTkdfUFJPUEVSVFlfR1JPVVAsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldHMnO1xuaW1wb3J0IHsgQVhQX1dJREdFVFNfQ0hBUlRfQ0FURUdPUlkgfSBmcm9tICcuLi9jaGFydC50eXBlJztcblxuZXhwb3J0IGNvbnN0IEFYUERvbnV0Q2hhcnRXaWRnZXQ6IEFYUFdpZGdldENvbmZpZyA9IHtcbiAgbmFtZTogJ2RvbnV0LWNoYXJ0JyxcbiAgdGl0bGU6ICdEb251dCBDaGFydCBXaWRnZXQnLFxuICBjYXRlZ29yaWVzOiBBWFBfV0lER0VUU19DSEFSVF9DQVRFR09SWSxcbiAgZ3JvdXBzOiBbQVhQV2lkZ2V0R3JvdXBFbnVtLkRhc2hib2FyZFdpZGdldF0sXG4gIHR5cGU6ICdkYXNoYm9hcmQnLFxuICBpY29uOiAnZmEtbGlnaHQgZmEtZG9udXQnLFxuICBwcm9wZXJ0aWVzOiBbXG4gICAgY2xvbmVQcm9wZXJ0eShBWFBfTkFNRV9QUk9QRVJUWSwgeyB2aXNpYmxlOiBmYWxzZSB9KSxcbiAgICBjbG9uZVByb3BlcnR5KEFYUF9EQVRBX1BBVEhfUFJPUEVSVFksIHsgdmlzaWJsZTogZmFsc2UgfSksXG4gICAgLy8gPT09PT09IENoYXJ0IFRpdGxlID09PT09PVxuICAgIHtcbiAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5kb251dC1jaGFydC5jaGFydC10aXRsZScsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAnJyxcbiAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLnRpdGxlJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0LFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnRW50ZXIgY2hhcnQgdGl0bGUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIC8qIENvbW1lbnRlZCBvdXQgcHJvcGVydGllc1xuICAgIC8vID09PT09PSBTaXplICYgTGF5b3V0ID09PT09PVxuICAgIHtcbiAgICAgIG5hbWU6ICd3aWR0aCcsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5kb251dC1jaGFydC53aWR0aCcsXG4gICAgICBncm91cDogQVhQX1NUWUxJTkdfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAzMDAsXG4gICAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3dpZHRoJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy53aWR0aCcsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubnVtYmVyLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIG1pblZhbHVlOiAyMDAsXG4gICAgICAgICAgICBtYXhWYWx1ZTogMTIwMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnaGVpZ2h0JyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmRvbnV0LWNoYXJ0LmhlaWdodCcsXG4gICAgICBncm91cDogQVhQX1NUWUxJTkdfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAzMDAsXG4gICAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ2hlaWdodCcsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMuaGVpZ2h0JyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5udW1iZXIsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgbWluVmFsdWU6IDIwMCxcbiAgICAgICAgICAgIG1heFZhbHVlOiA4MDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAgLy8gPT09PT09IERvbnV0IEFwcGVhcmFuY2UgPT09PT09XG4gICAge1xuICAgICAgbmFtZTogJ3Nob3dEYXRhTGFiZWxzJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmRvbnV0LWNoYXJ0LnNob3ctZGF0YS1sYWJlbHMnLFxuICAgICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3Nob3dEYXRhTGFiZWxzJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5zaG93RGF0YUxhYmVscycsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudG9nZ2xlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnZG9udXRXaWR0aCcsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5kb251dC1jaGFydC5kb251dC13aWR0aCcsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAzNSxcbiAgICAgICAgZGF0YVR5cGU6ICdudW1iZXInLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnZG9udXRXaWR0aCcsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMuZG9udXRXaWR0aCcsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubnVtYmVyLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnMTAtODAnLFxuICAgICAgICAgICAgbWluVmFsdWU6IDEwLFxuICAgICAgICAgICAgbWF4VmFsdWU6IDgwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdjb3JuZXJSYWRpdXMnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMuZG9udXQtY2hhcnQuY29ybmVyLXJhZGl1cycsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiA0LFxuICAgICAgICBkYXRhVHlwZTogJ251bWJlcicsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdjb3JuZXJSYWRpdXMnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLmNvcm5lclJhZGl1cycsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubnVtYmVyLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnMC0yMCcsXG4gICAgICAgICAgICBtaW5WYWx1ZTogMCxcbiAgICAgICAgICAgIG1heFZhbHVlOiAyMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICAvLyA9PT09PT0gTGVnZW5kID09PT09PVxuICAgIC8vIHtcbiAgICAvLyAgIG5hbWU6ICdzaG93TGVnZW5kJyxcbiAgICAvLyAgIHRpdGxlOiAnU2hvdyBMZWdlbmQnLFxuICAgIC8vICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgIC8vICAgc2NoZW1hOiB7XG4gICAgLy8gICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICAvLyAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAvLyAgICAgaW50ZXJmYWNlOiB7XG4gICAgLy8gICAgICAgbmFtZTogJ3Nob3dMZWdlbmQnLFxuICAgIC8vICAgICAgIHBhdGg6ICdvcHRpb25zLnNob3dMZWdlbmQnLFxuICAgIC8vICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRvZ2dsZSxcbiAgICAvLyAgICAgfSxcbiAgICAvLyAgIH0sXG4gICAgLy8gICB2aXNpYmxlOiB0cnVlLFxuICAgIC8vIH0sXG4gICAgLy8ge1xuICAgIC8vICAgbmFtZTogJ2xlZ2VuZFBvc2l0aW9uJyxcbiAgICAvLyAgIHRpdGxlOiAnTGVnZW5kIFBvc2l0aW9uJyxcbiAgICAvLyAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAvLyAgIHNjaGVtYToge1xuICAgIC8vICAgICBkZWZhdWx0VmFsdWU6ICdyaWdodCcsXG4gICAgLy8gICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAvLyAgICAgaW50ZXJmYWNlOiB7XG4gICAgLy8gICAgICAgbmFtZTogJ2xlZ2VuZFBvc2l0aW9uJyxcbiAgICAvLyAgICAgICBwYXRoOiAnb3B0aW9ucy5sZWdlbmRQb3NpdGlvbicsXG4gICAgLy8gICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuc2VsZWN0LFxuICAgIC8vICAgICAgIG9wdGlvbnM6IHtcbiAgICAvLyAgICAgICAgIGRhdGFTb3VyY2U6IFsncmlnaHQnLCAnYm90dG9tJ10sXG4gICAgLy8gICAgICAgfSxcbiAgICAvLyAgICAgfSxcbiAgICAvLyAgIH0sXG4gICAgLy8gICB2aXNpYmxlOiB0cnVlLFxuICAgIC8vIH0sXG4gICAgLy8gPT09PT09IFRvb2x0aXAgPT09PT09XG4gICAge1xuICAgICAgbmFtZTogJ3Nob3dUb29sdGlwJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmRvbnV0LWNoYXJ0LnNob3ctdG9vbHRpcCcsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgICAgICBkYXRhVHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnc2hvd1Rvb2x0aXAnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLnNob3dUb29sdGlwJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIC8vID09PT09PSBBbmltYXRpb24gU2V0dGluZ3MgPT09PT09XG4gICAge1xuICAgICAgbmFtZTogJ2FuaW1hdGlvbkVhc2luZycsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5kb251dC1jaGFydC5hbmltYXRpb24tZWFzaW5nJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6ICdjdWJpYy1vdXQnLFxuICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdhbmltYXRpb25FYXNpbmcnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLmFuaW1hdGlvbkVhc2luZycsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuc2VsZWN0LFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IFtcbiAgICAgICAgICAgICAgeyB2YWx1ZTogJ2xpbmVhcicsIHRleHQ6ICdMaW5lYXInIH0sXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdlYXNlJywgdGV4dDogJ0Vhc2UnIH0sXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdlYXNlLWluJywgdGV4dDogJ0Vhc2UgSW4nIH0sXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdlYXNlLW91dCcsIHRleHQ6ICdFYXNlIE91dCcgfSxcbiAgICAgICAgICAgICAgeyB2YWx1ZTogJ2Vhc2UtaW4tb3V0JywgdGV4dDogJ0Vhc2UgSW4gT3V0JyB9LFxuICAgICAgICAgICAgICB7IHZhbHVlOiAnY3ViaWMnLCB0ZXh0OiAnQ3ViaWMnIH0sXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdjdWJpYy1pbicsIHRleHQ6ICdDdWJpYyBJbicgfSxcbiAgICAgICAgICAgICAgeyB2YWx1ZTogJ2N1YmljLW91dCcsIHRleHQ6ICdDdWJpYyBPdXQnIH0sXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdjdWJpYy1pbi1vdXQnLCB0ZXh0OiAnQ3ViaWMgSW4gT3V0JyB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHRleHRGaWVsZDogJ3RleHQnLFxuICAgICAgICAgICAgdmFsdWVGaWVsZDogJ3ZhbHVlJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnYW5pbWF0aW9uRHVyYXRpb24nLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMuZG9udXQtY2hhcnQuYW5pbWF0aW9uLWR1cmF0aW9uJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IDgwMCxcbiAgICAgICAgZGF0YVR5cGU6ICdudW1iZXInLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnYW5pbWF0aW9uRHVyYXRpb24nLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLmFuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5udW1iZXIsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICcwLTIwMDAnLFxuICAgICAgICAgICAgbWluVmFsdWU6IDAsXG4gICAgICAgICAgICBtYXhWYWx1ZTogMjAwMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICAqL1xuICBdLFxuICBjb21wb25lbnRzOiB7XG4gICAgdmlldzoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vZG9udXQtY2hhcnQtd2lkZ2V0LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQRG9udXRDaGFydFdpZGdldFZpZXdDb21wb25lbnQpLFxuICAgIH0sXG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkaW1lbnNpb25zOiB7XG4gICAgICB3aWR0aDogNCxcbiAgICAgIGhlaWdodDogNCxcblxuICAgICAgbWluV2lkdGg6IDIsXG4gICAgICBtaW5IZWlnaHQ6IDIsXG5cbiAgICAgIG1heFdpZHRoOiA1LFxuICAgICAgbWF4SGVpZ2h0OiA2LFxuICAgIH0sXG4gIH0sXG59O1xuXG5kZWNsYXJlIG1vZHVsZSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnIHtcbiAgaW50ZXJmYWNlIEFYUFdpZGdldFR5cGVzTWFwIHtcbiAgICBkb251dENoYXJ0OiAnZG9udXQtY2hhcnQnO1xuICB9XG59XG4iXX0=","import { AXGaugeChartComponent } from '@acorex/charts/gauge-chart';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Gauge Chart Widget Component\n * Renders a semi-circular gauge chart with animated needle and thresholds\n */\nexport class AXPGaugeChartWidgetViewComponent extends AXPValueWidgetComponent {\n constructor() {\n super();\n this.gaugeChartValue = computed(() => this.getValue(), ...(ngDevMode ? [{ debugName: \"gaugeChartValue\" }] : []));\n this.gaugeChartOptions = computed(() => this.options(), ...(ngDevMode ? [{ debugName: \"gaugeChartOptions\" }] : []));\n this.setOptions({\n ...this.options(),\n width: null,\n height: 300,\n minValue: 0,\n maxValue: 100,\n showTooltip: true,\n gaugeWidth: 30,\n cornerRadius: 4,\n animationEasing: 'cubic-out',\n animationDuration: 800,\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPGaugeChartWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.12\", type: AXPGaugeChartWidgetViewComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: \"<ax-gauge-chart [value]=\\\"gaugeChartValue()\\\" [options]=\\\"gaugeChartOptions()\\\"></ax-gauge-chart>\\n\", styles: [\":host{display:block;width:100%;height:100%}\\n\"], dependencies: [{ kind: \"component\", type: AXGaugeChartComponent, selector: \"ax-gauge-chart\", inputs: [\"value\", \"options\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPGaugeChartWidgetViewComponent, decorators: [{\n type: Component,\n args: [{ imports: [AXGaugeChartComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ax-gauge-chart [value]=\\\"gaugeChartValue()\\\" [options]=\\\"gaugeChartOptions()\\\"></ax-gauge-chart>\\n\", styles: [\":host{display:block;width:100%;height:100%}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2F1Z2UtY2hhcnQtd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NoYXJlZC93aWRnZXRzL2dhdWdlLWNoYXJ0L2dhdWdlLWNoYXJ0LXdpZGdldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zaGFyZWQvd2lkZ2V0cy9nYXVnZS1jaGFydC9nYXVnZS1jaGFydC13aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFzQixNQUFNLDRCQUE0QixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQUNyRjs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsdUJBQXVCO0lBTTNFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFOVixvQkFBZSxHQUFtQixRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSwyREFBQyxDQUFDO1FBQ2xFLHNCQUFpQixHQUFtRCxRQUFRLENBQzFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQTRDLDZEQUMvRCxDQUFDO1FBSUEsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNkLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixLQUFLLEVBQUUsSUFBSTtZQUNYLE1BQU0sRUFBRSxHQUFHO1lBQ1gsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUsR0FBRztZQUNiLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxFQUFFO1lBQ2QsWUFBWSxFQUFFLENBQUM7WUFDZixlQUFlLEVBQUUsV0FBVztZQUM1QixpQkFBaUIsRUFBRSxHQUFHO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBcEJVLGdDQUFnQzttR0FBaEMsZ0NBQWdDLCtGQ2I3QyxxR0FDQSx1R0RTWSxxQkFBcUI7OzRGQUdwQixnQ0FBZ0M7a0JBTjVDLFNBQVM7OEJBR0MsQ0FBQyxxQkFBcUIsQ0FBQyxtQkFDZix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhHYXVnZUNoYXJ0Q29tcG9uZW50LCBBWEdhdWdlQ2hhcnRPcHRpb24gfSBmcm9tICdAYWNvcmV4L2NoYXJ0cy9nYXVnZS1jaGFydCc7XG5pbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8qKlxuICogR2F1Z2UgQ2hhcnQgV2lkZ2V0IENvbXBvbmVudFxuICogUmVuZGVycyBhIHNlbWktY2lyY3VsYXIgZ2F1Z2UgY2hhcnQgd2l0aCBhbmltYXRlZCBuZWVkbGUgYW5kIHRocmVzaG9sZHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9nYXVnZS1jaGFydC13aWRnZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9nYXVnZS1jaGFydC13aWRnZXQuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW0FYR2F1Z2VDaGFydENvbXBvbmVudF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBHYXVnZUNoYXJ0V2lkZ2V0Vmlld0NvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IHtcbiAgZ2F1Z2VDaGFydFZhbHVlOiBTaWduYWw8bnVtYmVyPiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZ2V0VmFsdWUoKSk7XG4gIGdhdWdlQ2hhcnRPcHRpb25zOiBTaWduYWw8QVhHYXVnZUNoYXJ0T3B0aW9uICYgeyB0aXRsZTogc3RyaW5nIH0+ID0gY29tcHV0ZWQoXG4gICAgKCkgPT4gdGhpcy5vcHRpb25zKCkgYXMgQVhHYXVnZUNoYXJ0T3B0aW9uICYgeyB0aXRsZTogc3RyaW5nIH0sXG4gICk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnNldE9wdGlvbnMoe1xuICAgICAgLi4udGhpcy5vcHRpb25zKCksXG4gICAgICB3aWR0aDogbnVsbCxcbiAgICAgIGhlaWdodDogMzAwLFxuICAgICAgbWluVmFsdWU6IDAsXG4gICAgICBtYXhWYWx1ZTogMTAwLFxuICAgICAgc2hvd1Rvb2x0aXA6IHRydWUsXG4gICAgICBnYXVnZVdpZHRoOiAzMCxcbiAgICAgIGNvcm5lclJhZGl1czogNCxcbiAgICAgIGFuaW1hdGlvbkVhc2luZzogJ2N1YmljLW91dCcsXG4gICAgICBhbmltYXRpb25EdXJhdGlvbjogODAwLFxuICAgIH0pO1xuICB9XG59XG4iLCI8YXgtZ2F1Z2UtY2hhcnQgW3ZhbHVlXT1cImdhdWdlQ2hhcnRWYWx1ZSgpXCIgW29wdGlvbnNdPVwiZ2F1Z2VDaGFydE9wdGlvbnMoKVwiPjwvYXgtZ2F1Z2UtY2hhcnQ+XG4iXX0=","import { AXPWidgetsCatalog, cloneProperty } from '@acorex/platform/layout/widget-core';\nimport { AXP_APPEARANCE_PROPERTY_GROUP, AXP_DATA_PATH_PROPERTY, AXP_NAME_PROPERTY, } from '@acorex/platform/layout/widgets';\nimport { AXP_WIDGETS_CHART_CATEGORY } from '../chart.type';\nexport const AXPGaugeChartWidget = {\n name: 'gauge-chart',\n title: 'Gauge Chart Widget',\n categories: [AXP_WIDGETS_CHART_CATEGORY],\n type: 'dashboard',\n icon: 'fa-light fa-gauge',\n properties: [\n cloneProperty(AXP_NAME_PROPERTY, { visible: false }),\n cloneProperty(AXP_DATA_PATH_PROPERTY, { visible: false }),\n // ====== Chart Title ======\n {\n name: 'title',\n title: '@dashboard:widgets.gauge-chart.chart-title',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: '',\n dataType: 'string',\n interface: {\n name: 'title',\n path: 'options.title',\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: 'Enter chart title',\n },\n },\n },\n visible: true,\n },\n // ====== Label Display ======\n {\n name: 'label',\n title: '@dashboard:widgets.gauge-chart.label',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: '',\n dataType: 'string',\n interface: {\n name: 'label',\n path: 'options.label',\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: true,\n },\n /* Commented out properties\n // ====== Layout & Dimensions ======\n {\n name: 'width',\n title: '@dashboard:widgets.gauge-chart.width',\n group: AXP_STYLING_PROPERTY_GROUP,\n schema: {\n defaultValue: null,\n dataType: 'number',\n interface: {\n name: 'width',\n path: 'options.width',\n type: AXPWidgetsCatalog.number,\n options: {\n placeholder: '1-1200',\n minValue: 1,\n maxValue: 1200,\n },\n },\n },\n visible: true,\n },\n {\n name: 'height',\n title: '@dashboard:widgets.gauge-chart.height',\n group: AXP_STYLING_PROPERTY_GROUP,\n schema: {\n defaultValue: 300,\n dataType: 'number',\n interface: {\n name: 'height',\n path: 'options.height',\n type: AXPWidgetsCatalog.number,\n options: {\n placeholder: '1-800',\n minValue: 1,\n maxValue: 800,\n },\n },\n },\n visible: true,\n },\n // ====== Gauge Configuration ======\n {\n name: 'minValue',\n title: '@dashboard:widgets.gauge-chart.min-value',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 0,\n dataType: 'number',\n interface: {\n name: 'minValue',\n path: 'options.minValue',\n type: AXPWidgetsCatalog.number,\n },\n },\n visible: true,\n },\n {\n name: 'maxValue',\n title: '@dashboard:widgets.gauge-chart.max-value',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 100,\n dataType: 'number',\n interface: {\n name: 'maxValue',\n path: 'options.maxValue',\n type: AXPWidgetsCatalog.number,\n },\n },\n visible: true,\n },\n // ====== Gauge Appearance ======\n {\n name: 'showTooltip',\n title: '@dashboard:widgets.gauge-chart.show-tooltip',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showTooltip',\n path: 'options.showTooltip',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'gaugeWidth',\n title: '@dashboard:widgets.gauge-chart.gauge-width',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 30,\n dataType: 'number',\n interface: {\n name: 'gaugeWidth',\n path: 'options.gaugeWidth',\n type: AXPWidgetsCatalog.number,\n options: {\n placeholder: '1-100',\n minValue: 1,\n maxValue: 100,\n },\n },\n },\n visible: true,\n },\n {\n name: 'cornerRadius',\n title: '@dashboard:widgets.gauge-chart.corner-radius',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 4,\n dataType: 'number',\n interface: {\n name: 'cornerRadius',\n path: 'options.cornerRadius',\n type: AXPWidgetsCatalog.number,\n options: {\n placeholder: '1-20',\n minValue: 0,\n maxValue: 20,\n },\n },\n },\n visible: true,\n },\n // ====== Animation Settings ======\n {\n name: 'animationEasing',\n title: '@dashboard:widgets.gauge-chart.animation-easing',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 'cubic-out',\n dataType: 'string',\n interface: {\n name: 'animationEasing',\n path: 'options.animationEasing',\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: [\n { value: 'linear', text: 'Linear' },\n { value: 'ease', text: 'Ease' },\n { value: 'ease-in', text: 'Ease In' },\n { value: 'ease-out', text: 'Ease Out' },\n { value: 'ease-in-out', text: 'Ease In Out' },\n { value: 'cubic', text: 'Cubic' },\n { value: 'cubic-in', text: 'Cubic In' },\n { value: 'cubic-out', text: 'Cubic Out' },\n { value: 'cubic-in-out', text: 'Cubic In Out' },\n ],\n textField: 'text',\n valueField: 'value',\n },\n },\n },\n visible: true,\n },\n {\n name: 'animationDuration',\n title: '@dashboard:widgets.gauge-chart.animation-duration',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 800,\n dataType: 'number',\n interface: {\n name: 'animationDuration',\n path: 'options.animationDuration',\n type: AXPWidgetsCatalog.number,\n options: {\n placeholder: '0-2000',\n minValue: 0,\n maxValue: 2000,\n },\n },\n },\n visible: true,\n },\n */\n ],\n components: {\n view: {\n component: () => import('./gauge-chart-widget.component').then((c) => c.AXPGaugeChartWidgetViewComponent),\n },\n },\n meta: {\n dimensions: {\n width: 3,\n height: 4,\n minWidth: 2,\n minHeight: 2,\n maxWidth: 4,\n maxHeight: 5,\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2F1Z2UtY2hhcnQtd2lkZ2V0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NoYXJlZC93aWRnZXRzL2dhdWdlLWNoYXJ0L2dhdWdlLWNoYXJ0LXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RyxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLHNCQUFzQixFQUN0QixpQkFBaUIsR0FFbEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQW9CO0lBQ2xELElBQUksRUFBRSxhQUFhO0lBQ25CLEtBQUssRUFBRSxvQkFBb0I7SUFDM0IsVUFBVSxFQUFFLENBQUMsMEJBQTBCLENBQUM7SUFDeEMsSUFBSSxFQUFFLFdBQVc7SUFDakIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixVQUFVLEVBQUU7UUFDVixhQUFhLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDcEQsYUFBYSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3pELDRCQUE0QjtRQUM1QjtZQUNFLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFLDRDQUE0QztZQUNuRCxLQUFLLEVBQUUsNkJBQTZCO1lBQ3BDLE1BQU0sRUFBRTtnQkFDTixZQUFZLEVBQUUsRUFBRTtnQkFDaEIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsT0FBTztvQkFDYixJQUFJLEVBQUUsZUFBZTtvQkFDckIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQzVCLE9BQU8sRUFBRTt3QkFDUCxXQUFXLEVBQUUsbUJBQW1CO3FCQUNqQztpQkFDRjthQUNGO1lBQ0QsT0FBTyxFQUFFLElBQUk7U0FDZDtRQUNELDhCQUE4QjtRQUM5QjtZQUNFLElBQUksRUFBRSxPQUFPO1lBQ2IsS0FBSyxFQUFFLHNDQUFzQztZQUM3QyxLQUFLLEVBQUUsNkJBQTZCO1lBQ3BDLE1BQU0sRUFBRTtnQkFDTixZQUFZLEVBQUUsRUFBRTtnQkFDaEIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsT0FBTztvQkFDYixJQUFJLEVBQUUsZUFBZTtvQkFDckIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQzdCO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsSUFBSTtTQUNkO1FBQ0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztVQW9MRTtLQUNIO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDO1NBQzFHO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUU7WUFDVixLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sRUFBRSxDQUFDO1lBRVQsUUFBUSxFQUFFLENBQUM7WUFDWCxTQUFTLEVBQUUsQ0FBQztZQUVaLFFBQVEsRUFBRSxDQUFDO1lBQ1gsU0FBUyxFQUFFLENBQUM7U0FDYjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFdpZGdldENvbmZpZywgQVhQV2lkZ2V0c0NhdGFsb2csIGNsb25lUHJvcGVydHkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQge1xuICBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgQVhQX0RBVEFfUEFUSF9QUk9QRVJUWSxcbiAgQVhQX05BTUVfUFJPUEVSVFksXG4gIEFYUF9TVFlMSU5HX1BST1BFUlRZX0dST1VQLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXRzJztcbmltcG9ydCB7IEFYUF9XSURHRVRTX0NIQVJUX0NBVEVHT1JZIH0gZnJvbSAnLi4vY2hhcnQudHlwZSc7XG5cbmV4cG9ydCBjb25zdCBBWFBHYXVnZUNoYXJ0V2lkZ2V0OiBBWFBXaWRnZXRDb25maWcgPSB7XG4gIG5hbWU6ICdnYXVnZS1jaGFydCcsXG4gIHRpdGxlOiAnR2F1Z2UgQ2hhcnQgV2lkZ2V0JyxcbiAgY2F0ZWdvcmllczogW0FYUF9XSURHRVRTX0NIQVJUX0NBVEVHT1JZXSxcbiAgdHlwZTogJ2Rhc2hib2FyZCcsXG4gIGljb246ICdmYS1saWdodCBmYS1nYXVnZScsXG4gIHByb3BlcnRpZXM6IFtcbiAgICBjbG9uZVByb3BlcnR5KEFYUF9OQU1FX1BST1BFUlRZLCB7IHZpc2libGU6IGZhbHNlIH0pLFxuICAgIGNsb25lUHJvcGVydHkoQVhQX0RBVEFfUEFUSF9QUk9QRVJUWSwgeyB2aXNpYmxlOiBmYWxzZSB9KSxcbiAgICAvLyA9PT09PT0gQ2hhcnQgVGl0bGUgPT09PT09XG4gICAge1xuICAgICAgbmFtZTogJ3RpdGxlJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmdhdWdlLWNoYXJ0LmNoYXJ0LXRpdGxlJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6ICcnLFxuICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMudGl0bGUnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdFbnRlciBjaGFydCB0aXRsZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAgLy8gPT09PT09IExhYmVsIERpc3BsYXkgPT09PT09XG4gICAge1xuICAgICAgbmFtZTogJ2xhYmVsJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmdhdWdlLWNoYXJ0LmxhYmVsJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6ICcnLFxuICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdsYWJlbCcsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMubGFiZWwnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIC8qIENvbW1lbnRlZCBvdXQgcHJvcGVydGllc1xuICAgIC8vID09PT09PSBMYXlvdXQgJiBEaW1lbnNpb25zID09PT09PVxuICAgIHtcbiAgICAgIG5hbWU6ICd3aWR0aCcsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5nYXVnZS1jaGFydC53aWR0aCcsXG4gICAgICBncm91cDogQVhQX1NUWUxJTkdfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBudWxsLFxuICAgICAgICBkYXRhVHlwZTogJ251bWJlcicsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICd3aWR0aCcsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMud2lkdGgnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLm51bWJlcixcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJzEtMTIwMCcsXG4gICAgICAgICAgICBtaW5WYWx1ZTogMSxcbiAgICAgICAgICAgIG1heFZhbHVlOiAxMjAwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdoZWlnaHQnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMuZ2F1Z2UtY2hhcnQuaGVpZ2h0JyxcbiAgICAgIGdyb3VwOiBBWFBfU1RZTElOR19QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IDMwMCxcbiAgICAgICAgZGF0YVR5cGU6ICdudW1iZXInLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnaGVpZ2h0JyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5oZWlnaHQnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLm51bWJlcixcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJzEtODAwJyxcbiAgICAgICAgICAgIG1pblZhbHVlOiAxLFxuICAgICAgICAgICAgbWF4VmFsdWU6IDgwMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICAvLyA9PT09PT0gR2F1Z2UgQ29uZmlndXJhdGlvbiA9PT09PT1cbiAgICB7XG4gICAgICBuYW1lOiAnbWluVmFsdWUnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMuZ2F1Z2UtY2hhcnQubWluLXZhbHVlJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IDAsXG4gICAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ21pblZhbHVlJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5taW5WYWx1ZScsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubnVtYmVyLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnbWF4VmFsdWUnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMuZ2F1Z2UtY2hhcnQubWF4LXZhbHVlJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IDEwMCxcbiAgICAgICAgZGF0YVR5cGU6ICdudW1iZXInLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnbWF4VmFsdWUnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLm1heFZhbHVlJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5udW1iZXIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIC8vID09PT09PSBHYXVnZSBBcHBlYXJhbmNlID09PT09PVxuICAgIHtcbiAgICAgIG5hbWU6ICdzaG93VG9vbHRpcCcsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5nYXVnZS1jaGFydC5zaG93LXRvb2x0aXAnLFxuICAgICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3Nob3dUb29sdGlwJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5zaG93VG9vbHRpcCcsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudG9nZ2xlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnZ2F1Z2VXaWR0aCcsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5nYXVnZS1jaGFydC5nYXVnZS13aWR0aCcsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAzMCxcbiAgICAgICAgZGF0YVR5cGU6ICdudW1iZXInLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnZ2F1Z2VXaWR0aCcsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMuZ2F1Z2VXaWR0aCcsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubnVtYmVyLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnMS0xMDAnLFxuICAgICAgICAgICAgbWluVmFsdWU6IDEsXG4gICAgICAgICAgICBtYXhWYWx1ZTogMTAwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdjb3JuZXJSYWRpdXMnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMuZ2F1Z2UtY2hhcnQuY29ybmVyLXJhZGl1cycsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiA0LFxuICAgICAgICBkYXRhVHlwZTogJ251bWJlcicsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdjb3JuZXJSYWRpdXMnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLmNvcm5lclJhZGl1cycsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubnVtYmVyLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnMS0yMCcsXG4gICAgICAgICAgICBtaW5WYWx1ZTogMCxcbiAgICAgICAgICAgIG1heFZhbHVlOiAyMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICAvLyA9PT09PT0gQW5pbWF0aW9uIFNldHRpbmdzID09PT09PVxuICAgIHtcbiAgICAgIG5hbWU6ICdhbmltYXRpb25FYXNpbmcnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMuZ2F1Z2UtY2hhcnQuYW5pbWF0aW9uLWVhc2luZycsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAnY3ViaWMtb3V0JyxcbiAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnYW5pbWF0aW9uRWFzaW5nJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5hbmltYXRpb25FYXNpbmcnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnNlbGVjdCxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBkYXRhU291cmNlOiBbXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdsaW5lYXInLCB0ZXh0OiAnTGluZWFyJyB9LFxuICAgICAgICAgICAgICB7IHZhbHVlOiAnZWFzZScsIHRleHQ6ICdFYXNlJyB9LFxuICAgICAgICAgICAgICB7IHZhbHVlOiAnZWFzZS1pbicsIHRleHQ6ICdFYXNlIEluJyB9LFxuICAgICAgICAgICAgICB7IHZhbHVlOiAnZWFzZS1vdXQnLCB0ZXh0OiAnRWFzZSBPdXQnIH0sXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdlYXNlLWluLW91dCcsIHRleHQ6ICdFYXNlIEluIE91dCcgfSxcbiAgICAgICAgICAgICAgeyB2YWx1ZTogJ2N1YmljJywgdGV4dDogJ0N1YmljJyB9LFxuICAgICAgICAgICAgICB7IHZhbHVlOiAnY3ViaWMtaW4nLCB0ZXh0OiAnQ3ViaWMgSW4nIH0sXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdjdWJpYy1vdXQnLCB0ZXh0OiAnQ3ViaWMgT3V0JyB9LFxuICAgICAgICAgICAgICB7IHZhbHVlOiAnY3ViaWMtaW4tb3V0JywgdGV4dDogJ0N1YmljIEluIE91dCcgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB0ZXh0RmllbGQ6ICd0ZXh0JyxcbiAgICAgICAgICAgIHZhbHVlRmllbGQ6ICd2YWx1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2FuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmdhdWdlLWNoYXJ0LmFuaW1hdGlvbi1kdXJhdGlvbicsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiA4MDAsXG4gICAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ2FuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5hbmltYXRpb25EdXJhdGlvbicsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubnVtYmVyLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnMC0yMDAwJyxcbiAgICAgICAgICAgIG1pblZhbHVlOiAwLFxuICAgICAgICAgICAgbWF4VmFsdWU6IDIwMDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAgKi9cbiAgXSxcbiAgY29tcG9uZW50czoge1xuICAgIHZpZXc6IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL2dhdWdlLWNoYXJ0LXdpZGdldC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUEdhdWdlQ2hhcnRXaWRnZXRWaWV3Q29tcG9uZW50KSxcbiAgICB9LFxuICB9LFxuICBtZXRhOiB7XG4gICAgZGltZW5zaW9uczoge1xuICAgICAgd2lkdGg6IDMsXG4gICAgICBoZWlnaHQ6IDQsXG5cbiAgICAgIG1pbldpZHRoOiAyLFxuICAgICAgbWluSGVpZ2h0OiAyLFxuXG4gICAgICBtYXhXaWR0aDogNCxcbiAgICAgIG1heEhlaWdodDogNSxcbiAgICB9LFxuICB9LFxufTtcblxuZGVjbGFyZSBtb2R1bGUgJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJyB7XG4gIGludGVyZmFjZSBBWFBXaWRnZXRUeXBlc01hcCB7XG4gICAgZ2F1Z2VDaGFydDogJ2dhdWdlLWNoYXJ0JztcbiAgfVxufVxuIl19","import { AXLineChartComponent, } from '@acorex/charts/line-chart';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Line Chart Widget Component\n * Renders data as lines with interactive hover effects and animations\n */\nexport class AXPLineChartWidgetViewComponent extends AXPValueWidgetComponent {\n constructor() {\n super();\n this.lineChartData = computed(() => this.getValue(), ...(ngDevMode ? [{ debugName: \"lineChartData\" }] : []));\n this.lineChartOptions = computed(() => this.options(), ...(ngDevMode ? [{ debugName: \"lineChartOptions\" }] : []));\n this.setOptions({\n ...this.options(),\n showXAxis: true,\n showYAxis: true,\n yAxisStartsAtZero: true,\n showGrid: true,\n showVerticalGrid: true,\n lineWidth: 2,\n smoothLine: true,\n showPoints: true,\n pointRadius: 4,\n fillOpacity: 80,\n showTooltip: true,\n showCrosshair: true,\n animationEasing: 'cubic-out',\n animationDuration: 800,\n });\n }\n handleLineChartPointClick(event) {\n //console.log(event);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLineChartWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.12\", type: AXPLineChartWidgetViewComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: \"<ax-line-chart\\n (pointClick)=\\\"handleLineChartPointClick($event)\\\"\\n [data]=\\\"lineChartData()\\\"\\n [options]=\\\"lineChartOptions()\\\"\\n></ax-line-chart>\\n\", styles: [\":host{display:block;width:100%;height:100%}\\n\"], dependencies: [{ kind: \"component\", type: AXLineChartComponent, selector: \"ax-line-chart\", inputs: [\"data\", \"options\"], outputs: [\"pointClick\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLineChartWidgetViewComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, imports: [AXLineChartComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ax-line-chart\\n (pointClick)=\\\"handleLineChartPointClick($event)\\\"\\n [data]=\\\"lineChartData()\\\"\\n [options]=\\\"lineChartOptions()\\\"\\n></ax-line-chart>\\n\", styles: [\":host{display:block;width:100%;height:100%}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jaGFydC13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Rhc2hib2FyZC1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvc2hhcmVkL3dpZGdldHMvbGluZS1jaGFydC9saW5lLWNoYXJ0LXdpZGdldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zaGFyZWQvd2lkZ2V0cy9saW5lLWNoYXJ0L2xpbmUtY2hhcnQtd2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsR0FJckIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFDckY7OztHQUdHO0FBUUgsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLHVCQUF1QjtJQU0xRTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBTlYsa0JBQWEsR0FBOEIsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUseURBQUMsQ0FBQztRQUMzRSxxQkFBZ0IsR0FBa0QsUUFBUSxDQUN4RSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUEyQyw0REFDOUQsQ0FBQztRQUlBLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDZCxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsU0FBUyxFQUFFLElBQUk7WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsUUFBUSxFQUFFLElBQUk7WUFDZCxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLFNBQVMsRUFBRSxDQUFDO1lBQ1osVUFBVSxFQUFFLElBQUk7WUFDaEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsV0FBVyxFQUFFLENBQUM7WUFDZCxXQUFXLEVBQUUsRUFBRTtZQUNmLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLGVBQWUsRUFBRSxXQUFXO1lBQzVCLGlCQUFpQixFQUFFLEdBQUc7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHlCQUF5QixDQUFDLEtBQWlDO1FBQ3pELHFCQUFxQjtJQUN2QixDQUFDOytHQTdCVSwrQkFBK0I7bUdBQS9CLCtCQUErQiwrRkNuQjVDLDZKQUtBLHVHRFdZLG9CQUFvQjs7NEZBR25CLCtCQUErQjtrQkFQM0MsU0FBUztpQ0FHSSxJQUFJLFdBQ1AsQ0FBQyxvQkFBb0IsQ0FBQyxtQkFDZCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhMaW5lQ2hhcnRDb21wb25lbnQsXG4gIEFYTGluZUNoYXJ0RGF0YSxcbiAgQVhMaW5lQ2hhcnRPcHRpb24sXG4gIEFYTGluZUNoYXJ0UG9pbnRDbGlja0V2ZW50LFxufSBmcm9tICdAYWNvcmV4L2NoYXJ0cy9saW5lLWNoYXJ0JztcbmltcG9ydCB7IEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLyoqXG4gKiBMaW5lIENoYXJ0IFdpZGdldCBDb21wb25lbnRcbiAqIFJlbmRlcnMgZGF0YSBhcyBsaW5lcyB3aXRoIGludGVyYWN0aXZlIGhvdmVyIGVmZmVjdHMgYW5kIGFuaW1hdGlvbnNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9saW5lLWNoYXJ0LXdpZGdldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpbmUtY2hhcnQtd2lkZ2V0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtBWExpbmVDaGFydENvbXBvbmVudF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBMaW5lQ2hhcnRXaWRnZXRWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQge1xuICBsaW5lQ2hhcnREYXRhOiBTaWduYWw8QVhMaW5lQ2hhcnREYXRhW10+ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5nZXRWYWx1ZSgpKTtcbiAgbGluZUNoYXJ0T3B0aW9uczogU2lnbmFsPEFYTGluZUNoYXJ0T3B0aW9uICYgeyB0aXRsZTogc3RyaW5nIH0+ID0gY29tcHV0ZWQoXG4gICAgKCkgPT4gdGhpcy5vcHRpb25zKCkgYXMgQVhMaW5lQ2hhcnRPcHRpb24gJiB7IHRpdGxlOiBzdHJpbmcgfSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc2V0T3B0aW9ucyh7XG4gICAgICAuLi50aGlzLm9wdGlvbnMoKSxcbiAgICAgIHNob3dYQXhpczogdHJ1ZSxcbiAgICAgIHNob3dZQXhpczogdHJ1ZSxcbiAgICAgIHlBeGlzU3RhcnRzQXRaZXJvOiB0cnVlLFxuICAgICAgc2hvd0dyaWQ6IHRydWUsXG4gICAgICBzaG93VmVydGljYWxHcmlkOiB0cnVlLFxuICAgICAgbGluZVdpZHRoOiAyLFxuICAgICAgc21vb3RoTGluZTogdHJ1ZSxcbiAgICAgIHNob3dQb2ludHM6IHRydWUsXG4gICAgICBwb2ludFJhZGl1czogNCxcbiAgICAgIGZpbGxPcGFjaXR5OiA4MCxcbiAgICAgIHNob3dUb29sdGlwOiB0cnVlLFxuICAgICAgc2hvd0Nyb3NzaGFpcjogdHJ1ZSxcbiAgICAgIGFuaW1hdGlvbkVhc2luZzogJ2N1YmljLW91dCcsXG4gICAgICBhbmltYXRpb25EdXJhdGlvbjogODAwLFxuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlTGluZUNoYXJ0UG9pbnRDbGljayhldmVudDogQVhMaW5lQ2hhcnRQb2ludENsaWNrRXZlbnQpIHtcbiAgICAvL2NvbnNvbGUubG9nKGV2ZW50KTtcbiAgfVxufVxuIiwiPGF4LWxpbmUtY2hhcnRcbiAgKHBvaW50Q2xpY2spPVwiaGFuZGxlTGluZUNoYXJ0UG9pbnRDbGljaygkZXZlbnQpXCJcbiAgW2RhdGFdPVwibGluZUNoYXJ0RGF0YSgpXCJcbiAgW29wdGlvbnNdPVwibGluZUNoYXJ0T3B0aW9ucygpXCJcbj48L2F4LWxpbmUtY2hhcnQ+XG4iXX0=","import { AXPWidgetGroupEnum, AXPWidgetsCatalog, cloneProperty } from '@acorex/platform/layout/widget-core';\nimport { AXP_APPEARANCE_PROPERTY_GROUP, AXP_DATA_PATH_PROPERTY, AXP_NAME_PROPERTY, } from '@acorex/platform/layout/widgets';\nimport { AXP_WIDGETS_CHART_CATEGORY } from '../chart.type';\nexport const AXPLineChartWidget = {\n name: 'line-chart',\n title: 'Line Chart Widget',\n categories: [AXP_WIDGETS_CHART_CATEGORY],\n groups: [AXPWidgetGroupEnum.DashboardWidget],\n type: 'dashboard',\n icon: 'fa-light fa-chart-line',\n properties: [\n cloneProperty(AXP_NAME_PROPERTY, { visible: false }),\n cloneProperty(AXP_DATA_PATH_PROPERTY, { visible: false }),\n // ====== Chart Title ======\n {\n name: 'title',\n title: '@dashboard:widgets.line-chart.chart-title',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: '',\n dataType: 'string',\n interface: {\n name: 'title',\n path: 'options.title',\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: 'Enter chart title',\n },\n },\n },\n visible: true,\n },\n // ====== Axis Settings ======\n {\n name: 'xAxisLabel',\n title: '@dashboard:widgets.line-chart.x-axis-label',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: '',\n dataType: 'string',\n interface: {\n name: 'xAxisLabel',\n path: 'options.xAxisLabel',\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: true,\n },\n {\n name: 'yAxisLabel',\n title: '@dashboard:widgets.line-chart.y-axis-label',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: '',\n dataType: 'string',\n interface: {\n name: 'yAxisLabel',\n path: 'options.yAxisLabel',\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: true,\n },\n {\n name: 'fillArea',\n title: '@dashboard:widgets.line-chart.fill-area',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: false,\n dataType: 'boolean',\n interface: {\n name: 'fillArea',\n path: 'options.fillArea',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n /* Commented out properties\n // ====== Layout & Dimensions ======\n {\n name: 'width',\n title: '@dashboard:widgets.line-chart.width',\n group: AXP_STYLING_PROPERTY_GROUP,\n schema: {\n defaultValue: null,\n dataType: 'number',\n interface: {\n name: 'width',\n path: 'options.width',\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 0,\n maxValue: 1200,\n },\n },\n },\n visible: true,\n },\n {\n name: 'height',\n title: '@dashboard:widgets.line-chart.height',\n group: AXP_STYLING_PROPERTY_GROUP,\n schema: {\n defaultValue: 300,\n dataType: 'number',\n interface: {\n name: 'height',\n path: 'options.height',\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 0,\n maxValue: 800,\n },\n },\n },\n visible: true,\n },\n \n // ====== Axis Settings ======\n {\n name: 'showXAxis',\n title: '@dashboard:widgets.line-chart.show-x-axis',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showXAxis',\n path: 'options.showXAxis',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'showYAxis',\n title: '@dashboard:widgets.line-chart.show-y-axis',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showYAxis',\n path: 'options.showYAxis',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'yAxisStartsAtZero',\n title: '@dashboard:widgets.line-chart.y-axis-starts-at-zero',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'yAxisStartsAtZero',\n path: 'options.yAxisStartsAtZero',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n \n {\n name: 'showGrid',\n title: '@dashboard:widgets.line-chart.show-grid',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showGrid',\n path: 'options.showGrid',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'showVerticalGrid',\n title: '@dashboard:widgets.line-chart.show-vertical-grid',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showVerticalGrid',\n path: 'options.showVerticalGrid',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n \n // ====== Line Appearance ======\n {\n name: 'lineWidth',\n title: '@dashboard:widgets.line-chart.line-width',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 2,\n dataType: 'number',\n interface: {\n name: 'lineWidth',\n path: 'options.lineWidth',\n type: AXPWidgetsCatalog.number,\n options: {\n placeholder: '1-10',\n minValue: 1,\n maxValue: 10,\n },\n },\n },\n visible: true,\n },\n {\n name: 'smoothLine',\n title: '@dashboard:widgets.line-chart.smooth-line',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'smoothLine',\n path: 'options.smoothLine',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'showPoints',\n title: '@dashboard:widgets.line-chart.show-points',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showPoints',\n path: 'options.showPoints',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'pointRadius',\n title: '@dashboard:widgets.line-chart.point-radius',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 4,\n dataType: 'number',\n interface: {\n name: 'pointRadius',\n path: 'options.pointRadius',\n type: AXPWidgetsCatalog.number,\n options: {\n placeholder: '1-10',\n minValue: 1,\n maxValue: 10,\n },\n },\n },\n visible: true,\n },\n {\n name: 'fillOpacity',\n title: '@dashboard:widgets.line-chart.fill-opacity',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 80,\n dataType: 'number',\n interface: {\n name: 'fillOpacity',\n path: 'options.fillOpacity',\n type: AXPWidgetsCatalog.number,\n options: {\n placeholder: '1-100',\n minValue: 1,\n maxValue: 100,\n },\n },\n },\n visible: true,\n },\n \n // ====== Tooltip Settings ======\n {\n name: 'showTooltip',\n title: '@dashboard:widgets.line-chart.show-tooltip',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showTooltip',\n path: 'options.showTooltip',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'showCrosshair',\n title: '@dashboard:widgets.line-chart.show-crosshair',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showCrosshair',\n path: 'options.showCrosshair',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n \n // ====== Animation Settings ======\n {\n name: 'animationEasing',\n title: '@dashboard:widgets.line-chart.animation-easing',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 'cubic-out',\n dataType: 'string',\n interface: {\n name: 'animationEasing',\n path: 'options.animationEasing',\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: [\n { value: 'linear', text: 'Linear' },\n { value: 'ease', text: 'Ease' },\n { value: 'ease-in', text: 'Ease In' },\n { value: 'ease-out', text: 'Ease Out' },\n { value: 'ease-in-out', text: 'Ease In Out' },\n { value: 'cubic', text: 'Cubic' },\n { value: 'cubic-in', text: 'Cubic In' },\n { value: 'cubic-out', text: 'Cubic Out' },\n { value: 'cubic-in-out', text: 'Cubic In Out' },\n ],\n textField: 'text',\n valueField: 'value',\n },\n },\n },\n visible: true,\n },\n {\n name: 'animationDuration',\n title: '@dashboard:widgets.line-chart.animation-duration',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 800,\n dataType: 'number',\n interface: {\n name: 'animationDuration',\n path: 'options.animationDuration',\n type: AXPWidgetsCatalog.number,\n options: {\n placeholder: '0-2000',\n minValue: 0,\n maxValue: 2000,\n },\n },\n },\n visible: true,\n },\n */\n ],\n components: {\n view: {\n component: () => import('./line-chart-widget.component').then((c) => c.AXPLineChartWidgetViewComponent),\n },\n },\n meta: {\n dimensions: {\n width: 3,\n height: 4,\n minWidth: 2,\n minHeight: 2,\n maxWidth: 6,\n maxHeight: 6,\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jaGFydC13aWRnZXQuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Rhc2hib2FyZC1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvc2hhcmVkL3dpZGdldHMvbGluZS1jaGFydC9saW5lLWNoYXJ0LXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1SCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLHNCQUFzQixFQUN0QixpQkFBaUIsR0FFbEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQW9CO0lBQ2pELElBQUksRUFBRSxZQUFZO0lBQ2xCLEtBQUssRUFBRSxtQkFBbUI7SUFDMUIsVUFBVSxFQUFFLENBQUMsMEJBQTBCLENBQUM7SUFDeEMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDO0lBQzVDLElBQUksRUFBRSxXQUFXO0lBQ2pCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsVUFBVSxFQUFFO1FBQ1YsYUFBYSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3BELGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN6RCw0QkFBNEI7UUFDNUI7WUFDRSxJQUFJLEVBQUUsT0FBTztZQUNiLEtBQUssRUFBRSwyQ0FBMkM7WUFDbEQsS0FBSyxFQUFFLDZCQUE2QjtZQUNwQyxNQUFNLEVBQUU7Z0JBQ04sWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLE9BQU87b0JBQ2IsSUFBSSxFQUFFLGVBQWU7b0JBQ3JCLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUM1QixPQUFPLEVBQUU7d0JBQ1AsV0FBVyxFQUFFLG1CQUFtQjtxQkFDakM7aUJBQ0Y7YUFDRjtZQUNELE9BQU8sRUFBRSxJQUFJO1NBQ2Q7UUFDRCw4QkFBOEI7UUFDOUI7WUFDRSxJQUFJLEVBQUUsWUFBWTtZQUNsQixLQUFLLEVBQUUsNENBQTRDO1lBQ25ELEtBQUssRUFBRSw2QkFBNkI7WUFDcEMsTUFBTSxFQUFFO2dCQUNOLFlBQVksRUFBRSxFQUFFO2dCQUNoQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxZQUFZO29CQUNsQixJQUFJLEVBQUUsb0JBQW9CO29CQUMxQixJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDN0I7YUFDRjtZQUNELE9BQU8sRUFBRSxJQUFJO1NBQ2Q7UUFDRDtZQUNFLElBQUksRUFBRSxZQUFZO1lBQ2xCLEtBQUssRUFBRSw0Q0FBNEM7WUFDbkQsS0FBSyxFQUFFLDZCQUE2QjtZQUNwQyxNQUFNLEVBQUU7Z0JBQ04sWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLElBQUksRUFBRSxvQkFBb0I7b0JBQzFCLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUM3QjthQUNGO1lBQ0QsT0FBTyxFQUFFLElBQUk7U0FDZDtRQUNEO1lBQ0UsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSyxFQUFFLHlDQUF5QztZQUNoRCxLQUFLLEVBQUUsNkJBQTZCO1lBQ3BDLE1BQU0sRUFBRTtnQkFDTixZQUFZLEVBQUUsS0FBSztnQkFDbkIsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsVUFBVTtvQkFDaEIsSUFBSSxFQUFFLGtCQUFrQjtvQkFDeEIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLE1BQU07aUJBQy9CO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsSUFBSTtTQUNkO1FBQ0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztVQXNTRTtLQUNIO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLCtCQUErQixDQUFDO1NBQ3hHO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUU7WUFDVixLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sRUFBRSxDQUFDO1lBRVQsUUFBUSxFQUFFLENBQUM7WUFDWCxTQUFTLEVBQUUsQ0FBQztZQUVaLFFBQVEsRUFBRSxDQUFDO1lBQ1gsU0FBUyxFQUFFLENBQUM7U0FDYjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFdpZGdldENvbmZpZywgQVhQV2lkZ2V0R3JvdXBFbnVtLCBBWFBXaWRnZXRzQ2F0YWxvZywgY2xvbmVQcm9wZXJ0eSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7XG4gIEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICBBWFBfREFUQV9QQVRIX1BST1BFUlRZLFxuICBBWFBfTkFNRV9QUk9QRVJUWSxcbiAgQVhQX1NUWUxJTkdfUFJPUEVSVFlfR1JPVVAsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldHMnO1xuaW1wb3J0IHsgQVhQX1dJREdFVFNfQ0hBUlRfQ0FURUdPUlkgfSBmcm9tICcuLi9jaGFydC50eXBlJztcblxuZXhwb3J0IGNvbnN0IEFYUExpbmVDaGFydFdpZGdldDogQVhQV2lkZ2V0Q29uZmlnID0ge1xuICBuYW1lOiAnbGluZS1jaGFydCcsXG4gIHRpdGxlOiAnTGluZSBDaGFydCBXaWRnZXQnLFxuICBjYXRlZ29yaWVzOiBbQVhQX1dJREdFVFNfQ0hBUlRfQ0FURUdPUlldLFxuICBncm91cHM6IFtBWFBXaWRnZXRHcm91cEVudW0uRGFzaGJvYXJkV2lkZ2V0XSxcbiAgdHlwZTogJ2Rhc2hib2FyZCcsXG4gIGljb246ICdmYS1saWdodCBmYS1jaGFydC1saW5lJyxcbiAgcHJvcGVydGllczogW1xuICAgIGNsb25lUHJvcGVydHkoQVhQX05BTUVfUFJPUEVSVFksIHsgdmlzaWJsZTogZmFsc2UgfSksXG4gICAgY2xvbmVQcm9wZXJ0eShBWFBfREFUQV9QQVRIX1BST1BFUlRZLCB7IHZpc2libGU6IGZhbHNlIH0pLFxuICAgIC8vID09PT09PSBDaGFydCBUaXRsZSA9PT09PT1cbiAgICB7XG4gICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMubGluZS1jaGFydC5jaGFydC10aXRsZScsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAnJyxcbiAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLnRpdGxlJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0LFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnRW50ZXIgY2hhcnQgdGl0bGUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIC8vID09PT09PSBBeGlzIFNldHRpbmdzID09PT09PVxuICAgIHtcbiAgICAgIG5hbWU6ICd4QXhpc0xhYmVsJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmxpbmUtY2hhcnQueC1heGlzLWxhYmVsJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6ICcnLFxuICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICd4QXhpc0xhYmVsJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy54QXhpc0xhYmVsJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAneUF4aXNMYWJlbCcsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5saW5lLWNoYXJ0LnktYXhpcy1sYWJlbCcsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAnJyxcbiAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAneUF4aXNMYWJlbCcsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMueUF4aXNMYWJlbCcsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2ZpbGxBcmVhJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmxpbmUtY2hhcnQuZmlsbC1hcmVhJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgICBkYXRhVHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnZmlsbEFyZWEnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLmZpbGxBcmVhJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIC8qIENvbW1lbnRlZCBvdXQgcHJvcGVydGllc1xuICAgIC8vID09PT09PSBMYXlvdXQgJiBEaW1lbnNpb25zID09PT09PVxuICAgIHtcbiAgICAgIG5hbWU6ICd3aWR0aCcsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5saW5lLWNoYXJ0LndpZHRoJyxcbiAgICAgIGdyb3VwOiBBWFBfU1RZTElOR19QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IG51bGwsXG4gICAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3dpZHRoJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy53aWR0aCcsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubnVtYmVyLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIG1pblZhbHVlOiAwLFxuICAgICAgICAgICAgbWF4VmFsdWU6IDEyMDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2hlaWdodCcsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5saW5lLWNoYXJ0LmhlaWdodCcsXG4gICAgICBncm91cDogQVhQX1NUWUxJTkdfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAzMDAsXG4gICAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ2hlaWdodCcsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMuaGVpZ2h0JyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5udW1iZXIsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgbWluVmFsdWU6IDAsXG4gICAgICAgICAgICBtYXhWYWx1ZTogODAwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuXG4gICAgLy8gPT09PT09IEF4aXMgU2V0dGluZ3MgPT09PT09XG4gICAge1xuICAgICAgbmFtZTogJ3Nob3dYQXhpcycsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5saW5lLWNoYXJ0LnNob3cteC1heGlzJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgICAgIGRhdGFUeXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdzaG93WEF4aXMnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLnNob3dYQXhpcycsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudG9nZ2xlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnc2hvd1lBeGlzJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmxpbmUtY2hhcnQuc2hvdy15LWF4aXMnLFxuICAgICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3Nob3dZQXhpcycsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMuc2hvd1lBeGlzJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICd5QXhpc1N0YXJ0c0F0WmVybycsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5saW5lLWNoYXJ0LnktYXhpcy1zdGFydHMtYXQtemVybycsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgICAgICBkYXRhVHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAneUF4aXNTdGFydHNBdFplcm8nLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLnlBeGlzU3RhcnRzQXRaZXJvJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuXG4gICAge1xuICAgICAgbmFtZTogJ3Nob3dHcmlkJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmxpbmUtY2hhcnQuc2hvdy1ncmlkJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgICAgIGRhdGFUeXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdzaG93R3JpZCcsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMuc2hvd0dyaWQnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRvZ2dsZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ3Nob3dWZXJ0aWNhbEdyaWQnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMubGluZS1jaGFydC5zaG93LXZlcnRpY2FsLWdyaWQnLFxuICAgICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3Nob3dWZXJ0aWNhbEdyaWQnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLnNob3dWZXJ0aWNhbEdyaWQnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRvZ2dsZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG5cbiAgICAvLyA9PT09PT0gTGluZSBBcHBlYXJhbmNlID09PT09PVxuICAgIHtcbiAgICAgIG5hbWU6ICdsaW5lV2lkdGgnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMubGluZS1jaGFydC5saW5lLXdpZHRoJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IDIsXG4gICAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ2xpbmVXaWR0aCcsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMubGluZVdpZHRoJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5udW1iZXIsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICcxLTEwJyxcbiAgICAgICAgICAgIG1pblZhbHVlOiAxLFxuICAgICAgICAgICAgbWF4VmFsdWU6IDEwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdzbW9vdGhMaW5lJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmxpbmUtY2hhcnQuc21vb3RoLWxpbmUnLFxuICAgICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3Ntb290aExpbmUnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLnNtb290aExpbmUnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRvZ2dsZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ3Nob3dQb2ludHMnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMubGluZS1jaGFydC5zaG93LXBvaW50cycsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgICAgICBkYXRhVHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnc2hvd1BvaW50cycsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMuc2hvd1BvaW50cycsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudG9nZ2xlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAncG9pbnRSYWRpdXMnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMubGluZS1jaGFydC5wb2ludC1yYWRpdXMnLFxuICAgICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogNCxcbiAgICAgICAgZGF0YVR5cGU6ICdudW1iZXInLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAncG9pbnRSYWRpdXMnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLnBvaW50UmFkaXVzJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5udW1iZXIsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICcxLTEwJyxcbiAgICAgICAgICAgIG1pblZhbHVlOiAxLFxuICAgICAgICAgICAgbWF4VmFsdWU6IDEwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdmaWxsT3BhY2l0eScsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5saW5lLWNoYXJ0LmZpbGwtb3BhY2l0eScsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiA4MCxcbiAgICAgICAgZGF0YVR5cGU6ICdudW1iZXInLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnZmlsbE9wYWNpdHknLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLmZpbGxPcGFjaXR5JyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5udW1iZXIsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICcxLTEwMCcsXG4gICAgICAgICAgICBtaW5WYWx1ZTogMSxcbiAgICAgICAgICAgIG1heFZhbHVlOiAxMDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG5cbiAgICAvLyA9PT09PT0gVG9vbHRpcCBTZXR0aW5ncyA9PT09PT1cbiAgICB7XG4gICAgICBuYW1lOiAnc2hvd1Rvb2x0aXAnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMubGluZS1jaGFydC5zaG93LXRvb2x0aXAnLFxuICAgICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3Nob3dUb29sdGlwJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5zaG93VG9vbHRpcCcsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudG9nZ2xlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnc2hvd0Nyb3NzaGFpcicsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5saW5lLWNoYXJ0LnNob3ctY3Jvc3NoYWlyJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgICAgIGRhdGFUeXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdzaG93Q3Jvc3NoYWlyJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5zaG93Q3Jvc3NoYWlyJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuXG4gICAgLy8gPT09PT09IEFuaW1hdGlvbiBTZXR0aW5ncyA9PT09PT1cbiAgICB7XG4gICAgICBuYW1lOiAnYW5pbWF0aW9uRWFzaW5nJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmxpbmUtY2hhcnQuYW5pbWF0aW9uLWVhc2luZycsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAnY3ViaWMtb3V0JyxcbiAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnYW5pbWF0aW9uRWFzaW5nJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5hbmltYXRpb25FYXNpbmcnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnNlbGVjdCxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBkYXRhU291cmNlOiBbXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdsaW5lYXInLCB0ZXh0OiAnTGluZWFyJyB9LFxuICAgICAgICAgICAgICB7IHZhbHVlOiAnZWFzZScsIHRleHQ6ICdFYXNlJyB9LFxuICAgICAgICAgICAgICB7IHZhbHVlOiAnZWFzZS1pbicsIHRleHQ6ICdFYXNlIEluJyB9LFxuICAgICAgICAgICAgICB7IHZhbHVlOiAnZWFzZS1vdXQnLCB0ZXh0OiAnRWFzZSBPdXQnIH0sXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdlYXNlLWluLW91dCcsIHRleHQ6ICdFYXNlIEluIE91dCcgfSxcbiAgICAgICAgICAgICAgeyB2YWx1ZTogJ2N1YmljJywgdGV4dDogJ0N1YmljJyB9LFxuICAgICAgICAgICAgICB7IHZhbHVlOiAnY3ViaWMtaW4nLCB0ZXh0OiAnQ3ViaWMgSW4nIH0sXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdjdWJpYy1vdXQnLCB0ZXh0OiAnQ3ViaWMgT3V0JyB9LFxuICAgICAgICAgICAgICB7IHZhbHVlOiAnY3ViaWMtaW4tb3V0JywgdGV4dDogJ0N1YmljIEluIE91dCcgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB0ZXh0RmllbGQ6ICd0ZXh0JyxcbiAgICAgICAgICAgIHZhbHVlRmllbGQ6ICd2YWx1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2FuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLmxpbmUtY2hhcnQuYW5pbWF0aW9uLWR1cmF0aW9uJyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IDgwMCxcbiAgICAgICAgZGF0YVR5cGU6ICdudW1iZXInLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnYW5pbWF0aW9uRHVyYXRpb24nLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLmFuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5udW1iZXIsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICcwLTIwMDAnLFxuICAgICAgICAgICAgbWluVmFsdWU6IDAsXG4gICAgICAgICAgICBtYXhWYWx1ZTogMjAwMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICAqL1xuICBdLFxuICBjb21wb25lbnRzOiB7XG4gICAgdmlldzoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vbGluZS1jaGFydC13aWRnZXQuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBMaW5lQ2hhcnRXaWRnZXRWaWV3Q29tcG9uZW50KSxcbiAgICB9LFxuICB9LFxuICBtZXRhOiB7XG4gICAgZGltZW5zaW9uczoge1xuICAgICAgd2lkdGg6IDMsXG4gICAgICBoZWlnaHQ6IDQsXG5cbiAgICAgIG1pbldpZHRoOiAyLFxuICAgICAgbWluSGVpZ2h0OiAyLFxuXG4gICAgICBtYXhXaWR0aDogNixcbiAgICAgIG1heEhlaWdodDogNixcbiAgICB9LFxuICB9LFxufTtcblxuZGVjbGFyZSBtb2R1bGUgJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJyB7XG4gIGludGVyZmFjZSBBWFBXaWRnZXRUeXBlc01hcCB7XG4gICAgbGluZUNoYXJ0OiAnbGluZS1jaGFydCc7XG4gIH1cbn1cbiJdfQ==","import { AXColorBoxModule } from '@acorex/components/color-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXGridLayoutWidgetComponent } from '@acorex/components/grid-layout-builder';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXToolBarModule } from '@acorex/components/toolbar';\nimport { AXWysiwygModule } from '@acorex/components/wysiwyg';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, HostListener, computed, inject, signal, viewChild, } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/wysiwyg\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@acorex/core/format\";\nimport * as i4 from \"@angular/common\";\nexport class AXPStickyNoteWidgetViewComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.isEditing = signal(false, ...(ngDevMode ? [{ debugName: \"isEditing\" }] : []));\n this.wysiwyg = viewChild('wysiwyg', ...(ngDevMode ? [{ debugName: \"wysiwyg\" }] : []));\n this.value = computed(() => this.getValue(), ...(ngDevMode ? [{ debugName: \"value\" }] : []));\n this.typeValue = signal('', ...(ngDevMode ? [{ debugName: \"typeValue\" }] : []));\n this.date = computed(() => this.options()?.['date'] ?? new Date(), ...(ngDevMode ? [{ debugName: \"date\" }] : []));\n this.bgColor = computed(() => this.options()?.['backgroundColor'] ?? '#FFF8B8', ...(ngDevMode ? [{ debugName: \"bgColor\" }] : []));\n this.color = signal('#333333', ...(ngDevMode ? [{ debugName: \"color\" }] : []));\n this.el = inject(ElementRef);\n // Modern color palette with pastel and vibrant options\n this.colorPresets = [\n '#FFF8B8', // Soft yellow\n '#FFD8E6', // Soft pink\n '#D1F0FF', // Soft blue\n '#E2FFD1', // Soft green\n '#FFE8D1', // Soft orange\n '#F0D1FF', // Soft purple\n '#FFCDD2', // Soft red\n '#D1FFF0', // Soft teal\n '#F5F5F5', // Light gray\n '#FFFFFF', // White\n ];\n }\n // Handle clicks outside the component to cancel editing\n handleClickOutside(event) {\n const clickedInside = this.el.nativeElement.contains(event.target);\n if (!clickedInside && this.isEditing()) {\n this.saveChanges();\n }\n }\n // Handle double-click to activate editing\n activateEdit() {\n //TODO FOCUS WYSIWYG\n this.wysiwyg()?.focus();\n this.isEditing.set(true);\n }\n // Save changes and exit edit mode\n saveChanges() {\n this.setValue(this.typeValue());\n this.isEditing.set(false);\n }\n setColor(color) {\n this.setOptions({ backgroundColor: color });\n }\n valueChange(event) {\n if (event.isUserInteraction) {\n this.typeValue.set(event.value);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPStickyNoteWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPStickyNoteWidgetViewComponent, isStandalone: true, selector: \"ng-component\", host: { listeners: { \"document:click\": \"handleClickOutside($event)\" } }, providers: [\n {\n provide: AXGridLayoutWidgetComponent,\n useExisting: AXPStickyNoteWidgetViewComponent,\n },\n ], viewQueries: [{ propertyName: \"wysiwyg\", first: true, predicate: [\"wysiwyg\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<div\\n class=\\\"sticky-note-container ax-size-full ax-rounded-lg ax-flex ax-flex-col ax-p-4 ax-shadow-md ax-transition-all ax-duration-300 hover:ax-shadow-lg\\\"\\n [style.background-color]=\\\"bgColor()\\\"\\n [style.color]=\\\"color()\\\"\\n [class.ax-shadow-lg]=\\\"isEditing()\\\"\\n [class.ax-scale-[1.02]]=\\\"isEditing()\\\"\\n (dblclick)=\\\"activateEdit()\\\"\\n>\\n <!-- Header with timestamp -->\\n <div class=\\\"ax-flex ax-justify-between ax-items-center ax-mb-3\\\">\\n <div class=\\\"ax-text-xs ax-opacity-70 ax-font-medium ax-flex ax-items-center ax-gap-1\\\">\\n <i class=\\\"fa-regular fa-clock ax-text-[0.65rem]\\\"></i>\\n {{ date() | format: 'datetime' : { format: 'short' } | async }}\\n </div>\\n </div>\\n\\n <!-- Content area -->\\n <div class=\\\"ax-flex-1 ax-overflow-auto\\\">\\n <ax-wysiwyg-container\\n #wysiwyg\\n [class]=\\\"isEditing() ? 'ax-pointer-events-auto ax-cursor-text' : 'ax-pointer-events-none !ax-cursor-pointer'\\\"\\n class=\\\"ax-h-full\\\"\\n placeHolder=\\\"start writing with double click...\\\"\\n look=\\\"none\\\"\\n (onValueChanged)=\\\"valueChange($event)\\\"\\n [ngModel]=\\\"value()\\\"\\n >\\n <ax-wysiwyg-view class=\\\"!ax-size-full ax-border-b-0\\\"></ax-wysiwyg-view>\\n <ax-wysiwyg-toolbar></ax-wysiwyg-toolbar>\\n </ax-wysiwyg-container>\\n </div>\\n\\n <!-- Footer with color selector and save button -->\\n @if (isEditing()) {\\n <div class=\\\"ax-absolute ax-bottom-2 ax-left-2 ax-right-2 ax-flex ax-flex-wrap ax-gap-1 ax-text-xs\\\">\\n <!-- Color selection bar when in edit mode -->\\n <div class=\\\"ax-flex ax-w-full ax-mt-2 ax-border ax-border-gray-200 ax-overflow-hidden ax-rounded-md\\\">\\n @for (preset of colorPresets; track preset) {\\n <div\\n class=\\\"ax-h-6 ax-flex-1 ax-cursor-pointer ax-transition-all ax-duration-200 ax-border-r ax-border-gray-200 last:ax-border-r-0 hover:ax-brightness-95\\\"\\n [style.background-color]=\\\"preset\\\"\\n [class.ax-ring-inset]=\\\"bgColor() === preset\\\"\\n [class.ax-ring-2]=\\\"bgColor() === preset\\\"\\n [class.ax-ring-primary]=\\\"bgColor() === preset\\\"\\n (click)=\\\"setColor(preset)\\\"\\n ></div>\\n }\\n </div>\\n </div>\\n }\\n</div>\\n\", styles: [\":host{display:block;width:100%;height:100%}:host ::ng-deep ax-wysiwyg-view{color:#2e2e2e!important}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AXWysiwygModule }, { kind: \"component\", type: i1.AXWysiwygContainerComponent, selector: \"ax-wysiwyg-container\", inputs: [\"look\", \"readonly\", \"disabled\", \"placeHolder\"], outputs: [\"onValueChanged\"] }, { kind: \"component\", type: i1.AXWysiwygViewComponent, selector: \"ax-wysiwyg-view\" }, { kind: \"component\", type: i1.AXWysiwygToolbarComponent, selector: \"ax-wysiwyg-toolbar\" }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"ngmodule\", type: AXToolBarModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXDateTimeModule }, { kind: \"ngmodule\", type: AXFormatModule }, { kind: \"ngmodule\", type: AXPopoverModule }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXColorBoxModule }, { kind: \"pipe\", type: i3.AXFormatPipe, name: \"format\" }, { kind: \"pipe\", type: i4.AsyncPipe, name: \"async\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPStickyNoteWidgetViewComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, imports: [\n AXWysiwygModule,\n AXDecoratorModule,\n AXToolBarModule,\n FormsModule,\n AXDateTimeModule,\n AXFormatModule,\n AXPopoverModule,\n CommonModule,\n FormsModule,\n AXColorBoxModule,\n ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n {\n provide: AXGridLayoutWidgetComponent,\n useExisting: AXPStickyNoteWidgetViewComponent,\n },\n ], template: \"<div\\n class=\\\"sticky-note-container ax-size-full ax-rounded-lg ax-flex ax-flex-col ax-p-4 ax-shadow-md ax-transition-all ax-duration-300 hover:ax-shadow-lg\\\"\\n [style.background-color]=\\\"bgColor()\\\"\\n [style.color]=\\\"color()\\\"\\n [class.ax-shadow-lg]=\\\"isEditing()\\\"\\n [class.ax-scale-[1.02]]=\\\"isEditing()\\\"\\n (dblclick)=\\\"activateEdit()\\\"\\n>\\n <!-- Header with timestamp -->\\n <div class=\\\"ax-flex ax-justify-between ax-items-center ax-mb-3\\\">\\n <div class=\\\"ax-text-xs ax-opacity-70 ax-font-medium ax-flex ax-items-center ax-gap-1\\\">\\n <i class=\\\"fa-regular fa-clock ax-text-[0.65rem]\\\"></i>\\n {{ date() | format: 'datetime' : { format: 'short' } | async }}\\n </div>\\n </div>\\n\\n <!-- Content area -->\\n <div class=\\\"ax-flex-1 ax-overflow-auto\\\">\\n <ax-wysiwyg-container\\n #wysiwyg\\n [class]=\\\"isEditing() ? 'ax-pointer-events-auto ax-cursor-text' : 'ax-pointer-events-none !ax-cursor-pointer'\\\"\\n class=\\\"ax-h-full\\\"\\n placeHolder=\\\"start writing with double click...\\\"\\n look=\\\"none\\\"\\n (onValueChanged)=\\\"valueChange($event)\\\"\\n [ngModel]=\\\"value()\\\"\\n >\\n <ax-wysiwyg-view class=\\\"!ax-size-full ax-border-b-0\\\"></ax-wysiwyg-view>\\n <ax-wysiwyg-toolbar></ax-wysiwyg-toolbar>\\n </ax-wysiwyg-container>\\n </div>\\n\\n <!-- Footer with color selector and save button -->\\n @if (isEditing()) {\\n <div class=\\\"ax-absolute ax-bottom-2 ax-left-2 ax-right-2 ax-flex ax-flex-wrap ax-gap-1 ax-text-xs\\\">\\n <!-- Color selection bar when in edit mode -->\\n <div class=\\\"ax-flex ax-w-full ax-mt-2 ax-border ax-border-gray-200 ax-overflow-hidden ax-rounded-md\\\">\\n @for (preset of colorPresets; track preset) {\\n <div\\n class=\\\"ax-h-6 ax-flex-1 ax-cursor-pointer ax-transition-all ax-duration-200 ax-border-r ax-border-gray-200 last:ax-border-r-0 hover:ax-brightness-95\\\"\\n [style.background-color]=\\\"preset\\\"\\n [class.ax-ring-inset]=\\\"bgColor() === preset\\\"\\n [class.ax-ring-2]=\\\"bgColor() === preset\\\"\\n [class.ax-ring-primary]=\\\"bgColor() === preset\\\"\\n (click)=\\\"setColor(preset)\\\"\\n ></div>\\n }\\n </div>\\n </div>\\n }\\n</div>\\n\", styles: [\":host{display:block;width:100%;height:100%}:host ::ng-deep ax-wysiwyg-view{color:#2e2e2e!important}\\n\"] }]\n }], propDecorators: { wysiwyg: [{ type: i0.ViewChild, args: ['wysiwyg', { isSignal: true }] }], handleClickOutside: [{\n type: HostListener,\n args: ['document:click', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LW5vdGUtd2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NoYXJlZC93aWRnZXRzL3N0aWNreS1ub3RlL3N0aWNreS1ub3RlLXdpZGdldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zaGFyZWQvd2lkZ2V0cy9zdGlja3ktbm90ZS9zdGlja3ktbm90ZS13aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQStCLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFFWixRQUFRLEVBQ1Is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QVcsOFZBQ1gsZ0JBQWdCLDhCQUNoQixjQUFjLDhCQUNkLGVBQWUsOEJBQ2YsWUFBWSw4QkFFWixnQkFBZ0I7OzRGQVVQLGdDQUFnQztrQkF4QjVDLFNBQVM7aUNBR0ksSUFBSSxXQUNQO3dCQUNQLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGdCQUFnQjtxQkFDakIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDJCQUEyQjs0QkFDcEMsV0FBVyxrQ0FBa0M7eUJBQzlDO3FCQUNGO3FFQUl3RCxTQUFTO3NCQXdCakUsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhDb2xvckJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb2xvci1ib3gnO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEdyaWRMYXlvdXRXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZ3JpZC1sYXlvdXQtYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBBWFRvb2xCYXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbGJhcic7XG5pbXBvcnQgeyBBWFd5c2l3eWdDb250YWluZXJDb21wb25lbnQsIEFYV3lzaXd5Z01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy93eXNpd3lnJztcbmltcG9ydCB7IEFYRGF0ZVRpbWVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZS10aW1lJztcbmltcG9ydCB7IEFYRm9ybWF0TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIE9uSW5pdCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vc3RpY2t5LW5vdGUtd2lkZ2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RpY2t5LW5vdGUtd2lkZ2V0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBBWFd5c2l3eWdNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhUb29sQmFyTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEFYRGF0ZVRpbWVNb2R1bGUsXG4gICAgQVhGb3JtYXRNb2R1bGUsXG4gICAgQVhQb3BvdmVyTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWENvbG9yQm94TW9kdWxlLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhHcmlkTGF5b3V0V2lkZ2V0Q29tcG9uZW50LFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYUFN0aWNreU5vdGVXaWRnZXRWaWV3Q29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFN0aWNreU5vdGVXaWRnZXRWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ8c3RyaW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3RlY3RlZCBpc0VkaXRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHd5c2l3eWcgPSB2aWV3Q2hpbGQ8QVhXeXNpd3lnQ29udGFpbmVyQ29tcG9uZW50Pignd3lzaXd5ZycpO1xuICBwcm90ZWN0ZWQgdmFsdWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmdldFZhbHVlKCkpO1xuICBwcm90ZWN0ZWQgdHlwZVZhbHVlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuICBwcm90ZWN0ZWQgZGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpPy5bJ2RhdGUnXSA/PyBuZXcgRGF0ZSgpKTtcbiAgcHJvdGVjdGVkIGJnQ29sb3IgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKT8uWydiYWNrZ3JvdW5kQ29sb3InXSA/PyAnI0ZGRjhCOCcpO1xuICBwcm90ZWN0ZWQgY29sb3IgPSBzaWduYWwoJyMzMzMzMzMnKTtcblxuICBwcml2YXRlIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIC8vIE1vZGVybiBjb2xvciBwYWxldHRlIHdpdGggcGFzdGVsIGFuZCB2aWJyYW50IG9wdGlvbnNcbiAgcHJvdGVjdGVkIGNvbG9yUHJlc2V0czogc3RyaW5nW10gPSBbXG4gICAgJyNGRkY4QjgnLCAvLyBTb2Z0IHllbGxvd1xuICAgICcjRkZEOEU2JywgLy8gU29mdCBwaW5rXG4gICAgJyNEMUYwRkYnLCAvLyBTb2Z0IGJsdWVcbiAgICAnI0UyRkZEMScsIC8vIFNvZnQgZ3JlZW5cbiAgICAnI0ZGRThEMScsIC8vIFNvZnQgb3JhbmdlXG4gICAgJyNGMEQxRkYnLCAvLyBTb2Z0IHB1cnBsZVxuICAgICcjRkZDREQyJywgLy8gU29mdCByZWRcbiAgICAnI0QxRkZGMCcsIC8vIFNvZnQgdGVhbFxuICAgICcjRjVGNUY1JywgLy8gTGlnaHQgZ3JheVxuICAgICcjRkZGRkZGJywgLy8gV2hpdGVcbiAgXTtcblxuICAvLyBIYW5kbGUgY2xpY2tzIG91dHNpZGUgdGhlIGNvbXBvbmVudCB0byBjYW5jZWwgZWRpdGluZ1xuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUNsaWNrT3V0c2lkZShldmVudDogTW91c2VFdmVudCkge1xuICAgIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSAodGhpcy5lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSk7XG4gICAgaWYgKCFjbGlja2VkSW5zaWRlICYmIHRoaXMuaXNFZGl0aW5nKCkpIHtcbiAgICAgIHRoaXMuc2F2ZUNoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICAvLyBIYW5kbGUgZG91YmxlLWNsaWNrIHRvIGFjdGl2YXRlIGVkaXRpbmdcbiAgcHJvdGVjdGVkIGFjdGl2YXRlRWRpdCgpIHtcbiAgICAvL1RPRE8gRk9DVVMgV1lTSVdZR1xuICAgIHRoaXMud3lzaXd5ZygpPy5mb2N1cygpO1xuICAgIHRoaXMuaXNFZGl0aW5nLnNldCh0cnVlKTtcbiAgfVxuXG4gIC8vIFNhdmUgY2hhbmdlcyBhbmQgZXhpdCBlZGl0IG1vZGVcbiAgcHJvdGVjdGVkIHNhdmVDaGFuZ2VzKCkge1xuICAgIHRoaXMuc2V0VmFsdWUodGhpcy50eXBlVmFsdWUoKSk7XG4gICAgdGhpcy5pc0VkaXRpbmcuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRDb2xvcihjb2xvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRPcHRpb25zKHsgYmFja2dyb3VuZENvbG9yOiBjb2xvciB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCB2YWx1ZUNoYW5nZShldmVudDogQVhWYWx1ZUNoYW5nZWRFdmVudDxhbnk+KSB7XG4gICAgaWYgKGV2ZW50LmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLnR5cGVWYWx1ZS5zZXQoZXZlbnQudmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInN0aWNreS1ub3RlLWNvbnRhaW5lciBheC1zaXplLWZ1bGwgYXgtcm91bmRlZC1sZyBheC1mbGV4IGF4LWZsZXgtY29sIGF4LXAtNCBheC1zaGFkb3ctbWQgYXgtdHJhbnNpdGlvbi1hbGwgYXgtZHVyYXRpb24tMzAwIGhvdmVyOmF4LXNoYWRvdy1sZ1wiXG4gIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJnQ29sb3IoKVwiXG4gIFtzdHlsZS5jb2xvcl09XCJjb2xvcigpXCJcbiAgW2NsYXNzLmF4LXNoYWRvdy1sZ109XCJpc0VkaXRpbmcoKVwiXG4gIFtjbGFzcy5heC1zY2FsZS1bMS4wMl1dPVwiaXNFZGl0aW5nKClcIlxuICAoZGJsY2xpY2spPVwiYWN0aXZhdGVFZGl0KClcIlxuPlxuICA8IS0tIEhlYWRlciB3aXRoIHRpbWVzdGFtcCAtLT5cbiAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWl0ZW1zLWNlbnRlciBheC1tYi0zXCI+XG4gICAgPGRpdiBjbGFzcz1cImF4LXRleHQteHMgYXgtb3BhY2l0eS03MCBheC1mb250LW1lZGl1bSBheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtMVwiPlxuICAgICAgPGkgY2xhc3M9XCJmYS1yZWd1bGFyIGZhLWNsb2NrIGF4LXRleHQtWzAuNjVyZW1dXCI+PC9pPlxuICAgICAge3sgZGF0ZSgpIHwgZm9ybWF0OiAnZGF0ZXRpbWUnIDogeyBmb3JtYXQ6ICdzaG9ydCcgfSB8IGFzeW5jIH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQ29udGVudCBhcmVhIC0tPlxuICA8ZGl2IGNsYXNzPVwiYXgtZmxleC0xIGF4LW92ZXJmbG93LWF1dG9cIj5cbiAgICA8YXgtd3lzaXd5Zy1jb250YWluZXJcbiAgICAgICN3eXNpd3lnXG4gICAgICBbY2xhc3NdPVwiaXNFZGl0aW5nKCkgPyAnYXgtcG9pbnRlci1ldmVudHMtYXV0byBheC1jdXJzb3ItdGV4dCcgOiAnYXgtcG9pbnRlci1ldmVudHMtbm9uZSAhYXgtY3Vyc29yLXBvaW50ZXInXCJcbiAgICAgIGNsYXNzPVwiYXgtaC1mdWxsXCJcbiAgICAgIHBsYWNlSG9sZGVyPVwic3RhcnQgd3JpdGluZyB3aXRoIGRvdWJsZSBjbGljay4uLlwiXG4gICAgICBsb29rPVwibm9uZVwiXG4gICAgICAob25WYWx1ZUNoYW5nZWQpPVwidmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbbmdNb2RlbF09XCJ2YWx1ZSgpXCJcbiAgICA+XG4gICAgICA8YXgtd3lzaXd5Zy12aWV3IGNsYXNzPVwiIWF4LXNpemUtZnVsbCBheC1ib3JkZXItYi0wXCI+PC9heC13eXNpd3lnLXZpZXc+XG4gICAgICA8YXgtd3lzaXd5Zy10b29sYmFyPjwvYXgtd3lzaXd5Zy10b29sYmFyPlxuICAgIDwvYXgtd3lzaXd5Zy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRm9vdGVyIHdpdGggY29sb3Igc2VsZWN0b3IgYW5kIHNhdmUgYnV0dG9uIC0tPlxuICBAaWYgKGlzRWRpdGluZygpKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LWFic29sdXRlIGF4LWJvdHRvbS0yIGF4LWxlZnQtMiBheC1yaWdodC0yIGF4LWZsZXggYXgtZmxleC13cmFwIGF4LWdhcC0xIGF4LXRleHQteHNcIj5cbiAgICAgIDwhLS0gQ29sb3Igc2VsZWN0aW9uIGJhciB3aGVuIGluIGVkaXQgbW9kZSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LXctZnVsbCBheC1tdC0yIGF4LWJvcmRlciBheC1ib3JkZXItZ3JheS0yMDAgYXgtb3ZlcmZsb3ctaGlkZGVuIGF4LXJvdW5kZWQtbWRcIj5cbiAgICAgICAgQGZvciAocHJlc2V0IG9mIGNvbG9yUHJlc2V0czsgdHJhY2sgcHJlc2V0KSB7XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJheC1oLTYgYXgtZmxleC0xIGF4LWN1cnNvci1wb2ludGVyIGF4LXRyYW5zaXRpb24tYWxsIGF4LWR1cmF0aW9uLTIwMCBheC1ib3JkZXItciBheC1ib3JkZXItZ3JheS0yMDAgbGFzdDpheC1ib3JkZXItci0wIGhvdmVyOmF4LWJyaWdodG5lc3MtOTVcIlxuICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwicHJlc2V0XCJcbiAgICAgICAgICAgIFtjbGFzcy5heC1yaW5nLWluc2V0XT1cImJnQ29sb3IoKSA9PT0gcHJlc2V0XCJcbiAgICAgICAgICAgIFtjbGFzcy5heC1yaW5nLTJdPVwiYmdDb2xvcigpID09PSBwcmVzZXRcIlxuICAgICAgICAgICAgW2NsYXNzLmF4LXJpbmctcHJpbWFyeV09XCJiZ0NvbG9yKCkgPT09IHByZXNldFwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2V0Q29sb3IocHJlc2V0KVwiXG4gICAgICAgICAgPjwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=","import { AXPWidgetGroupEnum } from '@acorex/platform/layout/widget-core';\nimport { AXP_DATA_PATH_PROPERTY, plainTextDefaultProperty } from '@acorex/platform/layout/widgets';\nimport { AXP_BG_COLOR_PROPERTY } from '@acorex/platform/layout/widgets';\nimport { AXP_WIDGETS_UTILITY_CATEGORY } from '../chart.type';\nexport const AXPStickyNoteWidget = {\n name: 'sticky-note',\n title: 'Sticky Note Widget',\n categories: AXP_WIDGETS_UTILITY_CATEGORY,\n groups: [AXPWidgetGroupEnum.DashboardWidget],\n type: 'dashboard',\n icon: 'fa-light fa-sticky-note',\n properties: [\n AXP_DATA_PATH_PROPERTY,\n {\n ...AXP_BG_COLOR_PROPERTY,\n title: '@dashboard:widgets.sticky-note.background-color',\n },\n {\n ...plainTextDefaultProperty(),\n title: '@dashboard:widgets.sticky-note.note-text',\n },\n ],\n components: {\n view: {\n component: () => import('./sticky-note-widget.component').then((c) => c.AXPStickyNoteWidgetViewComponent),\n },\n },\n meta: {\n dimensions: {\n width: 2,\n height: 3,\n minWidth: 2,\n minHeight: 2,\n maxWidth: 4,\n maxHeight: 4,\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LW5vdGUtd2lkZ2V0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NoYXJlZC93aWRnZXRzL3N0aWNreS1ub3RlL3N0aWNreS1ub3RlLXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBb0I7SUFDbEQsSUFBSSxFQUFFLGFBQWE7SUFDbkIsS0FBSyxFQUFFLG9CQUFvQjtJQUMzQixVQUFVLEVBQUUsNEJBQTRCO0lBQ3hDLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQztJQUM1QyxJQUFJLEVBQUUsV0FBVztJQUNqQixJQUFJLEVBQUUseUJBQXlCO0lBQy9CLFVBQVUsRUFBRTtRQUNWLHNCQUFzQjtRQUN0QjtZQUNFLEdBQUcscUJBQXFCO1lBQ3hCLEtBQUssRUFBRSxpREFBaUQ7U0FDekQ7UUFDRDtZQUNFLEdBQUcsd0JBQXdCLEVBQUU7WUFDN0IsS0FBSyxFQUFFLDBDQUEwQztTQUNsRDtLQUNGO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDO1NBQzFHO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUU7WUFDVixLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sRUFBRSxDQUFDO1lBQ1QsUUFBUSxFQUFFLENBQUM7WUFDWCxTQUFTLEVBQUUsQ0FBQztZQUNaLFFBQVEsRUFBRSxDQUFDO1lBQ1gsU0FBUyxFQUFFLENBQUM7U0FDYjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFdpZGdldENvbmZpZywgQVhQV2lkZ2V0R3JvdXBFbnVtIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQVhQX0RBVEFfUEFUSF9QUk9QRVJUWSwgcGxhaW5UZXh0RGVmYXVsdFByb3BlcnR5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0cyc7XG5pbXBvcnQgeyBBWFBfQkdfQ09MT1JfUFJPUEVSVFkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXRzJztcbmltcG9ydCB7IEFYUF9XSURHRVRTX1VUSUxJVFlfQ0FURUdPUlkgfSBmcm9tICcuLi9jaGFydC50eXBlJztcblxuZXhwb3J0IGNvbnN0IEFYUFN0aWNreU5vdGVXaWRnZXQ6IEFYUFdpZGdldENvbmZpZyA9IHtcbiAgbmFtZTogJ3N0aWNreS1ub3RlJyxcbiAgdGl0bGU6ICdTdGlja3kgTm90ZSBXaWRnZXQnLFxuICBjYXRlZ29yaWVzOiBBWFBfV0lER0VUU19VVElMSVRZX0NBVEVHT1JZLFxuICBncm91cHM6IFtBWFBXaWRnZXRHcm91cEVudW0uRGFzaGJvYXJkV2lkZ2V0XSxcbiAgdHlwZTogJ2Rhc2hib2FyZCcsXG4gIGljb246ICdmYS1saWdodCBmYS1zdGlja3ktbm90ZScsXG4gIHByb3BlcnRpZXM6IFtcbiAgICBBWFBfREFUQV9QQVRIX1BST1BFUlRZLFxuICAgIHtcbiAgICAgIC4uLkFYUF9CR19DT0xPUl9QUk9QRVJUWSxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLnN0aWNreS1ub3RlLmJhY2tncm91bmQtY29sb3InLFxuICAgIH0sXG4gICAge1xuICAgICAgLi4ucGxhaW5UZXh0RGVmYXVsdFByb3BlcnR5KCksXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy5zdGlja3ktbm90ZS5ub3RlLXRleHQnLFxuICAgIH0sXG4gIF0sXG4gIGNvbXBvbmVudHM6IHtcbiAgICB2aWV3OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9zdGlja3ktbm90ZS13aWRnZXQuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBTdGlja3lOb3RlV2lkZ2V0Vmlld0NvbXBvbmVudCksXG4gICAgfSxcbiAgfSxcbiAgbWV0YToge1xuICAgIGRpbWVuc2lvbnM6IHtcbiAgICAgIHdpZHRoOiAyLFxuICAgICAgaGVpZ2h0OiAzLFxuICAgICAgbWluV2lkdGg6IDIsXG4gICAgICBtaW5IZWlnaHQ6IDIsXG4gICAgICBtYXhXaWR0aDogNCxcbiAgICAgIG1heEhlaWdodDogNCxcbiAgICB9LFxuICB9LFxufTtcblxuZGVjbGFyZSBtb2R1bGUgJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJyB7XG4gIGludGVyZmFjZSBBWFBXaWRnZXRUeXBlc01hcCB7XG4gICAgc3RpY2t5Tm90ZTogJ3N0aWNreS1ub3RlJztcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Abstract Weather API Service\n * Base class that defines the interface and common functionality\n * for weather data providers\n */\nexport class AXPWeatherApiAbstract {\n constructor() {\n /** Weather condition definitions mapping */\n this.weatherConditions = {\n sunny: {\n id: 'sunny',\n name: 'Sunny',\n icon: 'fa-solid fa-sun',\n svgIcon: 'day.svg',\n color: '#ff9d00',\n },\n clearNight: {\n id: 'clearNight',\n name: 'Clear Night',\n icon: 'fa-solid fa-moon',\n svgIcon: 'night.svg',\n color: '#5d639e',\n },\n partlyCloudy: {\n id: 'partlyCloudy',\n name: 'Partly Cloudy',\n icon: 'fa-solid fa-cloud-sun',\n svgIcon: 'cloudy-day-3.svg',\n color: '#6ba4e8',\n },\n partlyCloudyNight: {\n id: 'partlyCloudyNight',\n name: 'Partly Cloudy Night',\n icon: 'fa-solid fa-cloud-moon',\n svgIcon: 'cloudy-night-3.svg',\n color: '#5d639e',\n },\n cloudy: {\n id: 'cloudy',\n name: 'Cloudy',\n icon: 'fa-solid fa-cloud',\n svgIcon: 'cloudy.svg',\n color: '#72869d',\n },\n rain: {\n id: 'rain',\n name: 'Rain',\n icon: 'fa-solid fa-cloud-rain',\n svgIcon: 'rainy-6.svg',\n color: '#3a74ad',\n },\n showers: {\n id: 'showers',\n name: 'Showers',\n icon: 'fa-solid fa-cloud-showers-heavy',\n svgIcon: 'rainy-7.svg',\n color: '#2c5d8c',\n },\n thunderstorm: {\n id: 'thunderstorm',\n name: 'Thunderstorm',\n icon: 'fa-solid fa-bolt-lightning',\n svgIcon: 'thunder.svg',\n color: '#8834af',\n },\n snow: {\n id: 'snow',\n name: 'Snow',\n icon: 'fa-solid fa-snowflake',\n svgIcon: 'snowy-6.svg',\n color: '#68a9cd',\n },\n mist: {\n id: 'mist',\n name: 'Mist',\n icon: 'fa-solid fa-smog',\n svgIcon: 'cloudy.svg',\n color: '#94a3b8',\n },\n };\n /** Day of week mapping */\n this.dayNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n }\n /**\n * Get weather condition info by ID\n * @param id Condition ID\n * @returns Weather condition info or default if not found\n */\n getCondition(id) {\n // Normalize condition ID by removing spaces and converting to lowercase\n const normalizedId = id.toLowerCase().replace(/\\s+/g, '');\n // Direct match first\n if (this.weatherConditions[normalizedId]) {\n return this.weatherConditions[normalizedId];\n }\n // Check for partial matches or common variants\n if (normalizedId.includes('partly') && normalizedId.includes('cloud')) {\n return this.weatherConditions['partlyCloudy'];\n }\n if (normalizedId.includes('cloud')) {\n return this.weatherConditions['cloudy'];\n }\n if (normalizedId.includes('sun')) {\n return this.weatherConditions['sunny'];\n }\n if (normalizedId.includes('rain')) {\n return this.weatherConditions['rain'];\n }\n if (normalizedId.includes('snow')) {\n return this.weatherConditions['snow'];\n }\n // If no match found, return default unknown condition\n return {\n id: 'unknown',\n name: 'Unknown',\n icon: 'fa-solid fa-question',\n svgIcon: 'weather.svg',\n color: '#999999',\n };\n }\n /**\n * Parse location string into city and display components\n * @param location Location query string\n * @returns Parsed location parts\n */\n parseLocation(location) {\n if (!location || location.trim() === '') {\n return { city: 'New York', country: 'USA', display: 'New York' };\n }\n const city = location.trim();\n return { city, country: '', display: city };\n }\n /**\n * Format location name for display\n * @param locationParts Parsed location parts\n * @returns Formatted location name\n */\n formatLocationName(locationParts) {\n return locationParts.city || 'Unknown Location';\n }\n /**\n * Map API condition text to our internal condition IDs\n * @param conditionText Condition text from API\n * @returns Internal condition ID\n */\n mapApiConditionToId(conditionText) {\n const text = conditionText.toLowerCase();\n // Match WeatherAPI.com condition text\n // Reference: https://www.weatherapi.com/docs/#weather-icons\n if (text.includes('sunny') || text.includes('clear')) {\n return 'sunny';\n }\n if (text === 'partly cloudy') {\n return 'partlyCloudy';\n }\n if (text.includes('cloudy') || text.includes('overcast')) {\n return 'cloudy';\n }\n if (text.includes('rain') || text.includes('drizzle') || text.includes('shower')) {\n return 'rain';\n }\n if (text.includes('thunder') || text.includes('lightning')) {\n return 'thunderstorm';\n }\n if (text.includes('snow') || text.includes('sleet') || text.includes('blizzard')) {\n return 'snow';\n }\n if (text.includes('mist') || text.includes('fog')) {\n return 'mist';\n }\n // Default to partly cloudy if we don't have a specific mapping\n return 'partlyCloudy';\n }\n /**\n * Generate random integer between min and max (inclusive)\n * Helper method for implementations\n * @param min Minimum value\n * @param max Maximum value\n * @returns Random integer\n */\n getRandomInt(min, max) {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWeatherApiAbstract, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWeatherApiAbstract }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWeatherApiAbstract, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VhdGhlci1hcGkuYWJzdHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zaGFyZWQvd2lkZ2V0cy93ZWF0aGVyL3dlYXRoZXItc2VydmljZXMvd2VhdGhlci1hcGkuYWJzdHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUErSDNDOzs7O0dBSUc7QUFFSCxNQUFNLE9BQWdCLHFCQUFxQjtJQUQzQztRQUVFLDRDQUE0QztRQUNsQyxzQkFBaUIsR0FBK0M7WUFDeEUsS0FBSyxFQUFFO2dCQUNMLEVBQUUsRUFBRSxPQUFPO2dCQUNYLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixLQUFLLEVBQUUsU0FBUzthQUNqQjtZQUNELFVBQVUsRUFBRTtnQkFDVixFQUFFLEVBQUUsWUFBWTtnQkFDaEIsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixLQUFLLEVBQUUsU0FBUzthQUNqQjtZQUNELFlBQVksRUFBRTtnQkFDWixFQUFFLEVBQUUsY0FBYztnQkFDbEIsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLEtBQUssRUFBRSxTQUFTO2FBQ2pCO1lBQ0QsaUJBQWlCLEVBQUU7Z0JBQ2pCLEVBQUUsRUFBRSxtQkFBbUI7Z0JBQ3ZCLElBQUksRUFBRSxxQkFBcUI7Z0JBQzNCLElBQUksRUFBRSx3QkFBd0I7Z0JBQzlCLE9BQU8sRUFBRSxvQkFBb0I7Z0JBQzdCLEtBQUssRUFBRSxTQUFTO2FBQ2pC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UUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDakYsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDM0QsT0FBTyxjQUFjLENBQUM7UUFDeEIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNqRixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQsK0RBQStEO1FBQy9ELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxZQUFZLENBQUMsR0FBVyxFQUFFLEdBQVc7UUFDN0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDM0QsQ0FBQzsrR0FwTm1CLHFCQUFxQjttSEFBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUQxQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFdlYXRoZXIgbG9jYXRpb24gaW5mb3JtYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBXZWF0aGVyTG9jYXRpb24ge1xuICAvKiogQ2l0eSBuYW1lICovXG4gIGNpdHk6IHN0cmluZztcbiAgLyoqIENvdW50cnkgbmFtZSAqL1xuICBjb3VudHJ5OiBzdHJpbmc7XG4gIC8qKiBGb3JtYXR0ZWQgbG9jYXRpb24gZGlzcGxheSBuYW1lICovXG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogV2VhdGhlciBjdXJyZW50IGNvbmRpdGlvbiBpbmZvcm1hdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdlYXRoZXJDb25kaXRpb24ge1xuICAvKiogQ29uZGl0aW9uIHRleHQgKi9cbiAgY29uZGl0aW9uOiBzdHJpbmc7XG4gIC8qKiBDb25kaXRpb24gY29kZSAqL1xuICBjb25kaXRpb25Db2RlOiBudW1iZXI7XG4gIC8qKiBJY29uIFVSTCAqL1xuICBpY29uVXJsOiBzdHJpbmc7XG4gIC8qKiBUZW1wZXJhdHVyZSBpbiBDZWxzaXVzICovXG4gIHRlbXBDOiBudW1iZXI7XG4gIC8qKiBUZW1wZXJhdHVyZSBpbiBGYWhyZW5oZWl0ICovXG4gIHRlbXBGOiBudW1iZXI7XG4gIC8qKiBGZWVscyBsaWtlIHRlbXBlcmF0dXJlIGluIENlbHNpdXMgKi9cbiAgZmVlbHNMaWtlQzogbnVtYmVyO1xuICAvKiogRmVlbHMgbGlrZSB0ZW1wZXJhdHVyZSBpbiBGYWhyZW5oZWl0ICovXG4gIGZlZWxzTGlrZUY6IG51bWJlcjtcbiAgLyoqIEh1bWlkaXR5IHBlcmNlbnRhZ2UgKi9cbiAgaHVtaWRpdHk6IG51bWJlcjtcbiAgLyoqIFdpbmQgc3BlZWQgaW4ga20vaCAqL1xuICB3aW5kS3BoOiBudW1iZXI7XG4gIC8qKiBXaW5kIHNwZWVkIGluIG1waCAqL1xuICB3aW5kTXBoOiBudW1iZXI7XG4gIC8qKiBXaW5kIGRpcmVjdGlvbiAqL1xuICB3aW5kRGlyZWN0aW9uOiBzdHJpbmc7XG4gIC8qKiBVViBpbmRleCAqL1xuICB1djogbnVtYmVyO1xuICAvKiogTGFzdCB1cGRhdGVkIHRpbWVzdGFtcCAqL1xuICBsYXN0VXBkYXRlZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFdlYXRoZXIgZm9yZWNhc3QgZGF0YSBmb3IgYSBzaW5nbGUgZGF5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2VhdGhlckZvcmVjYXN0RGF5IHtcbiAgLyoqIERhdGUgc3RyaW5nICovXG4gIGRhdGU6IHN0cmluZztcbiAgLyoqIERheSBuYW1lIChlLmcuLCBcIk1vblwiLCBcIlR1ZVwiKSAqL1xuICBkYXk6IHN0cmluZztcbiAgLyoqIFdlYXRoZXIgY29uZGl0aW9uIGNvZGUgKi9cbiAgY29uZGl0aW9uOiBzdHJpbmc7XG4gIC8qKiBXZWF0aGVyIGljb24gVVJMICovXG4gIGljb25Vcmw6IHN0cmluZztcbiAgLyoqIE1heCB0ZW1wZXJhdHVyZSBpbiBDZWxzaXVzICovXG4gIG1heFRlbXBDOiBudW1iZXI7XG4gIC8qKiBNYXggdGVtcGVyYXR1cmUgaW4gRmFocmVuaGVpdCAqL1xuICBtYXhUZW1wRjogbnVtYmVyO1xuICAvKiogTWluIHRlbXBlcmF0dXJlIGluIENlbHNpdXMgKi9cbiAgbWluVGVtcEM6IG51bWJlcjtcbiAgLyoqIE1pbiB0ZW1wZXJhdHVyZSBpbiBGYWhyZW5oZWl0ICovXG4gIG1pblRlbXBGOiBudW1iZXI7XG4gIC8qKiBIb3VybHkgZm9yZWNhc3QgZGF0YSAqL1xuICBob3VyOiBBWFBXZWF0aGVySG91cltdO1xufVxuXG4vKipcbiAqIFdlYXRoZXIgaG91cmx5IGZvcmVjYXN0IGRhdGFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBXZWF0aGVySG91ciB7XG4gIC8qKiBUaW1lIHN0cmluZyAqL1xuICB0aW1lOiBzdHJpbmc7XG4gIC8qKiBXZWF0aGVyIGNvbmRpdGlvbiBjb2RlICovXG4gIGNvbmRpdGlvbjogc3RyaW5nO1xuICAvKiogV2VhdGhlciBpY29uIFVSTCAqL1xuICBpY29uVXJsOiBzdHJpbmc7XG4gIC8qKiBIb3VybHkgdGVtcGVyYXR1cmUgaW4gQ2Vsc2l1cyAqL1xuICB0ZW1wQzogbnVtYmVyO1xuICAvKiogSG91cmx5IHRlbXBlcmF0dXJlIGluIEZhaHJlbmhlaXQgKi9cbiAgdGVtcEY6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDb21wbGV0ZSB3ZWF0aGVyIGRhdGEgcmVzcG9uc2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBXZWF0aGVyRGF0YSB7XG4gIC8qKiBMb2NhdGlvbiBpbmZvcm1hdGlvbiAqL1xuICBsb2NhdGlvbjogQVhQV2VhdGhlckxvY2F0aW9uO1xuICAvKiogQ3VycmVudCB3ZWF0aGVyIGRhdGEgKi9cbiAgY3VycmVudDogQVhQV2VhdGhlckNvbmRpdGlvbjtcbiAgLyoqIEZvcmVjYXN0IGRhdGEgKi9cbiAgZm9yZWNhc3Q6IEFYUFdlYXRoZXJGb3JlY2FzdERheVtdO1xufVxuXG4vKipcbiAqIFdlYXRoZXIgQVBJIHJlcXVlc3Qgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdlYXRoZXJSZXF1ZXN0T3B0aW9ucyB7XG4gIC8qKiBUZW1wZXJhdHVyZSB1bml0ICovXG4gIHRlbXBVbml0Pzogc3RyaW5nO1xuICAvKiogTG9jYXRpb24gcXVlcnkgKi9cbiAgbG9jYXRpb24/OiBzdHJpbmc7XG4gIC8qKiBVc2UgbW9jayBkYXRhICovXG4gIHVzZU1vY2tEYXRhPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBXZWF0aGVyIFVJIGNvbmRpdGlvbiBkaXNwbGF5IGluZm9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBXZWF0aGVyQ29uZGl0aW9uRGlzcGxheSB7XG4gIC8qKiBDb25kaXRpb24gdW5pcXVlIElEICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBEaXNwbGF5IG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogSWNvbiBjbGFzcyAoRm9udCBBd2Vzb21lKSAqL1xuICBpY29uOiBzdHJpbmc7XG4gIC8qKiBTVkcgaWNvbiBuYW1lICovXG4gIHN2Z0ljb246IHN0cmluZztcbiAgLyoqIEFzc29jaWF0ZWQgY29sb3IgKi9cbiAgY29sb3I6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBYnN0cmFjdCBXZWF0aGVyIEFQSSBTZXJ2aWNlXG4gKiBCYXNlIGNsYXNzIHRoYXQgZGVmaW5lcyB0aGUgaW50ZXJmYWNlIGFuZCBjb21tb24gZnVuY3Rpb25hbGl0eVxuICogZm9yIHdlYXRoZXIgZGF0YSBwcm92aWRlcnNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUFdlYXRoZXJBcGlBYnN0cmFjdCB7XG4gIC8qKiBXZWF0aGVyIGNvbmRpdGlvbiBkZWZpbml0aW9ucyBtYXBwaW5nICovXG4gIHByb3RlY3RlZCB3ZWF0aGVyQ29uZGl0aW9uczogUmVjb3JkPHN0cmluZywgQVhQV2VhdGhlckNvbmRpdGlvbkRpc3BsYXk+ID0ge1xuICAgIHN1bm55OiB7XG4gICAgICBpZDogJ3N1bm55JyxcbiAgICAgIG5hbWU6ICdTdW5ueScsXG4gICAgICBpY29uOiAnZmEtc29saWQgZmEtc3VuJyxcbiAgICAgIHN2Z0ljb246ICdkYXkuc3ZnJyxcbiAgICAgIGNvbG9yOiAnI2ZmOWQwMCcsXG4gICAgfSxcbiAgICBjbGVhck5pZ2h0OiB7XG4gICAgICBpZDogJ2NsZWFyTmlnaHQnLFxuICAgICAgbmFtZTogJ0NsZWFyIE5pZ2h0JyxcbiAgICAgIGljb246ICdmYS1zb2xpZCBmYS1tb29uJyxcbiAgICAgIHN2Z0ljb246ICduaWdodC5zdmcnLFxuICAgICAgY29sb3I6ICcjNWQ2MzllJyxcbiAgICB9LFxuICAgIHBhcnRseUNsb3VkeToge1xuICAgICAgaWQ6ICdwYXJ0bHlDbG91ZHknLFxuICAgICAgbmFtZTogJ1BhcnRseSBDbG91ZHknLFxuICAgICAgaWNvbjogJ2ZhLXNvbGlkIGZhLWNsb3VkLXN1bicsXG4gICAgICBzdmdJY29uOiAnY2xvdWR5LWRheS0zLnN2ZycsXG4gICAgICBjb2xvcjogJyM2YmE0ZTgnLFxuICAgIH0sXG4gICAgcGFydGx5Q2xvdWR5TmlnaHQ6IHtcbiAgICAgIGlkOiAncGFydGx5Q2xvdWR5TmlnaHQnLFxuICAgICAgbmFtZTogJ1BhcnRseSBDbG91ZHkgTmlnaHQnLFxuICAgICAgaWNvbjogJ2ZhLXNvbGlkIGZhLWNsb3VkLW1vb24nLFxuICAgICAgc3ZnSWNvbjogJ2Nsb3VkeS1uaWdodC0zLnN2ZycsXG4gICAgICBjb2xvcjogJyM1ZDYzOWUnLFxuICAgIH0sXG4gICAgY2xvdWR5OiB7XG4gICAgICBpZDogJ2Nsb3VkeScsXG4gICAgICBuYW1lOiAnQ2xvdWR5JyxcbiAgICAgIGljb246ICdmYS1zb2xpZCBmYS1jbG91ZCcsXG4gICAgICBzdmdJY29uOiAnY2xvdWR5LnN2ZycsXG4gICAgICBjb2xvcjogJyM3Mjg2OWQnLFxuICAgIH0sXG4gICAgcmFpbjoge1xuICAgICAgaWQ6ICdyYWluJyxcbiAgICAgIG5hbWU6ICdSYWluJyxcbiAgICAgIGljb246ICdmYS1zb2xpZCBmYS1jbG91ZC1yYWluJyxcbiAgICAgIHN2Z0ljb246ICdyYWlueS02LnN2ZycsXG4gICAgICBjb2xvcjogJyMzYTc0YWQnLFxuICAgIH0sXG4gICAgc2hvd2Vyczoge1xuICAgICAgaWQ6ICdzaG93ZXJzJyxcbiAgICAgIG5hbWU6ICdTaG93ZXJzJyxcbiAgICAgIGljb246ICdmYS1zb2xpZCBmYS1jbG91ZC1zaG93ZXJzLWhlYXZ5JyxcbiAgICAgIHN2Z0ljb246ICdyYWlueS03LnN2ZycsXG4gICAgICBjb2xvcjogJyMyYzVkOGMnLFxuICAgIH0sXG4gICAgdGh1bmRlcnN0b3JtOiB7XG4gICAgICBpZDogJ3RodW5kZXJzdG9ybScsXG4gICAgICBuYW1lOiAnVGh1bmRlcnN0b3JtJyxcbiAgICAgIGljb246ICdmYS1zb2xpZCBmYS1ib2x0LWxpZ2h0bmluZycsXG4gICAgICBzdmdJY29uOiAndGh1bmRlci5zdmcnLFxuICAgICAgY29sb3I6ICcjODgzNGFmJyxcbiAgICB9LFxuICAgIHNub3c6IHtcbiAgICAgIGlkOiAnc25vdycsXG4gICAgICBuYW1lOiAnU25vdycsXG4gICAgICBpY29uOiAnZmEtc29saWQgZmEtc25vd2ZsYWtlJyxcbiAgICAgIHN2Z0ljb246ICdzbm93eS02LnN2ZycsXG4gICAgICBjb2xvcjogJyM2OGE5Y2QnLFxuICAgIH0sXG4gICAgbWlzdDoge1xuICAgICAgaWQ6ICdtaXN0JyxcbiAgICAgIG5hbWU6ICdNaXN0JyxcbiAgICAgIGljb246ICdmYS1zb2xpZCBmYS1zbW9nJyxcbiAgICAgIHN2Z0ljb246ICdjbG91ZHkuc3ZnJyxcbiAgICAgIGNvbG9yOiAnIzk0YTNiOCcsXG4gICAgfSxcbiAgfTtcblxuICAvKiogRGF5IG9mIHdlZWsgbWFwcGluZyAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF5TmFtZXMgPSBbJ1N1bicsICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCddO1xuXG4gIC8qKlxuICAgKiBHZXQgd2VhdGhlciBjb25kaXRpb24gaW5mbyBieSBJRFxuICAgKiBAcGFyYW0gaWQgQ29uZGl0aW9uIElEXG4gICAqIEByZXR1cm5zIFdlYXRoZXIgY29uZGl0aW9uIGluZm8gb3IgZGVmYXVsdCBpZiBub3QgZm91bmRcbiAgICovXG4gIHB1YmxpYyBnZXRDb25kaXRpb24oaWQ6IHN0cmluZyk6IEFYUFdlYXRoZXJDb25kaXRpb25EaXNwbGF5IHtcbiAgICAvLyBOb3JtYWxpemUgY29uZGl0aW9uIElEIGJ5IHJlbW92aW5nIHNwYWNlcyBhbmQgY29udmVydGluZyB0byBsb3dlcmNhc2VcbiAgICBjb25zdCBub3JtYWxpemVkSWQgPSBpZC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccysvZywgJycpO1xuXG4gICAgLy8gRGlyZWN0IG1hdGNoIGZpcnN0XG4gICAgaWYgKHRoaXMud2VhdGhlckNvbmRpdGlvbnNbbm9ybWFsaXplZElkXSkge1xuICAgICAgcmV0dXJuIHRoaXMud2VhdGhlckNvbmRpdGlvbnNbbm9ybWFsaXplZElkXTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgcGFydGlhbCBtYXRjaGVzIG9yIGNvbW1vbiB2YXJpYW50c1xuICAgIGlmIChub3JtYWxpemVkSWQuaW5jbHVkZXMoJ3BhcnRseScpICYmIG5vcm1hbGl6ZWRJZC5pbmNsdWRlcygnY2xvdWQnKSkge1xuICAgICAgcmV0dXJuIHRoaXMud2VhdGhlckNvbmRpdGlvbnNbJ3BhcnRseUNsb3VkeSddO1xuICAgIH1cblxuICAgIGlmIChub3JtYWxpemVkSWQuaW5jbHVkZXMoJ2Nsb3VkJykpIHtcbiAgICAgIHJldHVybiB0aGlzLndlYXRoZXJDb25kaXRpb25zWydjbG91ZHknXTtcbiAgICB9XG5cbiAgICBpZiAobm9ybWFsaXplZElkLmluY2x1ZGVzKCdzdW4nKSkge1xuICAgICAgcmV0dXJuIHRoaXMud2VhdGhlckNvbmRpdGlvbnNbJ3N1bm55J107XG4gICAgfVxuXG4gICAgaWYgKG5vcm1hbGl6ZWRJZC5pbmNsdWRlcygncmFpbicpKSB7XG4gICAgICByZXR1cm4gdGhpcy53ZWF0aGVyQ29uZGl0aW9uc1sncmFpbiddO1xuICAgIH1cblxuICAgIGlmIChub3JtYWxpemVkSWQuaW5jbHVkZXMoJ3Nub3cnKSkge1xuICAgICAgcmV0dXJuIHRoaXMud2VhdGhlckNvbmRpdGlvbnNbJ3Nub3cnXTtcbiAgICB9XG5cbiAgICAvLyBJZiBubyBtYXRjaCBmb3VuZCwgcmV0dXJuIGRlZmF1bHQgdW5rbm93biBjb25kaXRpb25cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6ICd1bmtub3duJyxcbiAgICAgIG5hbWU6ICdVbmtub3duJyxcbiAgICAgIGljb246ICdmYS1zb2xpZCBmYS1xdWVzdGlvbicsXG4gICAgICBzdmdJY29uOiAnd2VhdGhlci5zdmcnLFxuICAgICAgY29sb3I6ICcjOTk5OTk5JyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjdXJyZW50IHdlYXRoZXIgZGF0YSBmb3IgZ2l2ZW4gbG9jYXRpb25cbiAgICogQHBhcmFtIG9wdGlvbnMgV2VhdGhlciByZXF1ZXN0IG9wdGlvbnNcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSB3aXRoIHdlYXRoZXIgZGF0YVxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0V2VhdGhlcihvcHRpb25zOiBBWFBXZWF0aGVyUmVxdWVzdE9wdGlvbnMpOiBPYnNlcnZhYmxlPEFYUFdlYXRoZXJEYXRhPjtcblxuICAvKipcbiAgICogR2V0IHdlYXRoZXIgZm9yZWNhc3QgZm9yIGEgbG9jYXRpb25cbiAgICogQHBhcmFtIG9wdGlvbnMgV2VhdGhlciByZXF1ZXN0IG9wdGlvbnMgd2l0aCBkYXlzXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2Ygd2VhdGhlciBkYXRhIHdpdGggZm9yZWNhc3RcbiAgICovXG4gIGFic3RyYWN0IGdldEZvcmVjYXN0KG9wdGlvbnM6IEFYUFdlYXRoZXJSZXF1ZXN0T3B0aW9ucyAmIHsgZGF5cz86IG51bWJlciB9KTogT2JzZXJ2YWJsZTxBWFBXZWF0aGVyRGF0YT47XG5cbiAgLyoqXG4gICAqIFBhcnNlIGxvY2F0aW9uIHN0cmluZyBpbnRvIGNpdHkgYW5kIGRpc3BsYXkgY29tcG9uZW50c1xuICAgKiBAcGFyYW0gbG9jYXRpb24gTG9jYXRpb24gcXVlcnkgc3RyaW5nXG4gICAqIEByZXR1cm5zIFBhcnNlZCBsb2NhdGlvbiBwYXJ0c1xuICAgKi9cbiAgcHJvdGVjdGVkIHBhcnNlTG9jYXRpb24obG9jYXRpb246IHN0cmluZyk6IHsgY2l0eTogc3RyaW5nOyBjb3VudHJ5OiBzdHJpbmc7IGRpc3BsYXk6IHN0cmluZyB9IHtcbiAgICBpZiAoIWxvY2F0aW9uIHx8IGxvY2F0aW9uLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHJldHVybiB7IGNpdHk6ICdOZXcgWW9yaycsIGNvdW50cnk6ICdVU0EnLCBkaXNwbGF5OiAnTmV3IFlvcmsnIH07XG4gICAgfVxuXG4gICAgY29uc3QgY2l0eSA9IGxvY2F0aW9uLnRyaW0oKTtcbiAgICByZXR1cm4geyBjaXR5LCBjb3VudHJ5OiAnJywgZGlzcGxheTogY2l0eSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCBsb2NhdGlvbiBuYW1lIGZvciBkaXNwbGF5XG4gICAqIEBwYXJhbSBsb2NhdGlvblBhcnRzIFBhcnNlZCBsb2NhdGlvbiBwYXJ0c1xuICAgKiBAcmV0dXJucyBGb3JtYXR0ZWQgbG9jYXRpb24gbmFtZVxuICAgKi9cbiAgcHJvdGVjdGVkIGZvcm1hdExvY2F0aW9uTmFtZShsb2NhdGlvblBhcnRzOiB7IGNpdHk6IHN0cmluZzsgY291bnRyeTogc3RyaW5nOyBkaXNwbGF5OiBzdHJpbmcgfSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGxvY2F0aW9uUGFydHMuY2l0eSB8fCAnVW5rbm93biBMb2NhdGlvbic7XG4gIH1cblxuICAvKipcbiAgICogTWFwIEFQSSBjb25kaXRpb24gdGV4dCB0byBvdXIgaW50ZXJuYWwgY29uZGl0aW9uIElEc1xuICAgKiBAcGFyYW0gY29uZGl0aW9uVGV4dCBDb25kaXRpb24gdGV4dCBmcm9tIEFQSVxuICAgKiBAcmV0dXJucyBJbnRlcm5hbCBjb25kaXRpb24gSURcbiAgICovXG4gIHByb3RlY3RlZCBtYXBBcGlDb25kaXRpb25Ub0lkKGNvbmRpdGlvblRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdGV4dCA9IGNvbmRpdGlvblRleHQudG9Mb3dlckNhc2UoKTtcblxuICAgIC8vIE1hdGNoIFdlYXRoZXJBUEkuY29tIGNvbmRpdGlvbiB0ZXh0XG4gICAgLy8gUmVmZXJlbmNlOiBodHRwczovL3d3dy53ZWF0aGVyYXBpLmNvbS9kb2NzLyN3ZWF0aGVyLWljb25zXG5cbiAgICBpZiAodGV4dC5pbmNsdWRlcygnc3VubnknKSB8fCB0ZXh0LmluY2x1ZGVzKCdjbGVhcicpKSB7XG4gICAgICByZXR1cm4gJ3N1bm55JztcbiAgICB9XG5cbiAgICBpZiAodGV4dCA9PT0gJ3BhcnRseSBjbG91ZHknKSB7XG4gICAgICByZXR1cm4gJ3BhcnRseUNsb3VkeSc7XG4gICAgfVxuXG4gICAgaWYgKHRleHQuaW5jbHVkZXMoJ2Nsb3VkeScpIHx8IHRleHQuaW5jbHVkZXMoJ292ZXJjYXN0JykpIHtcbiAgICAgIHJldHVybiAnY2xvdWR5JztcbiAgICB9XG5cbiAgICBpZiAodGV4dC5pbmNsdWRlcygncmFpbicpIHx8IHRleHQuaW5jbHVkZXMoJ2RyaXp6bGUnKSB8fCB0ZXh0LmluY2x1ZGVzKCdzaG93ZXInKSkge1xuICAgICAgcmV0dXJuICdyYWluJztcbiAgICB9XG5cbiAgICBpZiAodGV4dC5pbmNsdWRlcygndGh1bmRlcicpIHx8IHRleHQuaW5jbHVkZXMoJ2xpZ2h0bmluZycpKSB7XG4gICAgICByZXR1cm4gJ3RodW5kZXJzdG9ybSc7XG4gICAgfVxuXG4gICAgaWYgKHRleHQuaW5jbHVkZXMoJ3Nub3cnKSB8fCB0ZXh0LmluY2x1ZGVzKCdzbGVldCcpIHx8IHRleHQuaW5jbHVkZXMoJ2JsaXp6YXJkJykpIHtcbiAgICAgIHJldHVybiAnc25vdyc7XG4gICAgfVxuXG4gICAgaWYgKHRleHQuaW5jbHVkZXMoJ21pc3QnKSB8fCB0ZXh0LmluY2x1ZGVzKCdmb2cnKSkge1xuICAgICAgcmV0dXJuICdtaXN0JztcbiAgICB9XG5cbiAgICAvLyBEZWZhdWx0IHRvIHBhcnRseSBjbG91ZHkgaWYgd2UgZG9uJ3QgaGF2ZSBhIHNwZWNpZmljIG1hcHBpbmdcbiAgICByZXR1cm4gJ3BhcnRseUNsb3VkeSc7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgcmFuZG9tIGludGVnZXIgYmV0d2VlbiBtaW4gYW5kIG1heCAoaW5jbHVzaXZlKVxuICAgKiBIZWxwZXIgbWV0aG9kIGZvciBpbXBsZW1lbnRhdGlvbnNcbiAgICogQHBhcmFtIG1pbiBNaW5pbXVtIHZhbHVlXG4gICAqIEBwYXJhbSBtYXggTWF4aW11bSB2YWx1ZVxuICAgKiBAcmV0dXJucyBSYW5kb20gaW50ZWdlclxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFJhbmRvbUludChtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluICsgMSkpICsgbWluO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgQVBJIGtleSBmb3IgdGhlIHdlYXRoZXIgc2VydmljZVxuICAgKiBUaGlzIGlzIG9ubHkgdXNlZCBieSB0aGUgcmVhbCBBUEkgaW1wbGVtZW50YXRpb24sXG4gICAqIGJ1dCBpcyBkZWZpbmVkIGluIHRoZSBhYnN0cmFjdCBjbGFzcyBmb3IgY29uc2lzdGVuY3lcbiAgICogQHBhcmFtIGtleSBUaGUgQVBJIGtleVxuICAgKi9cbiAgYWJzdHJhY3Qgc2V0QXBpS2V5KGtleTogc3RyaW5nKTogdm9pZDtcbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { Observable, catchError, map, throwError } from 'rxjs';\nimport { AXPWeatherApiAbstract } from './weather-api.abstract';\nimport * as i0 from \"@angular/core\";\n/**\n * Mock Weather API Service\n * Provides simulated weather data for development and testing\n */\nexport class AXPWeatherApiMockService extends AXPWeatherApiAbstract {\n constructor() {\n super(...arguments);\n // Mock configuration\n this.mockDelay = 500;\n }\n /**\n * Get current weather data for given location\n * @param options Weather request options\n * @returns Observable with weather data\n */\n getWeather(options) {\n const locationParts = this.parseLocation(options.location || '');\n const displayName = this.formatLocationName(locationParts);\n return this.getMockWeatherData(locationParts.city, options).pipe(map((mockData) => ({\n ...mockData,\n location: {\n city: locationParts.city,\n country: '',\n displayName: displayName,\n },\n })));\n }\n /**\n * Get weather forecast for a location\n * @param options Weather request options with days\n * @returns Observable of weather data with forecast\n */\n getForecast(options) {\n const days = options.days || 5;\n return this.getMockForecast(options.location || '', days, options);\n }\n /**\n * Get mock weather data for demo/development\n * @param location Location query\n * @param options Request options\n * @returns Observable of mock weather data\n */\n getMockWeatherData(location, options) {\n return new Observable((observer) => {\n setTimeout(() => {\n try {\n const locationParts = this.parseLocation(location);\n const tempUnit = options?.tempUnit || '°C';\n const isCelsius = tempUnit === '°C';\n // Generate more realistic weather data based on location and current date\n const now = new Date();\n const month = now.getMonth(); // 0-11\n // Seasonally appropriate temperature range\n let minRange = 15;\n let maxRange = 25;\n // Northern hemisphere seasonal adjustments\n if (month >= 11 || month <= 1) {\n // Winter\n minRange = -5;\n maxRange = 10;\n }\n else if (month >= 2 && month <= 4) {\n // Spring\n minRange = 10;\n maxRange = 20;\n }\n else if (month >= 5 && month <= 7) {\n // Summer\n minRange = 20;\n maxRange = 35;\n }\n else if (month >= 8 && month <= 10) {\n // Fall/Autumn\n minRange = 10;\n maxRange = 25;\n }\n // Generate current temperature - more likely to be in the middle of the range\n const tempC = Math.round(minRange + (this.getRandomInt(4, 8) / 10) * (maxRange - minRange));\n const tempF = Math.round((tempC * 9) / 5 + 32);\n const humidity = this.getRandomInt(30, 90);\n const windKph = this.getRandomInt(5, 30);\n const windMph = Math.round(windKph * 0.621371);\n // Temperature-based conditions with randomization\n let conditionId = 'partlyCloudy';\n if (tempC > 25)\n conditionId = 'sunny';\n else if (tempC < 10)\n conditionId = 'cloudy';\n if (this.getRandomInt(1, 10) > 7)\n conditionId = 'rain';\n observer.next({\n location: {\n city: locationParts.city,\n country: '',\n displayName: this.formatLocationName(locationParts),\n },\n current: {\n condition: conditionId,\n conditionCode: 0,\n iconUrl: '', // Would be set from API\n tempC: tempC,\n tempF: tempF,\n feelsLikeC: tempC + this.getRandomInt(-3, 2),\n feelsLikeF: tempF + this.getRandomInt(-5, 3),\n humidity: humidity,\n windKph: windKph,\n windMph: windMph,\n windDirection: ['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'][this.getRandomInt(0, 7)],\n uv: this.getRandomInt(0, 10),\n lastUpdated: new Date().toISOString(),\n },\n forecast: [],\n });\n observer.complete();\n }\n catch (error) {\n observer.error(error);\n }\n }, this.mockDelay);\n }).pipe(catchError((error) => throwError(() => new Error(`Failed to get weather data: ${error.message}`))));\n }\n /**\n * Get mock forecast data for demo/development\n * @param location Location query\n * @param days Number of forecast days\n * @param options Request options\n * @returns Observable of mock weather data with forecast\n */\n getMockForecast(location, days = 5, options) {\n return this.getMockWeatherData(location, options).pipe(map((data) => {\n const currentCondition = data.current.condition;\n const currentTemp = data.current.tempC;\n // Use the current weather as a base for the forecast trend\n const forecast = Array.from({ length: days }, (_, i) => {\n // Create forecast date for each day (starting from tomorrow)\n const forecastDate = new Date();\n forecastDate.setDate(new Date().getDate() + i + 1);\n const dateStr = forecastDate.toISOString().split('T')[0];\n const dayName = this.dayNames[forecastDate.getDay()];\n // Generate condition with some continuity from current weather\n // Weather tends to be similar for a few days with gradual changes\n let conditionId;\n if (i === 0) {\n // Tomorrow's weather has 60% chance of being similar to today\n conditionId =\n this.getRandomInt(1, 10) <= 6\n ? currentCondition\n : ['sunny', 'partlyCloudy', 'cloudy', 'rain', 'snow'][this.getRandomInt(0, 4)];\n }\n else {\n // Subsequent days have 70% chance of being similar to previous day\n const previousCondition = forecast[i - 1]?.condition || currentCondition;\n conditionId =\n this.getRandomInt(1, 10) <= 7\n ? previousCondition\n : ['sunny', 'partlyCloudy', 'cloudy', 'rain', 'snow'][this.getRandomInt(0, 4)];\n }\n // Generate temperatures with realistic variance\n // Max is typically higher than current temperature\n // Min is typically lower than current temperature\n const tempVariance = this.getRandomInt(-3, 3); // Small day-to-day change\n const baseMaxC = currentTemp + this.getRandomInt(0, 5); // Max is higher than current\n const maxTempC = baseMaxC + tempVariance;\n const minTempC = maxTempC - this.getRandomInt(5, 10); // Min is lower than max\n const maxTempF = Math.round((maxTempC * 9) / 5 + 32);\n const minTempF = Math.round((minTempC * 9) / 5 + 32);\n return {\n date: dateStr,\n day: dayName,\n condition: conditionId,\n iconUrl: '', // Would be set from API\n maxTempC,\n maxTempF,\n minTempC,\n minTempF,\n hour: [],\n };\n });\n return { ...data, forecast };\n }));\n }\n /**\n * Set the API key for the weather service\n * No-op in the mock implementation\n * @param key The API key\n */\n setApiKey(key) {\n // No-op for mock service\n console.log('API key setting is ignored in mock weather service');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWeatherApiMockService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWeatherApiMockService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWeatherApiMockService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VhdGhlci1hcGkubW9jay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Rhc2hib2FyZC1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvc2hhcmVkL3dpZGdldHMvd2VhdGhlci93ZWF0aGVyLXNlcnZpY2VzL3dlYXRoZXItYXBpLm1vY2suc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUE0QyxNQUFNLHdCQUF3QixDQUFDOztBQUV6Rzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEscUJBQXFCO0lBRG5FOztRQUVFLHFCQUFxQjtRQUNKLGNBQVMsR0FBRyxHQUFHLENBQUM7S0EyTWxDO0lBek1DOzs7O09BSUc7SUFDTSxVQUFVLENBQUMsT0FBaUM7UUFDbkQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUUzRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDOUQsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pCLEdBQUcsUUFBUTtZQUNYLFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsYUFBYSxDQUFDLElBQUk7Z0JBQ3hCLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFdBQVcsRUFBRSxX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d0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCBtYXAsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUFdlYXRoZXJBcGlBYnN0cmFjdCwgQVhQV2VhdGhlckRhdGEsIEFYUFdlYXRoZXJSZXF1ZXN0T3B0aW9ucyB9IGZyb20gJy4vd2VhdGhlci1hcGkuYWJzdHJhY3QnO1xuXG4vKipcbiAqIE1vY2sgV2VhdGhlciBBUEkgU2VydmljZVxuICogUHJvdmlkZXMgc2ltdWxhdGVkIHdlYXRoZXIgZGF0YSBmb3IgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmdcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUFdlYXRoZXJBcGlNb2NrU2VydmljZSBleHRlbmRzIEFYUFdlYXRoZXJBcGlBYnN0cmFjdCB7XG4gIC8vIE1vY2sgY29uZmlndXJhdGlvblxuICBwcml2YXRlIHJlYWRvbmx5IG1vY2tEZWxheSA9IDUwMDtcblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgd2VhdGhlciBkYXRhIGZvciBnaXZlbiBsb2NhdGlvblxuICAgKiBAcGFyYW0gb3B0aW9ucyBXZWF0aGVyIHJlcXVlc3Qgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHdpdGggd2VhdGhlciBkYXRhXG4gICAqL1xuICBvdmVycmlkZSBnZXRXZWF0aGVyKG9wdGlvbnM6IEFYUFdlYXRoZXJSZXF1ZXN0T3B0aW9ucyk6IE9ic2VydmFibGU8QVhQV2VhdGhlckRhdGE+IHtcbiAgICBjb25zdCBsb2NhdGlvblBhcnRzID0gdGhpcy5wYXJzZUxvY2F0aW9uKG9wdGlvbnMubG9jYXRpb24gfHwgJycpO1xuICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gdGhpcy5mb3JtYXRMb2NhdGlvbk5hbWUobG9jYXRpb25QYXJ0cyk7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRNb2NrV2VhdGhlckRhdGEobG9jYXRpb25QYXJ0cy5jaXR5LCBvcHRpb25zKS5waXBlKFxuICAgICAgbWFwKChtb2NrRGF0YSkgPT4gKHtcbiAgICAgICAgLi4ubW9ja0RhdGEsXG4gICAgICAgIGxvY2F0aW9uOiB7XG4gICAgICAgICAgY2l0eTogbG9jYXRpb25QYXJ0cy5jaXR5LFxuICAgICAgICAgIGNvdW50cnk6ICcnLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiBkaXNwbGF5TmFtZSxcbiAgICAgICAgfSxcbiAgICAgIH0pKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB3ZWF0aGVyIGZvcmVjYXN0IGZvciBhIGxvY2F0aW9uXG4gICAqIEBwYXJhbSBvcHRpb25zIFdlYXRoZXIgcmVxdWVzdCBvcHRpb25zIHdpdGggZGF5c1xuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHdlYXRoZXIgZGF0YSB3aXRoIGZvcmVjYXN0XG4gICAqL1xuICBvdmVycmlkZSBnZXRGb3JlY2FzdChvcHRpb25zOiBBWFBXZWF0aGVyUmVxdWVzdE9wdGlvbnMgJiB7IGRheXM/OiBudW1iZXIgfSk6IE9ic2VydmFibGU8QVhQV2VhdGhlckRhdGE+IHtcbiAgICBjb25zdCBkYXlzID0gb3B0aW9ucy5kYXlzIHx8IDU7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TW9ja0ZvcmVjYXN0KG9wdGlvbnMubG9jYXRpb24gfHwgJycsIGRheXMsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBtb2NrIHdlYXRoZXIgZGF0YSBmb3IgZGVtby9kZXZlbG9wbWVudFxuICAgKiBAcGFyYW0gbG9jYXRpb24gTG9jYXRpb24gcXVlcnlcbiAgICogQHBhcmFtIG9wdGlvbnMgUmVxdWVzdCBvcHRpb25zXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgbW9jayB3ZWF0aGVyIGRhdGFcbiAgICovXG4gIHByaXZhdGUgZ2V0TW9ja1dlYXRoZXJEYXRhKGxvY2F0aW9uOiBzdHJpbmcsIG9wdGlvbnM/OiBBWFBXZWF0aGVyUmVxdWVzdE9wdGlvbnMpOiBPYnNlcnZhYmxlPEFYUFdlYXRoZXJEYXRhPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPEFYUFdlYXRoZXJEYXRhPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGxvY2F0aW9uUGFydHMgPSB0aGlzLnBhcnNlTG9jYXRpb24obG9jYXRpb24pO1xuICAgICAgICAgIGNvbnN0IHRlbXBVbml0ID0gb3B0aW9ucz8udGVtcFVuaXQgfHwgJ8KwQyc7XG4gICAgICAgICAgY29uc3QgaXNDZWxzaXVzID0gdGVtcFVuaXQgPT09ICfCsEMnO1xuXG4gICAgICAgICAgLy8gR2VuZXJhdGUgbW9yZSByZWFsaXN0aWMgd2VhdGhlciBkYXRhIGJhc2VkIG9uIGxvY2F0aW9uIGFuZCBjdXJyZW50IGRhdGVcbiAgICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgIGNvbnN0IG1vbnRoID0gbm93LmdldE1vbnRoKCk7IC8vIDAtMTFcblxuICAgICAgICAgIC8vIFNlYXNvbmFsbHkgYXBwcm9wcmlhdGUgdGVtcGVyYXR1cmUgcmFuZ2VcbiAgICAgICAgICBsZXQgbWluUmFuZ2UgPSAxNTtcbiAgICAgICAgICBsZXQgbWF4UmFuZ2UgPSAyNTtcblxuICAgICAgICAgIC8vIE5vcnRoZXJuIGhlbWlzcGhlcmUgc2Vhc29uYWwgYWRqdXN0bWVudHNcbiAgICAgICAgICBpZiAobW9udGggPj0gMTEgfHwgbW9udGggPD0gMSkge1xuICAgICAgICAgICAgLy8gV2ludGVyXG4gICAgICAgICAgICBtaW5SYW5nZSA9IC01O1xuICAgICAgICAgICAgbWF4UmFuZ2UgPSAxMDtcbiAgICAgICAgICB9IGVsc2UgaWYgKG1vbnRoID49IDIgJiYgbW9udGggPD0gNCkge1xuICAgICAgICAgICAgLy8gU3ByaW5nXG4gICAgICAgICAgICBtaW5SYW5nZSA9IDEwO1xuICAgICAgICAgICAgbWF4UmFuZ2UgPSAyMDtcbiAgICAgICAgICB9IGVsc2UgaWYgKG1vbnRoID49IDUgJiYgbW9udGggPD0gNykge1xuICAgICAgICAgICAgLy8gU3VtbWVyXG4gICAgICAgICAgICBtaW5SYW5nZSA9IDIwO1xuICAgICAgICAgICAgbWF4UmFuZ2UgPSAzNTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG1vbnRoID49IDggJiYgbW9udGggPD0gMTApIHtcbiAgICAgICAgICAgIC8vIEZhbGwvQXV0dW1uXG4gICAgICAgICAgICBtaW5SYW5nZSA9IDEwO1xuICAgICAgICAgICAgbWF4UmFuZ2UgPSAyNTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBHZW5lcmF0ZSBjdXJyZW50IHRlbXBlcmF0dXJlIC0gbW9yZSBsaWtlbHkgdG8gYmUgaW4gdGhlIG1pZGRsZSBvZiB0aGUgcmFuZ2VcbiAgICAgICAgICBjb25zdCB0ZW1wQyA9IE1hdGgucm91bmQobWluUmFuZ2UgKyAodGhpcy5nZXRSYW5kb21JbnQoNCwgOCkgLyAxMCkgKiAobWF4UmFuZ2UgLSBtaW5SYW5nZSkpO1xuICAgICAgICAgIGNvbnN0IHRlbXBGID0gTWF0aC5yb3VuZCgodGVtcEMgKiA5KSAvIDUgKyAzMik7XG5cbiAgICAgICAgICBjb25zdCBodW1pZGl0eSA9IHRoaXMuZ2V0UmFuZG9tSW50KDMwLCA5MCk7XG4gICAgICAgICAgY29uc3Qgd2luZEtwaCA9IHRoaXMuZ2V0UmFuZG9tSW50KDUsIDMwKTtcbiAgICAgICAgICBjb25zdCB3aW5kTXBoID0gTWF0aC5yb3VuZCh3aW5kS3BoICogMC42MjEzNzEpO1xuXG4gICAgICAgICAgLy8gVGVtcGVyYXR1cmUtYmFzZWQgY29uZGl0aW9ucyB3aXRoIHJhbmRvbWl6YXRpb25cbiAgICAgICAgICBsZXQgY29uZGl0aW9uSWQgPSAncGFydGx5Q2xvdWR5JztcbiAgICAgICAgICBpZiAodGVtcEMgPiAyNSkgY29uZGl0aW9uSWQgPSAnc3VubnknO1xuICAgICAgICAgIGVsc2UgaWYgKHRlbXBDIDwgMTApIGNvbmRpdGlvbklkID0gJ2Nsb3VkeSc7XG4gICAgICAgICAgaWYgKHRoaXMuZ2V0UmFuZG9tSW50KDEsIDEwKSA+IDcpIGNvbmRpdGlvbklkID0gJ3JhaW4nO1xuXG4gICAgICAgICAgb2JzZXJ2ZXIubmV4dCh7XG4gICAgICAgICAgICBsb2NhdGlvbjoge1xuICAgICAgICAgICAgICBjaXR5OiBsb2NhdGlvblBhcnRzLmNpdHksXG4gICAgICAgICAgICAgIGNvdW50cnk6ICcnLFxuICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogdGhpcy5mb3JtYXRMb2NhdGlvbk5hbWUobG9jYXRpb25QYXJ0cyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY3VycmVudDoge1xuICAgICAgICAgICAgICBjb25kaXRpb246IGNvbmRpdGlvbklkLFxuICAgICAgICAgICAgICBjb25kaXRpb25Db2RlOiAwLFxuICAgICAgICAgICAgICBpY29uVXJsOiAnJywgLy8gV291bGQgYmUgc2V0IGZyb20gQVBJXG4gICAgICAgICAgICAgIHRlbXBDOiB0ZW1wQyxcbiAgICAgICAgICAgICAgdGVtcEY6IHRlbXBGLFxuICAgICAgICAgICAgICBmZWVsc0xpa2VDOiB0ZW1wQyArIHRoaXMuZ2V0UmFuZG9tSW50KC0zLCAyKSxcbiAgICAgICAgICAgICAgZmVlbHNMaWtlRjogdGVtcEYgKyB0aGlzLmdldFJhbmRvbUludCgtNSwgMyksXG4gICAgICAgICAgICAgIGh1bWlkaXR5OiBodW1pZGl0eSxcbiAgICAgICAgICAgICAgd2luZEtwaDogd2luZEtwaCxcbiAgICAgICAgICAgICAgd2luZE1waDogd2luZE1waCxcbiAgICAgICAgICAgICAgd2luZERpcmVjdGlvbjogWydOJywgJ05FJywgJ0UnLCAnU0UnLCAnUycsICdTVycsICdXJywgJ05XJ11bdGhpcy5nZXRSYW5kb21JbnQoMCwgNyldLFxuICAgICAgICAgICAgICB1djogdGhpcy5nZXRSYW5kb21JbnQoMCwgMTApLFxuICAgICAgICAgICAgICBsYXN0VXBkYXRlZDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZvcmVjYXN0OiBbXSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9LCB0aGlzLm1vY2tEZWxheSk7XG4gICAgfSkucGlwZShjYXRjaEVycm9yKChlcnJvcikgPT4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoYEZhaWxlZCB0byBnZXQgd2VhdGhlciBkYXRhOiAke2Vycm9yLm1lc3NhZ2V9YCkpKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG1vY2sgZm9yZWNhc3QgZGF0YSBmb3IgZGVtby9kZXZlbG9wbWVudFxuICAgKiBAcGFyYW0gbG9jYXRpb24gTG9jYXRpb24gcXVlcnlcbiAgICogQHBhcmFtIGRheXMgTnVtYmVyIG9mIGZvcmVjYXN0IGRheXNcbiAgICogQHBhcmFtIG9wdGlvbnMgUmVxdWVzdCBvcHRpb25zXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgbW9jayB3ZWF0aGVyIGRhdGEgd2l0aCBmb3JlY2FzdFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRNb2NrRm9yZWNhc3QoXG4gICAgbG9jYXRpb246IHN0cmluZyxcbiAgICBkYXlzOiBudW1iZXIgPSA1LFxuICAgIG9wdGlvbnM/OiBBWFBXZWF0aGVyUmVxdWVzdE9wdGlvbnMsXG4gICk6IE9ic2VydmFibGU8QVhQV2VhdGhlckRhdGE+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRNb2NrV2VhdGhlckRhdGEobG9jYXRpb24sIG9wdGlvbnMpLnBpcGUoXG4gICAgICBtYXAoKGRhdGEpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudENvbmRpdGlvbiA9IGRhdGEuY3VycmVudC5jb25kaXRpb247XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUZW1wID0gZGF0YS5jdXJyZW50LnRlbXBDO1xuXG4gICAgICAgIC8vIFVzZSB0aGUgY3VycmVudCB3ZWF0aGVyIGFzIGEgYmFzZSBmb3IgdGhlIGZvcmVjYXN0IHRyZW5kXG4gICAgICAgIGNvbnN0IGZvcmVjYXN0ID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogZGF5cyB9LCAoXywgaSkgPT4ge1xuICAgICAgICAgIC8vIENyZWF0ZSBmb3JlY2FzdCBkYXRlIGZvciBlYWNoIGRheSAoc3RhcnRpbmcgZnJvbSB0b21vcnJvdylcbiAgICAgICAgICBjb25zdCBmb3JlY2FzdERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgIGZvcmVjYXN0RGF0ZS5zZXREYXRlKG5ldyBEYXRlKCkuZ2V0RGF0ZSgpICsgaSArIDEpO1xuXG4gICAgICAgICAgY29uc3QgZGF0ZVN0ciA9IGZvcmVjYXN0RGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07XG4gICAgICAgICAgY29uc3QgZGF5TmFtZSA9IHRoaXMuZGF5TmFtZXNbZm9yZWNhc3REYXRlLmdldERheSgpXTtcblxuICAgICAgICAgIC8vIEdlbmVyYXRlIGNvbmRpdGlvbiB3aXRoIHNvbWUgY29udGludWl0eSBmcm9tIGN1cnJlbnQgd2VhdGhlclxuICAgICAgICAgIC8vIFdlYXRoZXIgdGVuZHMgdG8gYmUgc2ltaWxhciBmb3IgYSBmZXcgZGF5cyB3aXRoIGdyYWR1YWwgY2hhbmdlc1xuICAgICAgICAgIGxldCBjb25kaXRpb25JZDogc3RyaW5nO1xuXG4gICAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICAgIC8vIFRvbW9ycm93J3Mgd2VhdGhlciBoYXMgNjAlIGNoYW5jZSBvZiBiZWluZyBzaW1pbGFyIHRvIHRvZGF5XG4gICAgICAgICAgICBjb25kaXRpb25JZCA9XG4gICAgICAgICAgICAgIHRoaXMuZ2V0UmFuZG9tSW50KDEsIDEwKSA8PSA2XG4gICAgICAgICAgICAgICAgPyBjdXJyZW50Q29uZGl0aW9uXG4gICAgICAgICAgICAgICAgOiBbJ3N1bm55JywgJ3BhcnRseUNsb3VkeScsICdjbG91ZHknLCAncmFpbicsICdzbm93J11bdGhpcy5nZXRSYW5kb21JbnQoMCwgNCldO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBTdWJzZXF1ZW50IGRheXMgaGF2ZSA3MCUgY2hhbmNlIG9mIGJlaW5nIHNpbWlsYXIgdG8gcHJldmlvdXMgZGF5XG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c0NvbmRpdGlvbiA9IGZvcmVjYXN0W2kgLSAxXT8uY29uZGl0aW9uIHx8IGN1cnJlbnRDb25kaXRpb247XG4gICAgICAgICAgICBjb25kaXRpb25JZCA9XG4gICAgICAgICAgICAgIHRoaXMuZ2V0UmFuZG9tSW50KDEsIDEwKSA8PSA3XG4gICAgICAgICAgICAgICAgPyBwcmV2aW91c0NvbmRpdGlvblxuICAgICAgICAgICAgICAgIDogWydzdW5ueScsICdwYXJ0bHlDbG91ZHknLCAnY2xvdWR5JywgJ3JhaW4nLCAnc25vdyddW3RoaXMuZ2V0UmFuZG9tSW50KDAsIDQpXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBHZW5lcmF0ZSB0ZW1wZXJhdHVyZXMgd2l0aCByZWFsaXN0aWMgdmFyaWFuY2VcbiAgICAgICAgICAvLyBNYXggaXMgdHlwaWNhbGx5IGhpZ2hlciB0aGFuIGN1cnJlbnQgdGVtcGVyYXR1cmVcbiAgICAgICAgICAvLyBNaW4gaXMgdHlwaWNhbGx5IGxvd2VyIHRoYW4gY3VycmVudCB0ZW1wZXJhdHVyZVxuICAgICAgICAgIGNvbnN0IHRlbXBWYXJpYW5jZSA9IHRoaXMuZ2V0UmFuZG9tSW50KC0zLCAzKTsgLy8gU21hbGwgZGF5LXRvLWRheSBjaGFuZ2VcbiAgICAgICAgICBjb25zdCBiYXNlTWF4QyA9IGN1cnJlbnRUZW1wICsgdGhpcy5nZXRSYW5kb21JbnQoMCwgNSk7IC8vIE1heCBpcyBoaWdoZXIgdGhhbiBjdXJyZW50XG4gICAgICAgICAgY29uc3QgbWF4VGVtcEMgPSBiYXNlTWF4QyArIHRlbXBWYXJpYW5jZTtcbiAgICAgICAgICBjb25zdCBtaW5UZW1wQyA9IG1heFRlbXBDIC0gdGhpcy5nZXRSYW5kb21JbnQoNSwgMTApOyAvLyBNaW4gaXMgbG93ZXIgdGhhbiBtYXhcblxuICAgICAgICAgIGNvbnN0IG1heFRlbXBGID0gTWF0aC5yb3VuZCgobWF4VGVtcEMgKiA5KSAvIDUgKyAzMik7XG4gICAgICAgICAgY29uc3QgbWluVGVtcEYgPSBNYXRoLnJvdW5kKChtaW5UZW1wQyAqIDkpIC8gNSArIDMyKTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkYXRlOiBkYXRlU3RyLFxuICAgICAgICAgICAgZGF5OiBkYXlOYW1lLFxuICAgICAgICAgICAgY29uZGl0aW9uOiBjb25kaXRpb25JZCxcbiAgICAgICAgICAgIGljb25Vcmw6ICcnLCAvLyBXb3VsZCBiZSBzZXQgZnJvbSBBUElcbiAgICAgICAgICAgIG1heFRlbXBDLFxuICAgICAgICAgICAgbWF4VGVtcEYsXG4gICAgICAgICAgICBtaW5UZW1wQyxcbiAgICAgICAgICAgIG1pblRlbXBGLFxuICAgICAgICAgICAgaG91cjogW10sXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHsgLi4uZGF0YSwgZm9yZWNhc3QgfTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBBUEkga2V5IGZvciB0aGUgd2VhdGhlciBzZXJ2aWNlXG4gICAqIE5vLW9wIGluIHRoZSBtb2NrIGltcGxlbWVudGF0aW9uXG4gICAqIEBwYXJhbSBrZXkgVGhlIEFQSSBrZXlcbiAgICovXG4gIG92ZXJyaWRlIHNldEFwaUtleShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIE5vLW9wIGZvciBtb2NrIHNlcnZpY2VcbiAgICBjb25zb2xlLmxvZygnQVBJIGtleSBzZXR0aW5nIGlzIGlnbm9yZWQgaW4gbW9jayB3ZWF0aGVyIHNlcnZpY2UnKTtcbiAgfVxufVxuIl19","import { InjectionToken } from '@angular/core';\nexport const AXP_WEATHER_API_KEY = new InjectionToken('AXP_WEATHER_API_KEY', {\n providedIn: 'root',\n factory: () => {\n return '40281dc1e31749edb6c104828250604';\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VhdGhlci1hcGkua2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Rhc2hib2FyZC1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvc2hhcmVkL3dpZGdldHMvd2VhdGhlci93ZWF0aGVyLXNlcnZpY2VzL3dlYXRoZXItYXBpLmtleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFTLHFCQUFxQixFQUFFO0lBQ25GLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDWixPQUFPLGlDQUFpQyxDQUFDO0lBQzNDLENBQUM7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgQVhQX1dFQVRIRVJfQVBJX0tFWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdBWFBfV0VBVEhFUl9BUElfS0VZJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IHtcbiAgICByZXR1cm4gJzQwMjgxZGMxZTMxNzQ5ZWRiNmMxMDQ4MjgyNTA2MDQnO1xuICB9LFxufSk7XG4iXX0=","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { catchError, map, throwError } from 'rxjs';\nimport { AXPWeatherApiAbstract } from './weather-api.abstract';\nimport { AXP_WEATHER_API_KEY } from './weather-api.key';\nimport * as i0 from \"@angular/core\";\n/**\n * Real Weather API Service\n * Fetches actual weather data from a weather API service\n */\nexport class AXPWeatherApiService extends AXPWeatherApiAbstract {\n constructor() {\n super(...arguments);\n this.http = inject(HttpClient);\n // API configuration\n this.baseApiUrl = 'https://api.weatherapi.com/v1';\n this.apiKeyToken = inject(AXP_WEATHER_API_KEY, { optional: true });\n }\n /**\n * Set the API key for the weather service\n * @param key The API key\n */\n setApiKey(key) {\n if (key && key.trim() !== '') {\n this.apiKeyToken = key;\n }\n }\n /**\n * Get current weather data for given location\n * @param options Weather request options\n * @returns Observable with weather data\n */\n getWeather(options) {\n // If forecast is likely needed, we should fetch it all at once\n if (options.useMockData === false || options.useMockData === undefined) {\n // For real API, use the forecast endpoint which includes current data\n return this.getForecast({\n ...options,\n days: 1, // Request minimal forecast data\n });\n }\n // For mock data, we'll continue using separate calls for backward compatibility\n const locationParts = this.parseLocation(options.location || '');\n const displayName = this.formatLocationName(locationParts);\n // Use real API with query based on city only\n const query = encodeURIComponent(locationParts.city);\n const url = `${this.baseApiUrl}/current.json?key=${this.apiKeyToken}&q=${query}&aqi=no`;\n return this.http.get(url).pipe(map((data) => this.transformApiResponse(data, displayName)), catchError((error) => {\n console.error('Weather API error:', error);\n // Check for location not found error\n if (error.error?.error?.code === 1006) {\n return throwError(() => new Error(`Location \"${locationParts.city}\" not found. Please check the city name and try again.`));\n }\n return throwError(() => new Error(`Failed to fetch weather data: ${error.message}`));\n }));\n }\n /**\n * Get weather forecast for a location\n * @param options Weather request options with days\n * @returns Observable of weather data with forecast\n */\n getForecast(options) {\n const locationParts = this.parseLocation(options.location || '');\n const displayName = this.formatLocationName(locationParts);\n const days = options.days || 5;\n // Build forecast API URL\n const query = encodeURIComponent(locationParts.city);\n const url = `${this.baseApiUrl}/forecast.json?key=${this.apiKeyToken}&q=${query}&days=${days}&aqi=no`;\n return this.http.get(url).pipe(map((data) => this.transformForecastResponse(data, displayName, days)), catchError((error) => {\n console.error('Weather API error:', error);\n // Check for location not found error\n if (error.error?.error?.code === 1006) {\n return throwError(() => new Error(`Location \"${locationParts.city}\" not found. Please check the city name and try again.`));\n }\n return throwError(() => new Error(`Failed to fetch forecast data: ${error.message}`));\n }));\n }\n /**\n * Transform API response to our internal data model\n * @param apiData Raw API response\n * @param displayName Formatted location name\n * @returns Normalized weather data\n */\n transformApiResponse(apiData, displayName) {\n // Map API condition text to our condition IDs\n const conditionText = apiData.current?.condition?.text || '';\n const conditionId = this.mapApiConditionToId(conditionText);\n return {\n location: {\n city: apiData.location?.name || '',\n country: apiData.location?.country || '',\n displayName: displayName,\n },\n current: {\n condition: conditionId, // Use our mapped condition ID\n conditionCode: apiData.current?.condition?.code || 0,\n iconUrl: apiData.current?.condition?.icon || '',\n tempC: apiData.current?.temp_c || 0,\n tempF: apiData.current?.temp_f || 0,\n feelsLikeC: apiData.current?.feelslike_c || 0,\n feelsLikeF: apiData.current?.feelslike_f || 0,\n humidity: apiData.current?.humidity || 0,\n windKph: apiData.current?.wind_kph || 0,\n windMph: apiData.current?.wind_mph || 0,\n windDirection: apiData.current?.wind_dir || '',\n uv: apiData.current?.uv || 0,\n lastUpdated: apiData.current?.last_updated || new Date().toISOString(),\n },\n forecast: [],\n };\n }\n /**\n * Transform forecast API response to our internal data model\n * @param apiData Raw API response with forecast\n * @param displayName Formatted location name\n * @param days Number of forecast days\n * @returns Normalized weather data with forecast\n */\n transformForecastResponse(apiData, displayName, days) {\n // First transform the current weather data using the current field of the forecast response\n const weatherData = this.transformApiResponse(apiData, displayName);\n // Then add the forecast data\n const forecastDays = apiData.forecast?.forecastday || [];\n weatherData.forecast = forecastDays.slice(0, days).map((day) => {\n // Parse the date for day name\n const date = new Date(day.date);\n const dayName = date.toLocaleDateString('en-US', { weekday: 'short' });\n // Map condition to our internal ID\n const conditionText = day.day?.condition?.text || '';\n const conditionId = this.mapApiConditionToId(conditionText);\n return {\n date: day.date,\n day: dayName,\n condition: conditionId,\n iconUrl: day.day?.condition?.icon || '',\n maxTempC: day.day?.maxtemp_c || 0,\n maxTempF: day.day?.maxtemp_f || 0,\n minTempC: day.day?.mintemp_c || 0,\n minTempF: day.day?.mintemp_f || 0,\n hour: day.hour.map((hour) => ({\n time: hour.time,\n condition: hour.condition.code,\n iconUrl: hour.condition.icon,\n tempC: hour.temp_c,\n tempF: hour.temp_f,\n })),\n };\n });\n return weatherData;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWeatherApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWeatherApiService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWeatherApiService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VhdGhlci1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NoYXJlZC93aWRnZXRzL3dlYXRoZXIvd2VhdGhlci1zZXJ2aWNlcy93ZWF0aGVyLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsVUFBVSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUE0QyxNQUFNLHdCQUF3QixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUV4RDs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEscUJBQXFCO0lBRC9EOztRQUVtQixTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTNDLG9CQUFvQjtRQUNILGVBQVUsR0FBRywrQkFBK0IsQ0FBQztRQUN0RCxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBOEp2RTtJQTVKQzs7O09BR0c7SUFDSCxTQUFTLENBQUMsR0FBVztRQUNuQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ00sVUFBVSxDQUFDLE9BQWlDO1FBQ25ELCtE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ZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCBtYXAsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUFdlYXRoZXJBcGlBYnN0cmFjdCwgQVhQV2VhdGhlckRhdGEsIEFYUFdlYXRoZXJSZXF1ZXN0T3B0aW9ucyB9IGZyb20gJy4vd2VhdGhlci1hcGkuYWJzdHJhY3QnO1xuaW1wb3J0IHsgQVhQX1dFQVRIRVJfQVBJX0tFWSB9IGZyb20gJy4vd2VhdGhlci1hcGkua2V5JztcblxuLyoqXG4gKiBSZWFsIFdlYXRoZXIgQVBJIFNlcnZpY2VcbiAqIEZldGNoZXMgYWN0dWFsIHdlYXRoZXIgZGF0YSBmcm9tIGEgd2VhdGhlciBBUEkgc2VydmljZVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQV2VhdGhlckFwaVNlcnZpY2UgZXh0ZW5kcyBBWFBXZWF0aGVyQXBpQWJzdHJhY3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgLy8gQVBJIGNvbmZpZ3VyYXRpb25cbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlQXBpVXJsID0gJ2h0dHBzOi8vYXBpLndlYXRoZXJhcGkuY29tL3YxJztcbiAgcHJpdmF0ZSBhcGlLZXlUb2tlbiA9IGluamVjdChBWFBfV0VBVEhFUl9BUElfS0VZLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIEFQSSBrZXkgZm9yIHRoZSB3ZWF0aGVyIHNlcnZpY2VcbiAgICogQHBhcmFtIGtleSBUaGUgQVBJIGtleVxuICAgKi9cbiAgc2V0QXBpS2V5KGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGtleSAmJiBrZXkudHJpbSgpICE9PSAnJykge1xuICAgICAgdGhpcy5hcGlLZXlUb2tlbiA9IGtleTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgd2VhdGhlciBkYXRhIGZvciBnaXZlbiBsb2NhdGlvblxuICAgKiBAcGFyYW0gb3B0aW9ucyBXZWF0aGVyIHJlcXVlc3Qgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHdpdGggd2VhdGhlciBkYXRhXG4gICAqL1xuICBvdmVycmlkZSBnZXRXZWF0aGVyKG9wdGlvbnM6IEFYUFdlYXRoZXJSZXF1ZXN0T3B0aW9ucyk6IE9ic2VydmFibGU8QVhQV2VhdGhlckRhdGE+IHtcbiAgICAvLyBJZiBmb3JlY2FzdCBpcyBsaWtlbHkgbmVlZGVkLCB3ZSBzaG91bGQgZmV0Y2ggaXQgYWxsIGF0IG9uY2VcbiAgICBpZiAob3B0aW9ucy51c2VNb2NrRGF0YSA9PT0gZmFsc2UgfHwgb3B0aW9ucy51c2VNb2NrRGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBGb3IgcmVhbCBBUEksIHVzZSB0aGUgZm9yZWNhc3QgZW5kcG9pbnQgd2hpY2ggaW5jbHVkZXMgY3VycmVudCBkYXRhXG4gICAgICByZXR1cm4gdGhpcy5nZXRGb3JlY2FzdCh7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIGRheXM6IDEsIC8vIFJlcXVlc3QgbWluaW1hbCBmb3JlY2FzdCBkYXRhXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBGb3IgbW9jayBkYXRhLCB3ZSdsbCBjb250aW51ZSB1c2luZyBzZXBhcmF0ZSBjYWxscyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgIGNvbnN0IGxvY2F0aW9uUGFydHMgPSB0aGlzLnBhcnNlTG9jYXRpb24ob3B0aW9ucy5sb2NhdGlvbiB8fCAnJyk7XG4gICAgY29uc3QgZGlzcGxheU5hbWUgPSB0aGlzLmZvcm1hdExvY2F0aW9uTmFtZShsb2NhdGlvblBhcnRzKTtcblxuICAgIC8vIFVzZSByZWFsIEFQSSB3aXRoIHF1ZXJ5IGJhc2VkIG9uIGNpdHkgb25seVxuICAgIGNvbnN0IHF1ZXJ5ID0gZW5jb2RlVVJJQ29tcG9uZW50KGxvY2F0aW9uUGFydHMuY2l0eSk7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlQXBpVXJsfS9jdXJyZW50Lmpzb24/a2V5PSR7dGhpcy5hcGlLZXlUb2tlbn0mcT0ke3F1ZXJ5fSZhcWk9bm9gO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55Pih1cmwpLnBpcGUoXG4gICAgICBtYXAoKGRhdGEpID0+IHRoaXMudHJhbnNmb3JtQXBpUmVzcG9uc2UoZGF0YSwgZGlzcGxheU5hbWUpKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYXRoZXIgQVBJIGVycm9yOicsIGVycm9yKTtcbiAgICAgICAgLy8gQ2hlY2sgZm9yIGxvY2F0aW9uIG5vdCBmb3VuZCBlcnJvclxuICAgICAgICBpZiAoZXJyb3IuZXJyb3I/LmVycm9yPy5jb2RlID09PSAxMDA2KSB7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoXG4gICAgICAgICAgICAoKSA9PiBuZXcgRXJyb3IoYExvY2F0aW9uIFwiJHtsb2NhdGlvblBhcnRzLmNpdHl9XCIgbm90IGZvdW5kLiBQbGVhc2UgY2hlY2sgdGhlIGNpdHkgbmFtZSBhbmQgdHJ5IGFnYWluLmApLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggd2VhdGhlciBkYXRhOiAke2Vycm9yLm1lc3NhZ2V9YCkpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgd2VhdGhlciBmb3JlY2FzdCBmb3IgYSBsb2NhdGlvblxuICAgKiBAcGFyYW0gb3B0aW9ucyBXZWF0aGVyIHJlcXVlc3Qgb3B0aW9ucyB3aXRoIGRheXNcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiB3ZWF0aGVyIGRhdGEgd2l0aCBmb3JlY2FzdFxuICAgKi9cbiAgb3ZlcnJpZGUgZ2V0Rm9yZWNhc3Qob3B0aW9uczogQVhQV2VhdGhlclJlcXVlc3RPcHRpb25zICYgeyBkYXlzPzogbnVtYmVyIH0pOiBPYnNlcnZhYmxlPEFYUFdlYXRoZXJEYXRhPiB7XG4gICAgY29uc3QgbG9jYXRpb25QYXJ0cyA9IHRoaXMucGFyc2VMb2NhdGlvbihvcHRpb25zLmxvY2F0aW9uIHx8ICcnKTtcbiAgICBjb25zdCBkaXNwbGF5TmFtZSA9IHRoaXMuZm9ybWF0TG9jYXRpb25OYW1lKGxvY2F0aW9uUGFydHMpO1xuICAgIGNvbnN0IGRheXMgPSBvcHRpb25zLmRheXMgfHwgNTtcblxuICAgIC8vIEJ1aWxkIGZvcmVjYXN0IEFQSSBVUkxcbiAgICBjb25zdCBxdWVyeSA9IGVuY29kZVVSSUNvbXBvbmVudChsb2NhdGlvblBhcnRzLmNpdHkpO1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZUFwaVVybH0vZm9yZWNhc3QuanNvbj9rZXk9JHt0aGlzLmFwaUtleVRva2VufSZxPSR7cXVlcnl9JmRheXM9JHtkYXlzfSZhcWk9bm9gO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55Pih1cmwpLnBpcGUoXG4gICAgICBtYXAoKGRhdGEpID0+IHRoaXMudHJhbnNmb3JtRm9yZWNhc3RSZXNwb25zZShkYXRhLCBkaXNwbGF5TmFtZSwgZGF5cykpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignV2VhdGhlciBBUEkgZXJyb3I6JywgZXJyb3IpO1xuICAgICAgICAvLyBDaGVjayBmb3IgbG9jYXRpb24gbm90IGZvdW5kIGVycm9yXG4gICAgICAgIGlmIChlcnJvci5lcnJvcj8uZXJyb3I/LmNvZGUgPT09IDEwMDYpIHtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihcbiAgICAgICAgICAgICgpID0+IG5ldyBFcnJvcihgTG9jYXRpb24gXCIke2xvY2F0aW9uUGFydHMuY2l0eX1cIiBub3QgZm91bmQuIFBsZWFzZSBjaGVjayB0aGUgY2l0eSBuYW1lIGFuZCB0cnkgYWdhaW4uYCksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCBmb3JlY2FzdCBkYXRhOiAke2Vycm9yLm1lc3NhZ2V9YCkpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gQVBJIHJlc3BvbnNlIHRvIG91ciBpbnRlcm5hbCBkYXRhIG1vZGVsXG4gICAqIEBwYXJhbSBhcGlEYXRhIFJhdyBBUEkgcmVzcG9uc2VcbiAgICogQHBhcmFtIGRpc3BsYXlOYW1lIEZvcm1hdHRlZCBsb2NhdGlvbiBuYW1lXG4gICAqIEByZXR1cm5zIE5vcm1hbGl6ZWQgd2VhdGhlciBkYXRhXG4gICAqL1xuICBwcml2YXRlIHRyYW5zZm9ybUFwaVJlc3BvbnNlKGFwaURhdGE6IGFueSwgZGlzcGxheU5hbWU6IHN0cmluZyk6IEFYUFdlYXRoZXJEYXRhIHtcbiAgICAvLyBNYXAgQVBJIGNvbmRpdGlvbiB0ZXh0IHRvIG91ciBjb25kaXRpb24gSURzXG4gICAgY29uc3QgY29uZGl0aW9uVGV4dCA9IGFwaURhdGEuY3VycmVudD8uY29uZGl0aW9uPy50ZXh0IHx8ICcnO1xuICAgIGNvbnN0IGNvbmRpdGlvbklkID0gdGhpcy5tYXBBcGlDb25kaXRpb25Ub0lkKGNvbmRpdGlvblRleHQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxvY2F0aW9uOiB7XG4gICAgICAgIGNpdHk6IGFwaURhdGEubG9jYXRpb24/Lm5hbWUgfHwgJycsXG4gICAgICAgIGNvdW50cnk6IGFwaURhdGEubG9jYXRpb24/LmNvdW50cnkgfHwgJycsXG4gICAgICAgIGRpc3BsYXlOYW1lOiBkaXNwbGF5TmFtZSxcbiAgICAgIH0sXG4gICAgICBjdXJyZW50OiB7XG4gICAgICAgIGNvbmRpdGlvbjogY29uZGl0aW9uSWQsIC8vIFVzZSBvdXIgbWFwcGVkIGNvbmRpdGlvbiBJRFxuICAgICAgICBjb25kaXRpb25Db2RlOiBhcGlEYXRhLmN1cnJlbnQ/LmNvbmRpdGlvbj8uY29kZSB8fCAwLFxuICAgICAgICBpY29uVXJsOiBhcGlEYXRhLmN1cnJlbnQ/LmNvbmRpdGlvbj8uaWNvbiB8fCAnJyxcbiAgICAgICAgdGVtcEM6IGFwaURhdGEuY3VycmVudD8udGVtcF9jIHx8IDAsXG4gICAgICAgIHRlbXBGOiBhcGlEYXRhLmN1cnJlbnQ/LnRlbXBfZiB8fCAwLFxuICAgICAgICBmZWVsc0xpa2VDOiBhcGlEYXRhLmN1cnJlbnQ/LmZlZWxzbGlrZV9jIHx8IDAsXG4gICAgICAgIGZlZWxzTGlrZUY6IGFwaURhdGEuY3VycmVudD8uZmVlbHNsaWtlX2YgfHwgMCxcbiAgICAgICAgaHVtaWRpdHk6IGFwaURhdGEuY3VycmVudD8uaHVtaWRpdHkgfHwgMCxcbiAgICAgICAgd2luZEtwaDogYXBpRGF0YS5jdXJyZW50Py53aW5kX2twaCB8fCAwLFxuICAgICAgICB3aW5kTXBoOiBhcGlEYXRhLmN1cnJlbnQ/LndpbmRfbXBoIHx8IDAsXG4gICAgICAgIHdpbmREaXJlY3Rpb246IGFwaURhdGEuY3VycmVudD8ud2luZF9kaXIgfHwgJycsXG4gICAgICAgIHV2OiBhcGlEYXRhLmN1cnJlbnQ/LnV2IHx8IDAsXG4gICAgICAgIGxhc3RVcGRhdGVkOiBhcGlEYXRhLmN1cnJlbnQ/Lmxhc3RfdXBkYXRlZCB8fCBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICB9LFxuICAgICAgZm9yZWNhc3Q6IFtdLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtIGZvcmVjYXN0IEFQSSByZXNwb25zZSB0byBvdXIgaW50ZXJuYWwgZGF0YSBtb2RlbFxuICAgKiBAcGFyYW0gYXBpRGF0YSBSYXcgQVBJIHJlc3BvbnNlIHdpdGggZm9yZWNhc3RcbiAgICogQHBhcmFtIGRpc3BsYXlOYW1lIEZvcm1hdHRlZCBsb2NhdGlvbiBuYW1lXG4gICAqIEBwYXJhbSBkYXlzIE51bWJlciBvZiBmb3JlY2FzdCBkYXlzXG4gICAqIEByZXR1cm5zIE5vcm1hbGl6ZWQgd2VhdGhlciBkYXRhIHdpdGggZm9yZWNhc3RcbiAgICovXG4gIHByaXZhdGUgdHJhbnNmb3JtRm9yZWNhc3RSZXNwb25zZShhcGlEYXRhOiBhbnksIGRpc3BsYXlOYW1lOiBzdHJpbmcsIGRheXM6IG51bWJlcik6IEFYUFdlYXRoZXJEYXRhIHtcbiAgICAvLyBGaXJzdCB0cmFuc2Zvcm0gdGhlIGN1cnJlbnQgd2VhdGhlciBkYXRhIHVzaW5nIHRoZSBjdXJyZW50IGZpZWxkIG9mIHRoZSBmb3JlY2FzdCByZXNwb25zZVxuICAgIGNvbnN0IHdlYXRoZXJEYXRhID0gdGhpcy50cmFuc2Zvcm1BcGlSZXNwb25zZShhcGlEYXRhLCBkaXNwbGF5TmFtZSk7XG5cbiAgICAvLyBUaGVuIGFkZCB0aGUgZm9yZWNhc3QgZGF0YVxuICAgIGNvbnN0IGZvcmVjYXN0RGF5cyA9IGFwaURhdGEuZm9yZWNhc3Q/LmZvcmVjYXN0ZGF5IHx8IFtdO1xuICAgIHdlYXRoZXJEYXRhLmZvcmVjYXN0ID0gZm9yZWNhc3REYXlzLnNsaWNlKDAsIGRheXMpLm1hcCgoZGF5OiBhbnkpID0+IHtcbiAgICAgIC8vIFBhcnNlIHRoZSBkYXRlIGZvciBkYXkgbmFtZVxuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGRheS5kYXRlKTtcbiAgICAgIGNvbnN0IGRheU5hbWUgPSBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCB7IHdlZWtkYXk6ICdzaG9ydCcgfSk7XG5cbiAgICAgIC8vIE1hcCBjb25kaXRpb24gdG8gb3VyIGludGVybmFsIElEXG4gICAgICBjb25zdCBjb25kaXRpb25UZXh0ID0gZGF5LmRheT8uY29uZGl0aW9uPy50ZXh0IHx8ICcnO1xuICAgICAgY29uc3QgY29uZGl0aW9uSWQgPSB0aGlzLm1hcEFwaUNvbmRpdGlvblRvSWQoY29uZGl0aW9uVGV4dCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRhdGU6IGRheS5kYXRlLFxuICAgICAgICBkYXk6IGRheU5hbWUsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZGl0aW9uSWQsXG4gICAgICAgIGljb25Vcmw6IGRheS5kYXk/LmNvbmRpdGlvbj8uaWNvbiB8fCAnJyxcbiAgICAgICAgbWF4VGVtcEM6IGRheS5kYXk/Lm1heHRlbXBfYyB8fCAwLFxuICAgICAgICBtYXhUZW1wRjogZGF5LmRheT8ubWF4dGVtcF9mIHx8IDAsXG4gICAgICAgIG1pblRlbXBDOiBkYXkuZGF5Py5taW50ZW1wX2MgfHwgMCxcbiAgICAgICAgbWluVGVtcEY6IGRheS5kYXk/Lm1pbnRlbXBfZiB8fCAwLFxuICAgICAgICBob3VyOiBkYXkuaG91ci5tYXAoKGhvdXI6IGFueSkgPT4gKHtcbiAgICAgICAgICB0aW1lOiBob3VyLnRpbWUsXG4gICAgICAgICAgY29uZGl0aW9uOiBob3VyLmNvbmRpdGlvbi5jb2RlLFxuICAgICAgICAgIGljb25Vcmw6IGhvdXIuY29uZGl0aW9uLmljb24sXG4gICAgICAgICAgdGVtcEM6IGhvdXIudGVtcF9jLFxuICAgICAgICAgIHRlbXBGOiBob3VyLnRlbXBfZixcbiAgICAgICAgfSkpLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiB3ZWF0aGVyRGF0YTtcbiAgfVxufVxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, signal } from '@angular/core';\nimport { catchError, finalize, of } from 'rxjs';\nimport { AXPWeatherApiAbstract, AXPWeatherApiService } from '../weather-services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/skeleton\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"@acorex/core/translation\";\nexport class AXMAdvancedWeatherViewComponent extends AXPValueWidgetComponent {\n constructor() {\n super();\n this.weatherService = inject(AXPWeatherApiAbstract);\n this.weatherData = signal(null, ...(ngDevMode ? [{ debugName: \"weatherData\" }] : []));\n this.isLoading = signal(true, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.hasError = signal(false, ...(ngDevMode ? [{ debugName: \"hasError\" }] : []));\n this.errorMessage = signal('', ...(ngDevMode ? [{ debugName: \"errorMessage\" }] : []));\n this.city = computed(() => this.options()['city'] || 'New York', ...(ngDevMode ? [{ debugName: \"city\" }] : []));\n this.temperatureUnit = computed(() => this.options()['temperatureUnit']?.id || '°C', ...(ngDevMode ? [{ debugName: \"temperatureUnit\" }] : []));\n this.forecastDays = computed(() => (this.options()['forecastDays'] ?? 2) + 1, ...(ngDevMode ? [{ debugName: \"forecastDays\" }] : []));\n this.forecastHours = computed(() => this.options()['forecastHours'] ?? 5, ...(ngDevMode ? [{ debugName: \"forecastHours\" }] : []));\n this.iconCache = new Map();\n this.displayedForecast = computed(() => {\n this.forecastDays();\n const weatherData = this.weatherData();\n if (!weatherData?.forecast)\n return [];\n // Skip today's forecast for the bottom row display\n return weatherData.forecast.slice(1, this.forecastDays());\n }, ...(ngDevMode ? [{ debugName: \"displayedForecast\" }] : []));\n this.displayedHourlyForecast = computed(() => {\n this.forecastHours();\n const weatherData = this.weatherData();\n if (!weatherData?.forecast?.[0]?.hour)\n return [];\n const now = new Date();\n const currentHour = now.getHours();\n const todayHours = weatherData.forecast[0].hour;\n // Get hours after current hour for today\n const remainingTodayHours = todayHours.filter((hour) => {\n const hourTime = new Date(hour.time);\n return hourTime.getHours() > currentHour;\n });\n // If we need more hours, get from tomorrow\n let result = [...remainingTodayHours];\n if (result.length < this.forecastHours() && weatherData.forecast.length > 1) {\n const tomorrowHours = weatherData.forecast[1].hour;\n const neededFromTomorrow = this.forecastHours() - result.length;\n result = [...result, ...tomorrowHours.slice(0, neededFromTomorrow)];\n }\n // Limit to requested number of hours\n return result.slice(0, this.forecastHours());\n }, ...(ngDevMode ? [{ debugName: \"displayedHourlyForecast\" }] : []));\n effect(() => {\n if (this.options()) {\n this.loadWeatherData();\n }\n });\n }\n loadWeatherData() {\n if (!this.city()) {\n this.isLoading.set(false);\n return;\n }\n this.isLoading.set(true);\n this.hasError.set(false);\n this.errorMessage.set('');\n const requestOptions = {\n location: this.city(),\n tempUnit: this.temperatureUnit(),\n days: this.forecastDays(),\n };\n this.weatherService\n .getForecast(requestOptions)\n .pipe(catchError((error) => {\n this.handleError(error);\n return of(null);\n }), finalize(() => this.isLoading.set(false)))\n .subscribe((data) => {\n if (data) {\n this.weatherData.set(data);\n }\n });\n }\n handleError(error) {\n console.error('Advanced weather widget error:', error);\n this.hasError.set(true);\n this.errorMessage.set(error.message || 'Failed to load weather data');\n }\n getConditionIcon(conditionId) {\n if (!conditionId) {\n return '';\n }\n if (this.iconCache.has(conditionId)) {\n return this.iconCache.get(conditionId);\n }\n const svgIcon = this.weatherService.getCondition(conditionId).svgIcon;\n const iconPath = `assets/images/weather/${svgIcon}`;\n this.iconCache.set(conditionId, iconPath);\n return iconPath;\n }\n getConditionName(conditionId) {\n if (!conditionId) {\n return 'Unknown';\n }\n const condition = this.weatherService.getCondition(conditionId);\n return condition?.name || 'Unknown';\n }\n getCurrentTemperature() {\n if (!this.weatherData())\n return 0;\n return this.temperatureUnit() === '°C' ? this.weatherData().current.tempC : this.weatherData().current.tempF;\n }\n getMaxTemp() {\n if (!this.weatherData()?.forecast?.[0])\n return 0;\n return this.temperatureUnit() === '°C'\n ? this.weatherData().forecast[0].maxTempC\n : this.weatherData().forecast[0].maxTempF;\n }\n getMinTemp() {\n if (!this.weatherData()?.forecast?.[0])\n return 0;\n return this.temperatureUnit() === '°C'\n ? this.weatherData().forecast[0].minTempC\n : this.weatherData().forecast[0].minTempF;\n }\n getForecastDayTemp(day) {\n if (!day)\n return 0;\n return this.temperatureUnit() === '°C' ? day.maxTempC : day.maxTempF;\n }\n parseDate(dateStr) {\n return new Date(dateStr);\n }\n getDayName(date) {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n const tomorrow = new Date(today);\n tomorrow.setDate(tomorrow.getDate() + 1);\n const checkDate = new Date(date);\n checkDate.setHours(0, 0, 0, 0);\n if (checkDate.getTime() === today.getTime()) {\n return 'Today';\n }\n if (checkDate.getTime() === tomorrow.getTime()) {\n return 'Tomorrow';\n }\n const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n return days[checkDate.getDay()];\n }\n getHourLabel(timeStr) {\n const time = new Date(timeStr);\n return time.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', hour12: false });\n }\n getHourTemp(hour) {\n return this.temperatureUnit() === '°C' ? hour.tempC : hour.tempF;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAdvancedWeatherViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXMAdvancedWeatherViewComponent, isStandalone: true, selector: \"ng-component\", providers: [\n {\n provide: AXPWeatherApiAbstract,\n useClass: AXPWeatherApiService,\n },\n ], usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-size-full ax-p-6\">\n @if (weatherData() && !isLoading() && !hasError()) {\n <div class=\"ax-flex ax-h-full ax-flex-col ax-gap-4 ax-justify-around\">\n <div class=\"ax-flex ax-items-center ax-justify-between ax-w-full ax-gap-1 ax-flex-wrap\">\n <div class=\"ax-flex ax-items-center ax-gap-2 ax-shrink-0\">\n <img\n [src]=\"getConditionIcon(weatherData()!.current.condition)\"\n class=\"ax-size-32 ax-object-cover -ax-m-8\"\n [alt]=\"getConditionName(weatherData()!.current.condition)\"\n loading=\"lazy\"\n />\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-items-start\">\n <span class=\"ax-text-lg ax-font-medium ax-opacity-85\">{{\n getConditionName(weatherData()!.current.condition)\n }}</span>\n <span class=\"ax-text-5xl\" style=\"text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3)\"\n >{{ getCurrentTemperature() | number: '1.0-0' }}<sup>{{ temperatureUnit() }}</sup></span\n >\n </div>\n </div>\n <div class=\"ax-flex ax-flex-col ax-items-center ax-gap-2\">\n <span class=\"ax-text-2xl ax-font-bold ax-capitalize\">{{ city() }}</span>\n <div class=\"ax-flex ax-gap-4 ax-font-semibold ax-opacity-85\">\n <span\n >H: {{ getMaxTemp() | number: '1.0-0' }}<sup>{{ temperatureUnit() }}</sup></span\n >\n <span\n >L: {{ getMinTemp() | number: '1.0-0' }}<sup>{{ temperatureUnit() }}</sup></span\n >\n </div>\n </div>\n </div>\n\n <div\n class=\"ax-flex ax-w-full ax-gap-1 ax-items-center ax-justify-around ax-shrink-0\"\n [class]=\"displayedHourlyForecast().length > 5 ? 'ax-overflow-x-auto' : 'ax-overflow-x-visible'\"\n >\n @for (hour of displayedHourlyForecast(); track hour.time) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-p-2 ax-cursor-default ax-min-w-16 ax-gap-2\">\n <span class=\"ax-text-sm ax-font-medium ax-opacity-85\">{{ getHourLabel(hour.time) }}</span>\n <img\n [src]=\"getConditionIcon(weatherData()!.forecast[0].condition)\"\n class=\"ax-size-16 ax-object-cover -ax-m-4\"\n [alt]=\"getConditionName(weatherData()!.forecast[0].condition)\"\n />\n <span class=\"ax-text-lg ax-font-semibold\"\n >{{ getHourTemp(hour) | number: '1.0-0' }}<sup>{{ temperatureUnit() }}</sup></span\n >\n </div>\n }\n </div>\n\n <div class=\"ax-mt-2 ax-w-full\">\n <div\n class=\"ax-grid ax-grid-cols-[1fr_auto_auto_auto] ax-gap-x-4 ax-gap-y-2 ax-items-center ax-justify-items-start\"\n >\n @for (day of displayedForecast(); track day.date) {\n <span class=\"ax-font-medium\">{{ getDayName(parseDate(day.date)) }}</span>\n <div class=\"ax-flex ax-items-center ax-justify-center\">\n <img\n [src]=\"getConditionIcon(day.condition)\"\n class=\"ax-w-8 ax-h-8 ax-scale-[2]\"\n [alt]=\"getConditionName(day.condition)\"\n />\n </div>\n <span class=\"ax-font-semibold\"\n >{{ getForecastDayTemp(day) | number: '1.0-0' }}<sup>{{ temperatureUnit() }}</sup></span\n >\n <span class=\"ax-opacity-85\"\n >{{ day.minTempC | number: '1.0-0' }}<sup>{{ temperatureUnit() }}</sup></span\n >\n } @empty {\n <span class=\"ax-opacity-85\">No forecast data available</span>\n }\n </div>\n </div>\n </div>\n } @else {\n <div class=\"ax-flex ax-size-full ax-flex-col ax-gap-6\" [attr.aria-busy]=\"isLoading()\">\n @if (isLoading()) {\n <!-- Current weather skeleton -->\n <div class=\"ax-flex ax-items-start ax-justify-around ax-w-full ax-gap-4\">\n <div class=\"ax-flex ax-items-center ax-gap-4\">\n <ax-skeleton class=\"ax-w-20 ax-h-20 ax-rounded-full\"></ax-skeleton>\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <ax-skeleton class=\"ax-w-24 ax-h-6 ax-rounded\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-32 ax-h-12 ax-rounded\"></ax-skeleton>\n </div>\n </div>\n <div class=\"ax-flex ax-flex-col ax-items-end ax-gap-2\">\n <ax-skeleton class=\"ax-w-28 ax-h-8 ax-rounded\"></ax-skeleton>\n <div class=\"ax-flex ax-gap-2\">\n <ax-skeleton class=\"ax-w-12 ax-h-6 ax-rounded\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-12 ax-h-6 ax-rounded\"></ax-skeleton>\n </div>\n </div>\n </div>\n\n <!-- Hourly forecast skeleton -->\n <div class=\"ax-flex ax-w-full ax-gap-2 ax-items-center ax-justify-around\">\n @for (i of [1, 2, 3, 4, 5]; track i) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-gap-2 ax-min-w-16\">\n <ax-skeleton class=\"ax-w-12 ax-h-4 ax-rounded\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-10 ax-h-10 ax-rounded-full ax-my-1\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-10 ax-h-6 ax-rounded\"></ax-skeleton>\n </div>\n }\n </div>\n\n <!-- Daily forecast skeleton -->\n <div class=\"ax-mt-2 ax-w-full\">\n <div class=\"ax-grid ax-grid-cols-[1fr_auto_auto_auto] ax-gap-x-4 ax-gap-y-4 ax-items-center\">\n @for (i of [1, 2]; track i) {\n <ax-skeleton class=\"ax-w-20 ax-h-6 ax-rounded\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-8 ax-h-8 ax-rounded-full\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-10 ax-h-6 ax-rounded\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-10 ax-h-6 ax-rounded\"></ax-skeleton>\n }\n </div>\n </div>\n } @else if (hasError()) {\n <!-- No data state (not loading, no error) -->\n <div class=\"axp-weather-no-data-state\">\n <i class=\"fa-solid fa-cloud-sun\"></i>\n <p>{{ 'weather.no-data' | translate: { scope: 'dashboard' } | async }}</p>\n <ax-button\n [look]=\"'outline'\"\n [color]=\"'secondary'\"\n [text]=\"'weather.refresh-weather' | translate: { scope: 'dashboard' } | async\"\n (onClick)=\"loadWeatherData()\"\n ></ax-button>\n </div>\n }\n </div>\n }\n </div>\n `, isInline: true, styles: [\":host{display:block;width:100%;height:100%}.ax-opacity-85{color:gray}.axp-weather-no-data-state{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:2rem;text-align:center}.axp-weather-no-data-state i{font-size:3rem;margin-bottom:1rem}.axp-weather-no-data-state p{margin-bottom:1.5rem;font-size:1.1rem}sup{font-weight:300;position:relative;top:-.3em;font-size:.6em;margin-left:.1em}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"ngmodule\", type: AXSkeletonModule }, { kind: \"component\", type: i1.AXSkeletonComponent, selector: \"ax-skeleton\", inputs: [\"animated\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"pipe\", type: i3.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i3.DecimalPipe, name: \"number\" }, { kind: \"pipe\", type: i4.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAdvancedWeatherViewComponent, decorators: [{\n type: Component,\n args: [{ template: `\n <div class=\"ax-size-full ax-p-6\">\n @if (weatherData() && !isLoading() && !hasError()) {\n <div class=\"ax-flex ax-h-full ax-flex-col ax-gap-4 ax-justify-around\">\n <div class=\"ax-flex ax-items-center ax-justify-between ax-w-full ax-gap-1 ax-flex-wrap\">\n <div class=\"ax-flex ax-items-center ax-gap-2 ax-shrink-0\">\n <img\n [src]=\"getConditionIcon(weatherData()!.current.condition)\"\n class=\"ax-size-32 ax-object-cover -ax-m-8\"\n [alt]=\"getConditionName(weatherData()!.current.condition)\"\n loading=\"lazy\"\n />\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-items-start\">\n <span class=\"ax-text-lg ax-font-medium ax-opacity-85\">{{\n getConditionName(weatherData()!.current.condition)\n }}</span>\n <span class=\"ax-text-5xl\" style=\"text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3)\"\n >{{ getCurrentTemperature() | number: '1.0-0' }}<sup>{{ temperatureUnit() }}</sup></span\n >\n </div>\n </div>\n <div class=\"ax-flex ax-flex-col ax-items-center ax-gap-2\">\n <span class=\"ax-text-2xl ax-font-bold ax-capitalize\">{{ city() }}</span>\n <div class=\"ax-flex ax-gap-4 ax-font-semibold ax-opacity-85\">\n <span\n >H: {{ getMaxTemp() | number: '1.0-0' }}<sup>{{ temperatureUnit() }}</sup></span\n >\n <span\n >L: {{ getMinTemp() | number: '1.0-0' }}<sup>{{ temperatureUnit() }}</sup></span\n >\n </div>\n </div>\n </div>\n\n <div\n class=\"ax-flex ax-w-full ax-gap-1 ax-items-center ax-justify-around ax-shrink-0\"\n [class]=\"displayedHourlyForecast().length > 5 ? 'ax-overflow-x-auto' : 'ax-overflow-x-visible'\"\n >\n @for (hour of displayedHourlyForecast(); track hour.time) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-p-2 ax-cursor-default ax-min-w-16 ax-gap-2\">\n <span class=\"ax-text-sm ax-font-medium ax-opacity-85\">{{ getHourLabel(hour.time) }}</span>\n <img\n [src]=\"getConditionIcon(weatherData()!.forecast[0].condition)\"\n class=\"ax-size-16 ax-object-cover -ax-m-4\"\n [alt]=\"getConditionName(weatherData()!.forecast[0].condition)\"\n />\n <span class=\"ax-text-lg ax-font-semibold\"\n >{{ getHourTemp(hour) | number: '1.0-0' }}<sup>{{ temperatureUnit() }}</sup></span\n >\n </div>\n }\n </div>\n\n <div class=\"ax-mt-2 ax-w-full\">\n <div\n class=\"ax-grid ax-grid-cols-[1fr_auto_auto_auto] ax-gap-x-4 ax-gap-y-2 ax-items-center ax-justify-items-start\"\n >\n @for (day of displayedForecast(); track day.date) {\n <span class=\"ax-font-medium\">{{ getDayName(parseDate(day.date)) }}</span>\n <div class=\"ax-flex ax-items-center ax-justify-center\">\n <img\n [src]=\"getConditionIcon(day.condition)\"\n class=\"ax-w-8 ax-h-8 ax-scale-[2]\"\n [alt]=\"getConditionName(day.condition)\"\n />\n </div>\n <span class=\"ax-font-semibold\"\n >{{ getForecastDayTemp(day) | number: '1.0-0' }}<sup>{{ temperatureUnit() }}</sup></span\n >\n <span class=\"ax-opacity-85\"\n >{{ day.minTempC | number: '1.0-0' }}<sup>{{ temperatureUnit() }}</sup></span\n >\n } @empty {\n <span class=\"ax-opacity-85\">No forecast data available</span>\n }\n </div>\n </div>\n </div>\n } @else {\n <div class=\"ax-flex ax-size-full ax-flex-col ax-gap-6\" [attr.aria-busy]=\"isLoading()\">\n @if (isLoading()) {\n <!-- Current weather skeleton -->\n <div class=\"ax-flex ax-items-start ax-justify-around ax-w-full ax-gap-4\">\n <div class=\"ax-flex ax-items-center ax-gap-4\">\n <ax-skeleton class=\"ax-w-20 ax-h-20 ax-rounded-full\"></ax-skeleton>\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <ax-skeleton class=\"ax-w-24 ax-h-6 ax-rounded\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-32 ax-h-12 ax-rounded\"></ax-skeleton>\n </div>\n </div>\n <div class=\"ax-flex ax-flex-col ax-items-end ax-gap-2\">\n <ax-skeleton class=\"ax-w-28 ax-h-8 ax-rounded\"></ax-skeleton>\n <div class=\"ax-flex ax-gap-2\">\n <ax-skeleton class=\"ax-w-12 ax-h-6 ax-rounded\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-12 ax-h-6 ax-rounded\"></ax-skeleton>\n </div>\n </div>\n </div>\n\n <!-- Hourly forecast skeleton -->\n <div class=\"ax-flex ax-w-full ax-gap-2 ax-items-center ax-justify-around\">\n @for (i of [1, 2, 3, 4, 5]; track i) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-gap-2 ax-min-w-16\">\n <ax-skeleton class=\"ax-w-12 ax-h-4 ax-rounded\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-10 ax-h-10 ax-rounded-full ax-my-1\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-10 ax-h-6 ax-rounded\"></ax-skeleton>\n </div>\n }\n </div>\n\n <!-- Daily forecast skeleton -->\n <div class=\"ax-mt-2 ax-w-full\">\n <div class=\"ax-grid ax-grid-cols-[1fr_auto_auto_auto] ax-gap-x-4 ax-gap-y-4 ax-items-center\">\n @for (i of [1, 2]; track i) {\n <ax-skeleton class=\"ax-w-20 ax-h-6 ax-rounded\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-8 ax-h-8 ax-rounded-full\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-10 ax-h-6 ax-rounded\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-10 ax-h-6 ax-rounded\"></ax-skeleton>\n }\n </div>\n </div>\n } @else if (hasError()) {\n <!-- No data state (not loading, no error) -->\n <div class=\"axp-weather-no-data-state\">\n <i class=\"fa-solid fa-cloud-sun\"></i>\n <p>{{ 'weather.no-data' | translate: { scope: 'dashboard' } | async }}</p>\n <ax-button\n [look]=\"'outline'\"\n [color]=\"'secondary'\"\n [text]=\"'weather.refresh-weather' | translate: { scope: 'dashboard' } | async\"\n (onClick)=\"loadWeatherData()\"\n ></ax-button>\n </div>\n }\n </div>\n }\n </div>\n `, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, AXDecoratorModule, AXTooltipModule, AXSkeletonModule, AXTranslationModule, AXButtonModule], providers: [\n {\n provide: AXPWeatherApiAbstract,\n useClass: AXPWeatherApiService,\n },\n ], styles: [\":host{display:block;width:100%;height:100%}.ax-opacity-85{color:gray}.axp-weather-no-data-state{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:2rem;text-align:center}.axp-weather-no-data-state i{font-size:3rem;margin-bottom:1rem}.axp-weather-no-data-state p{margin-bottom:1.5rem;font-size:1.1rem}sup{font-weight:300;position:relative;top:-.3em;font-size:.6em;margin-left:.1em}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtd2VhdGhlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zaGFyZWQvd2lkZ2V0cy93ZWF0aGVyL2FkdmFuY2VkLXdlYXRoZXIvYWR2YW5jZWQtd2VhdGhlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBa0MsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBOExsSCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsdUJBQXVCO0lBZTFFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFmRixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzdDLGdCQUFX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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUlULG1CQXlDZ0IsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxDQUFDLGFBQ3ZHO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFFBQVEsRUFBRSxvQkFBb0I7eUJBQy9CO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhTa2VsZXRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9za2VsZXRvbic7XG5pbXBvcnQgeyBBWFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUFdlYXRoZXJBcGlBYnN0cmFjdCwgQVhQV2VhdGhlckFwaVNlcnZpY2UsIEFYUFdlYXRoZXJEYXRhLCBBWFBXZWF0aGVySG91ciB9IGZyb20gJy4uL3dlYXRoZXItc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYXgtc2l6ZS1mdWxsIGF4LXAtNlwiPlxuICAgICAgQGlmICh3ZWF0aGVyRGF0YSgpICYmICFpc0xvYWRpbmcoKSAmJiAhaGFzRXJyb3IoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1oLWZ1bGwgYXgtZmxleC1jb2wgYXgtZ2FwLTQgYXgtanVzdGlmeS1hcm91bmRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LXctZnVsbCBheC1nYXAtMSBheC1mbGV4LXdyYXBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtMiBheC1zaHJpbmstMFwiPlxuICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgW3NyY109XCJnZXRDb25kaXRpb25JY29uKHdlYXRoZXJEYXRhKCkhLmN1cnJlbnQuY29uZGl0aW9uKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJheC1zaXplLTMyIGF4LW9iamVjdC1jb3ZlciAtYXgtbS04XCJcbiAgICAgICAgICAgICAgICBbYWx0XT1cImdldENvbmRpdGlvbk5hbWUod2VhdGhlckRhdGEoKSEuY3VycmVudC5jb25kaXRpb24pXCJcbiAgICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0xIGF4LWl0ZW1zLXN0YXJ0XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LWxnIGF4LWZvbnQtbWVkaXVtIGF4LW9wYWNpdHktODVcIj57e1xuICAgICAgICAgICAgICAgICAgZ2V0Q29uZGl0aW9uTmFtZSh3ZWF0aGVyRGF0YSgpIS5jdXJyZW50LmNvbmRpdGlvbilcbiAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LXRleHQtNXhsXCIgc3R5bGU9XCJ0ZXh0LXNoYWRvdzogMXB4IDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpXCJcbiAgICAgICAgICAgICAgICAgID57eyBnZXRDdXJyZW50VGVtcGVyYXR1cmUoKSB8IG51bWJlcjogJzEuMC0wJyB9fTxzdXA+e3sgdGVtcGVyYXR1cmVVbml0KCkgfX08L3N1cD48L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LTJ4bCBheC1mb250LWJvbGQgYXgtY2FwaXRhbGl6ZVwiPnt7IGNpdHkoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTQgYXgtZm9udC1zZW1pYm9sZCBheC1vcGFjaXR5LTg1XCI+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgID5IOiB7eyBnZXRNYXhUZW1wKCkgfCBudW1iZXI6ICcxLjAtMCcgfX08c3VwPnt7IHRlbXBlcmF0dXJlVW5pdCgpIH19PC9zdXA+PC9zcGFuXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICA+TDoge3sgZ2V0TWluVGVtcCgpIHwgbnVtYmVyOiAnMS4wLTAnIH19PHN1cD57eyB0ZW1wZXJhdHVyZVVuaXQoKSB9fTwvc3VwPjwvc3BhblxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYXgtZmxleCBheC13LWZ1bGwgYXgtZ2FwLTEgYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktYXJvdW5kIGF4LXNocmluay0wXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJkaXNwbGF5ZWRIb3VybHlGb3JlY2FzdCgpLmxlbmd0aCA+IDUgPyAnYXgtb3ZlcmZsb3cteC1hdXRvJyA6ICdheC1vdmVyZmxvdy14LXZpc2libGUnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAZm9yIChob3VyIG9mIGRpc3BsYXllZEhvdXJseUZvcmVjYXN0KCk7IHRyYWNrIGhvdXIudGltZSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1pdGVtcy1jZW50ZXIgYXgtcC0yIGF4LWN1cnNvci1kZWZhdWx0IGF4LW1pbi13LTE2IGF4LWdhcC0yXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LXNtIGF4LWZvbnQtbWVkaXVtIGF4LW9wYWNpdHktODVcIj57eyBnZXRIb3VyTGFiZWwoaG91ci50aW1lKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICBbc3JjXT1cImdldENvbmRpdGlvbkljb24od2VhdGhlckRhdGEoKSEuZm9yZWNhc3RbMF0uY29uZGl0aW9uKVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LXNpemUtMTYgYXgtb2JqZWN0LWNvdmVyIC1heC1tLTRcIlxuICAgICAgICAgICAgICAgICAgW2FsdF09XCJnZXRDb25kaXRpb25OYW1lKHdlYXRoZXJEYXRhKCkhLmZvcmVjYXN0WzBdLmNvbmRpdGlvbilcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LWxnIGF4LWZvbnQtc2VtaWJvbGRcIlxuICAgICAgICAgICAgICAgICAgPnt7IGdldEhvdXJUZW1wKGhvdXIpIHwgbnVtYmVyOiAnMS4wLTAnIH19PHN1cD57eyB0ZW1wZXJhdHVyZVVuaXQoKSB9fTwvc3VwPjwvc3BhblxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbXQtMiBheC13LWZ1bGxcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJheC1ncmlkIGF4LWdyaWQtY29scy1bMWZyX2F1dG9fYXV0b19hdXRvXSBheC1nYXAteC00IGF4LWdhcC15LTIgYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktaXRlbXMtc3RhcnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAZm9yIChkYXkgb2YgZGlzcGxheWVkRm9yZWNhc3QoKTsgdHJhY2sgZGF5LmRhdGUpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZvbnQtbWVkaXVtXCI+e3sgZ2V0RGF5TmFtZShwYXJzZURhdGUoZGF5LmRhdGUpKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJnZXRDb25kaXRpb25JY29uKGRheS5jb25kaXRpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC13LTggYXgtaC04IGF4LXNjYWxlLVsyXVwiXG4gICAgICAgICAgICAgICAgICAgIFthbHRdPVwiZ2V0Q29uZGl0aW9uTmFtZShkYXkuY29uZGl0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZFwiXG4gICAgICAgICAgICAgICAgICA+e3sgZ2V0Rm9yZWNhc3REYXlUZW1wKGRheSkgfCBudW1iZXI6ICcxLjAtMCcgfX08c3VwPnt7IHRlbXBlcmF0dXJlVW5pdCgpIH19PC9zdXA+PC9zcGFuXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtb3BhY2l0eS04NVwiXG4gICAgICAgICAgICAgICAgICA+e3sgZGF5Lm1pblRlbXBDIHwgbnVtYmVyOiAnMS4wLTAnIH19PHN1cD57eyB0ZW1wZXJhdHVyZVVuaXQoKSB9fTwvc3VwPjwvc3BhblxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgfSBAZW1wdHkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtb3BhY2l0eS04NVwiPk5vIGZvcmVjYXN0IGRhdGEgYXZhaWxhYmxlPC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtc2l6ZS1mdWxsIGF4LWZsZXgtY29sIGF4LWdhcC02XCIgW2F0dHIuYXJpYS1idXN5XT1cImlzTG9hZGluZygpXCI+XG4gICAgICAgICAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgICAgICAgICAgPCEtLSBDdXJyZW50IHdlYXRoZXIgc2tlbGV0b24gLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1zdGFydCBheC1qdXN0aWZ5LWFyb3VuZCBheC13LWZ1bGwgYXgtZ2FwLTRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC00XCI+XG4gICAgICAgICAgICAgICAgPGF4LXNrZWxldG9uIGNsYXNzPVwiYXgtdy0yMCBheC1oLTIwIGF4LXJvdW5kZWQtZnVsbFwiPjwvYXgtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxheC1za2VsZXRvbiBjbGFzcz1cImF4LXctMjQgYXgtaC02IGF4LXJvdW5kZWRcIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgICAgICAgICAgPGF4LXNrZWxldG9uIGNsYXNzPVwiYXgtdy0zMiBheC1oLTEyIGF4LXJvdW5kZWRcIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtaXRlbXMtZW5kIGF4LWdhcC0yXCI+XG4gICAgICAgICAgICAgICAgPGF4LXNrZWxldG9uIGNsYXNzPVwiYXgtdy0yOCBheC1oLTggYXgtcm91bmRlZFwiPjwvYXgtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxheC1za2VsZXRvbiBjbGFzcz1cImF4LXctMTIgYXgtaC02IGF4LXJvdW5kZWRcIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgICAgICAgICAgPGF4LXNrZWxldG9uIGNsYXNzPVwiYXgtdy0xMiBheC1oLTYgYXgtcm91bmRlZFwiPjwvYXgtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwhLS0gSG91cmx5IGZvcmVjYXN0IHNrZWxldG9uIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtdy1mdWxsIGF4LWdhcC0yIGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWFyb3VuZFwiPlxuICAgICAgICAgICAgICBAZm9yIChpIG9mIFsxLCAyLCAzLCA0LCA1XTsgdHJhY2sgaSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtMiBheC1taW4tdy0xNlwiPlxuICAgICAgICAgICAgICAgICAgPGF4LXNrZWxldG9uIGNsYXNzPVwiYXgtdy0xMiBheC1oLTQgYXgtcm91bmRlZFwiPjwvYXgtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgICA8YXgtc2tlbGV0b24gY2xhc3M9XCJheC13LTEwIGF4LWgtMTAgYXgtcm91bmRlZC1mdWxsIGF4LW15LTFcIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgICAgICAgICAgPGF4LXNrZWxldG9uIGNsYXNzPVwiYXgtdy0xMCBheC1oLTYgYXgtcm91bmRlZFwiPjwvYXgtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIERhaWx5IGZvcmVjYXN0IHNrZWxldG9uIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW10LTIgYXgtdy1mdWxsXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkIGF4LWdyaWQtY29scy1bMWZyX2F1dG9fYXV0b19hdXRvXSBheC1nYXAteC00IGF4LWdhcC15LTQgYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgQGZvciAoaSBvZiBbMSwgMl07IHRyYWNrIGkpIHtcbiAgICAgICAgICAgICAgICAgIDxheC1za2VsZXRvbiBjbGFzcz1cImF4LXctMjAgYXgtaC02IGF4LXJvdW5kZWRcIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgICAgICAgICAgPGF4LXNrZWxldG9uIGNsYXNzPVwiYXgtdy04IGF4LWgtOCBheC1yb3VuZGVkLWZ1bGxcIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgICAgICAgICAgPGF4LXNrZWxldG9uIGNsYXNzPVwiYXgtdy0xMCBheC1oLTYgYXgtcm91bmRlZFwiPjwvYXgtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgICA8YXgtc2tlbGV0b24gY2xhc3M9XCJheC13LTEwIGF4LWgtNiBheC1yb3VuZGVkXCI+PC9heC1za2VsZXRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfSBAZWxzZSBpZiAoaGFzRXJyb3IoKSkge1xuICAgICAgICAgICAgPCEtLSBObyBkYXRhIHN0YXRlIChub3QgbG9hZGluZywgbm8gZXJyb3IpIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4cC13ZWF0aGVyLW5vLWRhdGEtc3RhdGVcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jbG91ZC1zdW5cIj48L2k+XG4gICAgICAgICAgICAgIDxwPnt7ICd3ZWF0aGVyLm5vLWRhdGEnIHwgdHJhbnNsYXRlOiB7IHNjb3BlOiAnZGFzaGJvYXJkJyB9IHwgYXN5bmMgfX08L3A+XG4gICAgICAgICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICAgICAgICBbbG9va109XCInb3V0bGluZSdcIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCInc2Vjb25kYXJ5J1wiXG4gICAgICAgICAgICAgICAgW3RleHRdPVwiJ3dlYXRoZXIucmVmcmVzaC13ZWF0aGVyJyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2Rhc2hib2FyZCcgfSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAob25DbGljayk9XCJsb2FkV2VhdGhlckRhdGEoKVwiXG4gICAgICAgICAgICAgID48L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIEBhcHBseSBheC1zaXplLWZ1bGw7XG4gICAgICB9XG5cbiAgICAgIC5heC1vcGFjaXR5LTg1IHtcbiAgICAgICAgY29sb3I6IGdyYXk7XG4gICAgICB9XG5cbiAgICAgIC5heHAtd2VhdGhlci1uby1kYXRhLXN0YXRlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIGkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHN1cCB7XG4gICAgICAgIEBhcHBseSBheC1mb250LWxpZ2h0O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogLTAuM2VtO1xuICAgICAgICBmb250LXNpemU6IDAuNmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC4xZW07XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFYRGVjb3JhdG9yTW9kdWxlLCBBWFRvb2x0aXBNb2R1bGUsIEFYU2tlbGV0b25Nb2R1bGUsIEFYVHJhbnNsYXRpb25Nb2R1bGUsIEFYQnV0dG9uTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQV2VhdGhlckFwaUFic3RyYWN0LFxuICAgICAgdXNlQ2xhc3M6IEFYUFdlYXRoZXJBcGlTZXJ2aWNlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTUFkdmFuY2VkV2VhdGhlclZpZXdDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB7XG4gIHByaXZhdGUgd2VhdGhlclNlcnZpY2UgPSBpbmplY3QoQVhQV2VhdGhlckFwaUFic3RyYWN0KTtcbiAgcHJvdGVjdGVkIHdlYXRoZXJEYXRhID0gc2lnbmFsPEFYUFdlYXRoZXJEYXRhIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIGlzTG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcbiAgcHJvdGVjdGVkIGhhc0Vycm9yID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIGVycm9yTWVzc2FnZSA9IHNpZ25hbCgnJyk7XG5cbiAgcHJvdGVjdGVkIGNpdHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKVsnY2l0eSddIHx8ICdOZXcgWW9yaycpO1xuICBwcm90ZWN0ZWQgdGVtcGVyYXR1cmVVbml0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKClbJ3RlbXBlcmF0dXJlVW5pdCddPy5pZCB8fCAnwrBDJyk7XG4gIHByb3RlY3RlZCBmb3JlY2FzdERheXMgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5vcHRpb25zKClbJ2ZvcmVjYXN0RGF5cyddID8/IDIpICsgMSk7XG4gIHByb3RlY3RlZCBmb3JlY2FzdEhvdXJzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKClbJ2ZvcmVjYXN0SG91cnMnXSA/PyA1KTtcblxuICBwcml2YXRlIGljb25DYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucygpKSB7XG4gICAgICAgIHRoaXMubG9hZFdlYXRoZXJEYXRhKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbG9hZFdlYXRoZXJEYXRhKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jaXR5KCkpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMuaGFzRXJyb3Iuc2V0KGZhbHNlKTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZS5zZXQoJycpO1xuXG4gICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB7XG4gICAgICBsb2NhdGlvbjogdGhpcy5jaXR5KCksXG4gICAgICB0ZW1wVW5pdDogdGhpcy50ZW1wZXJhdHVyZVVuaXQoKSxcbiAgICAgIGRheXM6IHRoaXMuZm9yZWNhc3REYXlzKCksXG4gICAgfTtcblxuICAgIHRoaXMud2VhdGhlclNlcnZpY2VcbiAgICAgIC5nZXRGb3JlY2FzdChyZXF1ZXN0T3B0aW9ucylcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgIHRoaXMud2VhdGhlckRhdGEuc2V0KGRhdGEpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IGFueSk6IHZvaWQge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0FkdmFuY2VkIHdlYXRoZXIgd2lkZ2V0IGVycm9yOicsIGVycm9yKTtcbiAgICB0aGlzLmhhc0Vycm9yLnNldCh0cnVlKTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZS5zZXQoZXJyb3IubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGxvYWQgd2VhdGhlciBkYXRhJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29uZGl0aW9uSWNvbihjb25kaXRpb25JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvbmRpdGlvbklkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGlmICh0aGlzLmljb25DYWNoZS5oYXMoY29uZGl0aW9uSWQpKSB7XG4gICAgICByZXR1cm4gdGhpcy5pY29uQ2FjaGUuZ2V0KGNvbmRpdGlvbklkKSE7XG4gICAgfVxuXG4gICAgY29uc3Qgc3ZnSWNvbiA9IHRoaXMud2VhdGhlclNlcnZpY2UuZ2V0Q29uZGl0aW9uKGNvbmRpdGlvbklkKS5zdmdJY29uO1xuICAgIGNvbnN0IGljb25QYXRoID0gYGFzc2V0cy9pbWFnZXMvd2VhdGhlci8ke3N2Z0ljb259YDtcbiAgICB0aGlzLmljb25DYWNoZS5zZXQoY29uZGl0aW9uSWQsIGljb25QYXRoKTtcbiAgICByZXR1cm4gaWNvblBhdGg7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29uZGl0aW9uTmFtZShjb25kaXRpb25JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvbmRpdGlvbklkKSB7XG4gICAgICByZXR1cm4gJ1Vua25vd24nO1xuICAgIH1cbiAgICBjb25zdCBjb25kaXRpb24gPSB0aGlzLndlYXRoZXJTZXJ2aWNlLmdldENvbmRpdGlvbihjb25kaXRpb25JZCk7XG4gICAgcmV0dXJuIGNvbmRpdGlvbj8ubmFtZSB8fCAnVW5rbm93bic7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q3VycmVudFRlbXBlcmF0dXJlKCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLndlYXRoZXJEYXRhKCkpIHJldHVybiAwO1xuICAgIHJldHVybiB0aGlzLnRlbXBlcmF0dXJlVW5pdCgpID09PSAnwrBDJyA/IHRoaXMud2VhdGhlckRhdGEoKSEuY3VycmVudC50ZW1wQyA6IHRoaXMud2VhdGhlckRhdGEoKSEuY3VycmVudC50ZW1wRjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRNYXhUZW1wKCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLndlYXRoZXJEYXRhKCk/LmZvcmVjYXN0Py5bMF0pIHJldHVybiAwO1xuICAgIHJldHVybiB0aGlzLnRlbXBlcmF0dXJlVW5pdCgpID09PSAnwrBDJ1xuICAgICAgPyB0aGlzLndlYXRoZXJEYXRhKCkhLmZvcmVjYXN0WzBdLm1heFRlbXBDXG4gICAgICA6IHRoaXMud2VhdGhlckRhdGEoKSEuZm9yZWNhc3RbMF0ubWF4VGVtcEY7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0TWluVGVtcCgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy53ZWF0aGVyRGF0YSgpPy5mb3JlY2FzdD8uWzBdKSByZXR1cm4gMDtcbiAgICByZXR1cm4gdGhpcy50ZW1wZXJhdHVyZVVuaXQoKSA9PT0gJ8KwQydcbiAgICAgID8gdGhpcy53ZWF0aGVyRGF0YSgpIS5mb3JlY2FzdFswXS5taW5UZW1wQ1xuICAgICAgOiB0aGlzLndlYXRoZXJEYXRhKCkhLmZvcmVjYXN0WzBdLm1pblRlbXBGO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEZvcmVjYXN0RGF5VGVtcChkYXk6IGFueSk6IG51bWJlciB7XG4gICAgaWYgKCFkYXkpIHJldHVybiAwO1xuICAgIHJldHVybiB0aGlzLnRlbXBlcmF0dXJlVW5pdCgpID09PSAnwrBDJyA/IGRheS5tYXhUZW1wQyA6IGRheS5tYXhUZW1wRjtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZURhdGUoZGF0ZVN0cjogc3RyaW5nKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGVTdHIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldERheU5hbWUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIHRvZGF5LnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgIGNvbnN0IHRvbW9ycm93ID0gbmV3IERhdGUodG9kYXkpO1xuICAgIHRvbW9ycm93LnNldERhdGUodG9tb3Jyb3cuZ2V0RGF0ZSgpICsgMSk7XG5cbiAgICBjb25zdCBjaGVja0RhdGUgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICBjaGVja0RhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG5cbiAgICBpZiAoY2hlY2tEYXRlLmdldFRpbWUoKSA9PT0gdG9kYXkuZ2V0VGltZSgpKSB7XG4gICAgICByZXR1cm4gJ1RvZGF5JztcbiAgICB9XG4gICAgaWYgKGNoZWNrRGF0ZS5nZXRUaW1lKCkgPT09IHRvbW9ycm93LmdldFRpbWUoKSkge1xuICAgICAgcmV0dXJuICdUb21vcnJvdyc7XG4gICAgfVxuXG4gICAgY29uc3QgZGF5cyA9IFsnU3VuZGF5JywgJ01vbmRheScsICdUdWVzZGF5JywgJ1dlZG5lc2RheScsICdUaHVyc2RheScsICdGcmlkYXknLCAnU2F0dXJkYXknXTtcbiAgICByZXR1cm4gZGF5c1tjaGVja0RhdGUuZ2V0RGF5KCldO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRpc3BsYXllZEZvcmVjYXN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuZm9yZWNhc3REYXlzKCk7XG4gICAgY29uc3Qgd2VhdGhlckRhdGEgPSB0aGlzLndlYXRoZXJEYXRhKCk7XG4gICAgaWYgKCF3ZWF0aGVyRGF0YT8uZm9yZWNhc3QpIHJldHVybiBbXTtcbiAgICAvLyBTa2lwIHRvZGF5J3MgZm9yZWNhc3QgZm9yIHRoZSBib3R0b20gcm93IGRpc3BsYXlcbiAgICByZXR1cm4gd2VhdGhlckRhdGEuZm9yZWNhc3Quc2xpY2UoMSwgdGhpcy5mb3JlY2FzdERheXMoKSk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBkaXNwbGF5ZWRIb3VybHlGb3JlY2FzdCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICB0aGlzLmZvcmVjYXN0SG91cnMoKTtcbiAgICBjb25zdCB3ZWF0aGVyRGF0YSA9IHRoaXMud2VhdGhlckRhdGEoKTtcbiAgICBpZiAoIXdlYXRoZXJEYXRhPy5mb3JlY2FzdD8uWzBdPy5ob3VyKSByZXR1cm4gW107XG5cbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IGN1cnJlbnRIb3VyID0gbm93LmdldEhvdXJzKCk7XG4gICAgY29uc3QgdG9kYXlIb3VycyA9IHdlYXRoZXJEYXRhLmZvcmVjYXN0WzBdLmhvdXI7XG5cbiAgICAvLyBHZXQgaG91cnMgYWZ0ZXIgY3VycmVudCBob3VyIGZvciB0b2RheVxuICAgIGNvbnN0IHJlbWFpbmluZ1RvZGF5SG91cnMgPSB0b2RheUhvdXJzLmZpbHRlcigoaG91cikgPT4ge1xuICAgICAgY29uc3QgaG91clRpbWUgPSBuZXcgRGF0ZShob3VyLnRpbWUpO1xuICAgICAgcmV0dXJuIGhvdXJUaW1lLmdldEhvdXJzKCkgPiBjdXJyZW50SG91cjtcbiAgICB9KTtcblxuICAgIC8vIElmIHdlIG5lZWQgbW9yZSBob3VycywgZ2V0IGZyb20gdG9tb3Jyb3dcbiAgICBsZXQgcmVzdWx0ID0gWy4uLnJlbWFpbmluZ1RvZGF5SG91cnNdO1xuICAgIGlmIChyZXN1bHQubGVuZ3RoIDwgdGhpcy5mb3JlY2FzdEhvdXJzKCkgJiYgd2VhdGhlckRhdGEuZm9yZWNhc3QubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgdG9tb3Jyb3dIb3VycyA9IHdlYXRoZXJEYXRhLmZvcmVjYXN0WzFdLmhvdXI7XG4gICAgICBjb25zdCBuZWVkZWRGcm9tVG9tb3Jyb3cgPSB0aGlzLmZvcmVjYXN0SG91cnMoKSAtIHJlc3VsdC5sZW5ndGg7XG4gICAgICByZXN1bHQgPSBbLi4ucmVzdWx0LCAuLi50b21vcnJvd0hvdXJzLnNsaWNlKDAsIG5lZWRlZEZyb21Ub21vcnJvdyldO1xuICAgIH1cblxuICAgIC8vIExpbWl0IHRvIHJlcXVlc3RlZCBudW1iZXIgb2YgaG91cnNcbiAgICByZXR1cm4gcmVzdWx0LnNsaWNlKDAsIHRoaXMuZm9yZWNhc3RIb3VycygpKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGdldEhvdXJMYWJlbCh0aW1lU3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRpbWUgPSBuZXcgRGF0ZSh0aW1lU3RyKTtcbiAgICByZXR1cm4gdGltZS50b0xvY2FsZVRpbWVTdHJpbmcoW10sIHsgaG91cjogJzItZGlnaXQnLCBtaW51dGU6ICcyLWRpZ2l0JywgaG91cjEyOiBmYWxzZSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRIb3VyVGVtcChob3VyOiBBWFBXZWF0aGVySG91cik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGVyYXR1cmVVbml0KCkgPT09ICfCsEMnID8gaG91ci50ZW1wQyA6IGhvdXIudGVtcEY7XG4gIH1cbn1cbiJdfQ==","import { AXPWidgetGroupEnum, AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { AXP_DATA_PROPERTY_GROUP } from '@acorex/platform/layout/widgets';\nimport { AXP_WIDGETS_UTILITY_CATEGORY } from '../../chart.type';\n/**\n * Weather Widget Configuration\n * Provides customization options for displaying weather data and forecast\n */\nexport const AXPAdvancedWeatherWidget = {\n name: 'advanced-weather',\n title: 'Advanced Weather Widget',\n categories: [AXP_WIDGETS_UTILITY_CATEGORY],\n groups: [AXPWidgetGroupEnum.DashboardWidget],\n type: 'dashboard',\n icon: 'fa-light fa-cloud-sun',\n properties: [\n {\n name: 'temperatureUnit',\n title: '@dashboard:widgets.weather.temperature-unit',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n defaultValue: '°C',\n dataType: 'string',\n interface: {\n name: 'temperatureUnit',\n path: 'options.temperatureUnit',\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: ['°C', '°F'],\n },\n },\n },\n visible: true,\n },\n {\n name: 'city',\n title: '@dashboard:widgets.weather.city',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n defaultValue: 'New York',\n dataType: 'string',\n interface: {\n name: 'city',\n path: 'options.city',\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: true,\n },\n {\n name: 'forecastHours',\n title: '@dashboard:widgets.weather.forecast-hours',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n defaultValue: 5,\n dataType: 'number',\n interface: {\n name: 'forecastHours',\n path: 'options.forecastHours',\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 1,\n maxValue: 8,\n step: 1,\n },\n },\n },\n visible: true,\n },\n {\n name: 'forecastDays',\n title: '@dashboard:widgets.weather.forecast-days',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n defaultValue: 2,\n dataType: 'number',\n interface: {\n name: 'forecastDays',\n path: 'options.forecastDays',\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 1,\n maxValue: 2,\n step: 1,\n },\n },\n },\n visible: true,\n },\n ],\n components: {\n view: {\n component: () => import('./advanced-weather.component').then((c) => c.AXMAdvancedWeatherViewComponent),\n },\n },\n meta: {\n dimensions: {\n width: 3,\n height: 5,\n minWidth: 3,\n minHeight: 5,\n maxWidth: 5,\n maxHeight: 7,\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtd2VhdGhlci5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zaGFyZWQvd2lkZ2V0cy93ZWF0aGVyL2FkdmFuY2VkLXdlYXRoZXIvYWR2YW5jZWQtd2VhdGhlci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTdHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFvQjtJQUN2RCxJQUFJLEVBQUUsa0JBQWtCO0lBQ3hCLEtBQUssRUFBRSx5QkFBeUI7SUFDaEMsVUFBVSxFQUFFLENBQUMsNEJBQTRCLENBQUM7SUFDMUMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDO0lBQzVDLElBQUksRUFBRSxXQUFXO0lBQ2pCLElBQUksRUFBRSx1QkFBdUI7SUFDN0IsVUFBVSxFQUFFO1FBQ1Y7WUFDRSxJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLEtBQUssRUFBRSw2Q0FBNkM7WUFDcEQsS0FBSyxFQUFFLHVCQUF1QjtZQUM5QixNQUFNLEVBQUU7Z0JBQ04sWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsSUFBSSxFQUFFLHlCQUF5QjtvQkFDL0IsSUFBSSxFQUFFLGlCQUFpQixDQUFDLE1BQU07b0JBQzlCLE9BQU8sRUFBRTt3QkFDUCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO3FCQUN6QjtpQkFDRjthQUNGO1lBQ0QsT0FBTyxFQUFFLElBQUk7U0FDZDtRQUNEO1lBQ0UsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsaUNBQWlDO1lBQ3hDLEtBQUssRUFBRSx1QkFBdUI7WUFDOUIsTUFBTSxFQUFFO2dCQUNOLFlBQVksRUFBRSxVQUFVO2dCQUN4QixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSxjQUFjO29CQUNwQixJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDN0I7YUFDRjtZQUNELE9BQU8sRUFBRSxJQUFJO1NBQ2Q7UUFFRDtZQUNFLElBQUksRUFBRSxlQUFlO1lBQ3JCLEtBQUssRUFBRSwyQ0FBMkM7WUFDbEQsS0FBSyxFQUFFLHVCQUF1QjtZQUM5QixNQUFNLEVBQUU7Z0JBQ04sWUFBWSxFQUFFLENBQUM7Z0JBQ2YsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsZUFBZTtvQkFDckIsSUFBSSxFQUFFLHVCQUF1QjtvQkFDN0IsSUFBSSxFQUFFLGlCQUFpQixDQUFDLE1BQU07b0JBQzlCLE9BQU8sRUFBRTt3QkFDUCxRQUFRLEVBQUUsQ0FBQzt3QkFDWCxRQUFRLEVBQUUsQ0FBQzt3QkFDWCxJQUFJLEVBQUUsQ0FBQztxQkFDUjtpQkFDRjthQUNGO1lBQ0QsT0FBTyxFQUFFLElBQUk7U0FDZDtRQUNEO1lBQ0UsSUFBSSxFQUFFLGNBQWM7WUFDcEIsS0FBSyxFQUFFLDBDQUEwQztZQUNqRCxLQUFLLEVBQUUsdUJBQXVCO1lBQzlCLE1BQU0sRUFBRTtnQkFDTixZQUFZLEVBQUUsQ0FBQztnQkFDZixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxjQUFjO29CQUNwQixJQUFJLEVBQUUsc0JBQXNCO29CQUM1QixJQUFJLEVBQUUsaUJBQWlCLENBQUMsTUFBTTtvQkFDOUIsT0FBTyxFQUFFO3dCQUNQLFFBQVEsRUFBRSxDQUFDO3dCQUNYLFFBQVEsRUFBRSxDQUFDO3dCQUNYLElBQUksRUFBRSxDQUFDO3FCQUNSO2lCQUNGO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsSUFBSTtTQUNkO0tBQ0Y7SUFDRCxVQUFVLEVBQUU7UUFDVixJQUFJLEVBQUU7WUFDSixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsK0JBQStCLENBQUM7U0FDdkc7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFVBQVUsRUFBRTtZQUNWLEtBQUssRUFBRSxDQUFDO1lBQ1IsTUFBTSxFQUFFLENBQUM7WUFFVCxRQUFRLEVBQUUsQ0FBQztZQUNYLFNBQVMsRUFBRSxDQUFDO1lBRVosUUFBUSxFQUFFLENBQUM7WUFDWCxTQUFTLEVBQUUsQ0FBQztTQUNiO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQV2lkZ2V0Q29uZmlnLCBBWFBXaWRnZXRHcm91cEVudW0sIEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuXG5pbXBvcnQgeyBBWFBfREFUQV9QUk9QRVJUWV9HUk9VUCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldHMnO1xuaW1wb3J0IHsgQVhQX1dJREdFVFNfVVRJTElUWV9DQVRFR09SWSB9IGZyb20gJy4uLy4uL2NoYXJ0LnR5cGUnO1xuXG4vKipcbiAqIFdlYXRoZXIgV2lkZ2V0IENvbmZpZ3VyYXRpb25cbiAqIFByb3ZpZGVzIGN1c3RvbWl6YXRpb24gb3B0aW9ucyBmb3IgZGlzcGxheWluZyB3ZWF0aGVyIGRhdGEgYW5kIGZvcmVjYXN0XG4gKi9cbmV4cG9ydCBjb25zdCBBWFBBZHZhbmNlZFdlYXRoZXJXaWRnZXQ6IEFYUFdpZGdldENvbmZpZyA9IHtcbiAgbmFtZTogJ2FkdmFuY2VkLXdlYXRoZXInLFxuICB0aXRsZTogJ0FkdmFuY2VkIFdlYXRoZXIgV2lkZ2V0JyxcbiAgY2F0ZWdvcmllczogW0FYUF9XSURHRVRTX1VUSUxJVFlfQ0FURUdPUlldLFxuICBncm91cHM6IFtBWFBXaWRnZXRHcm91cEVudW0uRGFzaGJvYXJkV2lkZ2V0XSxcbiAgdHlwZTogJ2Rhc2hib2FyZCcsXG4gIGljb246ICdmYS1saWdodCBmYS1jbG91ZC1zdW4nLFxuICBwcm9wZXJ0aWVzOiBbXG4gICAge1xuICAgICAgbmFtZTogJ3RlbXBlcmF0dXJlVW5pdCcsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy53ZWF0aGVyLnRlbXBlcmF0dXJlLXVuaXQnLFxuICAgICAgZ3JvdXA6IEFYUF9EQVRBX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ8KwQycsXG4gICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3RlbXBlcmF0dXJlVW5pdCcsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMudGVtcGVyYXR1cmVVbml0JyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgZGF0YVNvdXJjZTogWyfCsEMnLCAnwrBGJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2NpdHknLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMud2VhdGhlci5jaXR5JyxcbiAgICAgIGdyb3VwOiBBWFBfREFUQV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6ICdOZXcgWW9yaycsXG4gICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ2NpdHknLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLmNpdHknLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuXG4gICAge1xuICAgICAgbmFtZTogJ2ZvcmVjYXN0SG91cnMnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMud2VhdGhlci5mb3JlY2FzdC1ob3VycycsXG4gICAgICBncm91cDogQVhQX0RBVEFfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiA1LFxuICAgICAgICBkYXRhVHlwZTogJ251bWJlcicsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdmb3JlY2FzdEhvdXJzJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5mb3JlY2FzdEhvdXJzJyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5udW1iZXIsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgbWluVmFsdWU6IDEsXG4gICAgICAgICAgICBtYXhWYWx1ZTogOCxcbiAgICAgICAgICAgIHN0ZXA6IDEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2ZvcmVjYXN0RGF5cycsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy53ZWF0aGVyLmZvcmVjYXN0LWRheXMnLFxuICAgICAgZ3JvdXA6IEFYUF9EQVRBX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogMixcbiAgICAgICAgZGF0YVR5cGU6ICdudW1iZXInLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnZm9yZWNhc3REYXlzJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5mb3JlY2FzdERheXMnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLm51bWJlcixcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBtaW5WYWx1ZTogMSxcbiAgICAgICAgICAgIG1heFZhbHVlOiAyLFxuICAgICAgICAgICAgc3RlcDogMSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgY29tcG9uZW50czoge1xuICAgIHZpZXc6IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL2FkdmFuY2VkLXdlYXRoZXIuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWE1BZHZhbmNlZFdlYXRoZXJWaWV3Q29tcG9uZW50KSxcbiAgICB9LFxuICB9LFxuICBtZXRhOiB7XG4gICAgZGltZW5zaW9uczoge1xuICAgICAgd2lkdGg6IDMsXG4gICAgICBoZWlnaHQ6IDUsXG5cbiAgICAgIG1pbldpZHRoOiAzLFxuICAgICAgbWluSGVpZ2h0OiA1LFxuXG4gICAgICBtYXhXaWR0aDogNSxcbiAgICAgIG1heEhlaWdodDogNyxcbiAgICB9LFxuICB9LFxufTtcblxuLyoqXG4gKiBUeXBlIGRlY2xhcmF0aW9uIHRvIHJlZ2lzdGVyIHRoZSB3ZWF0aGVyIHdpZGdldCB0eXBlXG4gKi9cbmRlY2xhcmUgbW9kdWxlICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZScge1xuICBpbnRlcmZhY2UgQVhQV2lkZ2V0VHlwZXNNYXAge1xuICAgIGFkdmFuY2VkV2VhdGhlcjogJ2FkdmFuY2VkLXdlYXRoZXInO1xuICB9XG59XG4iXX0=","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, signal } from '@angular/core';\nimport { catchError, finalize, of } from 'rxjs';\nimport { AXPWeatherApiAbstract, AXPWeatherApiService } from '../weather-services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/skeleton\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"@acorex/core/translation\";\nexport class AXMMinimalWeatherViewComponent extends AXPValueWidgetComponent {\n constructor() {\n super();\n this.weatherService = inject(AXPWeatherApiAbstract);\n this.weatherData = signal(null, ...(ngDevMode ? [{ debugName: \"weatherData\" }] : []));\n this.isLoading = signal(true, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.hasError = signal(false, ...(ngDevMode ? [{ debugName: \"hasError\" }] : []));\n this.errorMessage = signal('', ...(ngDevMode ? [{ debugName: \"errorMessage\" }] : []));\n this.city = computed(() => this.options()['city'] || 'New York', ...(ngDevMode ? [{ debugName: \"city\" }] : []));\n this.temperatureUnit = computed(() => this.options()['temperatureUnit']?.id || '°C', ...(ngDevMode ? [{ debugName: \"temperatureUnit\" }] : []));\n this.iconCache = new Map();\n effect(() => {\n if (this.options()) {\n this.loadWeatherData();\n }\n });\n }\n loadWeatherData() {\n if (!this.city()) {\n this.isLoading.set(false);\n return;\n }\n this.isLoading.set(true);\n this.hasError.set(false);\n this.errorMessage.set('');\n const requestOptions = {\n location: this.city(),\n tempUnit: this.temperatureUnit(),\n days: 1,\n };\n this.weatherService\n .getForecast(requestOptions)\n .pipe(catchError((error) => {\n this.handleError(error);\n return of(null);\n }), finalize(() => this.isLoading.set(false)))\n .subscribe((data) => {\n if (data) {\n this.weatherData.set(data);\n }\n });\n }\n handleError(error) {\n console.error('Minimal weather widget error:', error);\n this.hasError.set(true);\n this.errorMessage.set(error.message || 'Failed to load weather data');\n }\n getConditionIcon() {\n const conditionId = this.weatherData()?.current.condition || 'unknown';\n if (this.iconCache.has(conditionId)) {\n return this.iconCache.get(conditionId);\n }\n const svgIcon = this.weatherService.getCondition(conditionId).svgIcon;\n const iconPath = `assets/images/weather/${svgIcon}`;\n this.iconCache.set(conditionId, iconPath);\n return iconPath;\n }\n getCurrentTemperature() {\n if (!this.weatherData())\n return 0;\n return this.temperatureUnit() === '°C' ? this.weatherData().current.tempC : this.weatherData().current.tempF;\n }\n getMaxTemp() {\n if (!this.weatherData()?.forecast?.[0])\n return 0;\n return this.temperatureUnit() === '°C'\n ? this.weatherData().forecast[0].maxTempC\n : this.weatherData().forecast[0].maxTempF;\n }\n getMinTemp() {\n if (!this.weatherData()?.forecast?.[0])\n return 0;\n return this.temperatureUnit() === '°C'\n ? this.weatherData().forecast[0].minTempC\n : this.weatherData().forecast[0].minTempF;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMMinimalWeatherViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXMMinimalWeatherViewComponent, isStandalone: true, selector: \"ng-component\", providers: [\n {\n provide: AXPWeatherApiAbstract,\n useClass: AXPWeatherApiService,\n },\n ], usesInheritance: true, ngImport: i0, template: `\n @if (weatherData() && !isLoading() && !hasError()) {\n <div\n class=\"ax-flex ax-size-full ax-flex-col ax-items-start ax-p-2 ax-justify-evenly weather-container ax-overflow-hidden\"\n [attr.aria-label]=\"'Current weather for ' + city()\"\n >\n <div class=\"weather-top ax-flex ax-justify-around ax-items-center ax-w-full ax-pt-2 ax-gap-2 ax-flex-wrap\">\n <img\n [src]=\"getConditionIcon()\"\n class=\"ax-size-28 ax-object-cover -ax-m-6\"\n [alt]=\"weatherData()?.current?.condition + ' weather icon'\"\n loading=\"lazy\"\n />\n <div class=\"temperature ax-flex ax-justify-center ax-items-start\">\n <span class=\"ax-text-5xl\" style=\"text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3)\">\n {{ getCurrentTemperature() | number: '1.0-0' }}\n </span>\n <span>{{ temperatureUnit() }}</span>\n </div>\n </div>\n <div class=\"ax-text-start ax-ps-6\">\n <div class=\"ax-mt-1\">\n <span class=\"ax-font-bold ax-capitalize\">{{ city() }}</span>\n </div>\n <div class=\"ax-pt-2 ax-flex ax-gap-4 ax-opacity-75\">\n <span aria-label=\"High temperature\">\n H: {{ getMaxTemp() | number: '1.0-0' }}<sup>{{ temperatureUnit() }}</sup>\n </span>\n <span aria-label=\"Low temperature\">\n L: {{ getMinTemp() | number: '1.0-0' }}<sup>{{ temperatureUnit() }}</sup>\n </span>\n </div>\n </div>\n </div>\n } @else {\n <div class=\"ax-flex ax-size-full ax-flex-col ax-p-2 ax-gap-2 ax-justify-center\" [attr.aria-busy]=\"isLoading()\">\n @if (isLoading()) {\n <!-- Weather icon and temperature skeleton -->\n <div class=\"ax-flex ax-items-center ax-w-full ax-pt-2 ax-gap-8\">\n <ax-skeleton class=\"ax-w-16 ax-h-12 ax-rounded-full\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-24 ax-h-8 ax-rounded -ax-ms-2\"></ax-skeleton>\n </div>\n\n <!-- City and temperature range skeleton -->\n <div class=\"ax-text-start ax-ps-6 ax-w-full\">\n <div class=\"ax-mt-1\">\n <ax-skeleton class=\"ax-w-24 ax-h-6 ax-rounded\"></ax-skeleton>\n </div>\n <div class=\"ax-pt-2 ax-flex ax-gap-4\">\n <ax-skeleton class=\"ax-w-12 ax-h-4 ax-rounded\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-12 ax-h-4 ax-rounded\"></ax-skeleton>\n </div>\n </div>\n } @else if (hasError()) {\n <!-- No data state (not loading, no error) -->\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-justify-center ax-items-center ax-h-full ax-p-8\">\n <i class=\"ax-text-3xl fa-solid fa-cloud-sun\"></i>\n <p class=\"ax-text-sm\">{{ 'weather.no-data' | translate: { scope: 'dashboard' } | async }}</p>\n <ax-button\n [look]=\"'outline'\"\n [color]=\"'secondary'\"\n [text]=\"'weather.refresh-weather' | translate: { scope: 'dashboard' } | async\"\n (onClick)=\"loadWeatherData()\"\n ></ax-button>\n </div>\n }\n </div>\n }\n `, isInline: true, styles: [\":host{width:100%;height:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"ngmodule\", type: AXSkeletonModule }, { kind: \"component\", type: i1.AXSkeletonComponent, selector: \"ax-skeleton\", inputs: [\"animated\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"pipe\", type: i3.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i3.DecimalPipe, name: \"number\" }, { kind: \"pipe\", type: i4.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMMinimalWeatherViewComponent, decorators: [{\n type: Component,\n args: [{ template: `\n @if (weatherData() && !isLoading() && !hasError()) {\n <div\n class=\"ax-flex ax-size-full ax-flex-col ax-items-start ax-p-2 ax-justify-evenly weather-container ax-overflow-hidden\"\n [attr.aria-label]=\"'Current weather for ' + city()\"\n >\n <div class=\"weather-top ax-flex ax-justify-around ax-items-center ax-w-full ax-pt-2 ax-gap-2 ax-flex-wrap\">\n <img\n [src]=\"getConditionIcon()\"\n class=\"ax-size-28 ax-object-cover -ax-m-6\"\n [alt]=\"weatherData()?.current?.condition + ' weather icon'\"\n loading=\"lazy\"\n />\n <div class=\"temperature ax-flex ax-justify-center ax-items-start\">\n <span class=\"ax-text-5xl\" style=\"text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3)\">\n {{ getCurrentTemperature() | number: '1.0-0' }}\n </span>\n <span>{{ temperatureUnit() }}</span>\n </div>\n </div>\n <div class=\"ax-text-start ax-ps-6\">\n <div class=\"ax-mt-1\">\n <span class=\"ax-font-bold ax-capitalize\">{{ city() }}</span>\n </div>\n <div class=\"ax-pt-2 ax-flex ax-gap-4 ax-opacity-75\">\n <span aria-label=\"High temperature\">\n H: {{ getMaxTemp() | number: '1.0-0' }}<sup>{{ temperatureUnit() }}</sup>\n </span>\n <span aria-label=\"Low temperature\">\n L: {{ getMinTemp() | number: '1.0-0' }}<sup>{{ temperatureUnit() }}</sup>\n </span>\n </div>\n </div>\n </div>\n } @else {\n <div class=\"ax-flex ax-size-full ax-flex-col ax-p-2 ax-gap-2 ax-justify-center\" [attr.aria-busy]=\"isLoading()\">\n @if (isLoading()) {\n <!-- Weather icon and temperature skeleton -->\n <div class=\"ax-flex ax-items-center ax-w-full ax-pt-2 ax-gap-8\">\n <ax-skeleton class=\"ax-w-16 ax-h-12 ax-rounded-full\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-24 ax-h-8 ax-rounded -ax-ms-2\"></ax-skeleton>\n </div>\n\n <!-- City and temperature range skeleton -->\n <div class=\"ax-text-start ax-ps-6 ax-w-full\">\n <div class=\"ax-mt-1\">\n <ax-skeleton class=\"ax-w-24 ax-h-6 ax-rounded\"></ax-skeleton>\n </div>\n <div class=\"ax-pt-2 ax-flex ax-gap-4\">\n <ax-skeleton class=\"ax-w-12 ax-h-4 ax-rounded\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-12 ax-h-4 ax-rounded\"></ax-skeleton>\n </div>\n </div>\n } @else if (hasError()) {\n <!-- No data state (not loading, no error) -->\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-justify-center ax-items-center ax-h-full ax-p-8\">\n <i class=\"ax-text-3xl fa-solid fa-cloud-sun\"></i>\n <p class=\"ax-text-sm\">{{ 'weather.no-data' | translate: { scope: 'dashboard' } | async }}</p>\n <ax-button\n [look]=\"'outline'\"\n [color]=\"'secondary'\"\n [text]=\"'weather.refresh-weather' | translate: { scope: 'dashboard' } | async\"\n (onClick)=\"loadWeatherData()\"\n ></ax-button>\n </div>\n }\n </div>\n }\n `, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, AXDecoratorModule, AXTooltipModule, AXSkeletonModule, AXTranslationModule, AXButtonModule], providers: [\n {\n provide: AXPWeatherApiAbstract,\n useClass: AXPWeatherApiService,\n },\n ], styles: [\":host{width:100%;height:100%}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaW1hbC13ZWF0aGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NoYXJlZC93aWRnZXRzL3dlYXRoZXIvbWluaW1hbC13ZWF0aGVyL21pbmltYWwtd2VhdGhlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBa0IsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBd0ZsRyxNQUFNLE9BQU8sOEJBQStCLFNBQVEsdUJBQXVCO0lBYXpFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFiRixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRTdDLGdCQUFXLEdBQUcsTUFBTSxDQUF3QixJQUFJLHVEQUFDLENBQUM7UUFDbEQsY0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLHFEQUFDLENBQUM7UUFDekIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLG9EQUFDLENBQUM7UUFDekIsaUJBQVksR0FBRyxNQUFNLENBQUMsRUFBRSx3REFBQyxDQUFDO1FBRTFCLFNBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsZ0RBQUMsQ0FBQztRQUM1RCxvQkFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSwyREFBQyxDQUFDO1FBRWxGLGNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUk1QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxlQUFlO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTFCLE1BQU0sY0FBYyxHQUFHO1lBQ3JCLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ3JCLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ2hDLElBQUksRUFBRSxDQUFDO1NBQ1IsQ0FBQztRQUVGLElBQUksQ0FBQyxjQUFjO2FBQ2hCLFdBQVcsQ0FBQyxjQUFjLENBQUM7YUFDM0IsSUFBSSxDQUNILFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzFDO2FBQ0EsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbEIsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQVU7UUFDNUIsT0FBTyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLDZCQUE2QixDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsT0FBTyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUM7UUFFdkUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFFLENBQUM7UUFDMUMsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN0RSxNQUFNLFFBQVEsR0FBRyx5QkFBeUIsT0FBTyxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFUyxxQkFBcUI7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUNqSCxDQUFDO0lBRVMsVUFBVTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLElBQUk7WUFDcEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTtZQUMxQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDL0MsQ0FBQztJQUVTLFVBQVU7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRCxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxJQUFJO1lBQ3BDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVE7WUFDMUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQy9DLENBQUM7K0dBMUZVLDhCQUE4QjttR0FBOUIsOEJBQThCLDJEQVA5QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFFBQVEsRUFBRSxvQkFBb0I7YUFDL0I7U0FDRixpREFuRlM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0VULHdHQVNTLFlBQVksOEJBQUUsaUJBQWlCLDhCQUFFLGVBQWUsOEJBQUUsZ0JBQWdCLGtJQUFFLG1CQUFtQiw4QkFBRSxjQUFjOzs0RkFRdEcsOEJBQThCO2tCQXRGMUMsU0FBUzsrQkFDRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvRVQsbUJBUWdCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGNBQWMsQ0FBQyxhQUN2Rzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsb0JBQW9CO3lCQUMvQjtxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYU2tlbGV0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2tlbGV0b24nO1xuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBXZWF0aGVyQXBpQWJzdHJhY3QsIEFYUFdlYXRoZXJBcGlTZXJ2aWNlLCBBWFBXZWF0aGVyRGF0YSB9IGZyb20gJy4uL3dlYXRoZXItc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKHdlYXRoZXJEYXRhKCkgJiYgIWlzTG9hZGluZygpICYmICFoYXNFcnJvcigpKSB7XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYXgtZmxleCBheC1zaXplLWZ1bGwgYXgtZmxleC1jb2wgYXgtaXRlbXMtc3RhcnQgYXgtcC0yIGF4LWp1c3RpZnktZXZlbmx5IHdlYXRoZXItY29udGFpbmVyIGF4LW92ZXJmbG93LWhpZGRlblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0N1cnJlbnQgd2VhdGhlciBmb3IgJyArIGNpdHkoKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWF0aGVyLXRvcCBheC1mbGV4IGF4LWp1c3RpZnktYXJvdW5kIGF4LWl0ZW1zLWNlbnRlciBheC13LWZ1bGwgYXgtcHQtMiBheC1nYXAtMiBheC1mbGV4LXdyYXBcIj5cbiAgICAgICAgICA8aW1nXG4gICAgICAgICAgICBbc3JjXT1cImdldENvbmRpdGlvbkljb24oKVwiXG4gICAgICAgICAgICBjbGFzcz1cImF4LXNpemUtMjggYXgtb2JqZWN0LWNvdmVyIC1heC1tLTZcIlxuICAgICAgICAgICAgW2FsdF09XCJ3ZWF0aGVyRGF0YSgpPy5jdXJyZW50Py5jb25kaXRpb24gKyAnIHdlYXRoZXIgaWNvbidcIlxuICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRlbXBlcmF0dXJlIGF4LWZsZXggYXgtanVzdGlmeS1jZW50ZXIgYXgtaXRlbXMtc3RhcnRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC01eGxcIiBzdHlsZT1cInRleHQtc2hhZG93OiAxcHggMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMylcIj5cbiAgICAgICAgICAgICAge3sgZ2V0Q3VycmVudFRlbXBlcmF0dXJlKCkgfCBudW1iZXI6ICcxLjAtMCcgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHRlbXBlcmF0dXJlVW5pdCgpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQtc3RhcnQgYXgtcHMtNlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1tdC0xXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZvbnQtYm9sZCBheC1jYXBpdGFsaXplXCI+e3sgY2l0eSgpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1wdC0yIGF4LWZsZXggYXgtZ2FwLTQgYXgtb3BhY2l0eS03NVwiPlxuICAgICAgICAgICAgPHNwYW4gYXJpYS1sYWJlbD1cIkhpZ2ggdGVtcGVyYXR1cmVcIj5cbiAgICAgICAgICAgICAgSDoge3sgZ2V0TWF4VGVtcCgpIHwgbnVtYmVyOiAnMS4wLTAnIH19PHN1cD57eyB0ZW1wZXJhdHVyZVVuaXQoKSB9fTwvc3VwPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gYXJpYS1sYWJlbD1cIkxvdyB0ZW1wZXJhdHVyZVwiPlxuICAgICAgICAgICAgICBMOiB7eyBnZXRNaW5UZW1wKCkgfCBudW1iZXI6ICcxLjAtMCcgfX08c3VwPnt7IHRlbXBlcmF0dXJlVW5pdCgpIH19PC9zdXA+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1zaXplLWZ1bGwgYXgtZmxleC1jb2wgYXgtcC0yIGF4LWdhcC0yIGF4LWp1c3RpZnktY2VudGVyXCIgW2F0dHIuYXJpYS1idXN5XT1cImlzTG9hZGluZygpXCI+XG4gICAgICAgIEBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgICA8IS0tIFdlYXRoZXIgaWNvbiBhbmQgdGVtcGVyYXR1cmUgc2tlbGV0b24gLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LXctZnVsbCBheC1wdC0yIGF4LWdhcC04XCI+XG4gICAgICAgICAgICA8YXgtc2tlbGV0b24gY2xhc3M9XCJheC13LTE2IGF4LWgtMTIgYXgtcm91bmRlZC1mdWxsXCI+PC9heC1za2VsZXRvbj5cbiAgICAgICAgICAgIDxheC1za2VsZXRvbiBjbGFzcz1cImF4LXctMjQgYXgtaC04IGF4LXJvdW5kZWQgLWF4LW1zLTJcIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBDaXR5IGFuZCB0ZW1wZXJhdHVyZSByYW5nZSBza2VsZXRvbiAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdGV4dC1zdGFydCBheC1wcy02IGF4LXctZnVsbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW10LTFcIj5cbiAgICAgICAgICAgICAgPGF4LXNrZWxldG9uIGNsYXNzPVwiYXgtdy0yNCBheC1oLTYgYXgtcm91bmRlZFwiPjwvYXgtc2tlbGV0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1wdC0yIGF4LWZsZXggYXgtZ2FwLTRcIj5cbiAgICAgICAgICAgICAgPGF4LXNrZWxldG9uIGNsYXNzPVwiYXgtdy0xMiBheC1oLTQgYXgtcm91bmRlZFwiPjwvYXgtc2tlbGV0b24+XG4gICAgICAgICAgICAgIDxheC1za2VsZXRvbiBjbGFzcz1cImF4LXctMTIgYXgtaC00IGF4LXJvdW5kZWRcIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2UgaWYgKGhhc0Vycm9yKCkpIHtcbiAgICAgICAgICA8IS0tIE5vIGRhdGEgc3RhdGUgKG5vdCBsb2FkaW5nLCBubyBlcnJvcikgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTIgYXgtanVzdGlmeS1jZW50ZXIgYXgtaXRlbXMtY2VudGVyIGF4LWgtZnVsbCBheC1wLThcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiYXgtdGV4dC0zeGwgZmEtc29saWQgZmEtY2xvdWQtc3VuXCI+PC9pPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJheC10ZXh0LXNtXCI+e3sgJ3dlYXRoZXIubm8tZGF0YScgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdkYXNoYm9hcmQnIH0gfCBhc3luYyB9fTwvcD5cbiAgICAgICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICAgICAgW2xvb2tdPVwiJ291dGxpbmUnXCJcbiAgICAgICAgICAgICAgW2NvbG9yXT1cIidzZWNvbmRhcnknXCJcbiAgICAgICAgICAgICAgW3RleHRdPVwiJ3dlYXRoZXIucmVmcmVzaC13ZWF0aGVyJyB8IHRyYW5zbGF0ZTogeyBzY29wZTogJ2Rhc2hib2FyZCcgfSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwibG9hZFdlYXRoZXJEYXRhKClcIlxuICAgICAgICAgICAgPjwvYXgtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgQGFwcGx5IGF4LXNpemUtZnVsbDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhEZWNvcmF0b3JNb2R1bGUsIEFYVG9vbHRpcE1vZHVsZSwgQVhTa2VsZXRvbk1vZHVsZSwgQVhUcmFuc2xhdGlvbk1vZHVsZSwgQVhCdXR0b25Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBXZWF0aGVyQXBpQWJzdHJhY3QsXG4gICAgICB1c2VDbGFzczogQVhQV2VhdGhlckFwaVNlcnZpY2UsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNTWluaW1hbFdlYXRoZXJWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQge1xuICBwcml2YXRlIHdlYXRoZXJTZXJ2aWNlID0gaW5qZWN0KEFYUFdlYXRoZXJBcGlBYnN0cmFjdCk7XG5cbiAgcHJvdGVjdGVkIHdlYXRoZXJEYXRhID0gc2lnbmFsPEFYUFdlYXRoZXJEYXRhIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCBpc0xvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG4gIHByb3RlY3RlZCBoYXNFcnJvciA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBlcnJvck1lc3NhZ2UgPSBzaWduYWwoJycpO1xuXG4gIHByb3RlY3RlZCBjaXR5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKClbJ2NpdHknXSB8fCAnTmV3IFlvcmsnKTtcbiAgcHJvdGVjdGVkIHRlbXBlcmF0dXJlVW5pdCA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpWyd0ZW1wZXJhdHVyZVVuaXQnXT8uaWQgfHwgJ8KwQycpO1xuXG4gIHByaXZhdGUgaWNvbkNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zKCkpIHtcbiAgICAgICAgdGhpcy5sb2FkV2VhdGhlckRhdGEoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBsb2FkV2VhdGhlckRhdGEoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNpdHkoKSkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5oYXNFcnJvci5zZXQoZmFsc2UpO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlLnNldCgnJyk7XG5cbiAgICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICAgIGxvY2F0aW9uOiB0aGlzLmNpdHkoKSxcbiAgICAgIHRlbXBVbml0OiB0aGlzLnRlbXBlcmF0dXJlVW5pdCgpLFxuICAgICAgZGF5czogMSxcbiAgICB9O1xuXG4gICAgdGhpcy53ZWF0aGVyU2VydmljZVxuICAgICAgLmdldEZvcmVjYXN0KHJlcXVlc3RPcHRpb25zKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgdGhpcy53ZWF0aGVyRGF0YS5zZXQoZGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcjogYW55KTogdm9pZCB7XG4gICAgY29uc29sZS5lcnJvcignTWluaW1hbCB3ZWF0aGVyIHdpZGdldCBlcnJvcjonLCBlcnJvcik7XG4gICAgdGhpcy5oYXNFcnJvci5zZXQodHJ1ZSk7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2Uuc2V0KGVycm9yLm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBsb2FkIHdlYXRoZXIgZGF0YScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENvbmRpdGlvbkljb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb25kaXRpb25JZCA9IHRoaXMud2VhdGhlckRhdGEoKT8uY3VycmVudC5jb25kaXRpb24gfHwgJ3Vua25vd24nO1xuXG4gICAgaWYgKHRoaXMuaWNvbkNhY2hlLmhhcyhjb25kaXRpb25JZCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmljb25DYWNoZS5nZXQoY29uZGl0aW9uSWQpITtcbiAgICB9XG5cbiAgICBjb25zdCBzdmdJY29uID0gdGhpcy53ZWF0aGVyU2VydmljZS5nZXRDb25kaXRpb24oY29uZGl0aW9uSWQpLnN2Z0ljb247XG4gICAgY29uc3QgaWNvblBhdGggPSBgYXNzZXRzL2ltYWdlcy93ZWF0aGVyLyR7c3ZnSWNvbn1gO1xuICAgIHRoaXMuaWNvbkNhY2hlLnNldChjb25kaXRpb25JZCwgaWNvblBhdGgpO1xuICAgIHJldHVybiBpY29uUGF0aDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDdXJyZW50VGVtcGVyYXR1cmUoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMud2VhdGhlckRhdGEoKSkgcmV0dXJuIDA7XG4gICAgcmV0dXJuIHRoaXMudGVtcGVyYXR1cmVVbml0KCkgPT09ICfCsEMnID8gdGhpcy53ZWF0aGVyRGF0YSgpIS5jdXJyZW50LnRlbXBDIDogdGhpcy53ZWF0aGVyRGF0YSgpIS5jdXJyZW50LnRlbXBGO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldE1heFRlbXAoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMud2VhdGhlckRhdGEoKT8uZm9yZWNhc3Q/LlswXSkgcmV0dXJuIDA7XG4gICAgcmV0dXJuIHRoaXMudGVtcGVyYXR1cmVVbml0KCkgPT09ICfCsEMnXG4gICAgICA/IHRoaXMud2VhdGhlckRhdGEoKSEuZm9yZWNhc3RbMF0ubWF4VGVtcENcbiAgICAgIDogdGhpcy53ZWF0aGVyRGF0YSgpIS5mb3JlY2FzdFswXS5tYXhUZW1wRjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRNaW5UZW1wKCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLndlYXRoZXJEYXRhKCk/LmZvcmVjYXN0Py5bMF0pIHJldHVybiAwO1xuICAgIHJldHVybiB0aGlzLnRlbXBlcmF0dXJlVW5pdCgpID09PSAnwrBDJ1xuICAgICAgPyB0aGlzLndlYXRoZXJEYXRhKCkhLmZvcmVjYXN0WzBdLm1pblRlbXBDXG4gICAgICA6IHRoaXMud2VhdGhlckRhdGEoKSEuZm9yZWNhc3RbMF0ubWluVGVtcEY7XG4gIH1cbn1cbiJdfQ==","import { AXPWidgetGroupEnum, AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { AXP_DATA_PROPERTY_GROUP } from '@acorex/platform/layout/widgets';\nimport { AXP_WIDGETS_UTILITY_CATEGORY } from '../../chart.type';\n/**\n * Weather Widget Configuration\n * Provides customization options for displaying weather data and forecast\n */\nexport const AXPMinimalWeatherWidget = {\n name: 'minimal-weather',\n title: 'Minimal Weather Widget',\n categories: [AXP_WIDGETS_UTILITY_CATEGORY],\n groups: [AXPWidgetGroupEnum.DashboardWidget],\n type: 'dashboard',\n icon: 'fa-light fa-cloud-sun',\n properties: [\n {\n name: 'temperatureUnit',\n title: '@dashboard:widgets.weather.temperature-unit',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n defaultValue: '°C',\n dataType: 'string',\n interface: {\n name: 'temperatureUnit',\n path: 'options.temperatureUnit',\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: ['°C', '°F'],\n },\n },\n },\n visible: true,\n },\n {\n name: 'city',\n title: '@dashboard:widgets.weather.city',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n defaultValue: 'New York',\n dataType: 'string',\n interface: {\n name: 'city',\n path: 'options.city',\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: true,\n },\n ],\n components: {\n view: {\n component: () => import('./minimal-weather.component').then((c) => c.AXMMinimalWeatherViewComponent),\n },\n },\n meta: {\n dimensions: {\n width: 2,\n height: 2,\n minWidth: 1,\n minHeight: 2,\n maxWidth: 2,\n maxHeight: 3,\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaW1hbC13ZWF0aGVyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NoYXJlZC93aWRnZXRzL3dlYXRoZXIvbWluaW1hbC13ZWF0aGVyL21pbmltYWwtd2VhdGhlci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTdHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFvQjtJQUN0RCxJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCLEtBQUssRUFBRSx3QkFBd0I7SUFDL0IsVUFBVSxFQUFFLENBQUMsNEJBQTRCLENBQUM7SUFDMUMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDO0lBQzVDLElBQUksRUFBRSxXQUFXO0lBQ2pCLElBQUksRUFBRSx1QkFBdUI7SUFDN0IsVUFBVSxFQUFFO1FBQ1Y7WUFDRSxJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLEtBQUssRUFBRSw2Q0FBNkM7WUFDcEQsS0FBSyxFQUFFLHVCQUF1QjtZQUM5QixNQUFNLEVBQUU7Z0JBQ04sWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsSUFBSSxFQUFFLHlCQUF5QjtvQkFDL0IsSUFBSSxFQUFFLGlCQUFpQixDQUFDLE1BQU07b0JBQzlCLE9BQU8sRUFBRTt3QkFDUCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO3FCQUN6QjtpQkFDRjthQUNGO1lBQ0QsT0FBTyxFQUFFLElBQUk7U0FDZDtRQUNEO1lBQ0UsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsaUNBQWlDO1lBQ3hDLEtBQUssRUFBRSx1QkFBdUI7WUFDOUIsTUFBTSxFQUFFO2dCQUNOLFlBQVksRUFBRSxVQUFVO2dCQUN4QixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSxjQUFjO29CQUNwQixJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDN0I7YUFDRjtZQUNELE9BQU8sRUFBRSxJQUFJO1NBQ2Q7S0FDRjtJQUNELFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQztTQUNyRztLQUNGO0lBQ0QsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFO1lBQ1YsS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLEVBQUUsQ0FBQztZQUVULFFBQVEsRUFBRSxDQUFDO1lBQ1gsU0FBUyxFQUFFLENBQUM7WUFFWixRQUFRLEVBQUUsQ0FBQztZQUNYLFNBQVMsRUFBRSxDQUFDO1NBQ2I7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBXaWRnZXRDb25maWcsIEFYUFdpZGdldEdyb3VwRW51bSwgQVhQV2lkZ2V0c0NhdGFsb2cgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5cbmltcG9ydCB7IEFYUF9EQVRBX1BST1BFUlRZX0dST1VQIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0cyc7XG5pbXBvcnQgeyBBWFBfV0lER0VUU19VVElMSVRZX0NBVEVHT1JZIH0gZnJvbSAnLi4vLi4vY2hhcnQudHlwZSc7XG5cbi8qKlxuICogV2VhdGhlciBXaWRnZXQgQ29uZmlndXJhdGlvblxuICogUHJvdmlkZXMgY3VzdG9taXphdGlvbiBvcHRpb25zIGZvciBkaXNwbGF5aW5nIHdlYXRoZXIgZGF0YSBhbmQgZm9yZWNhc3RcbiAqL1xuZXhwb3J0IGNvbnN0IEFYUE1pbmltYWxXZWF0aGVyV2lkZ2V0OiBBWFBXaWRnZXRDb25maWcgPSB7XG4gIG5hbWU6ICdtaW5pbWFsLXdlYXRoZXInLFxuICB0aXRsZTogJ01pbmltYWwgV2VhdGhlciBXaWRnZXQnLFxuICBjYXRlZ29yaWVzOiBbQVhQX1dJREdFVFNfVVRJTElUWV9DQVRFR09SWV0sXG4gIGdyb3VwczogW0FYUFdpZGdldEdyb3VwRW51bS5EYXNoYm9hcmRXaWRnZXRdLFxuICB0eXBlOiAnZGFzaGJvYXJkJyxcbiAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWNsb3VkLXN1bicsXG4gIHByb3BlcnRpZXM6IFtcbiAgICB7XG4gICAgICBuYW1lOiAndGVtcGVyYXR1cmVVbml0JyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLndlYXRoZXIudGVtcGVyYXR1cmUtdW5pdCcsXG4gICAgICBncm91cDogQVhQX0RBVEFfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiAnwrBDJyxcbiAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAndGVtcGVyYXR1cmVVbml0JyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy50ZW1wZXJhdHVyZVVuaXQnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnNlbGVjdCxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBkYXRhU291cmNlOiBbJ8KwQycsICfCsEYnXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnY2l0eScsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy53ZWF0aGVyLmNpdHknLFxuICAgICAgZ3JvdXA6IEFYUF9EQVRBX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ05ldyBZb3JrJyxcbiAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnY2l0eScsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMuY2l0eScsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGNvbXBvbmVudHM6IHtcbiAgICB2aWV3OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9taW5pbWFsLXdlYXRoZXIuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWE1NaW5pbWFsV2VhdGhlclZpZXdDb21wb25lbnQpLFxuICAgIH0sXG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkaW1lbnNpb25zOiB7XG4gICAgICB3aWR0aDogMixcbiAgICAgIGhlaWdodDogMixcblxuICAgICAgbWluV2lkdGg6IDEsXG4gICAgICBtaW5IZWlnaHQ6IDIsXG5cbiAgICAgIG1heFdpZHRoOiAyLFxuICAgICAgbWF4SGVpZ2h0OiAzLFxuICAgIH0sXG4gIH0sXG59O1xuXG4vKipcbiAqIFR5cGUgZGVjbGFyYXRpb24gdG8gcmVnaXN0ZXIgdGhlIHdlYXRoZXIgd2lkZ2V0IHR5cGVcbiAqL1xuZGVjbGFyZSBtb2R1bGUgJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJyB7XG4gIGludGVyZmFjZSBBWFBXaWRnZXRUeXBlc01hcCB7XG4gICAgbWluaW1hbFdlYXRoZXI6ICdtaW5pbWFsLXdlYXRoZXInO1xuICB9XG59XG4iXX0=","import { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPStateMessageComponent } from '@acorex/platform/layout/components';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, effect, inject, signal, viewChild, } from '@angular/core';\nimport { Observable, interval as rxjsInterval, switchMap } from 'rxjs';\nimport { AXPWeatherApiAbstract, AXPWeatherApiService, } from './weather-services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/core/translation\";\n/**\n * Weather Widget Component\n * Displays current weather conditions and optional forecast data\n * for a specified location with customizable display options.\n */\nexport class AXPWeatherWidgetViewComponent extends AXPValueWidgetComponent {\n /**\n * Component constructor\n * @param cdr ChangeDetectorRef for triggering view updates\n */\n constructor(cdr) {\n super();\n this.cdr = cdr;\n // Container element reference\n this.containerEl = viewChild.required('containerElement');\n // Weather API service instance\n this.weatherService = inject(AXPWeatherApiAbstract);\n // State signals\n this.weatherData = signal(null, ...(ngDevMode ? [{ debugName: \"weatherData\" }] : []));\n this.isLoading = signal(true, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.hasError = signal(false, ...(ngDevMode ? [{ debugName: \"hasError\" }] : []));\n this.errorMessage = signal('', ...(ngDevMode ? [{ debugName: \"errorMessage\" }] : []));\n this.isForecastLoading = signal(false, ...(ngDevMode ? [{ debugName: \"isForecastLoading\" }] : []));\n // Auto-refresh subscription\n this.refreshSubscription = null;\n // Option-derived computed properties\n this.city = computed(() => {\n return this.options()['city'] || 'Newyork';\n }, ...(ngDevMode ? [{ debugName: \"city\" }] : []));\n this.temperatureUnit = computed(() => this.options()['temperatureUnit']?.id || '°C', ...(ngDevMode ? [{ debugName: \"temperatureUnit\" }] : []));\n this.windSpeedUnit = computed(() => this.options()['windSpeedUnit']?.id || 'km/h', ...(ngDevMode ? [{ debugName: \"windSpeedUnit\" }] : []));\n // Display option flags\n this.showCurrentCondition = computed(() => this.options()['showCurrentCondition'] !== false, ...(ngDevMode ? [{ debugName: \"showCurrentCondition\" }] : []));\n this.showTemperature = computed(() => this.options()['showTemperature'] !== false, ...(ngDevMode ? [{ debugName: \"showTemperature\" }] : []));\n this.showHumidity = computed(() => this.options()['showHumidity'] !== false, ...(ngDevMode ? [{ debugName: \"showHumidity\" }] : []));\n this.showWind = computed(() => this.options()['showWind'] !== false, ...(ngDevMode ? [{ debugName: \"showWind\" }] : []));\n this.showForecast = computed(() => this.options()['showForecast'] !== false, ...(ngDevMode ? [{ debugName: \"showForecast\" }] : []));\n this.forecastDays = computed(() => this.options()['forecastDays'] ?? 5, ...(ngDevMode ? [{ debugName: \"forecastDays\" }] : []));\n // Refresh settings\n this.autoRefresh = computed(() => this.options()['autoRefresh'] !== false, ...(ngDevMode ? [{ debugName: \"autoRefresh\" }] : []));\n this.refreshInterval = computed(() => this.options()['refreshInterval']?.id ?? 15, ...(ngDevMode ? [{ debugName: \"refreshInterval\" }] : []));\n // Reactivity effects\n this.optionsEffect = effect(() => {\n const opts = this.options();\n this.loadWeatherData();\n this.setupRefreshTimer();\n }, ...(ngDevMode ? [{ debugName: \"optionsEffect\" }] : []));\n this.valueEffect = effect(() => {\n this.city();\n this.loadWeatherData();\n }, ...(ngDevMode ? [{ debugName: \"valueEffect\" }] : []));\n this.displayedForecast = computed(() => {\n const weatherData = this.weatherData();\n if (!weatherData?.forecast)\n return [];\n const forecastDays = this.forecastDays();\n return weatherData.forecast.slice(0, forecastDays);\n }, ...(ngDevMode ? [{ debugName: \"displayedForecast\" }] : []));\n // Inject the abstract service which will resolve to either the mock or real implementation\n this.weatherService = inject(AXPWeatherApiAbstract);\n setTimeout(() => {\n this.loadWeatherData();\n this.setupRefreshTimer();\n }, 0);\n }\n /**\n * Component cleanup on destroy\n */\n ngOnDestroy() {\n this.clearRefreshTimer();\n }\n /**\n * Loads weather data from the API\n * Sets loading state and handles errors\n */\n loadWeatherData() {\n this.isLoading.set(true);\n this.hasError.set(false);\n this.errorMessage.set('');\n const locationQuery = this.city();\n const shouldShowForecast = this.showForecast();\n // If we need forecast, request it directly to avoid duplicate calls\n // The forecast endpoint also returns current weather\n if (shouldShowForecast) {\n const forecastOptions = {\n location: locationQuery,\n tempUnit: this.temperatureUnit(),\n useMockData: false, // Use real API, signals to use forecast endpoint\n days: this.forecastDays(),\n };\n this.isForecastLoading.set(true);\n this.weatherService.getForecast(forecastOptions).subscribe({\n next: (data) => {\n this.weatherData.set(data);\n this.isLoading.set(false);\n this.isForecastLoading.set(false);\n setTimeout(() => this.cdr.detectChanges());\n },\n error: (error) => {\n this.handleError(error);\n this.isLoading.set(false);\n this.isForecastLoading.set(false);\n this.cdr.detectChanges();\n },\n });\n return;\n }\n // If we only need current weather, use getWeather\n const requestOptions = {\n location: locationQuery,\n tempUnit: this.temperatureUnit(),\n useMockData: false, // Use real API\n };\n this.weatherService.getWeather(requestOptions).subscribe({\n next: (data) => {\n this.weatherData.set(data);\n this.isLoading.set(false);\n setTimeout(() => this.cdr.detectChanges());\n },\n error: (error) => {\n this.handleError(error);\n this.isLoading.set(false);\n this.cdr.detectChanges();\n },\n });\n }\n /**\n * Sets up the auto-refresh timer based on configuration\n */\n setupRefreshTimer() {\n this.clearRefreshTimer();\n if (!this.autoRefresh())\n return;\n const minInterval = 5; // 5 minutes minimum\n const intervalValue = Math.max(this.refreshInterval(), minInterval);\n const intervalMs = intervalValue * 60 * 1000;\n this.refreshSubscription = rxjsInterval(intervalMs)\n .pipe(switchMap(() => {\n // Always use the loadWeatherData method to determine the correct API call\n this.loadWeatherData();\n // Return an empty observable to satisfy the switchMap typing\n return new Observable((observer) => {\n observer.complete();\n });\n }))\n .subscribe();\n }\n /**\n * Clears the refresh timer subscription\n */\n clearRefreshTimer() {\n if (this.refreshSubscription) {\n this.refreshSubscription.unsubscribe();\n this.refreshSubscription = null;\n }\n }\n /**\n * Manually refreshes the weather data\n */\n refreshWeather() {\n this.loadWeatherData();\n }\n /**\n * Gets the current temperature based on selected unit\n */\n getCurrentTemperature() {\n if (!this.weatherData())\n return 0;\n return this.temperatureUnit() === '°C' ? this.weatherData().current.tempC : this.weatherData().current.tempF;\n }\n /**\n * Gets the feels like temperature based on selected unit\n */\n getFeelsLikeTemperature() {\n if (!this.weatherData())\n return 0;\n return this.temperatureUnit() === '°C'\n ? this.weatherData().current.feelsLikeC\n : this.weatherData().current.feelsLikeF;\n }\n /**\n * Gets the humidity percentage\n */\n getHumidity() {\n return this.weatherData()?.current.humidity || 0;\n }\n /**\n * Gets the wind speed based on selected unit\n */\n getWindSpeed() {\n if (!this.weatherData())\n return 0;\n return this.windSpeedUnit() === 'km/h' ? this.weatherData().current.windKph : this.weatherData().current.windMph;\n }\n /**\n * Gets the current weather condition\n */\n getCurrentCondition() {\n const conditionId = this.weatherData()?.current.condition || '';\n return this.getConditionName(conditionId);\n }\n /**\n * Gets the formatted last updated time\n */\n getLastUpdated() {\n if (!this.weatherData()?.current.lastUpdated)\n return '';\n return new Date(this.weatherData().current.lastUpdated).toLocaleTimeString();\n }\n /**\n * Gets the appropriate icon class for a weather condition\n * @param conditionId The ID of the weather condition\n * @returns The Font Awesome icon class string\n */\n getConditionIcon(conditionId) {\n if (!conditionId) {\n conditionId = 'unknown';\n }\n const svgIcon = this.weatherService.getCondition(conditionId).svgIcon;\n return `assets/images/weather/${svgIcon}`;\n }\n /**\n * Gets the display name for a weather condition\n * @param conditionId The ID of the weather condition\n * @returns The translated display name\n */\n getConditionName(conditionId) {\n const condition = this.weatherService.getCondition(conditionId);\n if (!condition?.name)\n return 'weather.conditions.sunny';\n // Convert condition name to lowercase and replace spaces with hyphens\n const formattedName = condition.name.toLowerCase().replace(/\\s+/g, '-');\n return `weather.conditions.${formattedName}`;\n }\n /**\n * Gets the color for a weather condition\n * @param conditionId Weather condition ID\n * @returns CSS color value\n */\n getConditionColor(conditionId) {\n const condition = this.weatherService.getCondition(conditionId);\n return condition?.color || '#999999';\n }\n /**\n * Cleans up chart resources\n * Required by AXPChartBaseComponent\n */\n cleanupChart() {\n this.clearRefreshTimer();\n }\n handleError(error) {\n console.error('Weather widget error:', error);\n this.hasError.set(true);\n // Check if it's a network error\n if (error.status === 0) {\n this.errorMessage.set('weather.error.network');\n return;\n }\n // Check if it's an API error\n if (error.status >= 400 && error.status < 500) {\n this.errorMessage.set('weather.error.api');\n return;\n }\n // Default error message\n this.errorMessage.set('weather.error.general');\n }\n getTemperatureUnit() {\n return this.temperatureUnit() === '°C' ? 'weather.units.celsius' : 'weather.units.fahrenheit';\n }\n getWindSpeedUnit() {\n return this.windSpeedUnit() === 'km/h' ? 'weather.units.kmh' : 'weather.units.mph';\n }\n getDayName(date) {\n const today = new Date();\n const tomorrow = new Date(today);\n tomorrow.setDate(tomorrow.getDate() + 1);\n if (date.toDateString() === today.toDateString()) {\n return 'weather.days.today';\n }\n if (date.toDateString() === tomorrow.toDateString()) {\n return 'weather.days.tomorrow';\n }\n const days = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];\n return `weather.days.${days[date.getDay()]}`;\n }\n parseDate(dateStr) {\n return new Date(dateStr);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWeatherWidgetViewComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPWeatherWidgetViewComponent, isStandalone: true, selector: \"ng-component\", providers: [\n {\n provide: AXPWeatherApiAbstract,\n useClass: AXPWeatherApiService,\n },\n ], viewQueries: [{ propertyName: \"containerEl\", first: true, predicate: [\"containerElement\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<!-- Weather Widget Component Template -->\\n<div class=\\\"axp-weather-container\\\" #containerElement>\\n <!-- Loading indicator -->\\n @if (isLoading()) {\\n <div class=\\\"axp-weather-loading-overlay\\\">\\n <div class=\\\"axp-weather-loading-spinner\\\">\\n <i class=\\\"fa-solid fa-spinner fa-spin\\\"></i>\\n <span>{{ '@dashboard:weather.loading' | translate | async }}</span>\\n </div>\\n </div>\\n }\\n\\n <!-- Error message -->\\n @if (hasError()) {\\n <axp-state-message\\n mode=\\\"error\\\"\\n icon=\\\"fa-solid fa-exclamation-triangle\\\"\\n [title]=\\\"'@dashboard:weather.error.title'\\\"\\n [description]=\\\"errorMessage()\\\"\\n >\\n <button slot=\\\"actions\\\" class=\\\"axp-weather-retry-button\\\" (click)=\\\"refreshWeather()\\\">\\n <i class=\\\"fa-solid fa-sync-alt\\\"></i>\\n <span>{{ '@dashboard:weather.retry' | translate | async }}</span>\\n </button>\\n </axp-state-message>\\n }\\n\\n <!-- Weather content - only show when we have data -->\\n @if (weatherData()) {\\n <!-- Background decorations based on weather condition -->\\n <div class=\\\"axp-weather-background-decorations\\\">\\n <div class=\\\"axp-weather-decoration\\\" [ngClass]=\\\"weatherData()?.current?.condition?.toLowerCase()\\\"></div>\\n <div class=\\\"axp-weather-gradient-overlay\\\"></div>\\n </div>\\n\\n <div class=\\\"axp-weather-inner\\\">\\n <!-- Location information section -->\\n <div class=\\\"axp-weather-location-info\\\">\\n <div class=\\\"axp-weather-location-icon\\\">\\n <i class=\\\"fa-solid fa-location-dot\\\"></i>\\n </div>\\n <div class=\\\"axp-weather-location-text\\\">\\n <h2 class=\\\"axp-weather-location-name\\\">{{ city() }}</h2>\\n </div>\\n </div>\\n\\n <!-- Current weather conditions section -->\\n <div class=\\\"axp-weather-current-weather\\\">\\n <!-- Weather icon and condition name -->\\n @if (showCurrentCondition()) {\\n <div class=\\\"axp-weather-condition\\\">\\n <div class=\\\"axp-weather-icon-wrapper\\\">\\n <div class=\\\"axp-weather-icon\\\">\\n <img [src]=\\\"getConditionIcon(weatherData()?.current?.condition || '')\\\" />\\n </div>\\n <div\\n class=\\\"axp-weather-icon-glow\\\"\\n [style.background-color]=\\\"getConditionColor(weatherData()?.current?.condition || '')\\\"\\n ></div>\\n </div>\\n <div class=\\\"axp-weather-condition-name\\\">\\n {{ getCurrentCondition() | translate | async }}\\n </div>\\n </div>\\n }\\n\\n <!-- Temperature display -->\\n @if (showTemperature()) {\\n <div class=\\\"axp-weather-temperature\\\">\\n <span class=\\\"axp-weather-temperature-value\\\">{{ getCurrentTemperature() }}</span>\\n <span class=\\\"axp-weather-temperature-unit\\\">{{ getTemperatureUnit() | translate | async }}</span>\\n </div>\\n }\\n </div>\\n\\n <!-- Weather details section (humidity and wind) -->\\n @if (showHumidity() || showWind()) {\\n <div class=\\\"axp-weather-details\\\">\\n <!-- Humidity information -->\\n @if (showHumidity()) {\\n <div class=\\\"axp-weather-detail-item\\\">\\n <div class=\\\"axp-weather-detail-icon\\\">\\n <i class=\\\"fa-solid fa-droplet\\\"></i>\\n </div>\\n <div class=\\\"axp-weather-detail-info\\\">\\n <div class=\\\"axp-weather-detail-label\\\">\\n {{ '@dashboard:weather.humidity' | translate | async }}\\n </div>\\n <div class=\\\"axp-weather-detail-value\\\">{{ getHumidity() }}%</div>\\n </div>\\n </div>\\n }\\n\\n <!-- Wind speed information -->\\n @if (showWind()) {\\n <div class=\\\"axp-weather-detail-item\\\">\\n <div class=\\\"axp-weather-detail-icon\\\">\\n <i class=\\\"fa-solid fa-wind\\\"></i>\\n </div>\\n <div class=\\\"axp-weather-detail-info\\\">\\n <div class=\\\"axp-weather-detail-label\\\">\\n {{ '@dashboard:weather.wind' | translate | async }}\\n </div>\\n <div class=\\\"axp-weather-detail-value\\\">\\n {{ getWindSpeed() }} {{ getWindSpeedUnit() | translate | async }}\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Weather forecast section -->\\n @if (showForecast() && weatherData()?.forecast) {\\n <div class=\\\"axp-weather-forecast\\\">\\n <div class=\\\"axp-weather-forecast-header\\\">\\n <h3 class=\\\"axp-weather-forecast-title\\\">\\n <i class=\\\"fa-solid fa-calendar-days\\\"></i>\\n <span class=\\\"ax-px-1\\\">{{ '@dashboard:weather.forecast' | translate | async }}</span>\\n </h3>\\n </div>\\n <!-- Loading indicator for forecast -->\\n <!-- @if (isForecastLoading()) {\\n <div class=\\\"axp-weather-forecast-loading\\\">\\n <i class=\\\"fa-solid fa-spinner fa-spin\\\"></i>\\n <span>{{ '@dashboard:weather.loading-forecast' | translate | async }}</span>\\n </div>\\n } -->\\n <!-- Scrollable forecast days display -->\\n <div class=\\\"axp-weather-forecast-items\\\">\\n @for (day of displayedForecast(); track day.day) {\\n <div class=\\\"axp-weather-forecast-day\\\">\\n <div class=\\\"axp-weather-forecast-day-name\\\">\\n {{ getDayName(parseDate(day.date)) | translate | async }}\\n </div>\\n <div class=\\\"axp-weather-forecast-icon\\\" [title]=\\\"getConditionName(day.condition) | translate | async\\\">\\n <img [src]=\\\"getConditionIcon(day.condition || '')\\\" />\\n </div>\\n <div class=\\\"axp-weather-forecast-temps\\\">\\n <span class=\\\"axp-weather-forecast-low\\\">\\n {{ temperatureUnit() === '\\u00B0C' ? day.minTempC : day.minTempF\\n }}{{ getTemperatureUnit() | translate | async }}\\n </span>\\n <span class=\\\"axp-weather-forecast-high\\\">\\n {{ temperatureUnit() === '\\u00B0C' ? day.maxTempC : day.maxTempF\\n }}{{ getTemperatureUnit() | translate | async }}\\n </span>\\n </div>\\n </div>\\n }\\n </div>\\n </div>\\n }\\n\\n <!-- Last updated timestamp -->\\n <div class=\\\"axp-weather-last-updated\\\">\\n <span>{{ '@dashboard:weather.last-updated' | translate | async }}: {{ getLastUpdated() }}</span>\\n </div>\\n\\n <!-- Manual refresh button -->\\n <div class=\\\"axp-weather-refresh-action\\\">\\n <button\\n class=\\\"axp-weather-refresh-button\\\"\\n (click)=\\\"refreshWeather()\\\"\\n [attr.aria-label]=\\\"'@dashboard:weather.refresh' | translate | async\\\"\\n [title]=\\\"'@dashboard:weather.refresh' | translate | async\\\"\\n >\\n <i class=\\\"fa-solid fa-sync-alt\\\"></i>\\n <span>{{ '@dashboard:weather.refresh' | translate | async }}</span>\\n </button>\\n </div>\\n </div>\\n } @else if (!isLoading() && !hasError()) {\\n <!-- No data state (not loading, no error) -->\\n <axp-state-message\\n icon=\\\"fa-solid fa-cloud-sun\\\"\\n [title]=\\\"'@dashboard:weather.no-data.title'\\\"\\n [description]=\\\"'@dashboard:weather.no-data.description'\\\"\\n >\\n <button slot=\\\"actions\\\" class=\\\"axp-weather-refresh-button\\\" (click)=\\\"refreshWeather()\\\">\\n <i class=\\\"fa-solid fa-sync-alt\\\"></i>\\n <span>{{ '@dashboard:weather.load-data' | translate | async }}</span>\\n </button>\\n </axp-state-message>\\n }\\n</div>\\n\", styles: [\":host{display:block;width:100%;height:100%;--primary-gradient-start: #2196f3;--primary-gradient-end: #1976d2;--shadow-color: rgba(0, 0, 0, .2);--glass-bg: rgba(255, 255, 255, .15);--glass-border: rgba(255, 255, 255, .2);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .75);--transition-speed: .3s}.axp-weather-container{width:100%;height:100%;overflow:hidden;position:relative;box-shadow:0 4px 8px #0000001a;min-height:300px}.axp-weather-loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#2c3e50d9;display:flex;justify-content:center;align-items:center;z-index:100}.axp-weather-loading-spinner{text-align:center}.axp-weather-loading-spinner i{font-size:2.5rem;color:#fff;margin-bottom:.5rem}.axp-weather-loading-spinner span{display:block;color:#fff;font-size:1rem}.axp-weather-background-decorations{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.axp-weather-decoration{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center}.axp-weather-gradient-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.axp-weather-inner{position:relative;z-index:2;height:100%;padding:1.5rem;display:flex;flex-direction:column;justify-content:space-between}.axp-weather-location-info{display:flex;align-items:center;margin-bottom:1.5rem}.axp-weather-location-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background-color:#fff3;border-radius:50%;margin-right:.75rem}.axp-weather-location-icon i{color:#fff}.axp-weather-location-name{margin:0;font-size:1.5rem;font-weight:500;text-shadow:1px 1px 3px rgba(0,0,0,.2);text-transform:capitalize}.axp-weather-current-weather{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap}.axp-weather-condition{display:flex;flex-direction:column;align-items:center}.axp-weather-icon-wrapper{position:relative;margin-bottom:.5rem}.axp-weather-icon{position:relative;z-index:2;scale:2}.axp-weather-icon i{font-size:2.75rem;filter:drop-shadow(0 0 8px rgba(0,0,0,.3))}.axp-weather-icon-glow{position:absolute;z-index:1;top:50%;left:50%;transform:translate(-50%,-50%);width:45px;height:45px;border-radius:50%;filter:blur(15px);opacity:.4}.axp-weather-condition-name{font-size:1.1rem;text-align:center;text-shadow:1px 1px 2px rgba(0,0,0,.2)}.axp-weather-temperature{display:flex;align-items:flex-start;text-shadow:1px 1px 3px rgba(0,0,0,.3)}.axp-weather-temperature-value{font-size:3.5rem;font-weight:500;line-height:1}.axp-weather-temperature-unit{font-size:1.5rem;margin-top:.25rem}.axp-weather-details{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-darker-surface),var(--tw-bg-opacity, 1));display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:1rem;padding:1rem;border-radius:8px}.axp-weather-detail-item{display:flex;align-items:center;flex:1;min-width:120px}.axp-weather-detail-icon{width:40px;height:40px;border-radius:50%;background-color:#fff3;display:flex;align-items:center;justify-content:center;margin-right:.75rem}.axp-weather-detail-icon i{font-size:1.25rem}.axp-weather-detail-info{display:flex;padding-inline:.25rem;flex-direction:column}.axp-weather-detail-label{font-size:.875rem;margin-bottom:.25rem}.axp-weather-detail-value{font-size:1.125rem;font-weight:500}.axp-weather-forecast{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-darker-surface),var(--tw-bg-opacity, 1));margin-bottom:.5rem;border-radius:8px;padding:1rem}.axp-weather-forecast-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.axp-weather-forecast-title{margin:0;font-size:1.125rem;font-weight:500;display:flex;align-items:center}.axp-weather-forecast-title i{margin-right:.5rem;opacity:.8}.axp-weather-scroll-indicator{color:#fff9}.axp-weather-forecast-items{display:flex;overflow-x:auto;gap:.75rem;padding-bottom:.5rem}.axp-weather-forecast-items::-webkit-scrollbar{height:4px}.axp-weather-forecast-items::-webkit-scrollbar-thumb{background-color:#ffffff4d;border-radius:4px}.axp-weather-forecast-items::-webkit-scrollbar-track{background-color:#0000001a;border-radius:4px}.axp-weather-forecast-day{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-surface),var(--tw-bg-opacity, 1));min-width:90px;display:flex;flex-direction:column;align-items:center;padding:.75rem .5rem;border-radius:6px;transition:all .3s ease}.axp-weather-forecast-day:hover{transform:translateY(-2px)}.axp-weather-forecast-day-name{font-size:.875rem;margin-bottom:.5rem;font-weight:500}.axp-weather-forecast-icon{font-size:1.5rem;margin-bottom:.5rem}.axp-weather-forecast-icon i{filter:drop-shadow(0 0 5px rgba(0,0,0,.2))}.axp-weather-forecast-temps{display:flex;flex-direction:row;gap:.75rem;align-items:center;font-size:.775rem}.axp-weather-last-updated{text-align:center;font-size:.75rem;opacity:.7;margin-bottom:.5rem}.axp-weather-refresh-action{text-align:center}.axp-weather-refresh-button{background-color:#fff3;color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;font-size:.875rem;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:.5rem}.axp-weather-refresh-button:hover{background-color:#ffffff4d;transform:translateY(-1px)}.axp-weather-refresh-button i{font-size:.875rem}@media (max-width: 576px){.axp-weather-inner{padding:.8rem;gap:.4rem}.axp-weather-location-name{font-size:1.1rem;padding-inline:.25rem}.axp-weather-temperature{font-size:2.5rem}.axp-weather-temperature-unit{font-size:1.1rem}.axp-weather-weather-details{flex-direction:column;gap:.5rem}.axp-weather-forecast-items{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.5rem;margin:0 -.4rem;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:thin;mask-image:linear-gradient(to right,#000 95%,#0000);-webkit-mask-image:linear-gradient(to right,rgb(0,0,0) 95%,rgba(0,0,0,0))}.axp-weather-forecast-items::-webkit-scrollbar{height:4px}.axp-weather-forecast-items::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:4px}.axp-weather-forecast-day{min-width:60px;flex:0 0 auto;padding:.4rem .6rem}.axp-weather-forecast-day-name{font-size:.7rem}.axp-weather-forecast-icon{padding:.3rem;height:1.6rem}.axp-weather-forecast-temps{font-size:.7rem}.axp-weather-scroll-indicator{display:block}}:host-context(.theme-dark){--glass-bg: rgba(0, 0, 0, .3);--glass-border: rgba(255, 255, 255, .1)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: AXDateTimeModule }, { kind: \"ngmodule\", type: AXFormatModule }, { kind: \"ngmodule\", type: HttpClientModule }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"component\", type: AXPStateMessageComponent, selector: \"axp-state-message\", inputs: [\"mode\", \"icon\", \"title\", \"description\", \"variant\"] }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i2.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWeatherWidgetViewComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, imports: [CommonModule, AXDateTimeModule, AXFormatModule, HttpClientModule, AXTranslationModule, AXPStateMessageComponent], providers: [\n {\n provide: AXPWeatherApiAbstract,\n useClass: AXPWeatherApiService,\n },\n ], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<!-- Weather Widget Component Template -->\\n<div class=\\\"axp-weather-container\\\" #containerElement>\\n <!-- Loading indicator -->\\n @if (isLoading()) {\\n <div class=\\\"axp-weather-loading-overlay\\\">\\n <div class=\\\"axp-weather-loading-spinner\\\">\\n <i class=\\\"fa-solid fa-spinner fa-spin\\\"></i>\\n <span>{{ '@dashboard:weather.loading' | translate | async }}</span>\\n </div>\\n </div>\\n }\\n\\n <!-- Error message -->\\n @if (hasError()) {\\n <axp-state-message\\n mode=\\\"error\\\"\\n icon=\\\"fa-solid fa-exclamation-triangle\\\"\\n [title]=\\\"'@dashboard:weather.error.title'\\\"\\n [description]=\\\"errorMessage()\\\"\\n >\\n <button slot=\\\"actions\\\" class=\\\"axp-weather-retry-button\\\" (click)=\\\"refreshWeather()\\\">\\n <i class=\\\"fa-solid fa-sync-alt\\\"></i>\\n <span>{{ '@dashboard:weather.retry' | translate | async }}</span>\\n </button>\\n </axp-state-message>\\n }\\n\\n <!-- Weather content - only show when we have data -->\\n @if (weatherData()) {\\n <!-- Background decorations based on weather condition -->\\n <div class=\\\"axp-weather-background-decorations\\\">\\n <div class=\\\"axp-weather-decoration\\\" [ngClass]=\\\"weatherData()?.current?.condition?.toLowerCase()\\\"></div>\\n <div class=\\\"axp-weather-gradient-overlay\\\"></div>\\n </div>\\n\\n <div class=\\\"axp-weather-inner\\\">\\n <!-- Location information section -->\\n <div class=\\\"axp-weather-location-info\\\">\\n <div class=\\\"axp-weather-location-icon\\\">\\n <i class=\\\"fa-solid fa-location-dot\\\"></i>\\n </div>\\n <div class=\\\"axp-weather-location-text\\\">\\n <h2 class=\\\"axp-weather-location-name\\\">{{ city() }}</h2>\\n </div>\\n </div>\\n\\n <!-- Current weather conditions section -->\\n <div class=\\\"axp-weather-current-weather\\\">\\n <!-- Weather icon and condition name -->\\n @if (showCurrentCondition()) {\\n <div class=\\\"axp-weather-condition\\\">\\n <div class=\\\"axp-weather-icon-wrapper\\\">\\n <div class=\\\"axp-weather-icon\\\">\\n <img [src]=\\\"getConditionIcon(weatherData()?.current?.condition || '')\\\" />\\n </div>\\n <div\\n class=\\\"axp-weather-icon-glow\\\"\\n [style.background-color]=\\\"getConditionColor(weatherData()?.current?.condition || '')\\\"\\n ></div>\\n </div>\\n <div class=\\\"axp-weather-condition-name\\\">\\n {{ getCurrentCondition() | translate | async }}\\n </div>\\n </div>\\n }\\n\\n <!-- Temperature display -->\\n @if (showTemperature()) {\\n <div class=\\\"axp-weather-temperature\\\">\\n <span class=\\\"axp-weather-temperature-value\\\">{{ getCurrentTemperature() }}</span>\\n <span class=\\\"axp-weather-temperature-unit\\\">{{ getTemperatureUnit() | translate | async }}</span>\\n </div>\\n }\\n </div>\\n\\n <!-- Weather details section (humidity and wind) -->\\n @if (showHumidity() || showWind()) {\\n <div class=\\\"axp-weather-details\\\">\\n <!-- Humidity information -->\\n @if (showHumidity()) {\\n <div class=\\\"axp-weather-detail-item\\\">\\n <div class=\\\"axp-weather-detail-icon\\\">\\n <i class=\\\"fa-solid fa-droplet\\\"></i>\\n </div>\\n <div class=\\\"axp-weather-detail-info\\\">\\n <div class=\\\"axp-weather-detail-label\\\">\\n {{ '@dashboard:weather.humidity' | translate | async }}\\n </div>\\n <div class=\\\"axp-weather-detail-value\\\">{{ getHumidity() }}%</div>\\n </div>\\n </div>\\n }\\n\\n <!-- Wind speed information -->\\n @if (showWind()) {\\n <div class=\\\"axp-weather-detail-item\\\">\\n <div class=\\\"axp-weather-detail-icon\\\">\\n <i class=\\\"fa-solid fa-wind\\\"></i>\\n </div>\\n <div class=\\\"axp-weather-detail-info\\\">\\n <div class=\\\"axp-weather-detail-label\\\">\\n {{ '@dashboard:weather.wind' | translate | async }}\\n </div>\\n <div class=\\\"axp-weather-detail-value\\\">\\n {{ getWindSpeed() }} {{ getWindSpeedUnit() | translate | async }}\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Weather forecast section -->\\n @if (showForecast() && weatherData()?.forecast) {\\n <div class=\\\"axp-weather-forecast\\\">\\n <div class=\\\"axp-weather-forecast-header\\\">\\n <h3 class=\\\"axp-weather-forecast-title\\\">\\n <i class=\\\"fa-solid fa-calendar-days\\\"></i>\\n <span class=\\\"ax-px-1\\\">{{ '@dashboard:weather.forecast' | translate | async }}</span>\\n </h3>\\n </div>\\n <!-- Loading indicator for forecast -->\\n <!-- @if (isForecastLoading()) {\\n <div class=\\\"axp-weather-forecast-loading\\\">\\n <i class=\\\"fa-solid fa-spinner fa-spin\\\"></i>\\n <span>{{ '@dashboard:weather.loading-forecast' | translate | async }}</span>\\n </div>\\n } -->\\n <!-- Scrollable forecast days display -->\\n <div class=\\\"axp-weather-forecast-items\\\">\\n @for (day of displayedForecast(); track day.day) {\\n <div class=\\\"axp-weather-forecast-day\\\">\\n <div class=\\\"axp-weather-forecast-day-name\\\">\\n {{ getDayName(parseDate(day.date)) | translate | async }}\\n </div>\\n <div class=\\\"axp-weather-forecast-icon\\\" [title]=\\\"getConditionName(day.condition) | translate | async\\\">\\n <img [src]=\\\"getConditionIcon(day.condition || '')\\\" />\\n </div>\\n <div class=\\\"axp-weather-forecast-temps\\\">\\n <span class=\\\"axp-weather-forecast-low\\\">\\n {{ temperatureUnit() === '\\u00B0C' ? day.minTempC : day.minTempF\\n }}{{ getTemperatureUnit() | translate | async }}\\n </span>\\n <span class=\\\"axp-weather-forecast-high\\\">\\n {{ temperatureUnit() === '\\u00B0C' ? day.maxTempC : day.maxTempF\\n }}{{ getTemperatureUnit() | translate | async }}\\n </span>\\n </div>\\n </div>\\n }\\n </div>\\n </div>\\n }\\n\\n <!-- Last updated timestamp -->\\n <div class=\\\"axp-weather-last-updated\\\">\\n <span>{{ '@dashboard:weather.last-updated' | translate | async }}: {{ getLastUpdated() }}</span>\\n </div>\\n\\n <!-- Manual refresh button -->\\n <div class=\\\"axp-weather-refresh-action\\\">\\n <button\\n class=\\\"axp-weather-refresh-button\\\"\\n (click)=\\\"refreshWeather()\\\"\\n [attr.aria-label]=\\\"'@dashboard:weather.refresh' | translate | async\\\"\\n [title]=\\\"'@dashboard:weather.refresh' | translate | async\\\"\\n >\\n <i class=\\\"fa-solid fa-sync-alt\\\"></i>\\n <span>{{ '@dashboard:weather.refresh' | translate | async }}</span>\\n </button>\\n </div>\\n </div>\\n } @else if (!isLoading() && !hasError()) {\\n <!-- No data state (not loading, no error) -->\\n <axp-state-message\\n icon=\\\"fa-solid fa-cloud-sun\\\"\\n [title]=\\\"'@dashboard:weather.no-data.title'\\\"\\n [description]=\\\"'@dashboard:weather.no-data.description'\\\"\\n >\\n <button slot=\\\"actions\\\" class=\\\"axp-weather-refresh-button\\\" (click)=\\\"refreshWeather()\\\">\\n <i class=\\\"fa-solid fa-sync-alt\\\"></i>\\n <span>{{ '@dashboard:weather.load-data' | translate | async }}</span>\\n </button>\\n </axp-state-message>\\n }\\n</div>\\n\", styles: [\":host{display:block;width:100%;height:100%;--primary-gradient-start: #2196f3;--primary-gradient-end: #1976d2;--shadow-color: rgba(0, 0, 0, .2);--glass-bg: rgba(255, 255, 255, .15);--glass-border: rgba(255, 255, 255, .2);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .75);--transition-speed: .3s}.axp-weather-container{width:100%;height:100%;overflow:hidden;position:relative;box-shadow:0 4px 8px #0000001a;min-height:300px}.axp-weather-loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#2c3e50d9;display:flex;justify-content:center;align-items:center;z-index:100}.axp-weather-loading-spinner{text-align:center}.axp-weather-loading-spinner i{font-size:2.5rem;color:#fff;margin-bottom:.5rem}.axp-weather-loading-spinner span{display:block;color:#fff;font-size:1rem}.axp-weather-background-decorations{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.axp-weather-decoration{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center}.axp-weather-gradient-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.axp-weather-inner{position:relative;z-index:2;height:100%;padding:1.5rem;display:flex;flex-direction:column;justify-content:space-between}.axp-weather-location-info{display:flex;align-items:center;margin-bottom:1.5rem}.axp-weather-location-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background-color:#fff3;border-radius:50%;margin-right:.75rem}.axp-weather-location-icon i{color:#fff}.axp-weather-location-name{margin:0;font-size:1.5rem;font-weight:500;text-shadow:1px 1px 3px rgba(0,0,0,.2);text-transform:capitalize}.axp-weather-current-weather{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap}.axp-weather-condition{display:flex;flex-direction:column;align-items:center}.axp-weather-icon-wrapper{position:relative;margin-bottom:.5rem}.axp-weather-icon{position:relative;z-index:2;scale:2}.axp-weather-icon i{font-size:2.75rem;filter:drop-shadow(0 0 8px rgba(0,0,0,.3))}.axp-weather-icon-glow{position:absolute;z-index:1;top:50%;left:50%;transform:translate(-50%,-50%);width:45px;height:45px;border-radius:50%;filter:blur(15px);opacity:.4}.axp-weather-condition-name{font-size:1.1rem;text-align:center;text-shadow:1px 1px 2px rgba(0,0,0,.2)}.axp-weather-temperature{display:flex;align-items:flex-start;text-shadow:1px 1px 3px rgba(0,0,0,.3)}.axp-weather-temperature-value{font-size:3.5rem;font-weight:500;line-height:1}.axp-weather-temperature-unit{font-size:1.5rem;margin-top:.25rem}.axp-weather-details{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-darker-surface),var(--tw-bg-opacity, 1));display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:1rem;padding:1rem;border-radius:8px}.axp-weather-detail-item{display:flex;align-items:center;flex:1;min-width:120px}.axp-weather-detail-icon{width:40px;height:40px;border-radius:50%;background-color:#fff3;display:flex;align-items:center;justify-content:center;margin-right:.75rem}.axp-weather-detail-icon i{font-size:1.25rem}.axp-weather-detail-info{display:flex;padding-inline:.25rem;flex-direction:column}.axp-weather-detail-label{font-size:.875rem;margin-bottom:.25rem}.axp-weather-detail-value{font-size:1.125rem;font-weight:500}.axp-weather-forecast{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-darker-surface),var(--tw-bg-opacity, 1));margin-bottom:.5rem;border-radius:8px;padding:1rem}.axp-weather-forecast-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.axp-weather-forecast-title{margin:0;font-size:1.125rem;font-weight:500;display:flex;align-items:center}.axp-weather-forecast-title i{margin-right:.5rem;opacity:.8}.axp-weather-scroll-indicator{color:#fff9}.axp-weather-forecast-items{display:flex;overflow-x:auto;gap:.75rem;padding-bottom:.5rem}.axp-weather-forecast-items::-webkit-scrollbar{height:4px}.axp-weather-forecast-items::-webkit-scrollbar-thumb{background-color:#ffffff4d;border-radius:4px}.axp-weather-forecast-items::-webkit-scrollbar-track{background-color:#0000001a;border-radius:4px}.axp-weather-forecast-day{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-surface),var(--tw-bg-opacity, 1));min-width:90px;display:flex;flex-direction:column;align-items:center;padding:.75rem .5rem;border-radius:6px;transition:all .3s ease}.axp-weather-forecast-day:hover{transform:translateY(-2px)}.axp-weather-forecast-day-name{font-size:.875rem;margin-bottom:.5rem;font-weight:500}.axp-weather-forecast-icon{font-size:1.5rem;margin-bottom:.5rem}.axp-weather-forecast-icon i{filter:drop-shadow(0 0 5px rgba(0,0,0,.2))}.axp-weather-forecast-temps{display:flex;flex-direction:row;gap:.75rem;align-items:center;font-size:.775rem}.axp-weather-last-updated{text-align:center;font-size:.75rem;opacity:.7;margin-bottom:.5rem}.axp-weather-refresh-action{text-align:center}.axp-weather-refresh-button{background-color:#fff3;color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;font-size:.875rem;cursor:pointer;transition:all .3s ease;display:inline-flex;align-items:center;gap:.5rem}.axp-weather-refresh-button:hover{background-color:#ffffff4d;transform:translateY(-1px)}.axp-weather-refresh-button i{font-size:.875rem}@media (max-width: 576px){.axp-weather-inner{padding:.8rem;gap:.4rem}.axp-weather-location-name{font-size:1.1rem;padding-inline:.25rem}.axp-weather-temperature{font-size:2.5rem}.axp-weather-temperature-unit{font-size:1.1rem}.axp-weather-weather-details{flex-direction:column;gap:.5rem}.axp-weather-forecast-items{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.5rem;margin:0 -.4rem;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:thin;mask-image:linear-gradient(to right,#000 95%,#0000);-webkit-mask-image:linear-gradient(to right,rgb(0,0,0) 95%,rgba(0,0,0,0))}.axp-weather-forecast-items::-webkit-scrollbar{height:4px}.axp-weather-forecast-items::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:4px}.axp-weather-forecast-day{min-width:60px;flex:0 0 auto;padding:.4rem .6rem}.axp-weather-forecast-day-name{font-size:.7rem}.axp-weather-forecast-icon{padding:.3rem;height:1.6rem}.axp-weather-forecast-temps{font-size:.7rem}.axp-weather-scroll-indicator{display:block}}:host-context(.theme-dark){--glass-bg: rgba(0, 0, 0, .3);--glass-border: rgba(255, 255, 255, .1)}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { containerEl: [{ type: i0.ViewChild, args: ['containerElement', { isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VhdGhlci13aWRnZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Rhc2hib2FyZC1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvc2hhcmVkL3dpZGdldHMvd2VhdGhlci93ZWF0aGVyLXdpZGdldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zaGFyZWQvd2lkZ2V0cy93ZWF0aGVyL3dlYXRoZXItd2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUVULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsUUFBUSxJQUFJLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckYsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixv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QUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUNwRCxPQUFPLHVCQUF1QixDQUFDO1FBQ2pDLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzVGLE9BQU8sZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFUyxTQUFTLENBQUMsT0FBZTtRQUNqQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7K0dBclVVLDZCQUE2QjttR0FBN0IsNkJBQTZCLDJEQVI3QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFFBQVEsRUFBRSxvQkFBb0I7YUFDL0I7U0FDRixrTEN6Q0gsc25QQTBMQSxzek1EdkpZLFlBQVksNEhBQUUsZ0JBQWdCLDhCQUFFLGNBQWMsOEJBQUUsZ0JBQWdCLDhCQUFFLG1CQUFtQiwrQkFBRSx3QkFBd0I7OzRGQVM5Ryw2QkFBNkI7a0JBYnpDLFNBQVM7aUNBR0ksSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSx3QkFBd0IsQ0FBQyxhQUMvRzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixRQUFRLEVBQUUsb0JBQW9CO3lCQUMvQjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTtpSUFJd0Isa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRlVGltZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlLXRpbWUnO1xuaW1wb3J0IHsgQVhGb3JtYXRNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQU3RhdGVNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBpbnRlcnZhbCBhcyByeGpzSW50ZXJ2YWwsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQVhQV2VhdGhlckFwaUFic3RyYWN0LFxuICBBWFBXZWF0aGVyQXBpU2VydmljZSxcbiAgQVhQV2VhdGhlckRhdGEsXG4gIEFYUFdlYXRoZXJSZXF1ZXN0T3B0aW9ucyxcbn0gZnJvbSAnLi93ZWF0aGVyLXNlcnZpY2VzJztcblxuLyoqXG4gKiBXZWF0aGVyIFdpZGdldCBDb21wb25lbnRcbiAqIERpc3BsYXlzIGN1cnJlbnQgd2VhdGhlciBjb25kaXRpb25zIGFuZCBvcHRpb25hbCBmb3JlY2FzdCBkYXRhXG4gKiBmb3IgYSBzcGVjaWZpZWQgbG9jYXRpb24gd2l0aCBjdXN0b21pemFibGUgZGlzcGxheSBvcHRpb25zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL3dlYXRoZXItd2lkZ2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd2VhdGhlci13aWRnZXQuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhEYXRlVGltZU1vZHVsZSwgQVhGb3JtYXRNb2R1bGUsIEh0dHBDbGllbnRNb2R1bGUsIEFYVHJhbnNsYXRpb25Nb2R1bGUsIEFYUFN0YXRlTWVzc2FnZUNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUFdlYXRoZXJBcGlBYnN0cmFjdCxcbiAgICAgIHVzZUNsYXNzOiBBWFBXZWF0aGVyQXBpU2VydmljZSxcbiAgICB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2VhdGhlcldpZGdldFZpZXdDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB7XG4gIC8vIENvbnRhaW5lciBlbGVtZW50IHJlZmVyZW5jZVxuICBwcm90ZWN0ZWQgY29udGFpbmVyRWwgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4+KCdjb250YWluZXJFbGVtZW50Jyk7XG5cbiAgLy8gV2VhdGhlciBBUEkgc2VydmljZSBpbnN0YW5jZVxuICBwcml2YXRlIHdlYXRoZXJTZXJ2aWNlID0gaW5qZWN0KEFYUFdlYXRoZXJBcGlBYnN0cmFjdCk7XG5cbiAgLy8gU3RhdGUgc2lnbmFsc1xuICBwcm90ZWN0ZWQgd2VhdGhlckRhdGEgPSBzaWduYWw8QVhQV2VhdGhlckRhdGEgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIGlzTG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcbiAgcHJvdGVjdGVkIGhhc0Vycm9yID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIGVycm9yTWVzc2FnZSA9IHNpZ25hbCgnJyk7XG4gIHByb3RlY3RlZCBpc0ZvcmVjYXN0TG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLy8gQXV0by1yZWZyZXNoIHN1YnNjcmlwdGlvblxuICBwcml2YXRlIHJlZnJlc2hTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIC8vIE9wdGlvbi1kZXJpdmVkIGNvbXB1dGVkIHByb3BlcnRpZXNcbiAgcHJvdGVjdGVkIGNpdHkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucygpWydjaXR5J10gfHwgJ05ld3lvcmsnO1xuICB9KTtcbiAgcHJvdGVjdGVkIHRlbXBlcmF0dXJlVW5pdCA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpWyd0ZW1wZXJhdHVyZVVuaXQnXT8uaWQgfHwgJ8KwQycpO1xuICBwcm90ZWN0ZWQgd2luZFNwZWVkVW5pdCA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpWyd3aW5kU3BlZWRVbml0J10/LmlkIHx8ICdrbS9oJyk7XG5cbiAgLy8gRGlzcGxheSBvcHRpb24gZmxhZ3NcbiAgcHJvdGVjdGVkIHNob3dDdXJyZW50Q29uZGl0aW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKClbJ3Nob3dDdXJyZW50Q29uZGl0aW9uJ10gIT09IGZhbHNlKTtcbiAgcHJvdGVjdGVkIHNob3dUZW1wZXJhdHVyZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpWydzaG93VGVtcGVyYXR1cmUnXSAhPT0gZmFsc2UpO1xuICBwcm90ZWN0ZWQgc2hvd0h1bWlkaXR5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKClbJ3Nob3dIdW1pZGl0eSddICE9PSBmYWxzZSk7XG4gIHByb3RlY3RlZCBzaG93V2luZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpWydzaG93V2luZCddICE9PSBmYWxzZSk7XG4gIHByb3RlY3RlZCBzaG93Rm9yZWNhc3QgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKVsnc2hvd0ZvcmVjYXN0J10gIT09IGZhbHNlKTtcbiAgcHJvdGVjdGVkIGZvcmVjYXN0RGF5cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpWydmb3JlY2FzdERheXMnXSA/PyA1KTtcblxuICAvLyBSZWZyZXNoIHNldHRpbmdzXG4gIHByb3RlY3RlZCBhdXRvUmVmcmVzaCA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpWydhdXRvUmVmcmVzaCddICE9PSBmYWxzZSk7XG4gIHByb3RlY3RlZCByZWZyZXNoSW50ZXJ2YWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKVsncmVmcmVzaEludGVydmFsJ10/LmlkID8/IDE1KTtcblxuICAvLyBSZWFjdGl2aXR5IGVmZmVjdHNcbiAgcHJpdmF0ZSBvcHRpb25zRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvcHRzID0gdGhpcy5vcHRpb25zKCk7XG4gICAgdGhpcy5sb2FkV2VhdGhlckRhdGEoKTtcbiAgICB0aGlzLnNldHVwUmVmcmVzaFRpbWVyKCk7XG4gIH0pO1xuXG4gIHByaXZhdGUgdmFsdWVFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMuY2l0eSgpO1xuICAgIHRoaXMubG9hZFdlYXRoZXJEYXRhKCk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBkaXNwbGF5ZWRGb3JlY2FzdCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB3ZWF0aGVyRGF0YSA9IHRoaXMud2VhdGhlckRhdGEoKTtcbiAgICBpZiAoIXdlYXRoZXJEYXRhPy5mb3JlY2FzdCkgcmV0dXJuIFtdO1xuXG4gICAgY29uc3QgZm9yZWNhc3REYXlzID0gdGhpcy5mb3JlY2FzdERheXMoKTtcbiAgICByZXR1cm4gd2VhdGhlckRhdGEuZm9yZWNhc3Quc2xpY2UoMCwgZm9yZWNhc3REYXlzKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIENvbXBvbmVudCBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0gY2RyIENoYW5nZURldGVjdG9yUmVmIGZvciB0cmlnZ2VyaW5nIHZpZXcgdXBkYXRlc1xuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcigpO1xuICAgIC8vIEluamVjdCB0aGUgYWJzdHJhY3Qgc2VydmljZSB3aGljaCB3aWxsIHJlc29sdmUgdG8gZWl0aGVyIHRoZSBtb2NrIG9yIHJlYWwgaW1wbGVtZW50YXRpb25cbiAgICB0aGlzLndlYXRoZXJTZXJ2aWNlID0gaW5qZWN0KEFYUFdlYXRoZXJBcGlBYnN0cmFjdCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMubG9hZFdlYXRoZXJEYXRhKCk7XG4gICAgICB0aGlzLnNldHVwUmVmcmVzaFRpbWVyKCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcG9uZW50IGNsZWFudXAgb24gZGVzdHJveVxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclJlZnJlc2hUaW1lcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHdlYXRoZXIgZGF0YSBmcm9tIHRoZSBBUElcbiAgICogU2V0cyBsb2FkaW5nIHN0YXRlIGFuZCBoYW5kbGVzIGVycm9yc1xuICAgKi9cbiAgcHJpdmF0ZSBsb2FkV2VhdGhlckRhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMuaGFzRXJyb3Iuc2V0KGZhbHNlKTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZS5zZXQoJycpO1xuXG4gICAgY29uc3QgbG9jYXRpb25RdWVyeSA9IHRoaXMuY2l0eSgpO1xuICAgIGNvbnN0IHNob3VsZFNob3dGb3JlY2FzdCA9IHRoaXMuc2hvd0ZvcmVjYXN0KCk7XG5cbiAgICAvLyBJZiB3ZSBuZWVkIGZvcmVjYXN0LCByZXF1ZXN0IGl0IGRpcmVjdGx5IHRvIGF2b2lkIGR1cGxpY2F0ZSBjYWxsc1xuICAgIC8vIFRoZSBmb3JlY2FzdCBlbmRwb2ludCBhbHNvIHJldHVybnMgY3VycmVudCB3ZWF0aGVyXG4gICAgaWYgKHNob3VsZFNob3dGb3JlY2FzdCkge1xuICAgICAgY29uc3QgZm9yZWNhc3RPcHRpb25zOiBBWFBXZWF0aGVyUmVxdWVzdE9wdGlvbnMgJiB7IGRheXM/OiBudW1iZXIgfSA9IHtcbiAgICAgICAgbG9jYXRpb246IGxvY2F0aW9uUXVlcnksXG4gICAgICAgIHRlbXBVbml0OiB0aGlzLnRlbXBlcmF0dXJlVW5pdCgpLFxuICAgICAgICB1c2VNb2NrRGF0YTogZmFsc2UsIC8vIFVzZSByZWFsIEFQSSwgc2lnbmFscyB0byB1c2UgZm9yZWNhc3QgZW5kcG9pbnRcbiAgICAgICAgZGF5czogdGhpcy5mb3JlY2FzdERheXMoKSxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuaXNGb3JlY2FzdExvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgdGhpcy53ZWF0aGVyU2VydmljZS5nZXRGb3JlY2FzdChmb3JlY2FzdE9wdGlvbnMpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgdGhpcy53ZWF0aGVyRGF0YS5zZXQoZGF0YSk7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmlzRm9yZWNhc3RMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmlzRm9yZWNhc3RMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWYgd2Ugb25seSBuZWVkIGN1cnJlbnQgd2VhdGhlciwgdXNlIGdldFdlYXRoZXJcbiAgICBjb25zdCByZXF1ZXN0T3B0aW9uczogQVhQV2VhdGhlclJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgbG9jYXRpb246IGxvY2F0aW9uUXVlcnksXG4gICAgICB0ZW1wVW5pdDogdGhpcy50ZW1wZXJhdHVyZVVuaXQoKSxcbiAgICAgIHVzZU1vY2tEYXRhOiBmYWxzZSwgLy8gVXNlIHJlYWwgQVBJXG4gICAgfTtcblxuICAgIHRoaXMud2VhdGhlclNlcnZpY2UuZ2V0V2VhdGhlcihyZXF1ZXN0T3B0aW9ucykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMud2VhdGhlckRhdGEuc2V0KGRhdGEpO1xuICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIHRoZSBhdXRvLXJlZnJlc2ggdGltZXIgYmFzZWQgb24gY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cFJlZnJlc2hUaW1lcigpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyUmVmcmVzaFRpbWVyKCk7XG4gICAgaWYgKCF0aGlzLmF1dG9SZWZyZXNoKCkpIHJldHVybjtcblxuICAgIGNvbnN0IG1pbkludGVydmFsID0gNTsgLy8gNSBtaW51dGVzIG1pbmltdW1cbiAgICBjb25zdCBpbnRlcnZhbFZhbHVlID0gTWF0aC5tYXgodGhpcy5yZWZyZXNoSW50ZXJ2YWwoKSwgbWluSW50ZXJ2YWwpO1xuICAgIGNvbnN0IGludGVydmFsTXMgPSBpbnRlcnZhbFZhbHVlICogNjAgKiAxMDAwO1xuXG4gICAgdGhpcy5yZWZyZXNoU3Vic2NyaXB0aW9uID0gcnhqc0ludGVydmFsKGludGVydmFsTXMpXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAvLyBBbHdheXMgdXNlIHRoZSBsb2FkV2VhdGhlckRhdGEgbWV0aG9kIHRvIGRldGVybWluZSB0aGUgY29ycmVjdCBBUEkgY2FsbFxuICAgICAgICAgIHRoaXMubG9hZFdlYXRoZXJEYXRhKCk7XG4gICAgICAgICAgLy8gUmV0dXJuIGFuIGVtcHR5IG9ic2VydmFibGUgdG8gc2F0aXNmeSB0aGUgc3dpdGNoTWFwIHR5cGluZ1xuICAgICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxBWFBXZWF0aGVyRGF0YT4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgdGhlIHJlZnJlc2ggdGltZXIgc3Vic2NyaXB0aW9uXG4gICAqL1xuICBwcml2YXRlIGNsZWFyUmVmcmVzaFRpbWVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlZnJlc2hTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucmVmcmVzaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5yZWZyZXNoU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWFudWFsbHkgcmVmcmVzaGVzIHRoZSB3ZWF0aGVyIGRhdGFcbiAgICovXG4gIHByb3RlY3RlZCByZWZyZXNoV2VhdGhlcigpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRXZWF0aGVyRGF0YSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgdGVtcGVyYXR1cmUgYmFzZWQgb24gc2VsZWN0ZWQgdW5pdFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldEN1cnJlbnRUZW1wZXJhdHVyZSgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy53ZWF0aGVyRGF0YSgpKSByZXR1cm4gMDtcblxuICAgIHJldHVybiB0aGlzLnRlbXBlcmF0dXJlVW5pdCgpID09PSAnwrBDJyA/IHRoaXMud2VhdGhlckRhdGEoKSEuY3VycmVudC50ZW1wQyA6IHRoaXMud2VhdGhlckRhdGEoKSEuY3VycmVudC50ZW1wRjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBmZWVscyBsaWtlIHRlbXBlcmF0dXJlIGJhc2VkIG9uIHNlbGVjdGVkIHVuaXRcbiAgICovXG4gIHByb3RlY3RlZCBnZXRGZWVsc0xpa2VUZW1wZXJhdHVyZSgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy53ZWF0aGVyRGF0YSgpKSByZXR1cm4gMDtcblxuICAgIHJldHVybiB0aGlzLnRlbXBlcmF0dXJlVW5pdCgpID09PSAnwrBDJ1xuICAgICAgPyB0aGlzLndlYXRoZXJEYXRhKCkhLmN1cnJlbnQuZmVlbHNMaWtlQ1xuICAgICAgOiB0aGlzLndlYXRoZXJEYXRhKCkhLmN1cnJlbnQuZmVlbHNMaWtlRjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBodW1pZGl0eSBwZXJjZW50YWdlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0SHVtaWRpdHkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy53ZWF0aGVyRGF0YSgpPy5jdXJyZW50Lmh1bWlkaXR5IHx8IDA7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgd2luZCBzcGVlZCBiYXNlZCBvbiBzZWxlY3RlZCB1bml0XG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0V2luZFNwZWVkKCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLndlYXRoZXJEYXRhKCkpIHJldHVybiAwO1xuXG4gICAgcmV0dXJuIHRoaXMud2luZFNwZWVkVW5pdCgpID09PSAna20vaCcgPyB0aGlzLndlYXRoZXJEYXRhKCkhLmN1cnJlbnQud2luZEtwaCA6IHRoaXMud2VhdGhlckRhdGEoKSEuY3VycmVudC53aW5kTXBoO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgd2VhdGhlciBjb25kaXRpb25cbiAgICovXG4gIHByb3RlY3RlZCBnZXRDdXJyZW50Q29uZGl0aW9uKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29uZGl0aW9uSWQgPSB0aGlzLndlYXRoZXJEYXRhKCk/LmN1cnJlbnQuY29uZGl0aW9uIHx8ICcnO1xuICAgIHJldHVybiB0aGlzLmdldENvbmRpdGlvbk5hbWUoY29uZGl0aW9uSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGZvcm1hdHRlZCBsYXN0IHVwZGF0ZWQgdGltZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldExhc3RVcGRhdGVkKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLndlYXRoZXJEYXRhKCk/LmN1cnJlbnQubGFzdFVwZGF0ZWQpIHJldHVybiAnJztcblxuICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLndlYXRoZXJEYXRhKCkhLmN1cnJlbnQubGFzdFVwZGF0ZWQpLnRvTG9jYWxlVGltZVN0cmluZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGFwcHJvcHJpYXRlIGljb24gY2xhc3MgZm9yIGEgd2VhdGhlciBjb25kaXRpb25cbiAgICogQHBhcmFtIGNvbmRpdGlvbklkIFRoZSBJRCBvZiB0aGUgd2VhdGhlciBjb25kaXRpb25cbiAgICogQHJldHVybnMgVGhlIEZvbnQgQXdlc29tZSBpY29uIGNsYXNzIHN0cmluZ1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldENvbmRpdGlvbkljb24oY29uZGl0aW9uSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFjb25kaXRpb25JZCkge1xuICAgICAgY29uZGl0aW9uSWQgPSAndW5rbm93bic7XG4gICAgfVxuICAgIGNvbnN0IHN2Z0ljb24gPSB0aGlzLndlYXRoZXJTZXJ2aWNlLmdldENvbmRpdGlvbihjb25kaXRpb25JZCkuc3ZnSWNvbjtcbiAgICByZXR1cm4gYGFzc2V0cy9pbWFnZXMvd2VhdGhlci8ke3N2Z0ljb259YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkaXNwbGF5IG5hbWUgZm9yIGEgd2VhdGhlciBjb25kaXRpb25cbiAgICogQHBhcmFtIGNvbmRpdGlvbklkIFRoZSBJRCBvZiB0aGUgd2VhdGhlciBjb25kaXRpb25cbiAgICogQHJldHVybnMgVGhlIHRyYW5zbGF0ZWQgZGlzcGxheSBuYW1lXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0Q29uZGl0aW9uTmFtZShjb25kaXRpb25JZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb25kaXRpb24gPSB0aGlzLndlYXRoZXJTZXJ2aWNlLmdldENvbmRpdGlvbihjb25kaXRpb25JZCk7XG4gICAgaWYgKCFjb25kaXRpb24/Lm5hbWUpIHJldHVybiAnd2VhdGhlci5jb25kaXRpb25zLnN1bm55JztcblxuICAgIC8vIENvbnZlcnQgY29uZGl0aW9uIG5hbWUgdG8gbG93ZXJjYXNlIGFuZCByZXBsYWNlIHNwYWNlcyB3aXRoIGh5cGhlbnNcbiAgICBjb25zdCBmb3JtYXR0ZWROYW1lID0gY29uZGl0aW9uLm5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMrL2csICctJyk7XG4gICAgcmV0dXJuIGB3ZWF0aGVyLmNvbmRpdGlvbnMuJHtmb3JtYXR0ZWROYW1lfWA7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY29sb3IgZm9yIGEgd2VhdGhlciBjb25kaXRpb25cbiAgICogQHBhcmFtIGNvbmRpdGlvbklkIFdlYXRoZXIgY29uZGl0aW9uIElEXG4gICAqIEByZXR1cm5zIENTUyBjb2xvciB2YWx1ZVxuICAgKi9cbiAgcHJvdGVjdGVkIGdldENvbmRpdGlvbkNvbG9yKGNvbmRpdGlvbklkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbmRpdGlvbiA9IHRoaXMud2VhdGhlclNlcnZpY2UuZ2V0Q29uZGl0aW9uKGNvbmRpdGlvbklkKTtcbiAgICByZXR1cm4gY29uZGl0aW9uPy5jb2xvciB8fCAnIzk5OTk5OSc7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYW5zIHVwIGNoYXJ0IHJlc291cmNlc1xuICAgKiBSZXF1aXJlZCBieSBBWFBDaGFydEJhc2VDb21wb25lbnRcbiAgICovXG4gIHByb3RlY3RlZCBjbGVhbnVwQ2hhcnQoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclJlZnJlc2hUaW1lcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcjogYW55KTogdm9pZCB7XG4gICAgY29uc29sZS5lcnJvcignV2VhdGhlciB3aWRnZXQgZXJyb3I6JywgZXJyb3IpO1xuICAgIHRoaXMuaGFzRXJyb3Iuc2V0KHRydWUpO1xuXG4gICAgLy8gQ2hlY2sgaWYgaXQncyBhIG5ldHdvcmsgZXJyb3JcbiAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSAwKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZS5zZXQoJ3dlYXRoZXIuZXJyb3IubmV0d29yaycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIGl0J3MgYW4gQVBJIGVycm9yXG4gICAgaWYgKGVycm9yLnN0YXR1cyA+PSA0MDAgJiYgZXJyb3Iuc3RhdHVzIDwgNTAwKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZS5zZXQoJ3dlYXRoZXIuZXJyb3IuYXBpJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gICAgdGhpcy5lcnJvck1lc3NhZ2Uuc2V0KCd3ZWF0aGVyLmVycm9yLmdlbmVyYWwnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRUZW1wZXJhdHVyZVVuaXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wZXJhdHVyZVVuaXQoKSA9PT0gJ8KwQycgPyAnd2VhdGhlci51bml0cy5jZWxzaXVzJyA6ICd3ZWF0aGVyLnVuaXRzLmZhaHJlbmhlaXQnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFdpbmRTcGVlZFVuaXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy53aW5kU3BlZWRVbml0KCkgPT09ICdrbS9oJyA/ICd3ZWF0aGVyLnVuaXRzLmttaCcgOiAnd2VhdGhlci51bml0cy5tcGgnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldERheU5hbWUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHRvbW9ycm93ID0gbmV3IERhdGUodG9kYXkpO1xuICAgIHRvbW9ycm93LnNldERhdGUodG9tb3Jyb3cuZ2V0RGF0ZSgpICsgMSk7XG5cbiAgICBpZiAoZGF0ZS50b0RhdGVTdHJpbmcoKSA9PT0gdG9kYXkudG9EYXRlU3RyaW5nKCkpIHtcbiAgICAgIHJldHVybiAnd2VhdGhlci5kYXlzLnRvZGF5JztcbiAgICB9XG4gICAgaWYgKGRhdGUudG9EYXRlU3RyaW5nKCkgPT09IHRvbW9ycm93LnRvRGF0ZVN0cmluZygpKSB7XG4gICAgICByZXR1cm4gJ3dlYXRoZXIuZGF5cy50b21vcnJvdyc7XG4gICAgfVxuXG4gICAgY29uc3QgZGF5cyA9IFsnc3VuZGF5JywgJ21vbmRheScsICd0dWVzZGF5JywgJ3dlZG5lc2RheScsICd0aHVyc2RheScsICdmcmlkYXknLCAnc2F0dXJkYXknXTtcbiAgICByZXR1cm4gYHdlYXRoZXIuZGF5cy4ke2RheXNbZGF0ZS5nZXREYXkoKV19YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXJzZURhdGUoZGF0ZVN0cjogc3RyaW5nKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGVTdHIpO1xuICB9XG59XG4iLCI8IS0tIFdlYXRoZXIgV2lkZ2V0IENvbXBvbmVudCBUZW1wbGF0ZSAtLT5cbjxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1jb250YWluZXJcIiAjY29udGFpbmVyRWxlbWVudD5cbiAgPCEtLSBMb2FkaW5nIGluZGljYXRvciAtLT5cbiAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1sb2FkaW5nLW92ZXJsYXlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1sb2FkaW5nLXNwaW5uZXJcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1zcGlubmVyIGZhLXNwaW5cIj48L2k+XG4gICAgICAgIDxzcGFuPnt7ICdAZGFzaGJvYXJkOndlYXRoZXIubG9hZGluZycgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG5cbiAgPCEtLSBFcnJvciBtZXNzYWdlIC0tPlxuICBAaWYgKGhhc0Vycm9yKCkpIHtcbiAgICA8YXhwLXN0YXRlLW1lc3NhZ2VcbiAgICAgIG1vZGU9XCJlcnJvclwiXG4gICAgICBpY29uPVwiZmEtc29saWQgZmEtZXhjbGFtYXRpb24tdHJpYW5nbGVcIlxuICAgICAgW3RpdGxlXT1cIidAZGFzaGJvYXJkOndlYXRoZXIuZXJyb3IudGl0bGUnXCJcbiAgICAgIFtkZXNjcmlwdGlvbl09XCJlcnJvck1lc3NhZ2UoKVwiXG4gICAgPlxuICAgICAgPGJ1dHRvbiBzbG90PVwiYWN0aW9uc1wiIGNsYXNzPVwiYXhwLXdlYXRoZXItcmV0cnktYnV0dG9uXCIgKGNsaWNrKT1cInJlZnJlc2hXZWF0aGVyKClcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1zeW5jLWFsdFwiPjwvaT5cbiAgICAgICAgPHNwYW4+e3sgJ0BkYXNoYm9hcmQ6d2VhdGhlci5yZXRyeScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvYXhwLXN0YXRlLW1lc3NhZ2U+XG4gIH1cblxuICA8IS0tIFdlYXRoZXIgY29udGVudCAtIG9ubHkgc2hvdyB3aGVuIHdlIGhhdmUgZGF0YSAtLT5cbiAgQGlmICh3ZWF0aGVyRGF0YSgpKSB7XG4gICAgPCEtLSBCYWNrZ3JvdW5kIGRlY29yYXRpb25zIGJhc2VkIG9uIHdlYXRoZXIgY29uZGl0aW9uIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1iYWNrZ3JvdW5kLWRlY29yYXRpb25zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXhwLXdlYXRoZXItZGVjb3JhdGlvblwiIFtuZ0NsYXNzXT1cIndlYXRoZXJEYXRhKCk/LmN1cnJlbnQ/LmNvbmRpdGlvbj8udG9Mb3dlckNhc2UoKVwiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImF4cC13ZWF0aGVyLWdyYWRpZW50LW92ZXJsYXlcIj48L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1pbm5lclwiPlxuICAgICAgPCEtLSBMb2NhdGlvbiBpbmZvcm1hdGlvbiBzZWN0aW9uIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImF4cC13ZWF0aGVyLWxvY2F0aW9uLWluZm9cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4cC13ZWF0aGVyLWxvY2F0aW9uLWljb25cIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWxvY2F0aW9uLWRvdFwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1sb2NhdGlvbi10ZXh0XCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiYXhwLXdlYXRoZXItbG9jYXRpb24tbmFtZVwiPnt7IGNpdHkoKSB9fTwvaDI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQ3VycmVudCB3ZWF0aGVyIGNvbmRpdGlvbnMgc2VjdGlvbiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1jdXJyZW50LXdlYXRoZXJcIj5cbiAgICAgICAgPCEtLSBXZWF0aGVyIGljb24gYW5kIGNvbmRpdGlvbiBuYW1lIC0tPlxuICAgICAgICBAaWYgKHNob3dDdXJyZW50Q29uZGl0aW9uKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXhwLXdlYXRoZXItY29uZGl0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXhwLXdlYXRoZXItaWNvbi13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1pY29uXCI+XG4gICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImdldENvbmRpdGlvbkljb24od2VhdGhlckRhdGEoKT8uY3VycmVudD8uY29uZGl0aW9uIHx8ICcnKVwiIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJheHAtd2VhdGhlci1pY29uLWdsb3dcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImdldENvbmRpdGlvbkNvbG9yKHdlYXRoZXJEYXRhKCk/LmN1cnJlbnQ/LmNvbmRpdGlvbiB8fCAnJylcIlxuICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1jb25kaXRpb24tbmFtZVwiPlxuICAgICAgICAgICAgICB7eyBnZXRDdXJyZW50Q29uZGl0aW9uKCkgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIFRlbXBlcmF0dXJlIGRpc3BsYXkgLS0+XG4gICAgICAgIEBpZiAoc2hvd1RlbXBlcmF0dXJlKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXhwLXdlYXRoZXItdGVtcGVyYXR1cmVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXhwLXdlYXRoZXItdGVtcGVyYXR1cmUtdmFsdWVcIj57eyBnZXRDdXJyZW50VGVtcGVyYXR1cmUoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXhwLXdlYXRoZXItdGVtcGVyYXR1cmUtdW5pdFwiPnt7IGdldFRlbXBlcmF0dXJlVW5pdCgpIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIFdlYXRoZXIgZGV0YWlscyBzZWN0aW9uIChodW1pZGl0eSBhbmQgd2luZCkgLS0+XG4gICAgICBAaWYgKHNob3dIdW1pZGl0eSgpIHx8IHNob3dXaW5kKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4cC13ZWF0aGVyLWRldGFpbHNcIj5cbiAgICAgICAgICA8IS0tIEh1bWlkaXR5IGluZm9ybWF0aW9uIC0tPlxuICAgICAgICAgIEBpZiAoc2hvd0h1bWlkaXR5KCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1kZXRhaWwtaXRlbVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXhwLXdlYXRoZXItZGV0YWlsLWljb25cIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWRyb3BsZXRcIj48L2k+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXhwLXdlYXRoZXItZGV0YWlsLWluZm9cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXhwLXdlYXRoZXItZGV0YWlsLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICB7eyAnQGRhc2hib2FyZDp3ZWF0aGVyLmh1bWlkaXR5JyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4cC13ZWF0aGVyLWRldGFpbC12YWx1ZVwiPnt7IGdldEh1bWlkaXR5KCkgfX0lPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPCEtLSBXaW5kIHNwZWVkIGluZm9ybWF0aW9uIC0tPlxuICAgICAgICAgIEBpZiAoc2hvd1dpbmQoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4cC13ZWF0aGVyLWRldGFpbC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1kZXRhaWwtaWNvblwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtd2luZFwiPjwvaT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1kZXRhaWwtaW5mb1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1kZXRhaWwtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgIHt7ICdAZGFzaGJvYXJkOndlYXRoZXIud2luZCcgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1kZXRhaWwtdmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGdldFdpbmRTcGVlZCgpIH19IHt7IGdldFdpbmRTcGVlZFVuaXQoKSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPCEtLSBXZWF0aGVyIGZvcmVjYXN0IHNlY3Rpb24gLS0+XG4gICAgICBAaWYgKHNob3dGb3JlY2FzdCgpICYmIHdlYXRoZXJEYXRhKCk/LmZvcmVjYXN0KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1mb3JlY2FzdFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1mb3JlY2FzdC1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxoMyBjbGFzcz1cImF4cC13ZWF0aGVyLWZvcmVjYXN0LXRpdGxlXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2FsZW5kYXItZGF5c1wiPjwvaT5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1weC0xXCI+e3sgJ0BkYXNoYm9hcmQ6d2VhdGhlci5mb3JlY2FzdCcgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPCEtLSBMb2FkaW5nIGluZGljYXRvciBmb3IgZm9yZWNhc3QgLS0+XG4gICAgICAgICAgPCEtLSBAaWYgKGlzRm9yZWNhc3RMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1mb3JlY2FzdC1sb2FkaW5nXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtc3Bpbm5lciBmYS1zcGluXCI+PC9pPlxuICAgICAgICAgICAgICA8c3Bhbj57eyAnQGRhc2hib2FyZDp3ZWF0aGVyLmxvYWRpbmctZm9yZWNhc3QnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IC0tPlxuICAgICAgICAgIDwhLS0gU2Nyb2xsYWJsZSBmb3JlY2FzdCBkYXlzIGRpc3BsYXkgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4cC13ZWF0aGVyLWZvcmVjYXN0LWl0ZW1zXCI+XG4gICAgICAgICAgICBAZm9yIChkYXkgb2YgZGlzcGxheWVkRm9yZWNhc3QoKTsgdHJhY2sgZGF5LmRheSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXhwLXdlYXRoZXItZm9yZWNhc3QtZGF5XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4cC13ZWF0aGVyLWZvcmVjYXN0LWRheS1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICB7eyBnZXREYXlOYW1lKHBhcnNlRGF0ZShkYXkuZGF0ZSkpIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXhwLXdlYXRoZXItZm9yZWNhc3QtaWNvblwiIFt0aXRsZV09XCJnZXRDb25kaXRpb25OYW1lKGRheS5jb25kaXRpb24pIHwgdHJhbnNsYXRlIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJnZXRDb25kaXRpb25JY29uKGRheS5jb25kaXRpb24gfHwgJycpXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXhwLXdlYXRoZXItZm9yZWNhc3QtdGVtcHNcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXhwLXdlYXRoZXItZm9yZWNhc3QtbG93XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHRlbXBlcmF0dXJlVW5pdCgpID09PSAnwrBDJyA/IGRheS5taW5UZW1wQyA6IGRheS5taW5UZW1wRlxuICAgICAgICAgICAgICAgICAgICB9fXt7IGdldFRlbXBlcmF0dXJlVW5pdCgpIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXhwLXdlYXRoZXItZm9yZWNhc3QtaGlnaFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyB0ZW1wZXJhdHVyZVVuaXQoKSA9PT0gJ8KwQycgPyBkYXkubWF4VGVtcEMgOiBkYXkubWF4VGVtcEZcbiAgICAgICAgICAgICAgICAgICAgfX17eyBnZXRUZW1wZXJhdHVyZVVuaXQoKSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPCEtLSBMYXN0IHVwZGF0ZWQgdGltZXN0YW1wIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImF4cC13ZWF0aGVyLWxhc3QtdXBkYXRlZFwiPlxuICAgICAgICA8c3Bhbj57eyAnQGRhc2hib2FyZDp3ZWF0aGVyLmxhc3QtdXBkYXRlZCcgfCB0cmFuc2xhdGUgfCBhc3luYyB9fToge3sgZ2V0TGFzdFVwZGF0ZWQoKSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIE1hbnVhbCByZWZyZXNoIGJ1dHRvbiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJheHAtd2VhdGhlci1yZWZyZXNoLWFjdGlvblwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJheHAtd2VhdGhlci1yZWZyZXNoLWJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cInJlZnJlc2hXZWF0aGVyKClcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0BkYXNoYm9hcmQ6d2VhdGhlci5yZWZyZXNoJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0BkYXNoYm9hcmQ6d2VhdGhlci5yZWZyZXNoJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtc3luYy1hbHRcIj48L2k+XG4gICAgICAgICAgPHNwYW4+e3sgJ0BkYXNoYm9hcmQ6d2VhdGhlci5yZWZyZXNoJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9IEBlbHNlIGlmICghaXNMb2FkaW5nKCkgJiYgIWhhc0Vycm9yKCkpIHtcbiAgICA8IS0tIE5vIGRhdGEgc3RhdGUgKG5vdCBsb2FkaW5nLCBubyBlcnJvcikgLS0+XG4gICAgPGF4cC1zdGF0ZS1tZXNzYWdlXG4gICAgICBpY29uPVwiZmEtc29saWQgZmEtY2xvdWQtc3VuXCJcbiAgICAgIFt0aXRsZV09XCInQGRhc2hib2FyZDp3ZWF0aGVyLm5vLWRhdGEudGl0bGUnXCJcbiAgICAgIFtkZXNjcmlwdGlvbl09XCInQGRhc2hib2FyZDp3ZWF0aGVyLm5vLWRhdGEuZGVzY3JpcHRpb24nXCJcbiAgICA+XG4gICAgICA8YnV0dG9uIHNsb3Q9XCJhY3Rpb25zXCIgY2xhc3M9XCJheHAtd2VhdGhlci1yZWZyZXNoLWJ1dHRvblwiIChjbGljayk9XCJyZWZyZXNoV2VhdGhlcigpXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtc3luYy1hbHRcIj48L2k+XG4gICAgICAgIDxzcGFuPnt7ICdAZGFzaGJvYXJkOndlYXRoZXIubG9hZC1kYXRhJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9heHAtc3RhdGUtbWVzc2FnZT5cbiAgfVxuPC9kaXY+XG4iXX0=","import { AXPWidgetGroupEnum, AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { AXP_WIDGETS_UTILITY_CATEGORY } from '../chart.type';\nimport { AXP_APPEARANCE_PROPERTY_GROUP, AXP_BEHAVIOR_PROPERTY_GROUP, AXP_DATA_PROPERTY_GROUP, } from '@acorex/platform/layout/widgets';\n/**\n * Weather Widget Configuration\n * Provides customization options for displaying weather data and forecast\n */\nexport const AXPWeatherWidget = {\n name: 'weather',\n title: 'Weather Widget',\n categories: [AXP_WIDGETS_UTILITY_CATEGORY],\n groups: [AXPWidgetGroupEnum.DashboardWidget],\n type: 'dashboard',\n icon: 'fa-light fa-cloud-sun',\n properties: [\n /* Location Settings */\n {\n name: 'city',\n title: '@dashboard:widgets.weather.city',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n defaultValue: 'New York',\n dataType: 'string',\n interface: {\n name: 'city',\n path: 'options.city',\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: true,\n },\n /* Display Options */\n // {\n // name: 'showCurrentCondition',\n // title: 'Show Current Condition',\n // group: AXP_APPEARANCE_PROPERTY_GROUP,\n // schema: {\n // defaultValue: true,\n // dataType: 'boolean',\n // interface: {\n // name: 'showCurrentCondition',\n // path: 'options.showCurrentCondition',\n // type: AXPWidgetsCatalog.toggle,\n // },\n // },\n // visible: true,\n // },\n // {\n // name: 'showTemperature',\n // title: 'Show Temperature',\n // group: AXP_APPEARANCE_PROPERTY_GROUP,\n // schema: {\n // defaultValue: true,\n // dataType: 'boolean',\n // interface: {\n // name: 'showTemperature',\n // path: 'options.showTemperature',\n // type: AXPWidgetsCatalog.toggle,\n // },\n // },\n // visible: true,\n // },\n // {\n // name: 'showCurrentCondition',\n // title: 'Show Current Condition',\n // group: AXP_APPEARANCE_PROPERTY_GROUP,\n // schema: {\n // defaultValue: true,\n // dataType: 'boolean',\n // interface: {\n // name: 'showCurrentCondition',\n // path: 'options.showCurrentCondition',\n // type: AXPWidgetsCatalog.toggle,\n // },\n // },\n // visible: true,\n // },\n // {\n // name: 'showTemperature',\n // title: 'Show Temperature',\n // group: AXP_APPEARANCE_PROPERTY_GROUP,\n // schema: {\n // defaultValue: true,\n // dataType: 'boolean',\n // interface: {\n // name: 'showTemperature',\n // path: 'options.showTemperature',\n // type: AXPWidgetsCatalog.toggle,\n // },\n // },\n // visible: true,\n // },\n {\n name: 'showHumidity',\n title: '@dashboard:widgets.weather.show-humidity',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showHumidity',\n path: 'options.showHumidity',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'showWind',\n title: '@dashboard:widgets.weather.show-wind',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showWind',\n path: 'options.showWind',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'showForecast',\n title: '@dashboard:widgets.weather.show-forecast',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showForecast',\n path: 'options.showForecast',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'forecastDays',\n title: '@dashboard:widgets.weather.forecast-days',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 5,\n dataType: 'number',\n interface: {\n name: 'forecastDays',\n path: 'options.forecastDays',\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 1,\n maxValue: 7,\n step: 1,\n },\n },\n },\n visible: true,\n },\n /* Units Settings */\n {\n name: 'temperatureUnit',\n title: '@dashboard:widgets.weather.temperature-unit',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n defaultValue: '°C',\n dataType: 'string',\n interface: {\n name: 'temperatureUnit',\n path: 'options.temperatureUnit',\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: ['°C', '°F'],\n },\n },\n },\n visible: true,\n },\n {\n name: 'windSpeedUnit',\n title: '@dashboard:widgets.weather.wind-speed-unit',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n defaultValue: 'km/h',\n dataType: 'string',\n interface: {\n name: 'windSpeedUnit',\n path: 'options.windSpeedUnit',\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: ['km/h', 'mph', 'm/s'],\n },\n },\n },\n visible: true,\n },\n /* Refresh Settings */\n {\n name: 'autoRefresh',\n title: '@dashboard:widgets.weather.auto-refresh',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'autoRefresh',\n path: 'options.autoRefresh',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'refreshInterval',\n title: '@dashboard:widgets.weather.refresh-interval',\n group: AXP_BEHAVIOR_PROPERTY_GROUP,\n schema: {\n defaultValue: 15,\n dataType: 'number',\n interface: {\n name: 'refreshInterval',\n path: 'options.refreshInterval',\n type: AXPWidgetsCatalog.select,\n options: {\n dataSource: [5, 10, 15, 30, 60],\n },\n },\n },\n visible: true,\n },\n ],\n components: {\n view: {\n component: () => import('./weather-widget.component').then((c) => c.AXPWeatherWidgetViewComponent),\n },\n },\n meta: {\n dimensions: {\n width: 3,\n height: 7,\n minWidth: 2,\n minHeight: 4,\n maxWidth: 4,\n maxHeight: 8,\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VhdGhlci13aWRnZXQuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Rhc2hib2FyZC1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvc2hhcmVkL3dpZGdldHMvd2VhdGhlci93ZWF0aGVyLXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTdHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDJCQUEyQixFQUMzQix1QkFBdUIsR0FDeEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBb0I7SUFDL0MsSUFBSSxFQUFFLFNBQVM7SUFDZixLQUFLLEVBQUUsZ0JBQWdCO0lBQ3ZCLFVBQVUsRUFBRSxDQUFDLDRCQUE0QixDQUFDO0lBQzFDLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQztJQUM1QyxJQUFJLEVBQUUsV0FBVztJQUNqQixJQUFJLEVBQUUsdUJBQXVCO0lBQzdCLFVBQVUsRUFBRTtRQUNWLHVCQUF1QjtRQUN2QjtZQUNFLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLGlDQUFpQztZQUN4QyxLQUFLLEVBQUUsdUJBQXVCO1lBQzlCLE1BQU0sRUFBRTtnQkFDTixZQUFZLEVBQUUsVUFBVTtnQkFDeEIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsTUFBTTtvQkFDWixJQUFJLEVBQUUsY0FBYztvQkFDcEIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQzdCO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsSUFBSTtTQUNkO1FB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QVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsYUFBYTtvQkFDbkIsSUFBSSxFQUFFLHFCQUFxQjtvQkFDM0IsSUFBSSxFQUFFLGlCQUFpQixDQUFDLE1BQU07aUJBQy9CO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsSUFBSTtTQUNkO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLEtBQUssRUFBRSw2Q0FBNkM7WUFDcEQsS0FBSyxFQUFFLDJCQUEyQjtZQUNsQyxNQUFNLEVBQUU7Z0JBQ04sWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsSUFBSSxFQUFFLHlCQUF5QjtvQkFDL0IsSUFBSSxFQUFFLGlCQUFpQixDQUFDLE1BQU07b0JBQzlCLE9BQU8sRUFBRTt3QkFDUCxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO3FCQUNoQztpQkFDRjthQUNGO1lBQ0QsT0FBTyxFQUFFLElBQUk7U0FDZDtLQUNGO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDO1NBQ25HO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUU7WUFDVixLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sRUFBRSxDQUFDO1lBRVQsUUFBUSxFQUFFLENBQUM7WUFDWCxTQUFTLEVBQUUsQ0FBQztZQUVaLFFBQVEsRUFBRSxDQUFDO1lBQ1gsU0FBUyxFQUFFLENBQUM7U0FDYjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFdpZGdldENvbmZpZywgQVhQV2lkZ2V0R3JvdXBFbnVtLCBBWFBXaWRnZXRzQ2F0YWxvZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcblxuaW1wb3J0IHsgQVhQX1dJREdFVFNfVVRJTElUWV9DQVRFR09SWSB9IGZyb20gJy4uL2NoYXJ0LnR5cGUnO1xuaW1wb3J0IHtcbiAgQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gIEFYUF9CRUhBVklPUl9QUk9QRVJUWV9HUk9VUCxcbiAgQVhQX0RBVEFfUFJPUEVSVFlfR1JPVVAsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldHMnO1xuXG4vKipcbiAqIFdlYXRoZXIgV2lkZ2V0IENvbmZpZ3VyYXRpb25cbiAqIFByb3ZpZGVzIGN1c3RvbWl6YXRpb24gb3B0aW9ucyBmb3IgZGlzcGxheWluZyB3ZWF0aGVyIGRhdGEgYW5kIGZvcmVjYXN0XG4gKi9cbmV4cG9ydCBjb25zdCBBWFBXZWF0aGVyV2lkZ2V0OiBBWFBXaWRnZXRDb25maWcgPSB7XG4gIG5hbWU6ICd3ZWF0aGVyJyxcbiAgdGl0bGU6ICdXZWF0aGVyIFdpZGdldCcsXG4gIGNhdGVnb3JpZXM6IFtBWFBfV0lER0VUU19VVElMSVRZX0NBVEVHT1JZXSxcbiAgZ3JvdXBzOiBbQVhQV2lkZ2V0R3JvdXBFbnVtLkRhc2hib2FyZFdpZGdldF0sXG4gIHR5cGU6ICdkYXNoYm9hcmQnLFxuICBpY29uOiAnZmEtbGlnaHQgZmEtY2xvdWQtc3VuJyxcbiAgcHJvcGVydGllczogW1xuICAgIC8qIExvY2F0aW9uIFNldHRpbmdzICovXG4gICAge1xuICAgICAgbmFtZTogJ2NpdHknLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMud2VhdGhlci5jaXR5JyxcbiAgICAgIGdyb3VwOiBBWFBfREFUQV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6ICdOZXcgWW9yaycsXG4gICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ2NpdHknLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLmNpdHknLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuXG4gICAgLyogRGlzcGxheSBPcHRpb25zICovXG4gICAgLy8ge1xuICAgIC8vICAgbmFtZTogJ3Nob3dDdXJyZW50Q29uZGl0aW9uJyxcbiAgICAvLyAgIHRpdGxlOiAnU2hvdyBDdXJyZW50IENvbmRpdGlvbicsXG4gICAgLy8gICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgLy8gICBzY2hlbWE6IHtcbiAgICAvLyAgICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgIC8vICAgICBkYXRhVHlwZTogJ2Jvb2xlYW4nLFxuICAgIC8vICAgICBpbnRlcmZhY2U6IHtcbiAgICAvLyAgICAgICBuYW1lOiAnc2hvd0N1cnJlbnRDb25kaXRpb24nLFxuICAgIC8vICAgICAgIHBhdGg6ICdvcHRpb25zLnNob3dDdXJyZW50Q29uZGl0aW9uJyxcbiAgICAvLyAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgLy8gICAgIH0sXG4gICAgLy8gICB9LFxuICAgIC8vICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAvLyB9LFxuICAgIC8vIHtcbiAgICAvLyAgIG5hbWU6ICdzaG93VGVtcGVyYXR1cmUnLFxuICAgIC8vICAgdGl0bGU6ICdTaG93IFRlbXBlcmF0dXJlJyxcbiAgICAvLyAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAvLyAgIHNjaGVtYToge1xuICAgIC8vICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgLy8gICAgIGRhdGFUeXBlOiAnYm9vbGVhbicsXG4gICAgLy8gICAgIGludGVyZmFjZToge1xuICAgIC8vICAgICAgIG5hbWU6ICdzaG93VGVtcGVyYXR1cmUnLFxuICAgIC8vICAgICAgIHBhdGg6ICdvcHRpb25zLnNob3dUZW1wZXJhdHVyZScsXG4gICAgLy8gICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudG9nZ2xlLFxuICAgIC8vICAgICB9LFxuICAgIC8vICAgfSxcbiAgICAvLyAgIHZpc2libGU6IHRydWUsXG4gICAgLy8gfSxcbiAgICAvLyB7XG4gICAgLy8gICBuYW1lOiAnc2hvd0N1cnJlbnRDb25kaXRpb24nLFxuICAgIC8vICAgdGl0bGU6ICdTaG93IEN1cnJlbnQgQ29uZGl0aW9uJyxcbiAgICAvLyAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAvLyAgIHNjaGVtYToge1xuICAgIC8vICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgLy8gICAgIGRhdGFUeXBlOiAnYm9vbGVhbicsXG4gICAgLy8gICAgIGludGVyZmFjZToge1xuICAgIC8vICAgICAgIG5hbWU6ICdzaG93Q3VycmVudENvbmRpdGlvbicsXG4gICAgLy8gICAgICAgcGF0aDogJ29wdGlvbnMuc2hvd0N1cnJlbnRDb25kaXRpb24nLFxuICAgIC8vICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRvZ2dsZSxcbiAgICAvLyAgICAgfSxcbiAgICAvLyAgIH0sXG4gICAgLy8gICB2aXNpYmxlOiB0cnVlLFxuICAgIC8vIH0sXG4gICAgLy8ge1xuICAgIC8vICAgbmFtZTogJ3Nob3dUZW1wZXJhdHVyZScsXG4gICAgLy8gICB0aXRsZTogJ1Nob3cgVGVtcGVyYXR1cmUnLFxuICAgIC8vICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgIC8vICAgc2NoZW1hOiB7XG4gICAgLy8gICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICAvLyAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAvLyAgICAgaW50ZXJmYWNlOiB7XG4gICAgLy8gICAgICAgbmFtZTogJ3Nob3dUZW1wZXJhdHVyZScsXG4gICAgLy8gICAgICAgcGF0aDogJ29wdGlvbnMuc2hvd1RlbXBlcmF0dXJlJyxcbiAgICAvLyAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgLy8gICAgIH0sXG4gICAgLy8gICB9LFxuICAgIC8vICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAvLyB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdzaG93SHVtaWRpdHknLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMud2VhdGhlci5zaG93LWh1bWlkaXR5JyxcbiAgICAgIGdyb3VwOiBBWFBfQVBQRUFSQU5DRV9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgICAgIGRhdGFUeXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdzaG93SHVtaWRpdHknLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLnNob3dIdW1pZGl0eScsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudG9nZ2xlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnc2hvd1dpbmQnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMud2VhdGhlci5zaG93LXdpbmQnLFxuICAgICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3Nob3dXaW5kJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5zaG93V2luZCcsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudG9nZ2xlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnc2hvd0ZvcmVjYXN0JyxcbiAgICAgIHRpdGxlOiAnQGRhc2hib2FyZDp3aWRnZXRzLndlYXRoZXIuc2hvdy1mb3JlY2FzdCcsXG4gICAgICBncm91cDogQVhQX0FQUEVBUkFOQ0VfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgICAgICBkYXRhVHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnc2hvd0ZvcmVjYXN0JyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5zaG93Rm9yZWNhc3QnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRvZ2dsZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2ZvcmVjYXN0RGF5cycsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy53ZWF0aGVyLmZvcmVjYXN0LWRheXMnLFxuICAgICAgZ3JvdXA6IEFYUF9BUFBFQVJBTkNFX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogNSxcbiAgICAgICAgZGF0YVR5cGU6ICdudW1iZXInLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnZm9yZWNhc3REYXlzJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5mb3JlY2FzdERheXMnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLm51bWJlcixcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBtaW5WYWx1ZTogMSxcbiAgICAgICAgICAgIG1heFZhbHVlOiA3LFxuICAgICAgICAgICAgc3RlcDogMSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcblxuICAgIC8qIFVuaXRzIFNldHRpbmdzICovXG4gICAge1xuICAgICAgbmFtZTogJ3RlbXBlcmF0dXJlVW5pdCcsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy53ZWF0aGVyLnRlbXBlcmF0dXJlLXVuaXQnLFxuICAgICAgZ3JvdXA6IEFYUF9EQVRBX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ8KwQycsXG4gICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3RlbXBlcmF0dXJlVW5pdCcsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMudGVtcGVyYXR1cmVVbml0JyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgZGF0YVNvdXJjZTogWyfCsEMnLCAnwrBGJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ3dpbmRTcGVlZFVuaXQnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMud2VhdGhlci53aW5kLXNwZWVkLXVuaXQnLFxuICAgICAgZ3JvdXA6IEFYUF9EQVRBX1BST1BFUlRZX0dST1VQLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogJ2ttL2gnLFxuICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICd3aW5kU3BlZWRVbml0JyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy53aW5kU3BlZWRVbml0JyxcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgZGF0YVNvdXJjZTogWydrbS9oJywgJ21waCcsICdtL3MnXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSxcblxuICAgIC8qIFJlZnJlc2ggU2V0dGluZ3MgKi9cbiAgICB7XG4gICAgICBuYW1lOiAnYXV0b1JlZnJlc2gnLFxuICAgICAgdGl0bGU6ICdAZGFzaGJvYXJkOndpZGdldHMud2VhdGhlci5hdXRvLXJlZnJlc2gnLFxuICAgICAgZ3JvdXA6IEFYUF9CRUhBVklPUl9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgICAgIGRhdGFUeXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdhdXRvUmVmcmVzaCcsXG4gICAgICAgICAgcGF0aDogJ29wdGlvbnMuYXV0b1JlZnJlc2gnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRvZ2dsZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ3JlZnJlc2hJbnRlcnZhbCcsXG4gICAgICB0aXRsZTogJ0BkYXNoYm9hcmQ6d2lkZ2V0cy53ZWF0aGVyLnJlZnJlc2gtaW50ZXJ2YWwnLFxuICAgICAgZ3JvdXA6IEFYUF9CRUhBVklPUl9QUk9QRVJUWV9HUk9VUCxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkZWZhdWx0VmFsdWU6IDE1LFxuICAgICAgICBkYXRhVHlwZTogJ251bWJlcicsXG4gICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgIG5hbWU6ICdyZWZyZXNoSW50ZXJ2YWwnLFxuICAgICAgICAgIHBhdGg6ICdvcHRpb25zLnJlZnJlc2hJbnRlcnZhbCcsXG4gICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuc2VsZWN0LFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IFs1LCAxMCwgMTUsIDMwLCA2MF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGNvbXBvbmVudHM6IHtcbiAgICB2aWV3OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi93ZWF0aGVyLXdpZGdldC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFdlYXRoZXJXaWRnZXRWaWV3Q29tcG9uZW50KSxcbiAgICB9LFxuICB9LFxuICBtZXRhOiB7XG4gICAgZGltZW5zaW9uczoge1xuICAgICAgd2lkdGg6IDMsXG4gICAgICBoZWlnaHQ6IDcsXG5cbiAgICAgIG1pbldpZHRoOiAyLFxuICAgICAgbWluSGVpZ2h0OiA0LFxuXG4gICAgICBtYXhXaWR0aDogNCxcbiAgICAgIG1heEhlaWdodDogOCxcbiAgICB9LFxuICB9LFxufTtcblxuLyoqXG4gKiBUeXBlIGRlY2xhcmF0aW9uIHRvIHJlZ2lzdGVyIHRoZSB3ZWF0aGVyIHdpZGdldCB0eXBlXG4gKi9cbmRlY2xhcmUgbW9kdWxlICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZScge1xuICBpbnRlcmZhY2UgQVhQV2lkZ2V0VHlwZXNNYXAge1xuICAgIHdlYXRoZXI6ICd3ZWF0aGVyJztcbiAgfVxufVxuIl19","export const AXPDashboardManagementMenuKeys = {\n Root: 'dashboard-management:menu',\n Dashboards: 'dashboard-management:page:dashboards',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5rZXlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Rhc2hib2FyZC1tYW5hZ2VtZW50L3NyYy9saWIvbWVudS5rZXlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHO0lBQzFDLElBQUksRUFBRSwyQkFBMkI7SUFDakMsVUFBVSxFQUFFLHNDQUFzQztDQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFYUERhc2hib2FyZE1hbmFnZW1lbnRNZW51S2V5cyA9IHtcbiAgICBSb290OiAnZGFzaGJvYXJkLW1hbmFnZW1lbnQ6bWVudScsXG4gICAgRGFzaGJvYXJkczogJ2Rhc2hib2FyZC1tYW5hZ2VtZW50OnBhZ2U6ZGFzaGJvYXJkcycsXG59IGFzIGNvbnN0O1xuXG4iXX0=","export const AXMPermissionsKeys = {\n DashboardManagement: {\n Management: 'dashboard-management:manage',\n Dashboard: {\n Management: 'dashboard-management:dashboard:manage',\n View: 'dashboard-management:dashboard:view',\n Edit: 'dashboard-management:dashboard:edit',\n Delete: 'dashboard-management:dashboard:delete',\n Create: 'dashboard-management:dashboard:create',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5rZXlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Rhc2hib2FyZC1tYW5hZ2VtZW50L3NyYy9saWIvcGVybWlzc2lvbi5rZXlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLG1CQUFtQixFQUFFO1FBQ25CLFVBQVUsRUFBRSw2QkFBNkI7UUFDekMsU0FBUyxFQUFFO1lBQ1QsVUFBVSxFQUFFLHVDQUF1QztZQUNuRCxJQUFJLEVBQUUscUNBQXFDO1lBQzNDLElBQUksRUFBRSxxQ0FBcUM7WUFDM0MsTUFBTSxFQUFFLHVDQUF1QztZQUMvQyxNQUFNLEVBQUUsdUNBQXVDO1NBQ2hEO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFYTVBlcm1pc3Npb25zS2V5cyA9IHtcbiAgRGFzaGJvYXJkTWFuYWdlbWVudDoge1xuICAgIE1hbmFnZW1lbnQ6ICdkYXNoYm9hcmQtbWFuYWdlbWVudDptYW5hZ2UnLFxuICAgIERhc2hib2FyZDoge1xuICAgICAgTWFuYWdlbWVudDogJ2Rhc2hib2FyZC1tYW5hZ2VtZW50OmRhc2hib2FyZDptYW5hZ2UnLFxuICAgICAgVmlldzogJ2Rhc2hib2FyZC1tYW5hZ2VtZW50OmRhc2hib2FyZDp2aWV3JyxcbiAgICAgIEVkaXQ6ICdkYXNoYm9hcmQtbWFuYWdlbWVudDpkYXNoYm9hcmQ6ZWRpdCcsXG4gICAgICBEZWxldGU6ICdkYXNoYm9hcmQtbWFuYWdlbWVudDpkYXNoYm9hcmQ6ZGVsZXRlJyxcbiAgICAgIENyZWF0ZTogJ2Rhc2hib2FyZC1tYW5hZ2VtZW50OmRhc2hib2FyZDpjcmVhdGUnLFxuICAgIH0sXG4gIH0sXG59O1xuXG4iXX0=","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { RootConfig } from './const';\nimport { AXPDashboardManagementMenuKeys } from './menu.keys';\nimport { AXMPermissionsKeys } from './permission.keys';\nexport class AXMMenuProvider {\n constructor() {\n this.sessionService = inject(AXPSessionService);\n this.entityService = inject(AXPEntityService);\n }\n async provide(context) {\n const scope = RootConfig.config.i18n;\n const module = RootConfig.module;\n const appName = this.sessionService.application?.name;\n context.addItems([\n {\n name: AXPDashboardManagementMenuKeys.Root,\n priority: 9001,\n text: '@dashboard-management:module.menus.root.title',\n icon: RootConfig.module.icon,\n policy: {\n permissions: [AXMPermissionsKeys.DashboardManagement.Management]\n },\n children: [\n {\n name: AXPDashboardManagementMenuKeys.Dashboards,\n text: '@dashboard-management:dashboards.menus.dashboards.title',\n path: `${this.sessionService.application?.name}/dashboard/management`,\n icon: RootConfig.entities.dashboard.icon,\n priority: 1,\n },\n ],\n },\n ]);\n const isAuthorized = await firstValueFrom(this.sessionService.isAuthorized$);\n if (!isAuthorized) {\n return;\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL21lbnUucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDckMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZELE1BQU0sT0FBTyxlQUFlO0lBQTVCO1FBQ1UsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBZ0NuRCxDQUFDO0lBOUJDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBK0I7UUFDM0MsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDckMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUM7UUFDdEQsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNmO2dCQUNFLElBQUksRUFBRSw4QkFBOEIsQ0FBQyxJQUFJO2dCQUN6QyxRQUFRLEVBQUUsSUFBSTtnQkFDZCxJQUFJLEVBQUUsK0NBQStDO2dCQUNyRCxJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJO2dCQUM1QixNQUFNLEVBQUU7b0JBQ04sV0FBVyxFQUFFLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDO2lCQUNqRTtnQkFDRCxRQUFRLEVBQUU7b0JBQ1I7d0JBQ0UsSUFBSSxFQUFFLDhCQUE4QixDQUFDLFVBQVU7d0JBQy9DLElBQUksRUFBRSx5REFBeUQ7d0JBQy9ELElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLElBQUksdUJBQXVCO3dCQUNyRSxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSTt3QkFDeEMsUUFBUSxFQUFFLENBQUM7cUJBQ1o7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0sWUFBWSxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDVCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQTWVudVByb3ZpZGVyLCBBWFBNZW51UHJvdmlkZXJDb250ZXh0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQRW50aXR5U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi9jb25zdCc7XG5pbXBvcnQgeyBBWFBEYXNoYm9hcmRNYW5hZ2VtZW50TWVudUtleXMgfSBmcm9tICcuL21lbnUua2V5cyc7XG5pbXBvcnQgeyBBWE1QZXJtaXNzaW9uc0tleXMgfSBmcm9tICcuL3Blcm1pc3Npb24ua2V5cyc7XG5cbmV4cG9ydCBjbGFzcyBBWE1NZW51UHJvdmlkZXIgaW1wbGVtZW50cyBBWFBNZW51UHJvdmlkZXIge1xuICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eVNlcnZpY2UpO1xuXG4gIGFzeW5jIHByb3ZpZGUoY29udGV4dDogQVhQTWVudVByb3ZpZGVyQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNjb3BlID0gUm9vdENvbmZpZy5jb25maWcuaTE4bjtcbiAgICBjb25zdCBtb2R1bGUgPSBSb290Q29uZmlnLm1vZHVsZTtcbiAgICBjb25zdCBhcHBOYW1lID0gdGhpcy5zZXNzaW9uU2VydmljZS5hcHBsaWNhdGlvbj8ubmFtZTtcbiAgICBjb250ZXh0LmFkZEl0ZW1zKFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogQVhQRGFzaGJvYXJkTWFuYWdlbWVudE1lbnVLZXlzLlJvb3QsXG4gICAgICAgIHByaW9yaXR5OiA5MDAxLFxuICAgICAgICB0ZXh0OiAnQGRhc2hib2FyZC1tYW5hZ2VtZW50Om1vZHVsZS5tZW51cy5yb290LnRpdGxlJyxcbiAgICAgICAgaWNvbjogUm9vdENvbmZpZy5tb2R1bGUuaWNvbixcbiAgICAgICAgcG9saWN5OiB7XG4gICAgICAgICAgcGVybWlzc2lvbnM6IFtBWE1QZXJtaXNzaW9uc0tleXMuRGFzaGJvYXJkTWFuYWdlbWVudC5NYW5hZ2VtZW50XVxuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IEFYUERhc2hib2FyZE1hbmFnZW1lbnRNZW51S2V5cy5EYXNoYm9hcmRzLFxuICAgICAgICAgICAgdGV4dDogJ0BkYXNoYm9hcmQtbWFuYWdlbWVudDpkYXNoYm9hcmRzLm1lbnVzLmRhc2hib2FyZHMudGl0bGUnLFxuICAgICAgICAgICAgcGF0aDogYCR7dGhpcy5zZXNzaW9uU2VydmljZS5hcHBsaWNhdGlvbj8ubmFtZX0vZGFzaGJvYXJkL21hbmFnZW1lbnRgLFxuICAgICAgICAgICAgaWNvbjogUm9vdENvbmZpZy5lbnRpdGllcy5kYXNoYm9hcmQuaWNvbixcbiAgICAgICAgICAgIHByaW9yaXR5OiAxLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIF0pO1xuXG4gICAgY29uc3QgaXNBdXRob3JpemVkID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZXNzaW9uU2VydmljZS5pc0F1dGhvcml6ZWQkKTtcbiAgICBpZiAoIWlzQXV0aG9yaXplZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuIl19","import { AXPAuthGuard, AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';\nimport { AXP_HOME_PAGE_DEFAULT_KEY, AXP_HOME_PAGES, AXP_MENU_PROVIDER } from '@acorex/platform/common';\nimport { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsModule } from '@acorex/platform/layout/widgets';\nimport { inject, Injector, NgModule } from '@angular/core';\n// Entity Modules\nimport { AXMDashboardEntityModule } from './entities';\nimport { AXMEntityProvider } from './entity.provider';\nimport { AXPAdvancedWeatherWidget, AXPAnalogClockWidget, AXPBarChartWidget, AXPDonutChartWidget, AXPGaugeChartWidget, AXPLineChartWidget, AXPMinimalWeatherWidget, AXPStickyNoteWidget, } from './features/shared/widgets';\nimport { AXPDashboardShortcutWidget } from './features/shared/widgets/dashboard-shortcut';\nimport { AXMMenuProvider } from './menu.provider';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/layout/widget-core\";\n// Separate dashboard routes configuration\nconst dashboardRoutes = [\n {\n path: 'dashboard',\n loadComponent: () => import('./features/home-dashboard/dashboard-home/home-dashboard').then((c) => c.AXMDashboardHomeComponent),\n },\n {\n path: 'dashboard/management',\n data: {\n isAdmin: true,\n //roles: ['admin'], // Add roles if needed\n //permissions: ['manage_dashboard'], // Add required permissions if needed\n },\n loadComponent: () => import('./features/home-dashboard/dashboard-home/home-dashboard').then((c) => c.AXMDashboardHomeComponent),\n },\n];\nfunction createAppRoute() {\n const config = inject(AXP_ENTITY_CONFIG_TOKEN);\n return {\n path: ':app/dashboard',\n canActivate: [AXPAuthGuard],\n loadComponent: () => {\n return config.viewers.root();\n },\n children: [\n {\n path: '',\n loadComponent: () => import('./features/home-dashboard/dashboard-home/home-dashboard').then((c) => c.AXMDashboardHomeComponent),\n },\n {\n path: 'management',\n data: {\n isAdmin: true,\n },\n loadComponent: () => import('./features/home-dashboard/dashboard-home/home-dashboard').then((c) => c.AXMDashboardHomeComponent),\n },\n ],\n };\n}\nexport class AXMDashboardManagementModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardManagementModule, imports: [i1.AXPWidgetCoreModule, \n // Entity Modules\n AXMDashboardEntityModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardManagementModule, providers: [\n {\n provide: AXP_HOME_PAGES,\n multi: true,\n useFactory: () => [\n {\n key: 'dashboard',\n title: 'Dashboard',\n route: createAppRoute(),\n },\n ],\n },\n AXPWidgetsModule,\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityProvider,\n multi: true,\n },\n {\n provide: AXP_HOME_PAGE_DEFAULT_KEY,\n useValue: 'dashboard',\n },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useFactory: async () => {\n const injector = inject(Injector);\n const provider = (await import('./permission-definition.provider')).AXMPermissionDefinitionProvider;\n return new provider(injector);\n },\n multi: true,\n },\n ], imports: [AXPWidgetCoreModule.forChild({\n widgets: [\n AXPDashboardShortcutWidget,\n //charts\n AXPDonutChartWidget,\n AXPBarChartWidget,\n AXPLineChartWidget,\n AXPGaugeChartWidget,\n //utility\n AXPStickyNoteWidget,\n //AXPClockCalendarWidget,\n //AXPWeatherWidget,\n AXPMinimalWeatherWidget,\n AXPAdvancedWeatherWidget,\n AXPAnalogClockWidget,\n ],\n }),\n // Entity Modules\n AXMDashboardEntityModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardManagementModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n AXPWidgetCoreModule.forChild({\n widgets: [\n AXPDashboardShortcutWidget,\n //charts\n AXPDonutChartWidget,\n AXPBarChartWidget,\n AXPLineChartWidget,\n AXPGaugeChartWidget,\n //utility\n AXPStickyNoteWidget,\n //AXPClockCalendarWidget,\n //AXPWeatherWidget,\n AXPMinimalWeatherWidget,\n AXPAdvancedWeatherWidget,\n AXPAnalogClockWidget,\n ],\n }),\n // Entity Modules\n AXMDashboardEntityModule,\n ],\n providers: [\n {\n provide: AXP_HOME_PAGES,\n multi: true,\n useFactory: () => [\n {\n key: 'dashboard',\n title: 'Dashboard',\n route: createAppRoute(),\n },\n ],\n },\n AXPWidgetsModule,\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityProvider,\n multi: true,\n },\n {\n provide: AXP_HOME_PAGE_DEFAULT_KEY,\n useValue: 'dashboard',\n },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useFactory: async () => {\n const injector = inject(Injector);\n const provider = (await import('./permission-definition.provider')).AXMPermissionDefinitionProvider;\n return new provider(injector);\n },\n multi: true,\n },\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Rhc2hib2FyZC1tYW5hZ2VtZW50L3NyYy9saWIvZGFzaGJvYXJkLW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNELGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QixtQkFBbUIsR0FDcEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUVsRCwwQ0FBMEM7QUFDMUMsTUFBTSxlQUFlLEdBQVc7SUFDOUI7UUFDRSxJ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bEMsUUFBUSxFQUFFLFdBQVc7eUJBQ3RCO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxrQ0FBa0M7NEJBQzNDLFVBQVUsRUFBRSxLQUFLLElBQUksRUFBRTtnQ0FDckIsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dDQUNsQyxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQztnQ0FDcEcsT0FBTyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQzs0QkFDaEMsQ0FBQzs0QkFDRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEF1dGhHdWFyZCwgQVhQX1BFUk1JU1NJT05fREVGSU5JVElPTl9QUk9WSURFUiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWFBfSE9NRV9QQUdFX0RFRkFVTFRfS0VZLCBBWFBfSE9NRV9QQUdFUywgQVhQX01FTlVfUFJPVklERVIgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb3JlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQVhQX0VOVElUWV9DT05GSUdfVE9LRU4sIEFYUF9FTlRJVFlfREVGSU5JVElPTl9MT0FERVIgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgQVhQV2lkZ2V0c01vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldHMnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RvciwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG4vLyBFbnRpdHkgTW9kdWxlc1xuaW1wb3J0IHsgQVhNRGFzaGJvYXJkRW50aXR5TW9kdWxlIH0gZnJvbSAnLi9lbnRpdGllcyc7XG5cbmltcG9ydCB7IEFYTUVudGl0eVByb3ZpZGVyIH0gZnJvbSAnLi9lbnRpdHkucHJvdmlkZXInO1xuaW1wb3J0IHtcbiAgQVhQQWR2YW5jZWRXZWF0aGVyV2lkZ2V0LFxuICBBWFBBbmFsb2dDbG9ja1dpZGdldCxcbiAgQVhQQmFyQ2hhcnRXaWRnZXQsXG4gIEFYUERvbnV0Q2hhcnRXaWRnZXQsXG4gIEFYUEdhdWdlQ2hhcnRXaWRnZXQsXG4gIEFYUExpbmVDaGFydFdpZGdldCxcbiAgQVhQTWluaW1hbFdlYXRoZXJXaWRnZXQsXG4gIEFYUFN0aWNreU5vdGVXaWRnZXQsXG59IGZyb20gJy4vZmVhdHVyZXMvc2hhcmVkL3dpZGdldHMnO1xuaW1wb3J0IHsgQVhQRGFzaGJvYXJkU2hvcnRjdXRXaWRnZXQgfSBmcm9tICcuL2ZlYXR1cmVzL3NoYXJlZC93aWRnZXRzL2Rhc2hib2FyZC1zaG9ydGN1dCc7XG5pbXBvcnQgeyBBWE1NZW51UHJvdmlkZXIgfSBmcm9tICcuL21lbnUucHJvdmlkZXInO1xuXG4vLyBTZXBhcmF0ZSBkYXNoYm9hcmQgcm91dGVzIGNvbmZpZ3VyYXRpb25cbmNvbnN0IGRhc2hib2FyZFJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJ2Rhc2hib2FyZCcsXG4gICAgbG9hZENvbXBvbmVudDogKCkgPT5cbiAgICAgIGltcG9ydCgnLi9mZWF0dXJlcy9ob21lLWRhc2hib2FyZC9kYXNoYm9hcmQtaG9tZS9ob21lLWRhc2hib2FyZCcpLnRoZW4oKGMpID0+IGMuQVhNRGFzaGJvYXJkSG9tZUNvbXBvbmVudCksXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZGFzaGJvYXJkL21hbmFnZW1lbnQnLFxuICAgIGRhdGE6IHtcbiAgICAgIGlzQWRtaW46IHRydWUsXG4gICAgICAvL3JvbGVzOiBbJ2FkbWluJ10sIC8vIEFkZCByb2xlcyBpZiBuZWVkZWRcbiAgICAgIC8vcGVybWlzc2lvbnM6IFsnbWFuYWdlX2Rhc2hib2FyZCddLCAvLyBBZGQgcmVxdWlyZWQgcGVybWlzc2lvbnMgaWYgbmVlZGVkXG4gICAgfSxcbiAgICBsb2FkQ29tcG9uZW50OiAoKSA9PlxuICAgICAgaW1wb3J0KCcuL2ZlYXR1cmVzL2hvbWUtZGFzaGJvYXJkL2Rhc2hib2FyZC1ob21lL2hvbWUtZGFzaGJvYXJkJykudGhlbigoYykgPT4gYy5BWE1EYXNoYm9hcmRIb21lQ29tcG9uZW50KSxcbiAgfSxcbl07XG5cbmZ1bmN0aW9uIGNyZWF0ZUFwcFJvdXRlKCk6IFJvdXRlIHtcbiAgY29uc3QgY29uZmlnID0gaW5qZWN0KEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOKTtcbiAgcmV0dXJuIHtcbiAgICBwYXRoOiAnOmFwcC9kYXNoYm9hcmQnLFxuICAgIGNhbkFjdGl2YXRlOiBbQVhQQXV0aEd1YXJkXSxcbiAgICBsb2FkQ29tcG9uZW50OiAoKSA9PiB7XG4gICAgICByZXR1cm4gY29uZmlnLnZpZXdlcnMucm9vdCgpO1xuICAgIH0sXG4gICAgY2hpbGRyZW46IFtcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJycsXG4gICAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+XG4gICAgICAgICAgaW1wb3J0KCcuL2ZlYXR1cmVzL2hvbWUtZGFzaGJvYXJkL2Rhc2hib2FyZC1ob21lL2hvbWUtZGFzaGJvYXJkJykudGhlbigoYykgPT4gYy5BWE1EYXNoYm9hcmRIb21lQ29tcG9uZW50KSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdtYW5hZ2VtZW50JyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGlzQWRtaW46IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+XG4gICAgICAgICAgaW1wb3J0KCcuL2ZlYXR1cmVzL2hvbWUtZGFzaGJvYXJkL2Rhc2hib2FyZC1ob21lL2hvbWUtZGFzaGJvYXJkJykudGhlbigoYykgPT4gYy5BWE1EYXNoYm9hcmRIb21lQ29tcG9uZW50KSxcbiAgICAgIH0sXG4gICAgXSxcbiAgfTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIEFYUFdpZGdldENvcmVNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgd2lkZ2V0czogW1xuICAgICAgICBBWFBEYXNoYm9hcmRTaG9ydGN1dFdpZGdldCxcbiAgICAgICAgLy9jaGFydHNcbiAgICAgICAgQVhQRG9udXRDaGFydFdpZGdldCxcbiAgICAgICAgQVhQQmFyQ2hhcnRXaWRnZXQsXG4gICAgICAgIEFYUExpbmVDaGFydFdpZGdldCxcbiAgICAgICAgQVhQR2F1Z2VDaGFydFdpZGdldCxcbiAgICAgICAgLy91dGlsaXR5XG4gICAgICAgIEFYUFN0aWNreU5vdGVXaWRnZXQsXG4gICAgICAgIC8vQVhQQ2xvY2tDYWxlbmRhcldpZGdldCxcbiAgICAgICAgLy9BWFBXZWF0aGVyV2lkZ2V0LFxuICAgICAgICBBWFBNaW5pbWFsV2VhdGhlcldpZGdldCxcbiAgICAgICAgQVhQQWR2YW5jZWRXZWF0aGVyV2lkZ2V0LFxuICAgICAgICBBWFBBbmFsb2dDbG9ja1dpZGdldCxcbiAgICAgIF0sXG4gICAgfSksXG4gICAgLy8gRW50aXR5IE1vZHVsZXNcbiAgICBBWE1EYXNoYm9hcmRFbnRpdHlNb2R1bGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9IT01FX1BBR0VTLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiBbXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6ICdkYXNoYm9hcmQnLFxuICAgICAgICAgIHRpdGxlOiAnRGFzaGJvYXJkJyxcbiAgICAgICAgICByb3V0ZTogY3JlYXRlQXBwUm91dGUoKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBBWFBXaWRnZXRzTW9kdWxlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9NRU5VX1BST1ZJREVSLFxuICAgICAgdXNlQ2xhc3M6IEFYTU1lbnVQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX0VOVElUWV9ERUZJTklUSU9OX0xPQURFUixcbiAgICAgIHVzZUNsYXNzOiBBWE1FbnRpdHlQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX0hPTUVfUEFHRV9ERUZBVUxUX0tFWSxcbiAgICAgIHVzZVZhbHVlOiAnZGFzaGJvYXJkJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9QRVJNSVNTSU9OX0RFRklOSVRJT05fUFJPVklERVIsXG4gICAgICB1c2VGYWN0b3J5OiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSAoYXdhaXQgaW1wb3J0KCcuL3Blcm1pc3Npb24tZGVmaW5pdGlvbi5wcm92aWRlcicpKS5BWE1QZXJtaXNzaW9uRGVmaW5pdGlvblByb3ZpZGVyO1xuICAgICAgICByZXR1cm4gbmV3IHByb3ZpZGVyKGluamVjdG9yKTtcbiAgICAgIH0sXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1EYXNoYm9hcmRNYW5hZ2VtZW50TW9kdWxlIHsgfVxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPWidgetRendererDirective } from '@acorex/platform/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, contentChild, input, output, signal, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/button\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@acorex/components/dropdown\";\nimport * as i4 from \"@acorex/core/translation\";\nimport * as i5 from \"@angular/common\";\nexport class AXMDashboardWidgetWrapperComponent {\n constructor() {\n this.title = input(null, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.onDelete = output();\n this.onConfiguration = output();\n this.onValueChanged = output();\n this.onOptionsChanged = output();\n this.widget = contentChild(AXPWidgetRendererDirective, ...(ngDevMode ? [{ debugName: \"widget\" }] : []));\n this.#init = afterNextRender(() => {\n this.widget()?.onOptionsChanged.subscribe((c) => {\n this.onOptionsChanged.emit(c.widget.options());\n });\n this.widget()?.onValueChanged.subscribe((c) => {\n this.onValueChanged.emit(c.widget.getValue());\n });\n });\n this.hasConfiguration = input(true, ...(ngDevMode ? [{ debugName: \"hasConfiguration\" }] : []));\n this.isLocked = input(false, ...(ngDevMode ? [{ debugName: \"isLocked\" }] : []));\n this.isDropdownOpen = signal(false, ...(ngDevMode ? [{ debugName: \"isDropdownOpen\" }] : []));\n }\n #init;\n handleOnItemClick(event) {\n switch (event.item.data) {\n case 'delete':\n this.onDelete.emit();\n break;\n case 'configuration':\n this.onConfiguration.emit();\n break;\n default:\n break;\n }\n this.isDropdownOpen.set(false);\n }\n log(event) {\n console.log('Dropdown event:', event);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardWidgetWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXMDashboardWidgetWrapperComponent, isStandalone: true, selector: \"axm-dashboard-widget-wrapper\", inputs: { title: { classPropertyName: \"title\", publicName: \"title\", isSignal: true, isRequired: false, transformFunction: null }, hasConfiguration: { classPropertyName: \"hasConfiguration\", publicName: \"hasConfiguration\", isSignal: true, isRequired: false, transformFunction: null }, isLocked: { classPropertyName: \"isLocked\", publicName: \"isLocked\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDelete: \"onDelete\", onConfiguration: \"onConfiguration\", onValueChanged: \"onValueChanged\", onOptionsChanged: \"onOptionsChanged\" }, queries: [{ propertyName: \"widget\", first: true, predicate: AXPWidgetRendererDirective, descendants: true, isSignal: true }], ngImport: i0, template: \"<section class=\\\"ax-relative ax-size-full ax-flex ax-flex-col ax-group ax-overflow-hidden\\\">\\n <!-- Action button - stays absolute -->\\n @if(!isLocked()) {\\n <div\\n class=\\\"ax-p-[0.6125rem] ax-absolute ax-top-0 ax-end-0 ax-z-[9] ax-invisible group-hover:ax-visible md:group-hover:ax-visible\\\"\\n [class.!ax-visible]=\\\"isDropdownOpen()\\\"\\n (touchstart)=\\\"isDropdownOpen.set(true)\\\"\\n >\\n <ax-button class=\\\"ax-sm ax-main-button\\\" [look]=\\\"'blank'\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light fa-ellipsis-vertical\\\"></ax-icon>\\n </ax-prefix>\\n <ax-dropdown-panel (onOpened)=\\\"isDropdownOpen.set(true)\\\" (onClosed)=\\\"isDropdownOpen.set(false)\\\">\\n <ng-container *translate=\\\"let t\\\">\\n <ax-button-item-list (onItemClick)=\\\"handleOnItemClick($event)\\\">\\n @if(hasConfiguration()){\\n <ax-button-item\\n [data]=\\\"'configuration'\\\"\\n [text]=\\\"('@dashboard:configuration' | translate | async) || 'configuration'\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-solid fa-cog\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n <ax-divider></ax-divider>\\n }\\n <ax-button-item\\n [data]=\\\"'delete'\\\"\\n [text]=\\\"('@general:actions.delete.title' | translate | async)!\\\"\\n color=\\\"danger\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-solid fa-trash-can\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n </ax-button-item-list>\\n </ng-container>\\n </ax-dropdown-panel>\\n </ax-button>\\n </div>\\n }\\n\\n <!-- Title section -->\\n @if(title()) {\\n <div class=\\\"ax-ps-5 ax-pe-8 ax-py-3 ax-border-b\\\">\\n <h3 class=\\\"ax-text-start ax-text-lg ax-font-medium ax-truncate\\\">{{title()}}</h3>\\n </div>\\n }\\n\\n <!-- Content section -->\\n <div class=\\\"ax-overflow-hidden ax-h-full\\\">\\n <ng-content></ng-content>\\n </div>\\n</section>\\n\", styles: [\":host{display:block;width:100%;height:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i1.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: i1.AXButtonItemComponent, selector: \"ax-button-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"component\", type: i1.AXButtonItemListComponent, selector: \"ax-button-item-list\", inputs: [\"items\", \"closeParentOnClick\", \"lockOnLoading\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i2.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"component\", type: i3.AXDropdownPanelComponent, selector: \"ax-dropdown-panel\", inputs: [\"isOpen\", \"fitParent\", \"dropdownWidth\", \"position\", \"placement\", \"_target\", \"adaptivityEnabled\"], outputs: [\"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"directive\", type: i4.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"pipe\", type: i4.AXTranslatorPipe, name: \"translate\" }, { kind: \"pipe\", type: i5.AsyncPipe, name: \"async\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardWidgetWrapperComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axm-dashboard-widget-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule, AXDropdownModule, AXTranslationModule, CommonModule], standalone: true, template: \"<section class=\\\"ax-relative ax-size-full ax-flex ax-flex-col ax-group ax-overflow-hidden\\\">\\n <!-- Action button - stays absolute -->\\n @if(!isLocked()) {\\n <div\\n class=\\\"ax-p-[0.6125rem] ax-absolute ax-top-0 ax-end-0 ax-z-[9] ax-invisible group-hover:ax-visible md:group-hover:ax-visible\\\"\\n [class.!ax-visible]=\\\"isDropdownOpen()\\\"\\n (touchstart)=\\\"isDropdownOpen.set(true)\\\"\\n >\\n <ax-button class=\\\"ax-sm ax-main-button\\\" [look]=\\\"'blank'\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light fa-ellipsis-vertical\\\"></ax-icon>\\n </ax-prefix>\\n <ax-dropdown-panel (onOpened)=\\\"isDropdownOpen.set(true)\\\" (onClosed)=\\\"isDropdownOpen.set(false)\\\">\\n <ng-container *translate=\\\"let t\\\">\\n <ax-button-item-list (onItemClick)=\\\"handleOnItemClick($event)\\\">\\n @if(hasConfiguration()){\\n <ax-button-item\\n [data]=\\\"'configuration'\\\"\\n [text]=\\\"('@dashboard:configuration' | translate | async) || 'configuration'\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-solid fa-cog\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n <ax-divider></ax-divider>\\n }\\n <ax-button-item\\n [data]=\\\"'delete'\\\"\\n [text]=\\\"('@general:actions.delete.title' | translate | async)!\\\"\\n color=\\\"danger\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-solid fa-trash-can\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n </ax-button-item-list>\\n </ng-container>\\n </ax-dropdown-panel>\\n </ax-button>\\n </div>\\n }\\n\\n <!-- Title section -->\\n @if(title()) {\\n <div class=\\\"ax-ps-5 ax-pe-8 ax-py-3 ax-border-b\\\">\\n <h3 class=\\\"ax-text-start ax-text-lg ax-font-medium ax-truncate\\\">{{title()}}</h3>\\n </div>\\n }\\n\\n <!-- Content section -->\\n <div class=\\\"ax-overflow-hidden ax-h-full\\\">\\n <ng-content></ng-content>\\n </div>\\n</section>\\n\", styles: [\":host{display:block;width:100%;height:100%}\\n\"] }]\n }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: \"title\", required: false }] }], onDelete: [{ type: i0.Output, args: [\"onDelete\"] }], onConfiguration: [{ type: i0.Output, args: [\"onConfiguration\"] }], onValueChanged: [{ type: i0.Output, args: [\"onValueChanged\"] }], onOptionsChanged: [{ type: i0.Output, args: [\"onOptionsChanged\"] }], widget: [{ type: i0.ContentChild, args: [i0.forwardRef(() => AXPWidgetRendererDirective), { isSignal: true }] }], hasConfiguration: [{ type: i0.Input, args: [{ isSignal: true, alias: \"hasConfiguration\", required: false }] }], isLocked: [{ type: i0.Input, args: [{ isSignal: true, alias: \"isLocked\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXdpZGdldC13cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Rhc2hib2FyZC1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvaG9tZS1kYXNoYm9hcmQvd2lkZ2V0LXdyYXBwZXIvZGFzaGJvYXJkLXdpZGdldC13cmFwcGVyLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Rhc2hib2FyZC1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvaG9tZS1kYXNoYm9hcmQvd2lkZ2V0LXdyYXBwZXIvZGFzaGJvYXJkLXdpZGdldC13cmFwcGVyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF5QixjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVV2QixNQUFNLE9BQU8sa0NBQWtDO0lBUi9DO1FBU0UsVUFBSyxHQUFHLEtBQUssQ0FBZ0IsSUFBSSxpREFBQyxDQUFDO1FBRW5DLGFBQVEsR0FBRyxNQUFNLEVBQVEsQ0FBQztRQUMxQixvQkFBZSxHQUFHLE1BQU0sRUFBUSxDQUFDO1FBQ2pDLG1CQUFjLEdBQUcsTUFBTSxFQUFXLENBQUM7UUFDbkMscUJBQWdCLEdBQUcsTUFBTSxFQUFXLENBQUM7UUFFckMsV0FBTSxHQUFHLFlBQVksQ0FBQywwQkFBMEIsa0RBQUMsQ0FBQztRQUVsRCxVQUFLLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUMzQixJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ2hELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxxQkFBZ0IsR0FBRyxLQUFLLENBQVUsSUFBSSw0REFBQyxDQUFDO1FBQ3hDLGFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxvREFBQyxDQUFDO1FBQ2pDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLEtBQUssMERBQUMsQ0FBQztLQWtCaEM7SUE3QkMsS0FBSyxDQU9GO0lBTUgsaUJBQWlCLENBQUMsS0FBOEM7UUFDOUQsUUFBUSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hCLEtBQUssUUFBUTtnQkFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNyQixNQUFNO1lBQ1IsS0FBSyxlQUFlO2dCQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM1QixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTTtRQUNWLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsR0FBRyxDQUFDLEtBQWM7UUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDOytHQXRDVSxrQ0FBa0M7bUdBQWxDLGtDQUFrQyx5cUJBUXZCLDBCQUEwQixnRUNqQ2xELHkrREFzREEsc0dEaENZLGNBQWMsMndCQUFFLGlCQUFpQixzVkFBRSxnQkFBZ0IscVFBQUUsbUJBQW1CLDhHQUFFLFlBQVk7OzRGQUdyRixrQ0FBa0M7a0JBUjlDLFNBQVM7K0JBQ0UsOEJBQThCLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLFlBQVksQ0FBQyxjQUNyRixJQUFJO21iQVVNLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uSXRlbUNvbXBvbmVudCwgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRXZlbnQsIEFYSXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQV2lkZ2V0UmVuZGVyZXJEaXJlY3RpdmUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb250ZW50Q2hpbGQsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4bS1kYXNoYm9hcmQtd2lkZ2V0LXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGFzaGJvYXJkLXdpZGdldC13cmFwcGVyLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXNoYm9hcmQtd2lkZ2V0LXdyYXBwZXIuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0FYQnV0dG9uTW9kdWxlLCBBWERlY29yYXRvck1vZHVsZSwgQVhEcm9wZG93bk1vZHVsZSwgQVhUcmFuc2xhdGlvbk1vZHVsZSwgQ29tbW9uTW9kdWxlXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNRGFzaGJvYXJkV2lkZ2V0V3JhcHBlckNvbXBvbmVudCB7XG4gIHRpdGxlID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgb25EZWxldGUgPSBvdXRwdXQ8dm9pZD4oKTtcbiAgb25Db25maWd1cmF0aW9uID0gb3V0cHV0PHZvaWQ+KCk7XG4gIG9uVmFsdWVDaGFuZ2VkID0gb3V0cHV0PHVua25vd24+KCk7XG4gIG9uT3B0aW9uc0NoYW5nZWQgPSBvdXRwdXQ8dW5rbm93bj4oKTtcblxuICB3aWRnZXQgPSBjb250ZW50Q2hpbGQoQVhQV2lkZ2V0UmVuZGVyZXJEaXJlY3RpdmUpO1xuXG4gICNpbml0ID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICB0aGlzLndpZGdldCgpPy5vbk9wdGlvbnNDaGFuZ2VkLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgdGhpcy5vbk9wdGlvbnNDaGFuZ2VkLmVtaXQoYy53aWRnZXQub3B0aW9ucygpKTtcbiAgICB9KTtcbiAgICB0aGlzLndpZGdldCgpPy5vblZhbHVlQ2hhbmdlZC5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdChjLndpZGdldC5nZXRWYWx1ZSgpKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgaGFzQ29uZmlndXJhdGlvbiA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICBpc0xvY2tlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgaXNEcm9wZG93bk9wZW4gPSBzaWduYWwoZmFsc2UpO1xuXG4gIGhhbmRsZU9uSXRlbUNsaWNrKGV2ZW50OiBBWEl0ZW1DbGlja0V2ZW50PEFYQnV0dG9uSXRlbUNvbXBvbmVudD4pIHtcbiAgICBzd2l0Y2ggKGV2ZW50Lml0ZW0uZGF0YSkge1xuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgdGhpcy5vbkRlbGV0ZS5lbWl0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY29uZmlndXJhdGlvbic6XG4gICAgICAgIHRoaXMub25Db25maWd1cmF0aW9uLmVtaXQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5pc0Ryb3Bkb3duT3Blbi5zZXQoZmFsc2UpO1xuICB9XG4gIGxvZyhldmVudDogQVhFdmVudCkge1xuICAgIGNvbnNvbGUubG9nKCdEcm9wZG93biBldmVudDonLCBldmVudCk7XG4gIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwiYXgtcmVsYXRpdmUgYXgtc2l6ZS1mdWxsIGF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ3JvdXAgYXgtb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDwhLS0gQWN0aW9uIGJ1dHRvbiAtIHN0YXlzIGFic29sdXRlIC0tPlxuICBAaWYoIWlzTG9ja2VkKCkpIHtcbiAgPGRpdlxuICAgIGNsYXNzPVwiYXgtcC1bMC42MTI1cmVtXSBheC1hYnNvbHV0ZSBheC10b3AtMCBheC1lbmQtMCBheC16LVs5XSBheC1pbnZpc2libGUgZ3JvdXAtaG92ZXI6YXgtdmlzaWJsZSBtZDpncm91cC1ob3ZlcjpheC12aXNpYmxlXCJcbiAgICBbY2xhc3MuIWF4LXZpc2libGVdPVwiaXNEcm9wZG93bk9wZW4oKVwiXG4gICAgKHRvdWNoc3RhcnQpPVwiaXNEcm9wZG93bk9wZW4uc2V0KHRydWUpXCJcbiAgPlxuICAgIDxheC1idXR0b24gY2xhc3M9XCJheC1zbSBheC1tYWluLWJ1dHRvblwiIFtsb29rXT1cIidibGFuaydcIj5cbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgIDxheC1pY29uIGljb249XCJmYS1saWdodCBmYS1lbGxpcHNpcy12ZXJ0aWNhbFwiPjwvYXgtaWNvbj5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgPGF4LWRyb3Bkb3duLXBhbmVsIChvbk9wZW5lZCk9XCJpc0Ryb3Bkb3duT3Blbi5zZXQodHJ1ZSlcIiAob25DbG9zZWQpPVwiaXNEcm9wZG93bk9wZW4uc2V0KGZhbHNlKVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICp0cmFuc2xhdGU9XCJsZXQgdFwiPlxuICAgICAgICAgIDxheC1idXR0b24taXRlbS1saXN0IChvbkl0ZW1DbGljayk9XCJoYW5kbGVPbkl0ZW1DbGljaygkZXZlbnQpXCI+XG4gICAgICAgICAgICBAaWYoaGFzQ29uZmlndXJhdGlvbigpKXtcbiAgICAgICAgICAgIDxheC1idXR0b24taXRlbVxuICAgICAgICAgICAgICBbZGF0YV09XCInY29uZmlndXJhdGlvbidcIlxuICAgICAgICAgICAgICBbdGV4dF09XCIoJ0BkYXNoYm9hcmQ6Y29uZmlndXJhdGlvbicgfCB0cmFuc2xhdGUgfCBhc3luYykgfHwgJ2NvbmZpZ3VyYXRpb24nXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtc29saWQgZmEtY29nXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICA8YXgtZGl2aWRlcj48L2F4LWRpdmlkZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW1cbiAgICAgICAgICAgICAgW2RhdGFdPVwiJ2RlbGV0ZSdcIlxuICAgICAgICAgICAgICBbdGV4dF09XCIoJ0BnZW5lcmFsOmFjdGlvbnMuZGVsZXRlLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jKSFcIlxuICAgICAgICAgICAgICBjb2xvcj1cImRhbmdlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLXNvbGlkIGZhLXRyYXNoLWNhblwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2F4LWRyb3Bkb3duLXBhbmVsPlxuICAgIDwvYXgtYnV0dG9uPlxuICA8L2Rpdj5cbiAgfVxuXG4gIDwhLS0gVGl0bGUgc2VjdGlvbiAtLT5cbiAgQGlmKHRpdGxlKCkpIHtcbiAgPGRpdiBjbGFzcz1cImF4LXBzLTUgYXgtcGUtOCBheC1weS0zIGF4LWJvcmRlci1iXCI+XG4gICAgPGgzIGNsYXNzPVwiYXgtdGV4dC1zdGFydCBheC10ZXh0LWxnIGF4LWZvbnQtbWVkaXVtIGF4LXRydW5jYXRlXCI+e3t0aXRsZSgpfX08L2gzPlxuICA8L2Rpdj5cbiAgfVxuXG4gIDwhLS0gQ29udGVudCBzZWN0aW9uIC0tPlxuICA8ZGl2IGNsYXNzPVwiYXgtb3ZlcmZsb3ctaGlkZGVuIGF4LWgtZnVsbFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=","const path = 'home:dashboard:';\nexport var AXPHomeDashboardSetting;\n(function (AXPHomeDashboardSetting) {\n AXPHomeDashboardSetting[\"CurrentDashboard\"] = \"home:dashboard:current-dashboard\";\n})(AXPHomeDashboardSetting || (AXPHomeDashboardSetting = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Mua2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL3NldHRpbmdzLmtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUM7QUFDL0IsTUFBTSxDQUFOLElBQVksdUJBRVg7QUFGRCxXQUFZLHVCQUF1QjtJQUNqQyxnRkFBNkMsQ0FBQTtBQUMvQyxDQUFDLEVBRlcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQUVsQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhdGggPSAnaG9tZTpkYXNoYm9hcmQ6JztcbmV4cG9ydCBlbnVtIEFYUEhvbWVEYXNoYm9hcmRTZXR0aW5nIHtcbiAgQ3VycmVudERhc2hib2FyZCA9IGAke3BhdGh9Y3VycmVudC1kYXNoYm9hcmRgLFxufVxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXPWidgetPropertyViewerComponent } from '@acorex/platform/layout/components';\nimport { Component, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/button\";\nimport * as i2 from \"@acorex/components/decorators\";\nexport class AXMConfigurationPopup extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n this.widgetData = signal(null, ...(ngDevMode ? [{ debugName: \"widgetData\" }] : []));\n }\n ngOnInit() {\n this.widgetData.set(this.widget);\n }\n async handleClose(isCanceled = false) {\n this.close({\n isCanceled,\n widget: this.widgetData(),\n });\n }\n handlePropertyChange(event) {\n this.widgetData.set(event.values);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMConfigurationPopup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXMConfigurationPopup, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: `\n @if(widget) {\n <div class=\"ax-px-1\">\n <axp-widget-property-viewer (onChanged)=\"handlePropertyChange($event)\" [widget]=\"widget\">\n </axp-widget-property-viewer>\n </div>\n }\n <ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button text=\"Cancel\" look=\"solid\" (onClick)=\"handleClose(true)\"> </ax-button>\n <ax-button text=\"Save\" look=\"solid\" color=\"primary\" (onClick)=\"handleClose()\">\n <ax-icon class=\"fa-solid fa-save\"></ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-footer>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i1.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i2.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXPWidgetPropertyViewerComponent, selector: \"axp-widget-property-viewer\", inputs: [\"widget\", \"mode\"], outputs: [\"onChanged\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMConfigurationPopup, decorators: [{\n type: Component,\n args: [{\n template: `\n @if(widget) {\n <div class=\"ax-px-1\">\n <axp-widget-property-viewer (onChanged)=\"handlePropertyChange($event)\" [widget]=\"widget\">\n </axp-widget-property-viewer>\n </div>\n }\n <ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button text=\"Cancel\" look=\"solid\" (onClick)=\"handleClose(true)\"> </ax-button>\n <ax-button text=\"Save\" look=\"solid\" color=\"primary\" (onClick)=\"handleClose()\">\n <ax-icon class=\"fa-solid fa-save\"></ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-footer>\n `,\n imports: [AXButtonModule, AXDecoratorModule, AXPWidgetPropertyViewerComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1wb3B1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL2hvbWUtZGFzaGJvYXJkL2Rhc2hib2FyZC1wb3B1cHMvY29uZmlndXJhdGlvbi1wb3B1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFtQyxnQ0FBZ0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBc0IxRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsbUJBQW1CO0lBcEI5RDs7UUFzQnFCLGVBQVUsR0FBRyxNQUFNLENBQXVCLElBQUksc0RBQUMsQ0FBQztLQWdCcEU7SUFkVSxRQUFRO1FBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFUyxLQUFLLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxLQUFLO1FBQzVDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDVCxVQUFVO1lBQ1YsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLG9CQUFvQixDQUFDLEtBQXNDO1FBQ25FLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDOytHQWpCVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwrRkFuQnRCOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JULDJEQUNTLGNBQWMsNlhBQUUsaUJBQWlCLHVWQUFFLGdDQUFnQzs7NEZBRWxFLHFCQUFxQjtrQkFwQmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JUO29CQUNELE9BQU8sRUFBRSxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxnQ0FBZ0MsQ0FBQztpQkFDL0UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEJhc2VQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BhZ2UnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IEFYUFdpZGdldFByb3BlcnRpZXNDaGFuZ2VkRXZlbnQsIEFYUFdpZGdldFByb3BlcnR5Vmlld2VyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIEBpZih3aWRnZXQpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtcHgtMVwiPlxuICAgICAgPGF4cC13aWRnZXQtcHJvcGVydHktdmlld2VyIChvbkNoYW5nZWQpPVwiaGFuZGxlUHJvcGVydHlDaGFuZ2UoJGV2ZW50KVwiIFt3aWRnZXRdPVwid2lkZ2V0XCI+XG4gICAgICA8L2F4cC13aWRnZXQtcHJvcGVydHktdmlld2VyPlxuICAgIDwvZGl2PlxuICAgIH1cbiAgICA8YXgtZm9vdGVyPlxuICAgICAgPGF4LXByZWZpeD48L2F4LXByZWZpeD5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC1idXR0b24gdGV4dD1cIkNhbmNlbFwiIGxvb2s9XCJzb2xpZFwiIChvbkNsaWNrKT1cImhhbmRsZUNsb3NlKHRydWUpXCI+IDwvYXgtYnV0dG9uPlxuICAgICAgICA8YXgtYnV0dG9uIHRleHQ9XCJTYXZlXCIgbG9vaz1cInNvbGlkXCIgY29sb3I9XCJwcmltYXJ5XCIgKG9uQ2xpY2spPVwiaGFuZGxlQ2xvc2UoKVwiPlxuICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtc2F2ZVwiPjwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICA8L2F4LWZvb3Rlcj5cbiAgYCxcbiAgaW1wb3J0czogW0FYQnV0dG9uTW9kdWxlLCBBWERlY29yYXRvck1vZHVsZSwgQVhQV2lkZ2V0UHJvcGVydHlWaWV3ZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1Db25maWd1cmF0aW9uUG9wdXAgZXh0ZW5kcyBBWEJhc2VQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgd2lkZ2V0ITogQVhQV2lkZ2V0Tm9kZTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpZGdldERhdGEgPSBzaWduYWw8QVhQV2lkZ2V0Tm9kZSB8IG51bGw+KG51bGwpO1xuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMud2lkZ2V0RGF0YS5zZXQodGhpcy53aWRnZXQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUNsb3NlKGlzQ2FuY2VsZWQgPSBmYWxzZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY2xvc2Uoe1xuICAgICAgaXNDYW5jZWxlZCxcbiAgICAgIHdpZGdldDogdGhpcy53aWRnZXREYXRhKCksXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlUHJvcGVydHlDaGFuZ2UoZXZlbnQ6IEFYUFdpZGdldFByb3BlcnRpZXNDaGFuZ2VkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLndpZGdldERhdGEuc2V0KGV2ZW50LnZhbHVlcyk7XG4gIH1cbn1cbiJdfQ==","import { AXPopupService } from '@acorex/components/popup';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXMOrganizationManagementRoleEntityService } from '@acorex/modules/organization-management';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPLayoutBuilderService } from '@acorex/platform/layout/builder';\nimport { inject, Injectable } from '@angular/core';\nimport { AXMConfigurationPopup } from './configuration-popup';\nimport * as i0 from \"@angular/core\";\nexport class AXMDashboardPopupService {\n constructor() {\n this.popupService = inject(AXPopupService);\n this.translateService = inject(AXTranslationService);\n this.layoutBuilder = inject(AXPLayoutBuilderService);\n this.roleService = inject(AXMOrganizationManagementRoleEntityService);\n this.sessionService = inject(AXPSessionService);\n }\n async generateDashboardLayout(data, isAdmin) {\n const roles = isAdmin\n ? (await this.roleService\n .query({ skip: 0, take: 100 })\n .catch(() => ({ items: [] }))).items.map((i) => ({ id: i.id, title: i.title }))\n : [];\n const dialogRef = await this.layoutBuilder\n .create()\n .dialog(dialog => {\n dialog\n .setTitle('@dashboard:dashboard-info')\n .setSize('sm')\n .setContext({\n title: (data?.title ?? '').toString(),\n description: (data?.description ?? '').toString(),\n selectedRoleIds: data?.roleIds ?? [],\n isDisabled: data?.isDeleted ?? false,\n isLocked: data?.locked ?? false,\n isAdmin,\n })\n .content(flex => {\n flex\n .setDirection('column')\n .formField('@general:terms.common.title', field => {\n field.path('title');\n field.textBox({ placeholder: '@general:terms.common.title', validations: [{ rule: 'required' }] });\n })\n .formField('@general:terms.common.description', field => {\n field.path('description');\n field.largeTextBox({ placeholder: '@general:terms.common.description', rows: 3 });\n })\n .formField('@dashboard:roles', field => {\n field.path('selectedRoleIds');\n field.visible(!isAdmin ? 'false' : 'true');\n field.selectionList({\n valueField: 'id',\n textField: 'title',\n dataSource: roles,\n multiple: true,\n placeholder: '@dashboard:select-roles',\n });\n })\n .formField('@dashboard:disable', field => {\n field.path('isDisabled');\n field.visible(!isAdmin ? 'false' : 'true');\n field.toggleSwitch({});\n })\n .formField('@dashboard:lock', field => {\n field.path('isLocked');\n field.visible(!isAdmin ? 'false' : 'true');\n field.toggleSwitch({});\n });\n })\n .setActions(actions => {\n actions.cancel('@general:actions.cancel.title').submit('@general:actions.save.title');\n });\n })\n .show();\n const formData = dialogRef.context() ?? {};\n const action = dialogRef.action();\n if (action === 'cancel') {\n dialogRef.close();\n return;\n }\n const now = new Date();\n const userId = this.sessionService.user?.id;\n const result = {\n ...data,\n title: (formData['title'] ?? '').trim(),\n description: (formData['description'] ?? '').trim(),\n roleIds: isAdmin ? (formData['selectedRoleIds'] ?? []) : undefined,\n isDeleted: isAdmin ? Boolean(formData['isDisabled']) : undefined,\n locked: isAdmin ? Boolean(formData['isLocked']) : undefined,\n scope: isAdmin ? 'T' : 'U',\n createdBy: userId,\n createdAt: now,\n updatedBy: userId,\n updatedAt: now,\n };\n dialogRef.close();\n return result;\n }\n async handlePopupConfiguration(widget) {\n const result = await this.popupService.open(AXMConfigurationPopup, {\n header: true,\n size: 'sm',\n draggable: true,\n hasBackdrop: true,\n title: await this.translateService.translateAsync('@dashboard:widget-configuration'),\n data: { widget },\n });\n if (!result.data) {\n return;\n }\n const { isCanceled, ...rest } = result.data;\n if (isCanceled) {\n return;\n }\n return rest.widget;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardPopupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardPopupService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardPopupService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXBvcHVwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9ob21lLWRhc2hib2FyZC9kYXNoYm9hcmQtcG9wdXBzL2Rhc2hib2FyZC1wb3B1cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFHOUQsTUFBTSxPQUFPLHdCQUF3QjtJQURyQztRQUVtQixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNoRCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2hELGdCQUFXLEdBQUcsTUFBTSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDakUsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQW9IN0Q7SUFsSEMsS0FBSyxDQUFDLHVCQUF1QixDQUMzQixJQUFpQyxFQUNqQyxPQUFnQjtRQUVoQixNQUFNLEtBQUssR0FBRyxPQUFPO1lBQ25CLENBQUMsQ0FBQyxDQUNBLE1BQU0sSUFBSSxDQUFDLFdBQVc7aUJBQ25CLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO2lCQUM3QixLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUEwQyxFQUFFLENBQUMsQ0FBQyxDQUN4RSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWE7YUFDdkMsTUFBTSxFQUFFO2FBQ1IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2YsTUFBTTtpQkFDSCxRQUFRLENBQUMsMkJBQTJCLENBQUM7aUJBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUM7aUJBQ2IsVUFBVSxDQUFDO2dCQUNWLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO2dCQUNyQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtnQkFDakQsZUFBZSxFQUFHLElBQVksRUFBRSxPQUFPLElBQUksRUFBRTtnQkFDN0MsVUFBVSxFQUFHLElBQVksRUFBRSxTQUFTLElBQUksS0FBSztnQkFDN0MsUUFBUSxFQUFHLElBQVksRUFBRSxNQUFNLElBQUksS0FBSztnQkFDeEMsT0FBTzthQUNSLENBQUM7aUJBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNkLElBQUk7cUJBQ0QsWUFBWSxDQUFDLFFBQVEsQ0FBQztxQkFDdEIsU0FBUyxDQUFDLDZCQUE2QixFQUFFLEtBQUssQ0FBQyxFQUFFO29CQUNoRCxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNwQixLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsV0FBVyxFQUFFLDZCQUE2QixFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRyxDQUFDLENBQUM7cUJBQ0QsU0FBUyxDQUFDLG1DQUFtQyxFQUFFLEtBQUssQ0FBQyxFQUFFO29CQUN0RCxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUMxQixLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsV0FBVyxFQUFFLG1DQUFtQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNwRixDQUFDLENBQUM7cUJBQ0QsU0FBUyxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxFQUFFO29CQUNyQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQzlCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzNDLEtBQUssQ0FBQyxhQUFhLENBQUM7d0JBQ2xCLFVBQVUsRUFBRSxJQUFJO3dCQUNoQixTQUFTLEVBQUUsT0FBTzt3QkFDbEIsVUFBVSxFQUFFLEtBQUs7d0JBQ2pCLFFBQVEsRUFBRSxJQUFJO3dCQUNkLFdBQVcsRUFBRSx5QkFBeUI7cUJBQ3ZDLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUM7cUJBQ0QsU0FBUyxDQUFDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxFQUFFO29CQUN2QyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMzQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QixDQUFDLENBQUM7cUJBQ0QsU0FBUyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxFQUFFO29CQUNwQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUN2QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMzQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQztpQkFDRCxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3BCLE9BQU8sQ0FBQyxNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUN4RixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQzthQUNELElBQUksRUFBRSxDQUFDO1FBRVYsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMzQyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEMsSUFBSSxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEIsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFFNUMsTUFBTSxNQUFNLEdBQXVCO1lBQ2pDLEdBQUksSUFBWTtZQUNoQixLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFO1lBQ3ZDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDbkQsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNsRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDaEUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzNELEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRztZQUMxQixTQUFTLEVBQUUsTUFBTTtZQUNqQixTQUFTLEVBQUUsR0FBRztZQUNkLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLFNBQVMsRUFBRSxHQUFHO1NBQ08sQ0FBQztRQUV4QixTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxNQUFxQjtRQUNsRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQ2pFLE1BQU0sRUFBRSxJQUFJO1lBQ1osSUFBSSxFQUFFLElBQUk7WUFDVixTQUFTLEVBQUUsSUFBSTtZQUNmLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsaUNBQWlDLENBQUM7WUFDcEYsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUM1QyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUF1QixDQUFDO0lBQ3RDLENBQUM7K0dBeEhVLHdCQUF3QjttSEFBeEIsd0JBQXdCLGNBRFgsTUFBTTs7NEZBQ25CLHdCQUF3QjtrQkFEcEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWE1Pcmdhbml6YXRpb25NYW5hZ2VtZW50Um9sZUVudGl0eVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L21vZHVsZXMvb3JnYW5pemF0aW9uLW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTURhc2hib2FyZExheW91dCB9IGZyb20gJy4uL2Rhc2hib2FyZC1ob21lJztcbmltcG9ydCB7IEFYTUNvbmZpZ3VyYXRpb25Qb3B1cCB9IGZyb20gJy4vY29uZmlndXJhdGlvbi1wb3B1cCc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhNRGFzaGJvYXJkUG9wdXBTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGxheW91dEJ1aWxkZXIgPSBpbmplY3QoQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJvbGVTZXJ2aWNlID0gaW5qZWN0KEFYTU9yZ2FuaXphdGlvbk1hbmFnZW1lbnRSb2xlRW50aXR5U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoQVhQU2Vzc2lvblNlcnZpY2UpO1xuXG4gIGFzeW5jIGdlbmVyYXRlRGFzaGJvYXJkTGF5b3V0KFxuICAgIGRhdGE6IFBhcnRpYWw8QVhNRGFzaGJvYXJkTGF5b3V0PixcbiAgICBpc0FkbWluOiBib29sZWFuLFxuICApOiBQcm9taXNlPEFYTURhc2hib2FyZExheW91dCB8IHZvaWQ+IHtcbiAgICBjb25zdCByb2xlcyA9IGlzQWRtaW5cbiAgICAgID8gKFxuICAgICAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlXG4gICAgICAgICAgLnF1ZXJ5KHsgc2tpcDogMCwgdGFrZTogMTAwIH0pXG4gICAgICAgICAgLmNhdGNoKCgpID0+ICh7IGl0ZW1zOiBbXSBhcyBBcnJheTx7IGlkOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfT4gfSkpXG4gICAgICApLml0ZW1zLm1hcCgoaSkgPT4gKHsgaWQ6IGkuaWQsIHRpdGxlOiBpLnRpdGxlIH0pKVxuICAgICAgOiBbXTtcblxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IGF3YWl0IHRoaXMubGF5b3V0QnVpbGRlclxuICAgICAgLmNyZWF0ZSgpXG4gICAgICAuZGlhbG9nKGRpYWxvZyA9PiB7XG4gICAgICAgIGRpYWxvZ1xuICAgICAgICAgIC5zZXRUaXRsZSgnQGRhc2hib2FyZDpkYXNoYm9hcmQtaW5mbycpXG4gICAgICAgICAgLnNldFNpemUoJ3NtJylcbiAgICAgICAgICAuc2V0Q29udGV4dCh7XG4gICAgICAgICAgICB0aXRsZTogKGRhdGE/LnRpdGxlID8/ICcnKS50b1N0cmluZygpLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IChkYXRhPy5kZXNjcmlwdGlvbiA/PyAnJykudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHNlbGVjdGVkUm9sZUlkczogKGRhdGEgYXMgYW55KT8ucm9sZUlkcyA/PyBbXSxcbiAgICAgICAgICAgIGlzRGlzYWJsZWQ6IChkYXRhIGFzIGFueSk/LmlzRGVsZXRlZCA/PyBmYWxzZSxcbiAgICAgICAgICAgIGlzTG9ja2VkOiAoZGF0YSBhcyBhbnkpPy5sb2NrZWQgPz8gZmFsc2UsXG4gICAgICAgICAgICBpc0FkbWluLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNvbnRlbnQoZmxleCA9PiB7XG4gICAgICAgICAgICBmbGV4XG4gICAgICAgICAgICAgIC5zZXREaXJlY3Rpb24oJ2NvbHVtbicpXG4gICAgICAgICAgICAgIC5mb3JtRmllbGQoJ0BnZW5lcmFsOnRlcm1zLmNvbW1vbi50aXRsZScsIGZpZWxkID0+IHtcbiAgICAgICAgICAgICAgICBmaWVsZC5wYXRoKCd0aXRsZScpO1xuICAgICAgICAgICAgICAgIGZpZWxkLnRleHRCb3goeyBwbGFjZWhvbGRlcjogJ0BnZW5lcmFsOnRlcm1zLmNvbW1vbi50aXRsZScsIHZhbGlkYXRpb25zOiBbeyBydWxlOiAncmVxdWlyZWQnIH1dIH0pO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuZm9ybUZpZWxkKCdAZ2VuZXJhbDp0ZXJtcy5jb21tb24uZGVzY3JpcHRpb24nLCBmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgZmllbGQucGF0aCgnZGVzY3JpcHRpb24nKTtcbiAgICAgICAgICAgICAgICBmaWVsZC5sYXJnZVRleHRCb3goeyBwbGFjZWhvbGRlcjogJ0BnZW5lcmFsOnRlcm1zLmNvbW1vbi5kZXNjcmlwdGlvbicsIHJvd3M6IDMgfSk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5mb3JtRmllbGQoJ0BkYXNoYm9hcmQ6cm9sZXMnLCBmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgZmllbGQucGF0aCgnc2VsZWN0ZWRSb2xlSWRzJyk7XG4gICAgICAgICAgICAgICAgZmllbGQudmlzaWJsZSghaXNBZG1pbiA/ICdmYWxzZScgOiAndHJ1ZScpO1xuICAgICAgICAgICAgICAgIGZpZWxkLnNlbGVjdGlvbkxpc3Qoe1xuICAgICAgICAgICAgICAgICAgdmFsdWVGaWVsZDogJ2lkJyxcbiAgICAgICAgICAgICAgICAgIHRleHRGaWVsZDogJ3RpdGxlJyxcbiAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2U6IHJvbGVzLFxuICAgICAgICAgICAgICAgICAgbXVsdGlwbGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJ0BkYXNoYm9hcmQ6c2VsZWN0LXJvbGVzJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmZvcm1GaWVsZCgnQGRhc2hib2FyZDpkaXNhYmxlJywgZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgIGZpZWxkLnBhdGgoJ2lzRGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICBmaWVsZC52aXNpYmxlKCFpc0FkbWluID8gJ2ZhbHNlJyA6ICd0cnVlJyk7XG4gICAgICAgICAgICAgICAgZmllbGQudG9nZ2xlU3dpdGNoKHt9KTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmZvcm1GaWVsZCgnQGRhc2hib2FyZDpsb2NrJywgZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgIGZpZWxkLnBhdGgoJ2lzTG9ja2VkJyk7XG4gICAgICAgICAgICAgICAgZmllbGQudmlzaWJsZSghaXNBZG1pbiA/ICdmYWxzZScgOiAndHJ1ZScpO1xuICAgICAgICAgICAgICAgIGZpZWxkLnRvZ2dsZVN3aXRjaCh7fSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLnNldEFjdGlvbnMoYWN0aW9ucyA9PiB7XG4gICAgICAgICAgICBhY3Rpb25zLmNhbmNlbCgnQGdlbmVyYWw6YWN0aW9ucy5jYW5jZWwudGl0bGUnKS5zdWJtaXQoJ0BnZW5lcmFsOmFjdGlvbnMuc2F2ZS50aXRsZScpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSlcbiAgICAgIC5zaG93KCk7XG5cbiAgICBjb25zdCBmb3JtRGF0YSA9IGRpYWxvZ1JlZi5jb250ZXh0KCkgPz8ge307XG4gICAgY29uc3QgYWN0aW9uID0gZGlhbG9nUmVmLmFjdGlvbigpO1xuICAgIGlmIChhY3Rpb24gPT09ICdjYW5jZWwnKSB7XG4gICAgICBkaWFsb2dSZWYuY2xvc2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHVzZXJJZCA9IHRoaXMuc2Vzc2lvblNlcnZpY2UudXNlcj8uaWQ7XG5cbiAgICBjb25zdCByZXN1bHQ6IEFYTURhc2hib2FyZExheW91dCA9IHtcbiAgICAgIC4uLihkYXRhIGFzIGFueSksXG4gICAgICB0aXRsZTogKGZvcm1EYXRhWyd0aXRsZSddID8/ICcnKS50cmltKCksXG4gICAgICBkZXNjcmlwdGlvbjogKGZvcm1EYXRhWydkZXNjcmlwdGlvbiddID8/ICcnKS50cmltKCksXG4gICAgICByb2xlSWRzOiBpc0FkbWluID8gKGZvcm1EYXRhWydzZWxlY3RlZFJvbGVJZHMnXSA/PyBbXSkgOiB1bmRlZmluZWQsXG4gICAgICBpc0RlbGV0ZWQ6IGlzQWRtaW4gPyBCb29sZWFuKGZvcm1EYXRhWydpc0Rpc2FibGVkJ10pIDogdW5kZWZpbmVkLFxuICAgICAgbG9ja2VkOiBpc0FkbWluID8gQm9vbGVhbihmb3JtRGF0YVsnaXNMb2NrZWQnXSkgOiB1bmRlZmluZWQsXG4gICAgICBzY29wZTogaXNBZG1pbiA/ICdUJyA6ICdVJyxcbiAgICAgIGNyZWF0ZWRCeTogdXNlcklkLFxuICAgICAgY3JlYXRlZEF0OiBub3csXG4gICAgICB1cGRhdGVkQnk6IHVzZXJJZCxcbiAgICAgIHVwZGF0ZWRBdDogbm93LFxuICAgIH0gYXMgQVhNRGFzaGJvYXJkTGF5b3V0O1xuXG4gICAgZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVBvcHVwQ29uZmlndXJhdGlvbih3aWRnZXQ6IEFYUFdpZGdldE5vZGUpOiBQcm9taXNlPEFYUFdpZGdldE5vZGUgfCB2b2lkPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3BlbihBWE1Db25maWd1cmF0aW9uUG9wdXAsIHtcbiAgICAgIGhlYWRlcjogdHJ1ZSxcbiAgICAgIHNpemU6ICdzbScsXG4gICAgICBkcmFnZ2FibGU6IHRydWUsXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIHRpdGxlOiBhd2FpdCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BkYXNoYm9hcmQ6d2lkZ2V0LWNvbmZpZ3VyYXRpb24nKSxcbiAgICAgIGRhdGE6IHsgd2lkZ2V0IH0sXG4gICAgfSk7XG5cbiAgICBpZiAoIXJlc3VsdC5kYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBpc0NhbmNlbGVkLCAuLi5yZXN0IH0gPSByZXN1bHQuZGF0YTtcbiAgICBpZiAoaXNDYW5jZWxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiByZXN0LndpZGdldCBhcyBBWFBXaWRnZXROb2RlO1xuICB9XG59XG4iXX0=","//#region ---- Imports ----\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXMUsersEntityService } from '@acorex/modules/security-management';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPSettingService } from '@acorex/platform/common';\nimport { AXPDataGenerator, AXPPlatformScope } from '@acorex/platform/core';\nimport { AXPWidgetGroupEnum } from '@acorex/platform/layout/widget-core';\nimport { AXPWidgetPickerService } from '@acorex/platform/layout/designer';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { computed, effect, inject } from '@angular/core';\nimport { patchState, signalStore, withComputed, withMethods, withState } from '@ngrx/signals';\nimport { AXMDashboardService } from '../../../entities/dashboard/dashboard.service';\nimport { AXPHomeDashboardSetting } from '../../../settings.keys';\nimport { AXMDashboardPopupService } from '../dashboard-popups/dashboard-popup.service';\n//#endregion\n//#region ---- Utility Functions ----\n/**\n * Creates the initial state for the dashboard store.\n */\nconst createInitialState = () => ({\n dashboards: [],\n allDashboards: [],\n currentDashboardId: null,\n isAdmin: false,\n dashboardsOption: {\n float: false,\n cellHeight: 75,\n gap: 5,\n minRow: 9,\n column: 12,\n responsiveLayout: [\n { column: 4, width: 768 },\n { column: 1, width: 480 },\n ],\n },\n isLoading: false,\n});\n/**\n * Maps an entity model to a dashboard layout model.\n */\nconst modelToDashboardLayout = (model) => ({\n id: model.id || '',\n title: model.title,\n description: model.description,\n widgets: model.widgets || [],\n createdBy: model.userId ?? (model.auditInfo?.created?.by?.id),\n roleIds: model.roleIds,\n isDeleted: model.isDeleted,\n locked: model.locked,\n createdAt: (model.auditInfo?.created?.at),\n updatedAt: (model.auditInfo?.updated?.at),\n updatedBy: (model.auditInfo?.updated?.by?.id),\n scope: model.scope,\n});\n/**\n * Maps a dashboard layout to an entity model for persistence.\n */\nconst dashboardLayoutToModel = (layout) => ({\n id: layout.id,\n name: layout.title,\n title: layout.title,\n description: layout.description || '',\n widgets: layout.widgets,\n userId: layout.createdBy,\n roleIds: layout.roleIds,\n isDeleted: layout.isDeleted,\n locked: layout.locked,\n auditInfo: {\n created: layout.createdAt ? { at: layout.createdAt, by: layout.createdBy ? { id: layout.createdBy, type: 'user' } : undefined } : undefined,\n updated: layout.updatedAt ? { at: layout.updatedAt, by: layout.updatedBy ? { id: layout.updatedBy, type: 'user' } : undefined } : undefined,\n },\n scope: layout.scope,\n});\n/**\n * Safely reads the current user id from the session service.\n */\nconst readUserId = (sessionService) => {\n const candidate = sessionService.user;\n return candidate?.id;\n};\n/**\n * Safely reads the current user role from the session service.\n */\nconst readUserRole = (sessionService) => {\n const candidate = sessionService.user;\n return candidate?.role;\n};\n/**\n * Extracts role ids from a user entity returned by AXMUsersEntityService.\n */\nconst extractUserRoleIds = (user) => {\n if (!user)\n return [];\n if (Array.isArray(user.roleIds) && user.roleIds.length > 0) {\n return user.roleIds.filter((r) => typeof r === 'string');\n }\n if (Array.isArray(user.roles) && user.roles.length > 0) {\n const ids = user.roles\n .map((r) => (typeof r?.id === 'string' ? r.id : undefined))\n .filter((id) => typeof id === 'string');\n if (ids.length > 0)\n return ids;\n }\n if (typeof user.roleId === 'string' && user.roleId)\n return [user.roleId];\n if (typeof user.role === 'string' && user.role)\n return [user.role];\n return [];\n};\n/**\n * Determines whether the given dashboard contains the provided user role.\n */\nconst hasMatchingRole = (dashboard, userRole) => {\n if (!userRole)\n return false;\n const roleIds = dashboard.roleIds;\n return Array.isArray(roleIds) && roleIds.length > 0 && roleIds.includes(userRole);\n};\n/**\n * Computes effective layout options based on device, lock, admin and role restrictions.\n */\nconst deriveLayoutOptions = (baseOptions, dashboard, isAdmin, isDesktop, userRole) => {\n if (!dashboard)\n return baseOptions;\n if (!isDesktop)\n return { ...baseOptions, disableDrag: true, disableResize: true };\n if (baseOptions.disableDrag !== undefined && baseOptions.disableResize !== undefined)\n return baseOptions;\n if (dashboard.locked === true)\n return { ...baseOptions, disableDrag: true, disableResize: true };\n if (isAdmin)\n return baseOptions;\n const roleMatched = hasMatchingRole(dashboard, userRole);\n if (!isAdmin && roleMatched && dashboard.scope === 'T') {\n return { ...baseOptions, disableDrag: true, disableResize: true };\n }\n return baseOptions;\n};\n/**\n * Checks if a widget is locked for the current user based on dashboard and role context.\n */\nconst isWidgetLockedForUser = (dashboard, isAdmin, userRole) => {\n if (!dashboard)\n return false;\n if (dashboard.locked === true)\n return true;\n if (isAdmin)\n return false;\n return hasMatchingRole(dashboard, userRole) && dashboard.scope === 'T';\n};\n/**\n * Determines if a widget can be configured by the current user.\n */\nconst canConfigureWidgetForUser = (dashboard, isAdmin, userRole, widgetHasConfiguration) => {\n if (!dashboard)\n return true;\n if (isAdmin)\n return widgetHasConfiguration;\n if (dashboard.locked === true)\n return false;\n if (hasMatchingRole(dashboard, userRole) && dashboard.scope === 'T')\n return false;\n return widgetHasConfiguration;\n};\n/**\n * Filters dashboards for current user scope and permissions.\n */\nconst filterDashboardsForUser = (dashboards, isAdmin, userId, userRole) => {\n if (!userId)\n return dashboards;\n if (isAdmin) {\n return dashboards.filter((d) => d.scope === 'T');\n }\n return dashboards.filter((d) => {\n const isUserDashboard = d.scope === 'U' && d.createdBy === userId;\n const roleMatched = hasMatchingRole(d, userRole);\n const isTenantDashboardWithRole = d.scope === 'T' && roleMatched && d.isDeleted !== true;\n return isUserDashboard || isTenantDashboardWithRole;\n });\n};\n//#endregion\n//#region ---- Signal Store ----\n/**\n * Dashboard Signal Store: manages dashboards, widgets and permissions.\n */\nexport const AXMDashboardStore = signalStore({ providedIn: 'root' }, \n//#region ---- Initial State ----\nwithState(() => createInitialState()), \n//#endregion\n//#region ---- Computed Properties ----\nwithComputed((state, sessionService = inject(AXPSessionService), layoutThemeService = inject(AXPLayoutThemeService)) => ({\n selectedDashboard: computed(() => state.dashboards().find((dashboard) => dashboard.id === state.currentDashboardId()) || null),\n isUserAdmin: computed(() => state.isAdmin()),\n availableDashboards: computed(() => state.allDashboards()),\n currentLayoutOptions: computed(() => {\n const currentDashboard = state.dashboards().find((dashboard) => dashboard.id === state.currentDashboardId());\n const baseOptions = state.dashboardsOption();\n const isDesktop = layoutThemeService.isDesktopDevice();\n const userRole = readUserRole(sessionService);\n return deriveLayoutOptions(baseOptions, currentDashboard || undefined, state.isAdmin(), isDesktop, userRole);\n }),\n canConfigureWidget: computed(() => (widget) => {\n const currentDashboard = state.dashboards().find((dashboard) => dashboard.id === state.currentDashboardId());\n const userRole = readUserRole(sessionService);\n const widgetHasConfiguration = widget.node?.options?.['hasConfiguration'] ?? true;\n return canConfigureWidgetForUser(currentDashboard || undefined, state.isAdmin(), userRole, widgetHasConfiguration);\n }),\n isWidgetLocked: computed(() => (widget) => {\n const currentDashboard = state.dashboards().find((dashboard) => dashboard.id === state.currentDashboardId());\n const userRole = readUserRole(sessionService);\n return isWidgetLockedForUser(currentDashboard || undefined, state.isAdmin(), userRole);\n }),\n})), \n//#endregion\n//#region ---- Methods ----\nwithMethods((store, dashboardPopup = inject(AXMDashboardPopupService), dialogService = inject(AXDialogService), translationService = inject(AXTranslationService), widgetPickerService = inject(AXPWidgetPickerService), dashboardService = inject(AXMDashboardService), settingService = inject(AXPSettingService), sessionService = inject(AXPSessionService), layoutThemeService = inject(AXPLayoutThemeService), usersService = inject(AXMUsersEntityService)) => {\n // Load dashboards from service - runs on init and when admin flag changes\n effect(() => {\n const isAdmin = store.isUserAdmin();\n loadDashboards(isAdmin);\n });\n /**\n * Loads dashboards and sets current dashboard based on user settings.\n */\n async function loadDashboards(isAdmin) {\n try {\n patchState(store, { isLoading: true });\n // Build server-side filter based on admin flag and user identity/role\n const userId = readUserId(sessionService);\n let userRoleIds = [];\n let userDisplayName;\n let filter;\n if (isAdmin) {\n // Admins see tenant scoped dashboards\n filter = {\n field: 'scope',\n operator: { type: 'equal' },\n value: 'T',\n };\n }\n else {\n // Non-admins see either:\n // 1) User scoped dashboards they created\n // 2) Tenant scoped dashboards where their role is included in roleIds\n const orFilters = [];\n if (userId) {\n try {\n const user = await usersService.getOne(userId);\n userRoleIds = extractUserRoleIds(user);\n userDisplayName = user?.displayName;\n }\n catch { }\n }\n if (userId) {\n // Match personal U dashboards by new field userId (preferred)\n orFilters.push({\n field: null,\n logic: 'and',\n operator: null,\n filters: [\n { field: 'scope', operator: { type: 'equal' }, value: 'U' },\n { field: 'userId', operator: { type: 'equal' }, value: userId },\n ],\n });\n // Backward compatibility: also match by legacy createdBy if present\n orFilters.push({\n field: null,\n logic: 'and',\n operator: null,\n filters: [\n { field: 'scope', operator: { type: 'equal' }, value: 'U' },\n { field: 'createdBy', operator: { type: 'equal' }, value: userId },\n ],\n });\n }\n if (userRoleIds.length > 0) {\n orFilters.push({\n field: null,\n logic: 'and',\n operator: null,\n filters: [\n { field: 'scope', operator: { type: 'equal' }, value: 'T' },\n { field: 'roleIds', operator: { type: 'in' }, value: userRoleIds },\n ],\n });\n }\n if (orFilters.length === 1) {\n filter = orFilters[0];\n }\n else if (orFilters.length > 1) {\n filter = {\n field: null,\n logic: 'or',\n operator: null,\n filters: orFilters,\n };\n }\n }\n const result = await dashboardService.query({ skip: 0, take: 100, filter });\n const dashboardModels = result.items || [];\n const dashboards = dashboardModels.map(modelToDashboardLayout);\n const currentDashboardId = await settingService\n .scope(AXPPlatformScope.User)\n .get(AXPHomeDashboardSetting.CurrentDashboard);\n let newCurrentDashboardId = null;\n if (dashboards.length > 0) {\n const dashboardExists = currentDashboardId && dashboards.some((d) => d.id === currentDashboardId);\n newCurrentDashboardId = dashboardExists ? currentDashboardId : dashboards[0].id;\n if (!dashboardExists) {\n settingService\n .scope(AXPPlatformScope.User)\n .set(AXPHomeDashboardSetting.CurrentDashboard, newCurrentDashboardId);\n }\n }\n patchState(store, {\n allDashboards: dashboards,\n dashboards: dashboards,\n isLoading: false,\n currentDashboardId: newCurrentDashboardId,\n });\n }\n catch (error) {\n console.error('Error loading dashboards:', error);\n patchState(store, { isLoading: false });\n }\n }\n return {\n /**\n * Sets the selected dashboard and persists the choice for the user.\n */\n setCurrentDashboard(dashboardId) {\n patchState(store, { currentDashboardId: dashboardId });\n settingService.scope(AXPPlatformScope.User).set(AXPHomeDashboardSetting.CurrentDashboard, dashboardId);\n },\n /**\n * Creates a new dashboard and selects it as current.\n */\n async addDashboard() {\n try {\n const newDashboard = await dashboardPopup.generateDashboardLayout({}, store.isUserAdmin());\n if (!newDashboard)\n return;\n const userId = readUserId(sessionService);\n const now = new Date();\n const dashboardWithMetadata = {\n ...newDashboard,\n createdBy: userId,\n createdAt: now,\n updatedBy: userId,\n updatedAt: now,\n scope: store.isUserAdmin() ? 'T' : 'U',\n widgets: [],\n };\n const dashboardModel = dashboardLayoutToModel(dashboardWithMetadata);\n const createdDashboardId = await dashboardService.insertOne(dashboardModel);\n dashboardWithMetadata.id = createdDashboardId;\n const updatedAllDashboards = [...store.availableDashboards(), dashboardWithMetadata];\n const updatedDashboards = [...store.dashboards(), dashboardWithMetadata];\n patchState(store, {\n allDashboards: updatedAllDashboards,\n dashboards: updatedDashboards,\n currentDashboardId: dashboardWithMetadata.id,\n });\n settingService\n .scope(AXPPlatformScope.User)\n .set(AXPHomeDashboardSetting.CurrentDashboard, dashboardWithMetadata.id);\n }\n catch (error) {\n console.error('Error adding dashboard:', error);\n }\n },\n /**\n * Edits the current dashboard metadata and persists changes.\n */\n async editDashboard() {\n const currentDashboard = store.selectedDashboard();\n if (!currentDashboard)\n return;\n try {\n const editedDashboard = await dashboardPopup.generateDashboardLayout({\n title: currentDashboard.title,\n description: currentDashboard.description,\n roleIds: currentDashboard.roleIds,\n scope: currentDashboard.scope,\n locked: currentDashboard.locked,\n isDeleted: currentDashboard.isDeleted,\n }, store.isUserAdmin());\n if (!editedDashboard)\n return;\n const userId = readUserId(sessionService);\n const now = new Date();\n const updatedDashboard = {\n ...currentDashboard,\n ...editedDashboard,\n updatedBy: userId,\n updatedAt: now,\n };\n await dashboardService.updateOne(updatedDashboard.id, dashboardLayoutToModel(updatedDashboard));\n const updatedAllDashboards = store\n .availableDashboards()\n .map((d) => (d.id === updatedDashboard.id ? updatedDashboard : d));\n const updatedDashboards = store\n .dashboards()\n .map((d) => (d.id === updatedDashboard.id ? updatedDashboard : d));\n patchState(store, {\n allDashboards: updatedAllDashboards,\n dashboards: updatedDashboards,\n });\n }\n catch (error) {\n console.error('Error editing dashboard:', error);\n }\n },\n /**\n * Adds selected widgets to the current dashboard and saves layout.\n */\n async addWidget() {\n if (!store.selectedDashboard()) {\n console.warn('No current dashboard selected');\n return;\n }\n try {\n const widgets = await widgetPickerService.showPicker({\n groups: [AXPWidgetGroupEnum.DashboardWidget],\n });\n const filteredWidgets = widgets.map(({ __meta__, ...rest }) => {\n const widget = rest;\n if (widget.type === 'sticky-note' && !widget.options) {\n widget.options = { hasConfiguration: false };\n }\n const randomId = AXPDataGenerator.uuid();\n widget.name = `${widget.type}-${randomId}`;\n widget.path = `${widget.type}-${randomId}`;\n return widget;\n });\n const convertedWidgets = filteredWidgets.map((widget) => ({\n config: {\n height: widget?.meta?.dimensions?.height ?? 2,\n width: widget?.meta?.dimensions?.width ?? 2,\n minHeight: widget?.meta?.dimensions?.minHeight,\n minWidth: widget?.meta?.dimensions?.minWidth,\n maxHeight: widget?.meta?.dimensions?.maxHeight,\n maxWidth: widget?.meta?.dimensions?.maxWidth,\n id: AXPDataGenerator.uuid(),\n },\n node: { ...widget, name: widget.name },\n }));\n const currentDashboard = store.selectedDashboard();\n const updatedDashboard = {\n ...currentDashboard,\n widgets: [...currentDashboard.widgets, ...convertedWidgets],\n };\n await dashboardService.updateOne(updatedDashboard.id, dashboardLayoutToModel(updatedDashboard));\n const updatedDashboards = store\n .dashboards()\n .map((d) => (d.id === updatedDashboard.id ? updatedDashboard : d));\n const updatedAllDashboards = store\n .availableDashboards()\n .map((d) => (d.id === updatedDashboard.id ? updatedDashboard : d));\n patchState(store, { dashboards: updatedDashboards, allDashboards: updatedAllDashboards });\n }\n catch (error) {\n console.error('Error adding widget:', error);\n }\n },\n /**\n * Removes a dashboard after user confirmation and updates selection.\n */\n async removeDashboard(id) {\n if (!id) {\n console.warn('No dashboard ID provided for removal');\n return;\n }\n try {\n const dialogResult = await dialogService.confirm(await translationService.translateAsync('@general:workflow.warning'), await translationService.translateAsync('@general:workflow.confirm-delete'), 'danger', 'horizontal');\n if (dialogResult.result) {\n await dashboardService.deleteOne(id);\n const updatedAllDashboards = store.availableDashboards().filter((dashboard) => dashboard.id !== id);\n const updatedDashboards = store.dashboards().filter((dashboard) => dashboard.id !== id);\n let newCurrentDashboardId = store.currentDashboardId();\n if (id === store.currentDashboardId()) {\n newCurrentDashboardId =\n updatedDashboards.length > 0 ? updatedDashboards[updatedDashboards.length - 1].id : null;\n if (newCurrentDashboardId) {\n settingService\n .scope(AXPPlatformScope.User)\n .set(AXPHomeDashboardSetting.CurrentDashboard, newCurrentDashboardId);\n }\n }\n patchState(store, {\n allDashboards: updatedAllDashboards,\n dashboards: updatedDashboards,\n currentDashboardId: newCurrentDashboardId,\n });\n }\n }\n catch (error) {\n console.error('Error removing dashboard:', error);\n }\n },\n /**\n * Removes a widget from the specified dashboard and persists the change.\n */\n async removeWidget(dashboardId, widgetId) {\n const currentDashboard = store.dashboards().find((d) => d.id === dashboardId);\n if (!currentDashboard)\n return;\n const updatedDashboard = {\n ...currentDashboard,\n widgets: currentDashboard.widgets.filter((widget) => widget.config.id !== widgetId),\n };\n await dashboardService.updateOne(dashboardId, dashboardLayoutToModel(updatedDashboard));\n const updatedDashboards = store\n .dashboards()\n .map((dashboard) => (dashboard.id === dashboardId ? updatedDashboard : dashboard));\n const updatedAllDashboards = store\n .availableDashboards()\n .map((dashboard) => (dashboard.id === dashboardId ? updatedDashboard : dashboard));\n patchState(store, { dashboards: updatedDashboards, allDashboards: updatedAllDashboards });\n },\n /**\n * Persists dashboard configuration changes and updates selection.\n */\n async handleConfigChange(dashboard) {\n // await dashboardService.updateOne(dashboard.id, dashboardLayoutToModel(dashboard));\n // const updatedDashboards = store.dashboards().map((d) => (d.id === dashboard.id ? dashboard : d));\n patchState(store, {\n // dashboards: updatedDashboards,\n currentDashboardId: dashboard.id,\n });\n settingService.scope(AXPPlatformScope.User).set(AXPHomeDashboardSetting.CurrentDashboard, dashboard.id);\n },\n /**\n * Handles grid layout changes (drag/resize) on desktop and saves positions.\n */\n async onGridChange(event) {\n if (!layoutThemeService.isDesktopDevice() || !store.selectedDashboard())\n return;\n const nodes = event.nodes.map(({ element, ...rest }) => rest);\n const currentDashboard = store.selectedDashboard();\n const updatedWidgets = currentDashboard.widgets.map((widget) => {\n const updatedNode = nodes.find((node) => node.id === widget.config.id);\n return updatedNode ? { ...widget, config: updatedNode } : widget;\n });\n const updatedDashboard = {\n ...currentDashboard,\n widgets: updatedWidgets,\n };\n await dashboardService.updateOne(updatedDashboard.id, dashboardLayoutToModel(updatedDashboard));\n const updatedDashboards = store\n .dashboards()\n .map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));\n const updatedAllDashboards = store\n .availableDashboards()\n .map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));\n patchState(store, { dashboards: updatedDashboards, allDashboards: updatedAllDashboards });\n },\n /**\n * Applies widget configuration changes returned from popup.\n */\n async handlePopupConfiguration(widgetNode) {\n if (!store.selectedDashboard())\n return;\n try {\n const updatedNode = await dashboardPopup.handlePopupConfiguration(widgetNode);\n if (!updatedNode)\n return;\n const currentDashboard = store.selectedDashboard();\n const updatedWidgets = currentDashboard.widgets.map((widget) => widget.node?.name === widgetNode.name && widget.node?.path === widgetNode.path\n ? { ...widget, node: updatedNode }\n : widget);\n const updatedDashboard = {\n ...currentDashboard,\n widgets: updatedWidgets,\n };\n await dashboardService.updateOne(updatedDashboard.id, dashboardLayoutToModel(updatedDashboard));\n const updatedDashboards = store\n .dashboards()\n .map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));\n const updatedAllDashboards = store\n .availableDashboards()\n .map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));\n patchState(store, { dashboards: updatedDashboards, allDashboards: updatedAllDashboards });\n }\n catch (error) {\n console.error('Error handling widget configuration:', error);\n }\n },\n /**\n * Updates widget value (defaultValue) and persists changes.\n */\n async handleValueChanged(widgetNode, data) {\n if (!store.selectedDashboard())\n return;\n if (!layoutThemeService.isDesktopDevice()) {\n return;\n }\n try {\n const currentDashboard = store.selectedDashboard();\n const updatedWidgets = currentDashboard.widgets.map((widget) => widget.node && widget.node.name === widgetNode.name && widget.node.path === widgetNode.path\n ? { ...widget, node: { ...widget.node, defaultValue: data } }\n : widget);\n const updatedDashboard = {\n ...currentDashboard,\n widgets: updatedWidgets,\n };\n await dashboardService.updateOne(updatedDashboard.id, dashboardLayoutToModel(updatedDashboard));\n const updatedDashboards = store\n .dashboards()\n .map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));\n const updatedAllDashboards = store\n .availableDashboards()\n .map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));\n patchState(store, { dashboards: updatedDashboards, allDashboards: updatedAllDashboards });\n }\n catch (error) {\n console.error('Error handling widget value change:', error);\n }\n },\n /**\n * Merges widget options with provided data and persists changes.\n */\n async handleOptionsChanged(widgetNode, data) {\n if (!store.selectedDashboard())\n return;\n try {\n const currentDashboard = store.selectedDashboard();\n const updatedWidgets = currentDashboard.widgets.map((widget) => widget.node && widget.node.name === widgetNode.name && widget.node.path === widgetNode.path\n ? {\n ...widget,\n node: {\n ...widget.node,\n options: { ...(widget.node.options || {}), ...data },\n },\n }\n : widget);\n const updatedDashboard = {\n ...currentDashboard,\n widgets: updatedWidgets,\n };\n await dashboardService.updateOne(updatedDashboard.id, dashboardLayoutToModel(updatedDashboard));\n const updatedDashboards = store\n .dashboards()\n .map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));\n const updatedAllDashboards = store\n .availableDashboards()\n .map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));\n patchState(store, { dashboards: updatedDashboards, allDashboards: updatedAllDashboards });\n }\n catch (error) {\n console.error('Error handling widget options change:', error);\n }\n },\n /**\n * Updates the admin flag in store state.\n */\n setIsAdmin(isAdmin) {\n patchState(store, { isAdmin });\n },\n // Client-side scope filtering is no longer needed; handled in query filter\n /**\n * Toggles lock state for current dashboard based on permission rules.\n */\n async toggleLockDashboard() {\n const currentDashboard = store.selectedDashboard();\n if (!currentDashboard)\n return;\n try {\n const isAdmin = store.isUserAdmin();\n const userId = readUserId(sessionService);\n const canToggle = (!isAdmin && currentDashboard.scope === 'U' && currentDashboard.createdBy === userId) ||\n (isAdmin && currentDashboard.scope === 'T');\n if (!canToggle) {\n console.warn('User does not have permission to toggle lock for this dashboard');\n return;\n }\n const newLockedState = !currentDashboard.locked;\n const updatedDashboard = {\n ...currentDashboard,\n locked: newLockedState,\n };\n await dashboardService.updateOne(updatedDashboard.id, dashboardLayoutToModel(updatedDashboard));\n const updatedDashboards = store\n .dashboards()\n .map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));\n const baseOptions = { ...store.dashboardsOption() };\n patchState(store, { dashboards: updatedDashboards });\n const updatedOptions = {\n ...baseOptions,\n disableDrag: newLockedState,\n disableResize: newLockedState,\n };\n patchState(store, { dashboardsOption: updatedOptions });\n }\n catch (error) {\n console.error('Error toggling dashboard lock state:', error);\n }\n },\n /**\n * Returns the lock state of the current dashboard.\n */\n isDashboardLocked() {\n const currentDashboard = store.selectedDashboard();\n return currentDashboard?.locked === true;\n },\n };\n}));\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1kYXNoYm9hcmQuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9ob21lLWRhc2hib2FyZC9kYXNoYm9hcmQtaG9tZS9ob21lLWRhc2hib2FyZC5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFHL0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBaUIsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FB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QUFVLEVBQUU7cUJBQ1osR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFFN0YsTUFBTSxXQUFXLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7Z0JBQ3BELFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO2dCQUVyRCxNQUFNLGNBQWMsR0FBRztvQkFDckIsR0FBRyxXQUFXO29CQUNkLFdBQVcsRUFBRSxjQUFjO29CQUMzQixhQUFhLEVBQUUsY0FBYztpQkFDOUIsQ0FBQztnQkFFRixVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUMxRCxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQy9ELENBQUM7UUFDSCxDQUFDO1FBRUQ7O1dBRUc7UUFDSCxpQkFBaUI7WUFDZixNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ25ELE9BQU8sZ0JBQWdCLEVBQUUsTUFBTSxLQUFLLElBQUksQ0FBQztRQUMzQyxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FDRixDQUVGLENBQUM7QUFDRixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWEdyaWRMYXlvdXRFdmVudCwgQVhHcmlkTGF5b3V0T3B0aW9ucyB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9ncmlkLWxheW91dC1idWlsZGVyJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYTVVzZXJzRW50aXR5U2VydmljZSB9IGZyb20gJ0BhY29yZXgvbW9kdWxlcy9zZWN1cml0eS1tYW5hZ2VtZW50JztcbmltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IEFYUFNldHRpbmdTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQRGF0YUdlbmVyYXRvciwgQVhQUGxhdGZvcm1TY29wZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRHcm91cEVudW0sIEFYUFdpZGdldE5vZGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRQaWNrZXJTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXInO1xuaW1wb3J0IHsgQVhQTGF5b3V0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS90aGVtZXMvc2hhcmVkJztcbmltcG9ydCB7IGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcGF0Y2hTdGF0ZSwgc2lnbmFsU3RvcmUsIHdpdGhDb21wdXRlZCwgd2l0aE1ldGhvZHMsIHdpdGhTdGF0ZSB9IGZyb20gJ0BuZ3J4L3NpZ25hbHMnO1xuaW1wb3J0IHsgQVhNRGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VudGl0aWVzL2Rhc2hib2FyZC9kYXNoYm9hcmQuc2VydmljZSc7XG5pbXBvcnQgeyBBWE1Db21tb25EYXNoYm9hcmRFbnRpdHlNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2VudGl0aWVzL2Rhc2hib2FyZC9kYXNoYm9hcmQudHlwZXMnO1xuaW1wb3J0IHsgQVhQSG9tZURhc2hib2FyZFNldHRpbmcgfSBmcm9tICcuLi8uLi8uLi9zZXR0aW5ncy5rZXlzJztcbmltcG9ydCB7IEFYTURhc2hib2FyZFBvcHVwU2VydmljZSB9IGZyb20gJy4uL2Rhc2hib2FyZC1wb3B1cHMvZGFzaGJvYXJkLXBvcHVwLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhNRGFzaGJvYXJkTGF5b3V0LCBBWE1EYXNoYm9hcmRXaWRnZXREYXRhIH0gZnJvbSAnLi9ob21lLWRhc2hib2FyZC50eXBlJztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgVHlwZXMgICAtLS0tXG5cbi8qKlxuICogU3RhdGUgY29udGFpbmVyIGZvciBkYXNoYm9hcmQgZmVhdHVyZS5cbiAqL1xuaW50ZXJmYWNlIERhc2hib2FyZFN0YXRlIHtcbiAgZGFzaGJvYXJkczogQVhNRGFzaGJvYXJkTGF5b3V0W107XG4gIGFsbERhc2hib2FyZHM6IEFYTURhc2hib2FyZExheW91dFtdO1xuICBjdXJyZW50RGFzaGJvYXJkSWQ6IHN0cmluZyB8IG51bGw7XG4gIGlzQWRtaW46IGJvb2xlYW47XG4gIGRhc2hib2FyZHNPcHRpb246IEFYR3JpZExheW91dE9wdGlvbnM7XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBXaWRnZXQgbGF5b3V0IGNvbmZpZ3VyYXRpb24gc3RvcmVkIHBlciB3aWRnZXQuXG4gKi9cbmludGVyZmFjZSBXaWRnZXRDb25maWcge1xuICBpZDogc3RyaW5nO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBtaW5IZWlnaHQ/OiBudW1iZXI7XG4gIG1pbldpZHRoPzogbnVtYmVyO1xuICBtYXhIZWlnaHQ/OiBudW1iZXI7XG4gIG1heFdpZHRoPzogbnVtYmVyO1xufVxuXG50eXBlIERhc2hib2FyZFNjb3BlID0gJ1UnIHwgJ1QnO1xuXG50eXBlIFNlc3Npb25Vc2VyTWluaW1hbCA9IHsgaWQ/OiBzdHJpbmc7IHJvbGU/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCB8IG51bGw7XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIFV0aWxpdHkgRnVuY3Rpb25zICAgLS0tLVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIGluaXRpYWwgc3RhdGUgZm9yIHRoZSBkYXNoYm9hcmQgc3RvcmUuXG4gKi9cbmNvbnN0IGNyZWF0ZUluaXRpYWxTdGF0ZSA9ICgpOiBEYXNoYm9hcmRTdGF0ZSA9PiAoe1xuICBkYXNoYm9hcmRzOiBbXSxcbiAgYWxsRGFzaGJvYXJkczogW10sXG4gIGN1cnJlbnREYXNoYm9hcmRJZDogbnVsbCxcbiAgaXNBZG1pbjogZmFsc2UsXG4gIGRhc2hib2FyZHNPcHRpb246IHtcbiAgICBmbG9hdDogZmFsc2UsXG4gICAgY2VsbEhlaWdodDogNzUsXG4gICAgZ2FwOiA1LFxuICAgIG1pblJvdzogOSxcbiAgICBjb2x1bW46IDEyLFxuICAgIHJlc3BvbnNpdmVMYXlvdXQ6IFtcbiAgICAgIHsgY29sdW1uOiA0LCB3aWR0aDogNzY4IH0sXG4gICAgICB7IGNvbHVtbjogMSwgd2lkdGg6IDQ4MCB9LFxuICAgIF0sXG4gIH0sXG4gIGlzTG9hZGluZzogZmFsc2UsXG59KTtcblxuLyoqXG4gKiBNYXBzIGFuIGVudGl0eSBtb2RlbCB0byBhIGRhc2hib2FyZCBsYXlvdXQgbW9kZWwuXG4gKi9cbmNvbnN0IG1vZGVsVG9EYXNoYm9hcmRMYXlvdXQgPSAobW9kZWw6IEFYTUNvbW1vbkRhc2hib2FyZEVudGl0eU1vZGVsKTogQVhNRGFzaGJvYXJkTGF5b3V0ID0+ICh7XG4gIGlkOiBtb2RlbC5pZCB8fCAnJyxcbiAgdGl0bGU6IG1vZGVsLnRpdGxlLFxuICBkZXNjcmlwdGlvbjogbW9kZWwuZGVzY3JpcHRpb24sXG4gIHdpZGdldHM6IG1vZGVsLndpZGdldHMgfHwgW10sXG4gIGNyZWF0ZWRCeTogbW9kZWwudXNlcklkID8/IChtb2RlbC5hdWRpdEluZm8/LmNyZWF0ZWQ/LmJ5Py5pZCksXG4gIHJvbGVJZHM6IG1vZGVsLnJvbGVJZHMsXG4gIGlzRGVsZXRlZDogbW9kZWwuaXNEZWxldGVkLFxuICBsb2NrZWQ6IG1vZGVsLmxvY2tlZCxcbiAgY3JlYXRlZEF0OiAobW9kZWwuYXVkaXRJbmZvPy5jcmVhdGVkPy5hdCksXG4gIHVwZGF0ZWRBdDogKG1vZGVsLmF1ZGl0SW5mbz8udXBkYXRlZD8uYXQpLFxuICB1cGRhdGVkQnk6IChtb2RlbC5hdWRpdEluZm8/LnVwZGF0ZWQ/LmJ5Py5pZCksXG4gIHNjb3BlOiBtb2RlbC5zY29wZSxcbn0pO1xuXG4vKipcbiAqIE1hcHMgYSBkYXNoYm9hcmQgbGF5b3V0IHRvIGFuIGVudGl0eSBtb2RlbCBmb3IgcGVyc2lzdGVuY2UuXG4gKi9cbmNvbnN0IGRhc2hib2FyZExheW91dFRvTW9kZWwgPSAobGF5b3V0OiBBWE1EYXNoYm9hcmRMYXlvdXQpOiBBWE1Db21tb25EYXNoYm9hcmRFbnRpdHlNb2RlbCA9PiAoe1xuICBpZDogbGF5b3V0LmlkLFxuICBuYW1lOiBsYXlvdXQudGl0bGUsXG4gIHRpdGxlOiBsYXlvdXQudGl0bGUsXG4gIGRlc2NyaXB0aW9uOiBsYXlvdXQuZGVzY3JpcHRpb24gfHwgJycsXG4gIHdpZGdldHM6IGxheW91dC53aWRnZXRzLFxuICB1c2VySWQ6IGxheW91dC5jcmVhdGVkQnksXG4gIHJvbGVJZHM6IGxheW91dC5yb2xlSWRzLFxuICBpc0RlbGV0ZWQ6IGxheW91dC5pc0RlbGV0ZWQsXG4gIGxvY2tlZDogbGF5b3V0LmxvY2tlZCxcbiAgYXVkaXRJbmZvOiB7XG4gICAgY3JlYXRlZDogbGF5b3V0LmNyZWF0ZWRBdCA/IHsgYXQ6IGxheW91dC5jcmVhdGVkQXQsIGJ5OiBsYXlvdXQuY3JlYXRlZEJ5ID8geyBpZDogbGF5b3V0LmNyZWF0ZWRCeSwgdHlwZTogJ3VzZXInIH0gYXMgYW55IDogdW5kZWZpbmVkIH0gOiB1bmRlZmluZWQsXG4gICAgdXBkYXRlZDogbGF5b3V0LnVwZGF0ZWRBdCA/IHsgYXQ6IGxheW91dC51cGRhdGVkQXQsIGJ5OiBsYXlvdXQudXBkYXRlZEJ5ID8geyBpZDogbGF5b3V0LnVwZGF0ZWRCeSwgdHlwZTogJ3VzZXInIH0gYXMgYW55IDogdW5kZWZpbmVkIH0gOiB1bmRlZmluZWQsXG4gIH0sXG4gIHNjb3BlOiBsYXlvdXQuc2NvcGUsXG59KTtcblxuLyoqXG4gKiBTYWZlbHkgcmVhZHMgdGhlIGN1cnJlbnQgdXNlciBpZCBmcm9tIHRoZSBzZXNzaW9uIHNlcnZpY2UuXG4gKi9cbmNvbnN0IHJlYWRVc2VySWQgPSAoc2Vzc2lvblNlcnZpY2U6IEFYUFNlc3Npb25TZXJ2aWNlKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgY2FuZGlkYXRlID0gc2Vzc2lvblNlcnZpY2UudXNlciBhcyBTZXNzaW9uVXNlck1pbmltYWw7XG4gIHJldHVybiBjYW5kaWRhdGU/LmlkO1xufTtcblxuLyoqXG4gKiBTYWZlbHkgcmVhZHMgdGhlIGN1cnJlbnQgdXNlciByb2xlIGZyb20gdGhlIHNlc3Npb24gc2VydmljZS5cbiAqL1xuY29uc3QgcmVhZFVzZXJSb2xlID0gKHNlc3Npb25TZXJ2aWNlOiBBWFBTZXNzaW9uU2VydmljZSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IGNhbmRpZGF0ZSA9IHNlc3Npb25TZXJ2aWNlLnVzZXIgYXMgU2Vzc2lvblVzZXJNaW5pbWFsO1xuICByZXR1cm4gY2FuZGlkYXRlPy5yb2xlO1xufTtcblxuLyoqXG4gKiBFeHRyYWN0cyByb2xlIGlkcyBmcm9tIGEgdXNlciBlbnRpdHkgcmV0dXJuZWQgYnkgQVhNVXNlcnNFbnRpdHlTZXJ2aWNlLlxuICovXG5jb25zdCBleHRyYWN0VXNlclJvbGVJZHMgPSAodXNlcjogYW55KTogc3RyaW5nW10gPT4ge1xuICBpZiAoIXVzZXIpIHJldHVybiBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkodXNlci5yb2xlSWRzKSAmJiB1c2VyLnJvbGVJZHMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiB1c2VyLnJvbGVJZHMuZmlsdGVyKChyOiB1bmtub3duKTogciBpcyBzdHJpbmcgPT4gdHlwZW9mIHIgPT09ICdzdHJpbmcnKTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh1c2VyLnJvbGVzKSAmJiB1c2VyLnJvbGVzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBpZHMgPSB1c2VyLnJvbGVzXG4gICAgICAubWFwKChyOiBhbnkpID0+ICh0eXBlb2Ygcj8uaWQgPT09ICdzdHJpbmcnID8gci5pZCA6IHVuZGVmaW5lZCkpXG4gICAgICAuZmlsdGVyKChpZDogdW5rbm93bik6IGlkIGlzIHN0cmluZyA9PiB0eXBlb2YgaWQgPT09ICdzdHJpbmcnKTtcbiAgICBpZiAoaWRzLmxlbmd0aCA+IDApIHJldHVybiBpZHM7XG4gIH1cbiAgaWYgKHR5cGVvZiB1c2VyLnJvbGVJZCA9PT0gJ3N0cmluZycgJiYgdXNlci5yb2xlSWQpIHJldHVybiBbdXNlci5yb2xlSWRdO1xuICBpZiAodHlwZW9mIHVzZXIucm9sZSA9PT0gJ3N0cmluZycgJiYgdXNlci5yb2xlKSByZXR1cm4gW3VzZXIucm9sZV07XG4gIHJldHVybiBbXTtcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBnaXZlbiBkYXNoYm9hcmQgY29udGFpbnMgdGhlIHByb3ZpZGVkIHVzZXIgcm9sZS5cbiAqL1xuY29uc3QgaGFzTWF0Y2hpbmdSb2xlID0gKGRhc2hib2FyZDogQVhNRGFzaGJvYXJkTGF5b3V0LCB1c2VyUm9sZT86IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICBpZiAoIXVzZXJSb2xlKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IHJvbGVJZHMgPSBkYXNoYm9hcmQucm9sZUlkcztcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkocm9sZUlkcykgJiYgcm9sZUlkcy5sZW5ndGggPiAwICYmIHJvbGVJZHMuaW5jbHVkZXModXNlclJvbGUpO1xufTtcblxuLyoqXG4gKiBDb21wdXRlcyBlZmZlY3RpdmUgbGF5b3V0IG9wdGlvbnMgYmFzZWQgb24gZGV2aWNlLCBsb2NrLCBhZG1pbiBhbmQgcm9sZSByZXN0cmljdGlvbnMuXG4gKi9cbmNvbnN0IGRlcml2ZUxheW91dE9wdGlvbnMgPSAoXG4gIGJhc2VPcHRpb25zOiBBWEdyaWRMYXlvdXRPcHRpb25zLFxuICBkYXNoYm9hcmQ6IEFYTURhc2hib2FyZExheW91dCB8IHVuZGVmaW5lZCxcbiAgaXNBZG1pbjogYm9vbGVhbixcbiAgaXNEZXNrdG9wOiBib29sZWFuLFxuICB1c2VyUm9sZT86IHN0cmluZyxcbik6IEFYR3JpZExheW91dE9wdGlvbnMgPT4ge1xuICBpZiAoIWRhc2hib2FyZCkgcmV0dXJuIGJhc2VPcHRpb25zO1xuICBpZiAoIWlzRGVza3RvcCkgcmV0dXJuIHsgLi4uYmFzZU9wdGlvbnMsIGRpc2FibGVEcmFnOiB0cnVlLCBkaXNhYmxlUmVzaXplOiB0cnVlIH07XG4gIGlmIChiYXNlT3B0aW9ucy5kaXNhYmxlRHJhZyAhPT0gdW5kZWZpbmVkICYmIGJhc2VPcHRpb25zLmRpc2FibGVSZXNpemUgIT09IHVuZGVmaW5lZCkgcmV0dXJuIGJhc2VPcHRpb25zO1xuICBpZiAoZGFzaGJvYXJkLmxvY2tlZCA9PT0gdHJ1ZSkgcmV0dXJuIHsgLi4uYmFzZU9wdGlvbnMsIGRpc2FibGVEcmFnOiB0cnVlLCBkaXNhYmxlUmVzaXplOiB0cnVlIH07XG4gIGlmIChpc0FkbWluKSByZXR1cm4gYmFzZU9wdGlvbnM7XG5cbiAgY29uc3Qgcm9sZU1hdGNoZWQgPSBoYXNNYXRjaGluZ1JvbGUoZGFzaGJvYXJkLCB1c2VyUm9sZSk7XG4gIGlmICghaXNBZG1pbiAmJiByb2xlTWF0Y2hlZCAmJiBkYXNoYm9hcmQuc2NvcGUgPT09ICdUJykge1xuICAgIHJldHVybiB7IC4uLmJhc2VPcHRpb25zLCBkaXNhYmxlRHJhZzogdHJ1ZSwgZGlzYWJsZVJlc2l6ZTogdHJ1ZSB9O1xuICB9XG4gIHJldHVybiBiYXNlT3B0aW9ucztcbn07XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgd2lkZ2V0IGlzIGxvY2tlZCBmb3IgdGhlIGN1cnJlbnQgdXNlciBiYXNlZCBvbiBkYXNoYm9hcmQgYW5kIHJvbGUgY29udGV4dC5cbiAqL1xuY29uc3QgaXNXaWRnZXRMb2NrZWRGb3JVc2VyID0gKFxuICBkYXNoYm9hcmQ6IEFYTURhc2hib2FyZExheW91dCB8IHVuZGVmaW5lZCxcbiAgaXNBZG1pbjogYm9vbGVhbixcbiAgdXNlclJvbGU/OiBzdHJpbmcsXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKCFkYXNoYm9hcmQpIHJldHVybiBmYWxzZTtcbiAgaWYgKGRhc2hib2FyZC5sb2NrZWQgPT09IHRydWUpIHJldHVybiB0cnVlO1xuICBpZiAoaXNBZG1pbikgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gaGFzTWF0Y2hpbmdSb2xlKGRhc2hib2FyZCwgdXNlclJvbGUpICYmIGRhc2hib2FyZC5zY29wZSA9PT0gJ1QnO1xufTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGEgd2lkZ2V0IGNhbiBiZSBjb25maWd1cmVkIGJ5IHRoZSBjdXJyZW50IHVzZXIuXG4gKi9cbmNvbnN0IGNhbkNvbmZpZ3VyZVdpZGdldEZvclVzZXIgPSAoXG4gIGRhc2hib2FyZDogQVhNRGFzaGJvYXJkTGF5b3V0IHwgdW5kZWZpbmVkLFxuICBpc0FkbWluOiBib29sZWFuLFxuICB1c2VyUm9sZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICB3aWRnZXRIYXNDb25maWd1cmF0aW9uOiBib29sZWFuLFxuKTogYm9vbGVhbiA9PiB7XG4gIGlmICghZGFzaGJvYXJkKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKGlzQWRtaW4pIHJldHVybiB3aWRnZXRIYXNDb25maWd1cmF0aW9uO1xuICBpZiAoZGFzaGJvYXJkLmxvY2tlZCA9PT0gdHJ1ZSkgcmV0dXJuIGZhbHNlO1xuICBpZiAoaGFzTWF0Y2hpbmdSb2xlKGRhc2hib2FyZCwgdXNlclJvbGUpICYmIGRhc2hib2FyZC5zY29wZSA9PT0gJ1QnKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiB3aWRnZXRIYXNDb25maWd1cmF0aW9uO1xufTtcblxuLyoqXG4gKiBGaWx0ZXJzIGRhc2hib2FyZHMgZm9yIGN1cnJlbnQgdXNlciBzY29wZSBhbmQgcGVybWlzc2lvbnMuXG4gKi9cbmNvbnN0IGZpbHRlckRhc2hib2FyZHNGb3JVc2VyID0gKFxuICBkYXNoYm9hcmRzOiBBWE1EYXNoYm9hcmRMYXlvdXRbXSxcbiAgaXNBZG1pbjogYm9vbGVhbixcbiAgdXNlcklkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIHVzZXJSb2xlOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4pOiBBWE1EYXNoYm9hcmRMYXlvdXRbXSA9PiB7XG4gIGlmICghdXNlcklkKSByZXR1cm4gZGFzaGJvYXJkcztcblxuICBpZiAoaXNBZG1pbikge1xuICAgIHJldHVybiBkYXNoYm9hcmRzLmZpbHRlcigoZCkgPT4gZC5zY29wZSA9PT0gJ1QnKTtcbiAgfVxuXG4gIHJldHVybiBkYXNoYm9hcmRzLmZpbHRlcigoZCkgPT4ge1xuICAgIGNvbnN0IGlzVXNlckRhc2hib2FyZCA9IGQuc2NvcGUgPT09ICdVJyAmJiBkLmNyZWF0ZWRCeSA9PT0gdXNlcklkO1xuICAgIGNvbnN0IHJvbGVNYXRjaGVkID0gaGFzTWF0Y2hpbmdSb2xlKGQsIHVzZXJSb2xlKTtcbiAgICBjb25zdCBpc1RlbmFudERhc2hib2FyZFdpdGhSb2xlID0gZC5zY29wZSA9PT0gJ1QnICYmIHJvbGVNYXRjaGVkICYmIGQuaXNEZWxldGVkICE9PSB0cnVlO1xuICAgIHJldHVybiBpc1VzZXJEYXNoYm9hcmQgfHwgaXNUZW5hbnREYXNoYm9hcmRXaXRoUm9sZTtcbiAgfSk7XG59O1xuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBTaWduYWwgU3RvcmUgICAtLS0tXG4vKipcbiAqIERhc2hib2FyZCBTaWduYWwgU3RvcmU6IG1hbmFnZXMgZGFzaGJvYXJkcywgd2lkZ2V0cyBhbmQgcGVybWlzc2lvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBBWE1EYXNoYm9hcmRTdG9yZSA9IHNpZ25hbFN0b3JlKFxuICB7IHByb3ZpZGVkSW46ICdyb290JyB9LFxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgSW5pdGlhbCBTdGF0ZSAgIC0tLS1cbiAgd2l0aFN0YXRlKCgpID0+IGNyZWF0ZUluaXRpYWxTdGF0ZSgpKSxcbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDb21wdXRlZCBQcm9wZXJ0aWVzICAgLS0tLVxuICB3aXRoQ29tcHV0ZWQoXG4gICAgKHN0YXRlLCBzZXNzaW9uU2VydmljZSA9IGluamVjdChBWFBTZXNzaW9uU2VydmljZSksIGxheW91dFRoZW1lU2VydmljZSA9IGluamVjdChBWFBMYXlvdXRUaGVtZVNlcnZpY2UpKSA9PiAoe1xuICAgICAgc2VsZWN0ZWREYXNoYm9hcmQ6IGNvbXB1dGVkKFxuICAgICAgICAoKSA9PiBzdGF0ZS5kYXNoYm9hcmRzKCkuZmluZCgoZGFzaGJvYXJkKSA9PiBkYXNoYm9hcmQuaWQgPT09IHN0YXRlLmN1cnJlbnREYXNoYm9hcmRJZCgpKSB8fCBudWxsLFxuICAgICAgKSxcbiAgICAgIGlzVXNlckFkbWluOiBjb21wdXRlZCgoKSA9PiBzdGF0ZS5pc0FkbWluKCkpLFxuICAgICAgYXZhaWxhYmxlRGFzaGJvYXJkczogY29tcHV0ZWQoKCkgPT4gc3RhdGUuYWxsRGFzaGJvYXJkcygpKSxcbiAgICAgIGN1cnJlbnRMYXlvdXRPcHRpb25zOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnREYXNoYm9hcmQgPSBzdGF0ZS5kYXNoYm9hcmRzKCkuZmluZCgoZGFzaGJvYXJkKSA9PiBkYXNoYm9hcmQuaWQgPT09IHN0YXRlLmN1cnJlbnREYXNoYm9hcmRJZCgpKTtcbiAgICAgICAgY29uc3QgYmFzZU9wdGlvbnMgPSBzdGF0ZS5kYXNoYm9hcmRzT3B0aW9uKCk7XG4gICAgICAgIGNvbnN0IGlzRGVza3RvcCA9IGxheW91dFRoZW1lU2VydmljZS5pc0Rlc2t0b3BEZXZpY2UoKTtcbiAgICAgICAgY29uc3QgdXNlclJvbGUgPSByZWFkVXNlclJvbGUoc2Vzc2lvblNlcnZpY2UpO1xuICAgICAgICByZXR1cm4gZGVyaXZlTGF5b3V0T3B0aW9ucyhiYXNlT3B0aW9ucywgY3VycmVudERhc2hib2FyZCB8fCB1bmRlZmluZWQsIHN0YXRlLmlzQWRtaW4oKSwgaXNEZXNrdG9wLCB1c2VyUm9sZSk7XG4gICAgICB9KSxcbiAgICAgIGNhbkNvbmZpZ3VyZVdpZGdldDogY29tcHV0ZWQoKCkgPT4gKHdpZGdldDogQVhNRGFzaGJvYXJkV2lkZ2V0RGF0YSkgPT4ge1xuICAgICAgICBjb25zdCBjdXJyZW50RGFzaGJvYXJkID0gc3RhdGUuZGFzaGJvYXJkcygpLmZpbmQoKGRhc2hib2FyZCkgPT4gZGFzaGJvYXJkLmlkID09PSBzdGF0ZS5jdXJyZW50RGFzaGJvYXJkSWQoKSk7XG4gICAgICAgIGNvbnN0IHVzZXJSb2xlID0gcmVhZFVzZXJSb2xlKHNlc3Npb25TZXJ2aWNlKTtcbiAgICAgICAgY29uc3Qgd2lkZ2V0SGFzQ29uZmlndXJhdGlvbiA9IHdpZGdldC5ub2RlPy5vcHRpb25zPy5bJ2hhc0NvbmZpZ3VyYXRpb24nXSA/PyB0cnVlO1xuICAgICAgICByZXR1cm4gY2FuQ29uZmlndXJlV2lkZ2V0Rm9yVXNlcihcbiAgICAgICAgICBjdXJyZW50RGFzaGJvYXJkIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICBzdGF0ZS5pc0FkbWluKCksXG4gICAgICAgICAgdXNlclJvbGUsXG4gICAgICAgICAgd2lkZ2V0SGFzQ29uZmlndXJhdGlvbixcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgaXNXaWRnZXRMb2NrZWQ6IGNvbXB1dGVkKCgpID0+ICh3aWRnZXQ6IEFYTURhc2hib2FyZFdpZGdldERhdGEpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudERhc2hib2FyZCA9IHN0YXRlLmRhc2hib2FyZHMoKS5maW5kKChkYXNoYm9hcmQpID0+IGRhc2hib2FyZC5pZCA9PT0gc3RhdGUuY3VycmVudERhc2hib2FyZElkKCkpO1xuICAgICAgICBjb25zdCB1c2VyUm9sZSA9IHJlYWRVc2VyUm9sZShzZXNzaW9uU2VydmljZSk7XG4gICAgICAgIHJldHVybiBpc1dpZGdldExvY2tlZEZvclVzZXIoY3VycmVudERhc2hib2FyZCB8fCB1bmRlZmluZWQsIHN0YXRlLmlzQWRtaW4oKSwgdXNlclJvbGUpO1xuICAgICAgfSksXG4gICAgfSksXG4gICksXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgTWV0aG9kcyAgIC0tLS1cbiAgd2l0aE1ldGhvZHMoXG4gICAgKFxuICAgICAgc3RvcmUsXG4gICAgICBkYXNoYm9hcmRQb3B1cCA9IGluamVjdChBWE1EYXNoYm9hcmRQb3B1cFNlcnZpY2UpLFxuICAgICAgZGlhbG9nU2VydmljZSA9IGluamVjdChBWERpYWxvZ1NlcnZpY2UpLFxuICAgICAgdHJhbnNsYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKSxcbiAgICAgIHdpZGdldFBpY2tlclNlcnZpY2UgPSBpbmplY3QoQVhQV2lkZ2V0UGlja2VyU2VydmljZSksXG4gICAgICBkYXNoYm9hcmRTZXJ2aWNlID0gaW5qZWN0KEFYTURhc2hib2FyZFNlcnZpY2UpLFxuICAgICAgc2V0dGluZ1NlcnZpY2UgPSBpbmplY3QoQVhQU2V0dGluZ1NlcnZpY2UpLFxuICAgICAgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoQVhQU2Vzc2lvblNlcnZpY2UpLFxuICAgICAgbGF5b3V0VGhlbWVTZXJ2aWNlID0gaW5qZWN0KEFYUExheW91dFRoZW1lU2VydmljZSksXG4gICAgICB1c2Vyc1NlcnZpY2UgPSBpbmplY3QoQVhNVXNlcnNFbnRpdHlTZXJ2aWNlKSxcbiAgICApID0+IHtcbiAgICAgIC8vIExvYWQgZGFzaGJvYXJkcyBmcm9tIHNlcnZpY2UgLSBydW5zIG9uIGluaXQgYW5kIHdoZW4gYWRtaW4gZmxhZyBjaGFuZ2VzXG4gICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBpc0FkbWluID0gc3RvcmUuaXNVc2VyQWRtaW4oKTtcbiAgICAgICAgbG9hZERhc2hib2FyZHMoaXNBZG1pbik7XG4gICAgICB9KTtcblxuICAgICAgLyoqXG4gICAgICAgKiBMb2FkcyBkYXNoYm9hcmRzIGFuZCBzZXRzIGN1cnJlbnQgZGFzaGJvYXJkIGJhc2VkIG9uIHVzZXIgc2V0dGluZ3MuXG4gICAgICAgKi9cbiAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWREYXNoYm9hcmRzKGlzQWRtaW46IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IGlzTG9hZGluZzogdHJ1ZSB9KTtcbiAgICAgICAgICAvLyBCdWlsZCBzZXJ2ZXItc2lkZSBmaWx0ZXIgYmFzZWQgb24gYWRtaW4gZmxhZyBhbmQgdXNlciBpZGVudGl0eS9yb2xlXG4gICAgICAgICAgY29uc3QgdXNlcklkID0gcmVhZFVzZXJJZChzZXNzaW9uU2VydmljZSk7XG4gICAgICAgICAgbGV0IHVzZXJSb2xlSWRzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICAgIGxldCB1c2VyRGlzcGxheU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgICAgICAgIGxldCBmaWx0ZXI6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiB8IHVuZGVmaW5lZDtcblxuICAgICAgICAgIGlmIChpc0FkbWluKSB7XG4gICAgICAgICAgICAvLyBBZG1pbnMgc2VlIHRlbmFudCBzY29wZWQgZGFzaGJvYXJkc1xuICAgICAgICAgICAgZmlsdGVyID0ge1xuICAgICAgICAgICAgICBmaWVsZDogJ3Njb3BlJyxcbiAgICAgICAgICAgICAgb3BlcmF0b3I6IHsgdHlwZTogJ2VxdWFsJyB9LFxuICAgICAgICAgICAgICB2YWx1ZTogJ1QnLFxuICAgICAgICAgICAgfSBhcyBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb247XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE5vbi1hZG1pbnMgc2VlIGVpdGhlcjpcbiAgICAgICAgICAgIC8vIDEpIFVzZXIgc2NvcGVkIGRhc2hib2FyZHMgdGhleSBjcmVhdGVkXG4gICAgICAgICAgICAvLyAyKSBUZW5hbnQgc2NvcGVkIGRhc2hib2FyZHMgd2hlcmUgdGhlaXIgcm9sZSBpcyBpbmNsdWRlZCBpbiByb2xlSWRzXG4gICAgICAgICAgICBjb25zdCBvckZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdID0gW107XG5cbiAgICAgICAgICAgIGlmICh1c2VySWQpIHtcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgdXNlcnNTZXJ2aWNlLmdldE9uZSh1c2VySWQpO1xuICAgICAgICAgICAgICAgIHVzZXJSb2xlSWRzID0gZXh0cmFjdFVzZXJSb2xlSWRzKHVzZXIpO1xuICAgICAgICAgICAgICAgIHVzZXJEaXNwbGF5TmFtZSA9ICh1c2VyIGFzIGFueSk/LmRpc3BsYXlOYW1lIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgfSBjYXRjaCB7IH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHVzZXJJZCkge1xuICAgICAgICAgICAgICAvLyBNYXRjaCBwZXJzb25hbCBVIGRhc2hib2FyZHMgYnkgbmV3IGZpZWxkIHVzZXJJZCAocHJlZmVycmVkKVxuICAgICAgICAgICAgICBvckZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgZmllbGQ6IG51bGwgYXMgYW55LFxuICAgICAgICAgICAgICAgIGxvZ2ljOiAnYW5kJyxcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgICAgICAgICAgICAgZmlsdGVyczogW1xuICAgICAgICAgICAgICAgICAgeyBmaWVsZDogJ3Njb3BlJywgb3BlcmF0b3I6IHsgdHlwZTogJ2VxdWFsJyB9LCB2YWx1ZTogJ1UnIH0sXG4gICAgICAgICAgICAgICAgICB7IGZpZWxkOiAndXNlcklkJywgb3BlcmF0b3I6IHsgdHlwZTogJ2VxdWFsJyB9LCB2YWx1ZTogdXNlcklkIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSBhcyBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24pO1xuXG4gICAgICAgICAgICAgIC8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHk6IGFsc28gbWF0Y2ggYnkgbGVnYWN5IGNyZWF0ZWRCeSBpZiBwcmVzZW50XG4gICAgICAgICAgICAgIG9yRmlsdGVycy5wdXNoKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogbnVsbCBhcyBhbnksXG4gICAgICAgICAgICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBudWxsIGFzIGFueSxcbiAgICAgICAgICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICB7IGZpZWxkOiAnc2NvcGUnLCBvcGVyYXRvcjogeyB0eXBlOiAnZXF1YWwnIH0sIHZhbHVlOiAnVScgfSxcbiAgICAgICAgICAgICAgICAgIHsgZmllbGQ6ICdjcmVhdGVkQnknLCBvcGVyYXRvcjogeyB0eXBlOiAnZXF1YWwnIH0sIHZhbHVlOiB1c2VySWQgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9IGFzIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh1c2VyUm9sZUlkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIG9yRmlsdGVycy5wdXNoKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogbnVsbCBhcyBhbnksXG4gICAgICAgICAgICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBudWxsIGFzIGFueSxcbiAgICAgICAgICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgICAgICAgICB7IGZpZWxkOiAnc2NvcGUnLCBvcGVyYXRvcjogeyB0eXBlOiAnZXF1YWwnIH0sIHZhbHVlOiAnVCcgfSxcbiAgICAgICAgICAgICAgICAgIHsgZmllbGQ6ICdyb2xlSWRzJywgb3BlcmF0b3I6IHsgdHlwZTogJ2luJyB9LCB2YWx1ZTogdXNlclJvbGVJZHMgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9IGFzIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvckZpbHRlcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgIGZpbHRlciA9IG9yRmlsdGVyc1swXTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAob3JGaWx0ZXJzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgZmlsdGVyID0ge1xuICAgICAgICAgICAgICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICAgICAgICAgICAgICBsb2dpYzogJ29yJyxcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgICAgICAgICAgICAgZmlsdGVyczogb3JGaWx0ZXJzLFxuICAgICAgICAgICAgICB9IGFzIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkYXNoYm9hcmRTZXJ2aWNlLnF1ZXJ5KHsgc2tpcDogMCwgdGFrZTogMTAwLCBmaWx0ZXIgfSk7XG4gICAgICAgICAgY29uc3QgZGFzaGJvYXJkTW9kZWxzID0gcmVzdWx0Lml0ZW1zIHx8IFtdO1xuICAgICAgICAgIGNvbnN0IGRhc2hib2FyZHMgPSBkYXNoYm9hcmRNb2RlbHMubWFwKG1vZGVsVG9EYXNoYm9hcmRMYXlvdXQpO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnREYXNoYm9hcmRJZCA9IGF3YWl0IHNldHRpbmdTZXJ2aWNlXG4gICAgICAgICAgICAuc2NvcGUoQVhQUGxhdGZvcm1TY29wZS5Vc2VyKVxuICAgICAgICAgICAgLmdldChBWFBIb21lRGFzaGJvYXJkU2V0dGluZy5DdXJyZW50RGFzaGJvYXJkKTtcblxuICAgICAgICAgIGxldCBuZXdDdXJyZW50RGFzaGJvYXJkSWQgPSBudWxsO1xuICAgICAgICAgIGlmIChkYXNoYm9hcmRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGRhc2hib2FyZEV4aXN0cyA9IGN1cnJlbnREYXNoYm9hcmRJZCAmJiBkYXNoYm9hcmRzLnNvbWUoKGQpID0+IGQuaWQgPT09IGN1cnJlbnREYXNoYm9hcmRJZCk7XG4gICAgICAgICAgICBuZXdDdXJyZW50RGFzaGJvYXJkSWQgPSBkYXNoYm9hcmRFeGlzdHMgPyAoY3VycmVudERhc2hib2FyZElkIGFzIHN0cmluZykgOiBkYXNoYm9hcmRzWzBdLmlkO1xuXG4gICAgICAgICAgICBpZiAoIWRhc2hib2FyZEV4aXN0cykge1xuICAgICAgICAgICAgICBzZXR0aW5nU2VydmljZVxuICAgICAgICAgICAgICAgIC5zY29wZShBWFBQbGF0Zm9ybVNjb3BlLlVzZXIpXG4gICAgICAgICAgICAgICAgLnNldChBWFBIb21lRGFzaGJvYXJkU2V0dGluZy5DdXJyZW50RGFzaGJvYXJkLCBuZXdDdXJyZW50RGFzaGJvYXJkSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgIGFsbERhc2hib2FyZHM6IGRhc2hib2FyZHMsXG4gICAgICAgICAgICBkYXNoYm9hcmRzOiBkYXNoYm9hcmRzLFxuICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGN1cnJlbnREYXNoYm9hcmRJZDogbmV3Q3VycmVudERhc2hib2FyZElkLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgZGFzaGJvYXJkczonLCBlcnJvcik7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBpc0xvYWRpbmc6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZXRzIHRoZSBzZWxlY3RlZCBkYXNoYm9hcmQgYW5kIHBlcnNpc3RzIHRoZSBjaG9pY2UgZm9yIHRoZSB1c2VyLlxuICAgICAgICAgKi9cbiAgICAgICAgc2V0Q3VycmVudERhc2hib2FyZChkYXNoYm9hcmRJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBjdXJyZW50RGFzaGJvYXJkSWQ6IGRhc2hib2FyZElkIH0pO1xuICAgICAgICAgIHNldHRpbmdTZXJ2aWNlLnNjb3BlKEFYUFBsYXRmb3JtU2NvcGUuVXNlcikuc2V0KEFYUEhvbWVEYXNoYm9hcmRTZXR0aW5nLkN1cnJlbnREYXNoYm9hcmQsIGRhc2hib2FyZElkKTtcbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogQ3JlYXRlcyBhIG5ldyBkYXNoYm9hcmQgYW5kIHNlbGVjdHMgaXQgYXMgY3VycmVudC5cbiAgICAgICAgICovXG4gICAgICAgIGFzeW5jIGFkZERhc2hib2FyZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbmV3RGFzaGJvYXJkID0gYXdhaXQgZGFzaGJvYXJkUG9wdXAuZ2VuZXJhdGVEYXNoYm9hcmRMYXlvdXQoe30sIHN0b3JlLmlzVXNlckFkbWluKCkpO1xuICAgICAgICAgICAgaWYgKCFuZXdEYXNoYm9hcmQpIHJldHVybjtcblxuICAgICAgICAgICAgY29uc3QgdXNlcklkID0gcmVhZFVzZXJJZChzZXNzaW9uU2VydmljZSk7XG4gICAgICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgY29uc3QgZGFzaGJvYXJkV2l0aE1ldGFkYXRhOiBBWE1EYXNoYm9hcmRMYXlvdXQgPSB7XG4gICAgICAgICAgICAgIC4uLm5ld0Rhc2hib2FyZCxcbiAgICAgICAgICAgICAgY3JlYXRlZEJ5OiB1c2VySWQsXG4gICAgICAgICAgICAgIGNyZWF0ZWRBdDogbm93LFxuICAgICAgICAgICAgICB1cGRhdGVkQnk6IHVzZXJJZCxcbiAgICAgICAgICAgICAgdXBkYXRlZEF0OiBub3csXG4gICAgICAgICAgICAgIHNjb3BlOiBzdG9yZS5pc1VzZXJBZG1pbigpID8gJ1QnIDogJ1UnLFxuICAgICAgICAgICAgICB3aWRnZXRzOiBbXSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IGRhc2hib2FyZE1vZGVsID0gZGFzaGJvYXJkTGF5b3V0VG9Nb2RlbChkYXNoYm9hcmRXaXRoTWV0YWRhdGEpO1xuICAgICAgICAgICAgY29uc3QgY3JlYXRlZERhc2hib2FyZElkID0gYXdhaXQgZGFzaGJvYXJkU2VydmljZS5pbnNlcnRPbmUoZGFzaGJvYXJkTW9kZWwpO1xuICAgICAgICAgICAgZGFzaGJvYXJkV2l0aE1ldGFkYXRhLmlkID0gY3JlYXRlZERhc2hib2FyZElkO1xuXG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkQWxsRGFzaGJvYXJkcyA9IFsuLi5zdG9yZS5hdmFpbGFibGVEYXNoYm9hcmRzKCksIGRhc2hib2FyZFdpdGhNZXRhZGF0YV07XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkRGFzaGJvYXJkcyA9IFsuLi5zdG9yZS5kYXNoYm9hcmRzKCksIGRhc2hib2FyZFdpdGhNZXRhZGF0YV07XG5cbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgYWxsRGFzaGJvYXJkczogdXBkYXRlZEFsbERhc2hib2FyZHMsXG4gICAgICAgICAgICAgIGRhc2hib2FyZHM6IHVwZGF0ZWREYXNoYm9hcmRzLFxuICAgICAgICAgICAgICBjdXJyZW50RGFzaGJvYXJkSWQ6IGRhc2hib2FyZFdpdGhNZXRhZGF0YS5pZCxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBzZXR0aW5nU2VydmljZVxuICAgICAgICAgICAgICAuc2NvcGUoQVhQUGxhdGZvcm1TY29wZS5Vc2VyKVxuICAgICAgICAgICAgICAuc2V0KEFYUEhvbWVEYXNoYm9hcmRTZXR0aW5nLkN1cnJlbnREYXNoYm9hcmQsIGRhc2hib2FyZFdpdGhNZXRhZGF0YS5pZCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGFkZGluZyBkYXNoYm9hcmQ6JywgZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogRWRpdHMgdGhlIGN1cnJlbnQgZGFzaGJvYXJkIG1ldGFkYXRhIGFuZCBwZXJzaXN0cyBjaGFuZ2VzLlxuICAgICAgICAgKi9cbiAgICAgICAgYXN5bmMgZWRpdERhc2hib2FyZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50RGFzaGJvYXJkID0gc3RvcmUuc2VsZWN0ZWREYXNoYm9hcmQoKTtcbiAgICAgICAgICBpZiAoIWN1cnJlbnREYXNoYm9hcmQpIHJldHVybjtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBlZGl0ZWREYXNoYm9hcmQgPSBhd2FpdCBkYXNoYm9hcmRQb3B1cC5nZW5lcmF0ZURhc2hib2FyZExheW91dChcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBjdXJyZW50RGFzaGJvYXJkLnRpdGxlLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBjdXJyZW50RGFzaGJvYXJkLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIHJvbGVJZHM6IGN1cnJlbnREYXNoYm9hcmQucm9sZUlkcyxcbiAgICAgICAgICAgICAgICBzY29wZTogY3VycmVudERhc2hib2FyZC5zY29wZSxcbiAgICAgICAgICAgICAgICBsb2NrZWQ6IGN1cnJlbnREYXNoYm9hcmQubG9ja2VkLFxuICAgICAgICAgICAgICAgIGlzRGVsZXRlZDogY3VycmVudERhc2hib2FyZC5pc0RlbGV0ZWQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHN0b3JlLmlzVXNlckFkbWluKCksXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoIWVkaXRlZERhc2hib2FyZCkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCB1c2VySWQgPSByZWFkVXNlcklkKHNlc3Npb25TZXJ2aWNlKTtcbiAgICAgICAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkRGFzaGJvYXJkOiBBWE1EYXNoYm9hcmRMYXlvdXQgPSB7XG4gICAgICAgICAgICAgIC4uLmN1cnJlbnREYXNoYm9hcmQsXG4gICAgICAgICAgICAgIC4uLmVkaXRlZERhc2hib2FyZCxcbiAgICAgICAgICAgICAgdXBkYXRlZEJ5OiB1c2VySWQsXG4gICAgICAgICAgICAgIHVwZGF0ZWRBdDogbm93LFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgYXdhaXQgZGFzaGJvYXJkU2VydmljZS51cGRhdGVPbmUodXBkYXRlZERhc2hib2FyZC5pZCwgZGFzaGJvYXJkTGF5b3V0VG9Nb2RlbCh1cGRhdGVkRGFzaGJvYXJkKSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRBbGxEYXNoYm9hcmRzID0gc3RvcmVcbiAgICAgICAgICAgICAgLmF2YWlsYWJsZURhc2hib2FyZHMoKVxuICAgICAgICAgICAgICAubWFwKChkKSA9PiAoZC5pZCA9PT0gdXBkYXRlZERhc2hib2FyZC5pZCA/IHVwZGF0ZWREYXNoYm9hcmQgOiBkKSk7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkRGFzaGJvYXJkcyA9IHN0b3JlXG4gICAgICAgICAgICAgIC5kYXNoYm9hcmRzKClcbiAgICAgICAgICAgICAgLm1hcCgoZCkgPT4gKGQuaWQgPT09IHVwZGF0ZWREYXNoYm9hcmQuaWQgPyB1cGRhdGVkRGFzaGJvYXJkIDogZCkpO1xuXG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgIGFsbERhc2hib2FyZHM6IHVwZGF0ZWRBbGxEYXNoYm9hcmRzLFxuICAgICAgICAgICAgICBkYXNoYm9hcmRzOiB1cGRhdGVkRGFzaGJvYXJkcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBlZGl0aW5nIGRhc2hib2FyZDonLCBlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBZGRzIHNlbGVjdGVkIHdpZGdldHMgdG8gdGhlIGN1cnJlbnQgZGFzaGJvYXJkIGFuZCBzYXZlcyBsYXlvdXQuXG4gICAgICAgICAqL1xuICAgICAgICBhc3luYyBhZGRXaWRnZXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgICAgaWYgKCFzdG9yZS5zZWxlY3RlZERhc2hib2FyZCgpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ05vIGN1cnJlbnQgZGFzaGJvYXJkIHNlbGVjdGVkJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHdpZGdldHMgPSBhd2FpdCB3aWRnZXRQaWNrZXJTZXJ2aWNlLnNob3dQaWNrZXIoe1xuICAgICAgICAgICAgICBncm91cHM6IFtBWFBXaWRnZXRHcm91cEVudW0uRGFzaGJvYXJkV2lkZ2V0XSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJlZFdpZGdldHMgPSAod2lkZ2V0cyBhcyBhbnlbXSkubWFwKCh7IF9fbWV0YV9fLCAuLi5yZXN0IH0pID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgd2lkZ2V0ID0gcmVzdDtcbiAgICAgICAgICAgICAgaWYgKHdpZGdldC50eXBlID09PSAnc3RpY2t5LW5vdGUnICYmICF3aWRnZXQub3B0aW9ucykge1xuICAgICAgICAgICAgICAgIHdpZGdldC5vcHRpb25zID0geyBoYXNDb25maWd1cmF0aW9uOiBmYWxzZSB9O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IHJhbmRvbUlkID0gQVhQRGF0YUdlbmVyYXRvci51dWlkKCk7XG4gICAgICAgICAgICAgIHdpZGdldC5uYW1lID0gYCR7d2lkZ2V0LnR5cGV9LSR7cmFuZG9tSWR9YDtcbiAgICAgICAgICAgICAgd2lkZ2V0LnBhdGggPSBgJHt3aWRnZXQudHlwZX0tJHtyYW5kb21JZH1gO1xuICAgICAgICAgICAgICByZXR1cm4gd2lkZ2V0O1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnZlcnRlZFdpZGdldHM6IEFYTURhc2hib2FyZFdpZGdldERhdGFbXSA9IGZpbHRlcmVkV2lkZ2V0cy5tYXAoKHdpZGdldCkgPT4gKHtcbiAgICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB3aWRnZXQ/Lm1ldGE/LmRpbWVuc2lvbnM/LmhlaWdodCA/PyAyLFxuICAgICAgICAgICAgICAgIHdpZHRoOiB3aWRnZXQ/Lm1ldGE/LmRpbWVuc2lvbnM/LndpZHRoID8/IDIsXG4gICAgICAgICAgICAgICAgbWluSGVpZ2h0OiB3aWRnZXQ/Lm1ldGE/LmRpbWVuc2lvbnM/Lm1pbkhlaWdodCxcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogd2lkZ2V0Py5tZXRhPy5kaW1lbnNpb25zPy5taW5XaWR0aCxcbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6IHdpZGdldD8ubWV0YT8uZGltZW5zaW9ucz8ubWF4SGVpZ2h0LFxuICAgICAgICAgICAgICAgIG1heFdpZHRoOiB3aWRnZXQ/Lm1ldGE/LmRpbWVuc2lvbnM/Lm1heFdpZHRoLFxuICAgICAgICAgICAgICAgIGlkOiBBWFBEYXRhR2VuZXJhdG9yLnV1aWQoKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgbm9kZTogeyAuLi53aWRnZXQsIG5hbWU6IHdpZGdldC5uYW1lIH0sXG4gICAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREYXNoYm9hcmQgPSBzdG9yZS5zZWxlY3RlZERhc2hib2FyZCgpITtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWREYXNoYm9hcmQgPSB7XG4gICAgICAgICAgICAgIC4uLmN1cnJlbnREYXNoYm9hcmQsXG4gICAgICAgICAgICAgIHdpZGdldHM6IFsuLi5jdXJyZW50RGFzaGJvYXJkLndpZGdldHMsIC4uLmNvbnZlcnRlZFdpZGdldHNdLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgYXdhaXQgZGFzaGJvYXJkU2VydmljZS51cGRhdGVPbmUodXBkYXRlZERhc2hib2FyZC5pZCwgZGFzaGJvYXJkTGF5b3V0VG9Nb2RlbCh1cGRhdGVkRGFzaGJvYXJkKSk7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkRGFzaGJvYXJkcyA9IHN0b3JlXG4gICAgICAgICAgICAgIC5kYXNoYm9hcmRzKClcbiAgICAgICAgICAgICAgLm1hcCgoZCkgPT4gKGQuaWQgPT09IHVwZGF0ZWREYXNoYm9hcmQuaWQgPyB1cGRhdGVkRGFzaGJvYXJkIDogZCkpO1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZEFsbERhc2hib2FyZHMgPSBzdG9yZVxuICAgICAgICAgICAgICAuYXZhaWxhYmxlRGFzaGJvYXJkcygpXG4gICAgICAgICAgICAgIC5tYXAoKGQpID0+IChkLmlkID09PSB1cGRhdGVkRGFzaGJvYXJkLmlkID8gdXBkYXRlZERhc2hib2FyZCA6IGQpKTtcblxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBkYXNoYm9hcmRzOiB1cGRhdGVkRGFzaGJvYXJkcywgYWxsRGFzaGJvYXJkczogdXBkYXRlZEFsbERhc2hib2FyZHMgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGFkZGluZyB3aWRnZXQ6JywgZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogUmVtb3ZlcyBhIGRhc2hib2FyZCBhZnRlciB1c2VyIGNvbmZpcm1hdGlvbiBhbmQgdXBkYXRlcyBzZWxlY3Rpb24uXG4gICAgICAgICAqL1xuICAgICAgICBhc3luYyByZW1vdmVEYXNoYm9hcmQoaWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAgIGlmICghaWQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignTm8gZGFzaGJvYXJkIElEIHByb3ZpZGVkIGZvciByZW1vdmFsJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRpYWxvZ1Jlc3VsdCA9IGF3YWl0IGRpYWxvZ1NlcnZpY2UuY29uZmlybShcbiAgICAgICAgICAgICAgYXdhaXQgdHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAZ2VuZXJhbDp3b3JrZmxvdy53YXJuaW5nJyksXG4gICAgICAgICAgICAgIGF3YWl0IHRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQGdlbmVyYWw6d29ya2Zsb3cuY29uZmlybS1kZWxldGUnKSxcbiAgICAgICAgICAgICAgJ2RhbmdlcicsXG4gICAgICAgICAgICAgICdob3Jpem9udGFsJyxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChkaWFsb2dSZXN1bHQucmVzdWx0KSB7XG4gICAgICAgICAgICAgIGF3YWl0IGRhc2hib2FyZFNlcnZpY2UuZGVsZXRlT25lKGlkKTtcbiAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZEFsbERhc2hib2FyZHMgPSBzdG9yZS5hdmFpbGFibGVEYXNoYm9hcmRzKCkuZmlsdGVyKChkYXNoYm9hcmQpID0+IGRhc2hib2FyZC5pZCAhPT0gaWQpO1xuICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkRGFzaGJvYXJkcyA9IHN0b3JlLmRhc2hib2FyZHMoKS5maWx0ZXIoKGRhc2hib2FyZCkgPT4gZGFzaGJvYXJkLmlkICE9PSBpZCk7XG4gICAgICAgICAgICAgIGxldCBuZXdDdXJyZW50RGFzaGJvYXJkSWQgPSBzdG9yZS5jdXJyZW50RGFzaGJvYXJkSWQoKTtcblxuICAgICAgICAgICAgICBpZiAoaWQgPT09IHN0b3JlLmN1cnJlbnREYXNoYm9hcmRJZCgpKSB7XG4gICAgICAgICAgICAgICAgbmV3Q3VycmVudERhc2hib2FyZElkID1cbiAgICAgICAgICAgICAgICAgIHVwZGF0ZWREYXNoYm9hcmRzLmxlbmd0aCA+IDAgPyB1cGRhdGVkRGFzaGJvYXJkc1t1cGRhdGVkRGFzaGJvYXJkcy5sZW5ndGggLSAxXS5pZCA6IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKG5ld0N1cnJlbnREYXNoYm9hcmRJZCkge1xuICAgICAgICAgICAgICAgICAgc2V0dGluZ1NlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgLnNjb3BlKEFYUFBsYXRmb3JtU2NvcGUuVXNlcilcbiAgICAgICAgICAgICAgICAgICAgLnNldChBWFBIb21lRGFzaGJvYXJkU2V0dGluZy5DdXJyZW50RGFzaGJvYXJkLCBuZXdDdXJyZW50RGFzaGJvYXJkSWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICBhbGxEYXNoYm9hcmRzOiB1cGRhdGVkQWxsRGFzaGJvYXJkcyxcbiAgICAgICAgICAgICAgICBkYXNoYm9hcmRzOiB1cGRhdGVkRGFzaGJvYXJkcyxcbiAgICAgICAgICAgICAgICBjdXJyZW50RGFzaGJvYXJkSWQ6IG5ld0N1cnJlbnREYXNoYm9hcmRJZCxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlbW92aW5nIGRhc2hib2FyZDonLCBlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZW1vdmVzIGEgd2lkZ2V0IGZyb20gdGhlIHNwZWNpZmllZCBkYXNoYm9hcmQgYW5kIHBlcnNpc3RzIHRoZSBjaGFuZ2UuXG4gICAgICAgICAqL1xuICAgICAgICBhc3luYyByZW1vdmVXaWRnZXQoZGFzaGJvYXJkSWQ6IHN0cmluZywgd2lkZ2V0SWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnREYXNoYm9hcmQgPSBzdG9yZS5kYXNoYm9hcmRzKCkuZmluZCgoZCkgPT4gZC5pZCA9PT0gZGFzaGJvYXJkSWQpO1xuICAgICAgICAgIGlmICghY3VycmVudERhc2hib2FyZCkgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgdXBkYXRlZERhc2hib2FyZCA9IHtcbiAgICAgICAgICAgIC4uLmN1cnJlbnREYXNoYm9hcmQsXG4gICAgICAgICAgICB3aWRnZXRzOiBjdXJyZW50RGFzaGJvYXJkLndpZGdldHMuZmlsdGVyKCh3aWRnZXQpID0+IHdpZGdldC5jb25maWcuaWQgIT09IHdpZGdldElkKSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgYXdhaXQgZGFzaGJvYXJkU2VydmljZS51cGRhdGVPbmUoZGFzaGJvYXJkSWQsIGRhc2hib2FyZExheW91dFRvTW9kZWwodXBkYXRlZERhc2hib2FyZCkpO1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWREYXNoYm9hcmRzID0gc3RvcmVcbiAgICAgICAgICAgIC5kYXNoYm9hcmRzKClcbiAgICAgICAgICAgIC5tYXAoKGRhc2hib2FyZCkgPT4gKGRhc2hib2FyZC5pZCA9PT0gZGFzaGJvYXJkSWQgPyB1cGRhdGVkRGFzaGJvYXJkIDogZGFzaGJvYXJkKSk7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZEFsbERhc2hib2FyZHMgPSBzdG9yZVxuICAgICAgICAgICAgLmF2YWlsYWJsZURhc2hib2FyZHMoKVxuICAgICAgICAgICAgLm1hcCgoZGFzaGJvYXJkKSA9PiAoZGFzaGJvYXJkLmlkID09PSBkYXNoYm9hcmRJZCA/IHVwZGF0ZWREYXNoYm9hcmQgOiBkYXNoYm9hcmQpKTtcblxuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgZGFzaGJvYXJkczogdXBkYXRlZERhc2hib2FyZHMsIGFsbERhc2hib2FyZHM6IHVwZGF0ZWRBbGxEYXNoYm9hcmRzIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQZXJzaXN0cyBkYXNoYm9hcmQgY29uZmlndXJhdGlvbiBjaGFuZ2VzIGFuZCB1cGRhdGVzIHNlbGVjdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIGFzeW5jIGhhbmRsZUNvbmZpZ0NoYW5nZShkYXNoYm9hcmQ6IEFYTURhc2hib2FyZExheW91dCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAgIC8vIGF3YWl0IGRhc2hib2FyZFNlcnZpY2UudXBkYXRlT25lKGRhc2hib2FyZC5pZCwgZGFzaGJvYXJkTGF5b3V0VG9Nb2RlbChkYXNoYm9hcmQpKTtcbiAgICAgICAgICAvLyBjb25zdCB1cGRhdGVkRGFzaGJvYXJkcyA9IHN0b3JlLmRhc2hib2FyZHMoKS5tYXAoKGQpID0+IChkLmlkID09PSBkYXNoYm9hcmQuaWQgPyBkYXNoYm9hcmQgOiBkKSk7XG5cbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAvLyBkYXNoYm9hcmRzOiB1cGRhdGVkRGFzaGJvYXJkcyxcbiAgICAgICAgICAgIGN1cnJlbnREYXNoYm9hcmRJZDogZGFzaGJvYXJkLmlkLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgc2V0dGluZ1NlcnZpY2Uuc2NvcGUoQVhQUGxhdGZvcm1TY29wZS5Vc2VyKS5zZXQoQVhQSG9tZURhc2hib2FyZFNldHRpbmcuQ3VycmVudERhc2hib2FyZCwgZGFzaGJvYXJkLmlkKTtcbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogSGFuZGxlcyBncmlkIGxheW91dCBjaGFuZ2VzIChkcmFnL3Jlc2l6ZSkgb24gZGVza3RvcCBhbmQgc2F2ZXMgcG9zaXRpb25zLlxuICAgICAgICAgKi9cbiAgICAgICAgYXN5bmMgb25HcmlkQ2hhbmdlKGV2ZW50OiBBWEdyaWRMYXlvdXRFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAgIGlmICghbGF5b3V0VGhlbWVTZXJ2aWNlLmlzRGVza3RvcERldmljZSgpIHx8ICFzdG9yZS5zZWxlY3RlZERhc2hib2FyZCgpKSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCBub2RlcyA9IGV2ZW50Lm5vZGVzLm1hcCgoeyBlbGVtZW50LCAuLi5yZXN0IH0pID0+IHJlc3QpO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnREYXNoYm9hcmQgPSBzdG9yZS5zZWxlY3RlZERhc2hib2FyZCgpITtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkV2lkZ2V0cyA9IGN1cnJlbnREYXNoYm9hcmQud2lkZ2V0cy5tYXAoKHdpZGdldCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZE5vZGUgPSBub2Rlcy5maW5kKChub2RlKSA9PiBub2RlLmlkID09PSB3aWRnZXQuY29uZmlnLmlkKTtcbiAgICAgICAgICAgIHJldHVybiB1cGRhdGVkTm9kZSA/IHsgLi4ud2lkZ2V0LCBjb25maWc6IHVwZGF0ZWROb2RlIH0gOiB3aWRnZXQ7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCB1cGRhdGVkRGFzaGJvYXJkID0ge1xuICAgICAgICAgICAgLi4uY3VycmVudERhc2hib2FyZCxcbiAgICAgICAgICAgIHdpZGdldHM6IHVwZGF0ZWRXaWRnZXRzLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBhd2FpdCBkYXNoYm9hcmRTZXJ2aWNlLnVwZGF0ZU9uZSh1cGRhdGVkRGFzaGJvYXJkLmlkLCBkYXNoYm9hcmRMYXlvdXRUb01vZGVsKHVwZGF0ZWREYXNoYm9hcmQpKTtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkRGFzaGJvYXJkcyA9IHN0b3JlXG4gICAgICAgICAgICAuZGFzaGJvYXJkcygpXG4gICAgICAgICAgICAubWFwKChkYXNoYm9hcmQpID0+IChkYXNoYm9hcmQuaWQgPT09IHVwZGF0ZWREYXNoYm9hcmQuaWQgPyB1cGRhdGVkRGFzaGJvYXJkIDogZGFzaGJvYXJkKSk7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZEFsbERhc2hib2FyZHMgPSBzdG9yZVxuICAgICAgICAgICAgLmF2YWlsYWJsZURhc2hib2FyZHMoKVxuICAgICAgICAgICAgLm1hcCgoZGFzaGJvYXJkKSA9PiAoZGFzaGJvYXJkLmlkID09PSB1cGRhdGVkRGFzaGJvYXJkLmlkID8gdXBkYXRlZERhc2hib2FyZCA6IGRhc2hib2FyZCkpO1xuXG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBkYXNoYm9hcmRzOiB1cGRhdGVkRGFzaGJvYXJkcywgYWxsRGFzaGJvYXJkczogdXBkYXRlZEFsbERhc2hib2FyZHMgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFwcGxpZXMgd2lkZ2V0IGNvbmZpZ3VyYXRpb24gY2hhbmdlcyByZXR1cm5lZCBmcm9tIHBvcHVwLlxuICAgICAgICAgKi9cbiAgICAgICAgYXN5bmMgaGFuZGxlUG9wdXBDb25maWd1cmF0aW9uKHdpZGdldE5vZGU6IEFYUFdpZGdldE5vZGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgICBpZiAoIXN0b3JlLnNlbGVjdGVkRGFzaGJvYXJkKCkpIHJldHVybjtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkTm9kZSA9IGF3YWl0IGRhc2hib2FyZFBvcHVwLmhhbmRsZVBvcHVwQ29uZmlndXJhdGlvbih3aWRnZXROb2RlKTtcbiAgICAgICAgICAgIGlmICghdXBkYXRlZE5vZGUpIHJldHVybjtcblxuICAgICAgICAgICAgY29uc3QgY3VycmVudERhc2hib2FyZCA9IHN0b3JlLnNlbGVjdGVkRGFzaGJvYXJkKCkhO1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZFdpZGdldHMgPSBjdXJyZW50RGFzaGJvYXJkLndpZGdldHMubWFwKCh3aWRnZXQpID0+XG4gICAgICAgICAgICAgIHdpZGdldC5ub2RlPy5uYW1lID09PSB3aWRnZXROb2RlLm5hbWUgJiYgd2lkZ2V0Lm5vZGU/LnBhdGggPT09IHdpZGdldE5vZGUucGF0aFxuICAgICAgICAgICAgICAgID8geyAuLi53aWRnZXQsIG5vZGU6IHVwZGF0ZWROb2RlIH1cbiAgICAgICAgICAgICAgICA6IHdpZGdldCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWREYXNoYm9hcmQgPSB7XG4gICAgICAgICAgICAgIC4uLmN1cnJlbnREYXNoYm9hcmQsXG4gICAgICAgICAgICAgIHdpZGdldHM6IHVwZGF0ZWRXaWRnZXRzLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgYXdhaXQgZGFzaGJvYXJkU2VydmljZS51cGRhdGVPbmUodXBkYXRlZERhc2hib2FyZC5pZCwgZGFzaGJvYXJkTGF5b3V0VG9Nb2RlbCh1cGRhdGVkRGFzaGJvYXJkKSk7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkRGFzaGJvYXJkcyA9IHN0b3JlXG4gICAgICAgICAgICAgIC5kYXNoYm9hcmRzKClcbiAgICAgICAgICAgICAgLm1hcCgoZGFzaGJvYXJkKSA9PiAoZGFzaGJvYXJkLmlkID09PSB1cGRhdGVkRGFzaGJvYXJkLmlkID8gdXBkYXRlZERhc2hib2FyZCA6IGRhc2hib2FyZCkpO1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZEFsbERhc2hib2FyZHMgPSBzdG9yZVxuICAgICAgICAgICAgICAuYXZhaWxhYmxlRGFzaGJvYXJkcygpXG4gICAgICAgICAgICAgIC5tYXAoKGRhc2hib2FyZCkgPT4gKGRhc2hib2FyZC5pZCA9PT0gdXBkYXRlZERhc2hib2FyZC5pZCA/IHVwZGF0ZWREYXNoYm9hcmQgOiBkYXNoYm9hcmQpKTtcblxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBkYXNoYm9hcmRzOiB1cGRhdGVkRGFzaGJvYXJkcywgYWxsRGFzaGJvYXJkczogdXBkYXRlZEFsbERhc2hib2FyZHMgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGhhbmRsaW5nIHdpZGdldCBjb25maWd1cmF0aW9uOicsIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVwZGF0ZXMgd2lkZ2V0IHZhbHVlIChkZWZhdWx0VmFsdWUpIGFuZCBwZXJzaXN0cyBjaGFuZ2VzLlxuICAgICAgICAgKi9cbiAgICAgICAgYXN5bmMgaGFuZGxlVmFsdWVDaGFuZ2VkKHdpZGdldE5vZGU6IEFYUFdpZGdldE5vZGUsIGRhdGE6IHVua25vd24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgICBpZiAoIXN0b3JlLnNlbGVjdGVkRGFzaGJvYXJkKCkpIHJldHVybjtcbiAgICAgICAgICBpZiAoIWxheW91dFRoZW1lU2VydmljZS5pc0Rlc2t0b3BEZXZpY2UoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGFzaGJvYXJkID0gc3RvcmUuc2VsZWN0ZWREYXNoYm9hcmQoKSE7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkV2lkZ2V0cyA9IGN1cnJlbnREYXNoYm9hcmQud2lkZ2V0cy5tYXAoKHdpZGdldCkgPT5cbiAgICAgICAgICAgICAgd2lkZ2V0Lm5vZGUgJiYgd2lkZ2V0Lm5vZGUubmFtZSA9PT0gd2lkZ2V0Tm9kZS5uYW1lICYmIHdpZGdldC5ub2RlLnBhdGggPT09IHdpZGdldE5vZGUucGF0aFxuICAgICAgICAgICAgICAgID8geyAuLi53aWRnZXQsIG5vZGU6IHsgLi4ud2lkZ2V0Lm5vZGUsIGRlZmF1bHRWYWx1ZTogZGF0YSB9IH1cbiAgICAgICAgICAgICAgICA6IHdpZGdldCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWREYXNoYm9hcmQgPSB7XG4gICAgICAgICAgICAgIC4uLmN1cnJlbnREYXNoYm9hcmQsXG4gICAgICAgICAgICAgIHdpZGdldHM6IHVwZGF0ZWRXaWRnZXRzLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgYXdhaXQgZGFzaGJvYXJkU2VydmljZS51cGRhdGVPbmUodXBkYXRlZERhc2hib2FyZC5pZCwgZGFzaGJvYXJkTGF5b3V0VG9Nb2RlbCh1cGRhdGVkRGFzaGJvYXJkKSk7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkRGFzaGJvYXJkcyA9IHN0b3JlXG4gICAgICAgICAgICAgIC5kYXNoYm9hcmRzKClcbiAgICAgICAgICAgICAgLm1hcCgoZGFzaGJvYXJkKSA9PiAoZGFzaGJvYXJkLmlkID09PSB1cGRhdGVkRGFzaGJvYXJkLmlkID8gdXBkYXRlZERhc2hib2FyZCA6IGRhc2hib2FyZCkpO1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZEFsbERhc2hib2FyZHMgPSBzdG9yZVxuICAgICAgICAgICAgICAuYXZhaWxhYmxlRGFzaGJvYXJkcygpXG4gICAgICAgICAgICAgIC5tYXAoKGRhc2hib2FyZCkgPT4gKGRhc2hib2FyZC5pZCA9PT0gdXBkYXRlZERhc2hib2FyZC5pZCA/IHVwZGF0ZWREYXNoYm9hcmQgOiBkYXNoYm9hcmQpKTtcblxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBkYXNoYm9hcmRzOiB1cGRhdGVkRGFzaGJvYXJkcywgYWxsRGFzaGJvYXJkczogdXBkYXRlZEFsbERhc2hib2FyZHMgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGhhbmRsaW5nIHdpZGdldCB2YWx1ZSBjaGFuZ2U6JywgZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogTWVyZ2VzIHdpZGdldCBvcHRpb25zIHdpdGggcHJvdmlkZWQgZGF0YSBhbmQgcGVyc2lzdHMgY2hhbmdlcy5cbiAgICAgICAgICovXG4gICAgICAgIGFzeW5jIGhhbmRsZU9wdGlvbnNDaGFuZ2VkKHdpZGdldE5vZGU6IEFYUFdpZGdldE5vZGUsIGRhdGE6IHVua25vd24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgICBpZiAoIXN0b3JlLnNlbGVjdGVkRGFzaGJvYXJkKCkpIHJldHVybjtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGFzaGJvYXJkID0gc3RvcmUuc2VsZWN0ZWREYXNoYm9hcmQoKSE7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkV2lkZ2V0cyA9IGN1cnJlbnREYXNoYm9hcmQud2lkZ2V0cy5tYXAoKHdpZGdldCkgPT5cbiAgICAgICAgICAgICAgd2lkZ2V0Lm5vZGUgJiYgd2lkZ2V0Lm5vZGUubmFtZSA9PT0gd2lkZ2V0Tm9kZS5uYW1lICYmIHdpZGdldC5ub2RlLnBhdGggPT09IHdpZGdldE5vZGUucGF0aFxuICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgLi4ud2lkZ2V0LFxuICAgICAgICAgICAgICAgICAgbm9kZToge1xuICAgICAgICAgICAgICAgICAgICAuLi53aWRnZXQubm9kZSxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogeyAuLi4od2lkZ2V0Lm5vZGUub3B0aW9ucyB8fCB7fSksIC4uLihkYXRhIGFzIG9iamVjdCkgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDogd2lkZ2V0LFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgdXBkYXRlZERhc2hib2FyZCA9IHtcbiAgICAgICAgICAgICAgLi4uY3VycmVudERhc2hib2FyZCxcbiAgICAgICAgICAgICAgd2lkZ2V0czogdXBkYXRlZFdpZGdldHMsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBhd2FpdCBkYXNoYm9hcmRTZXJ2aWNlLnVwZGF0ZU9uZSh1cGRhdGVkRGFzaGJvYXJkLmlkLCBkYXNoYm9hcmRMYXlvdXRUb01vZGVsKHVwZGF0ZWREYXNoYm9hcmQpKTtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWREYXNoYm9hcmRzID0gc3RvcmVcbiAgICAgICAgICAgICAgLmRhc2hib2FyZHMoKVxuICAgICAgICAgICAgICAubWFwKChkYXNoYm9hcmQpID0+IChkYXNoYm9hcmQuaWQgPT09IHVwZGF0ZWREYXNoYm9hcmQuaWQgPyB1cGRhdGVkRGFzaGJvYXJkIDogZGFzaGJvYXJkKSk7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkQWxsRGFzaGJvYXJkcyA9IHN0b3JlXG4gICAgICAgICAgICAgIC5hdmFpbGFibGVEYXNoYm9hcmRzKClcbiAgICAgICAgICAgICAgLm1hcCgoZGFzaGJvYXJkKSA9PiAoZGFzaGJvYXJkLmlkID09PSB1cGRhdGVkRGFzaGJvYXJkLmlkID8gdXBkYXRlZERhc2hib2FyZCA6IGRhc2hib2FyZCkpO1xuXG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IGRhc2hib2FyZHM6IHVwZGF0ZWREYXNoYm9hcmRzLCBhbGxEYXNoYm9hcmRzOiB1cGRhdGVkQWxsRGFzaGJvYXJkcyB9KTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaGFuZGxpbmcgd2lkZ2V0IG9wdGlvbnMgY2hhbmdlOicsIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVwZGF0ZXMgdGhlIGFkbWluIGZsYWcgaW4gc3RvcmUgc3RhdGUuXG4gICAgICAgICAqL1xuICAgICAgICBzZXRJc0FkbWluKGlzQWRtaW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IGlzQWRtaW4gfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLy8gQ2xpZW50LXNpZGUgc2NvcGUgZmlsdGVyaW5nIGlzIG5vIGxvbmdlciBuZWVkZWQ7IGhhbmRsZWQgaW4gcXVlcnkgZmlsdGVyXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRvZ2dsZXMgbG9jayBzdGF0ZSBmb3IgY3VycmVudCBkYXNoYm9hcmQgYmFzZWQgb24gcGVybWlzc2lvbiBydWxlcy5cbiAgICAgICAgICovXG4gICAgICAgIGFzeW5jIHRvZ2dsZUxvY2tEYXNoYm9hcmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgICAgY29uc3QgY3VycmVudERhc2hib2FyZCA9IHN0b3JlLnNlbGVjdGVkRGFzaGJvYXJkKCk7XG4gICAgICAgICAgaWYgKCFjdXJyZW50RGFzaGJvYXJkKSByZXR1cm47XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgaXNBZG1pbiA9IHN0b3JlLmlzVXNlckFkbWluKCk7XG4gICAgICAgICAgICBjb25zdCB1c2VySWQgPSByZWFkVXNlcklkKHNlc3Npb25TZXJ2aWNlKTtcbiAgICAgICAgICAgIGNvbnN0IGNhblRvZ2dsZSA9XG4gICAgICAgICAgICAgICghaXNBZG1pbiAmJiBjdXJyZW50RGFzaGJvYXJkLnNjb3BlID09PSAnVScgJiYgY3VycmVudERhc2hib2FyZC5jcmVhdGVkQnkgPT09IHVzZXJJZCkgfHxcbiAgICAgICAgICAgICAgKGlzQWRtaW4gJiYgY3VycmVudERhc2hib2FyZC5zY29wZSA9PT0gJ1QnKTtcblxuICAgICAgICAgICAgaWYgKCFjYW5Ub2dnbGUpIHtcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdVc2VyIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbiB0byB0b2dnbGUgbG9jayBmb3IgdGhpcyBkYXNoYm9hcmQnKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBuZXdMb2NrZWRTdGF0ZSA9ICFjdXJyZW50RGFzaGJvYXJkLmxvY2tlZDtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWREYXNoYm9hcmQgPSB7XG4gICAgICAgICAgICAgIC4uLmN1cnJlbnREYXNoYm9hcmQsXG4gICAgICAgICAgICAgIGxvY2tlZDogbmV3TG9ja2VkU3RhdGUsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBhd2FpdCBkYXNoYm9hcmRTZXJ2aWNlLnVwZGF0ZU9uZSh1cGRhdGVkRGFzaGJvYXJkLmlkLCBkYXNoYm9hcmRMYXlvdXRUb01vZGVsKHVwZGF0ZWREYXNoYm9hcmQpKTtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWREYXNoYm9hcmRzID0gc3RvcmVcbiAgICAgICAgICAgICAgLmRhc2hib2FyZHMoKVxuICAgICAgICAgICAgICAubWFwKChkYXNoYm9hcmQpID0+IChkYXNoYm9hcmQuaWQgPT09IHVwZGF0ZWREYXNoYm9hcmQuaWQgPyB1cGRhdGVkRGFzaGJvYXJkIDogZGFzaGJvYXJkKSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGJhc2VPcHRpb25zID0geyAuLi5zdG9yZS5kYXNoYm9hcmRzT3B0aW9uKCkgfTtcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgZGFzaGJvYXJkczogdXBkYXRlZERhc2hib2FyZHMgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRPcHRpb25zID0ge1xuICAgICAgICAgICAgICAuLi5iYXNlT3B0aW9ucyxcbiAgICAgICAgICAgICAgZGlzYWJsZURyYWc6IG5ld0xvY2tlZFN0YXRlLFxuICAgICAgICAgICAgICBkaXNhYmxlUmVzaXplOiBuZXdMb2NrZWRTdGF0ZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgZGFzaGJvYXJkc09wdGlvbjogdXBkYXRlZE9wdGlvbnMgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHRvZ2dsaW5nIGRhc2hib2FyZCBsb2NrIHN0YXRlOicsIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJldHVybnMgdGhlIGxvY2sgc3RhdGUgb2YgdGhlIGN1cnJlbnQgZGFzaGJvYXJkLlxuICAgICAgICAgKi9cbiAgICAgICAgaXNEYXNoYm9hcmRMb2NrZWQoKTogYm9vbGVhbiB7XG4gICAgICAgICAgY29uc3QgY3VycmVudERhc2hib2FyZCA9IHN0b3JlLnNlbGVjdGVkRGFzaGJvYXJkKCk7XG4gICAgICAgICAgcmV0dXJuIGN1cnJlbnREYXNoYm9hcmQ/LmxvY2tlZCA9PT0gdHJ1ZTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSxcbiAgKSxcbiAgLy8jZW5kcmVnaW9uXG4pO1xuLy8jZW5kcmVnaW9uXG4iXX0=","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXButtonGroupModule } from '@acorex/components/button-group';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXGridLayoutBuilderModule } from '@acorex/components/grid-layout-builder';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { AXPThemeLayoutBlockComponent, AXPStateMessageComponent } from '@acorex/platform/layout/components';\nimport { AXPDesignerService } from '@acorex/platform/layout/designer';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex/platform/layout/views';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { RootConfig } from '../../../const';\nimport { AXMDashboardWidgetWrapperComponent } from '../widget-wrapper/dashboard-widget-wrapper';\nimport { AXMDashboardStore } from './home-dashboard.store';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/loading\";\nimport * as i2 from \"@acorex/platform/layout/widget-core\";\nimport * as i3 from \"@acorex/components/grid-layout-builder\";\nimport * as i4 from \"@acorex/core/translation\";\nimport * as i5 from \"@angular/common\";\nexport class AXMDashboardHomeComponent extends AXPPageLayoutBaseComponent {\n constructor() {\n super(...arguments);\n // Dependencies\n this.rootConfig = RootConfig;\n this.activatedRoute = inject(ActivatedRoute);\n this.dialogService = inject(AXDialogService);\n this.popupService = inject(AXPopupService);\n this.router = inject(Router);\n this.store = inject(AXMDashboardStore);\n this.themeService = inject(AXPLayoutThemeService);\n // Component State\n this.context = signal({}, ...(ngDevMode ? [{ debugName: \"context\" }] : []));\n this.dashboardsLoaded = signal(false, ...(ngDevMode ? [{ debugName: \"dashboardsLoaded\" }] : []));\n // Effects\n this.#initEffect = effect(() => {\n const allDashboards = this.store.availableDashboards();\n if (allDashboards.length > 0 && !this.dashboardsLoaded()) {\n this.dashboardsLoaded.set(true);\n this.applyDashboardFiltering();\n this.recompute();\n }\n }, ...(ngDevMode ? [{ debugName: \"#initEffect\" }] : []));\n }\n // Lifecycle Hooks\n async ngOnInit() {\n const childRoute = this.activatedRoute.firstChild || this.activatedRoute;\n childRoute.data.subscribe((data) => {\n const isAdmin = data['isAdmin'] ?? false;\n this.store.setIsAdmin(isAdmin);\n });\n }\n // Effects\n #initEffect;\n // Private Methods\n applyDashboardFiltering() { }\n async confirmWidgetDelete(dashboardId, widgetId) {\n try {\n const dialogResult = await this.dialogService.confirm(await this.translateService.translateAsync('@general:workflow.warning'), await this.translateService.translateAsync('@general:workflow.confirm-delete'), 'danger', 'horizontal');\n if (dialogResult.result) {\n this.store.removeWidget(dashboardId, widgetId);\n }\n }\n catch (error) {\n console.error('Error confirming widget deletion:', error);\n }\n }\n // Page Interface Implementation\n getPageTitle() {\n return this.store.selectedDashboard()?.title || 'Dashboard';\n }\n async getPageDescription() {\n return this.store.selectedDashboard()?.description || '';\n }\n getTitleActions() {\n return this.store\n .dashboards()\n .map((dashboard) => ({\n title: dashboard.title,\n command: { name: dashboard.id, metadata: { isDashboard: true, dashboard } },\n icon: dashboard.id === this.store.currentDashboardId() ? 'fa-solid fa-check' : '',\n }))\n .sort((a, b) => (a.title ?? '').localeCompare(b.title ?? '', undefined, { sensitivity: 'base' }));\n }\n async getPrimaryMenuItems() {\n return [\n {\n title: '@general:actions.add-item.title',\n icon: 'fa-light fa-square-plus',\n color: 'primary',\n items: [\n {\n title: await this.translateService.translateAsync('@dashboard:dashboard'),\n icon: 'fa-light fa-gauge-high',\n break: true,\n command: { name: 'new-dashboard' },\n },\n {\n title: await this.translateService.translateAsync('@dashboard:widget'),\n icon: 'fa-light fa-window-restore',\n command: { name: 'new-widget' },\n disabled: this.store.dashboards().length < 1 || this.store.isDashboardLocked(),\n },\n ],\n },\n ];\n }\n async getSecondaryMenuItems() {\n const items = [\n {\n title: await this.translateService.translateAsync('@general:actions.edit.title'),\n icon: 'fa-light fa-pen',\n color: 'primary',\n disabled: this.store.dashboards().length < 1,\n command: { name: 'edit' },\n },\n ];\n if (!this.store.isUserAdmin() && this.themeService.isDesktopDevice()) {\n items.push({\n title: await this.translateService.translateAsync(this.store.isDashboardLocked() ? '@general:actions.unlock.title' : '@general:actions.lock.title', {\n scope: 'dashboard',\n }),\n icon: this.store.isDashboardLocked() ? 'fa-light fa-lock-open' : 'fa-light fa-lock',\n color: 'secondary',\n disabled: this.store.dashboards().length < 1,\n command: { name: 'toggle-lock' },\n });\n }\n items.push({\n title: await this.translateService.translateAsync('@general:actions.delete.title'),\n icon: 'fa-light fa-trash-can',\n color: 'danger',\n disabled: this.store.dashboards().length < 1,\n command: { name: 'delete' },\n });\n return items;\n }\n async execute(command) {\n if (command.metadata?.['isDashboard']) {\n this.store.handleConfigChange(command.metadata?.['dashboard']);\n this.recompute();\n return;\n }\n switch (command.name) {\n case 'new-dashboard':\n await this.store.addDashboard();\n this.recompute();\n break;\n case 'new-widget':\n await this.store.addWidget();\n this.recompute();\n break;\n case 'edit':\n await this.store.editDashboard();\n this.recompute();\n break;\n case 'delete':\n await this.store.removeDashboard(this.store.selectedDashboard()?.id);\n this.recompute();\n break;\n case 'toggle-lock':\n await this.store.toggleLockDashboard();\n this.recompute();\n setTimeout(() => this.recompute(), 50);\n break;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardHomeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXMDashboardHomeComponent, isStandalone: true, selector: \"axm-dashboard-home\", providers: [\n AXPDesignerService,\n AXMDashboardStore,\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMDashboardHomeComponent,\n },\n ], usesInheritance: true, ngImport: i0, template: \"<axp-page-layout *translate=\\\"let t\\\">\\n <!-- Content Section -->\\n\\n <axp-page-content class=\\\"ax-relative\\\">\\n <!-- Loading State -->\\n @if(store.isLoading()) {\\n <div\\n class=\\\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-w-full ax-absolute ax-z-10 ax-bg-white/80\\\"\\n >\\n <ax-loading></ax-loading>\\n <p class=\\\"ax-mt-3 ax-text-gray-600\\\">{{ '@dashboard:loading' | translate | async }}</p>\\n </div>\\n } @else {\\n <axp-widgets-container [context]=\\\"context()\\\">\\n <ax-grid-layout-container [options]=\\\"store.currentLayoutOptions()\\\" (onChange)=\\\"store.onGridChange($event)\\\">\\n <!-- No Dashboards State -->\\n @if(!store.dashboards() || store.dashboards().length === 0) {\\n <axp-state-message\\n icon=\\\"fa-light fa-shapes\\\"\\n [title]=\\\"'@dashboard:empty-state.title'\\\"\\n [description]=\\\"'@dashboard:empty-state.description'\\\"\\n >\\n <div slot=\\\"actions\\\">\\n <button (click)=\\\"execute({ name: 'new-dashboard' })\\\" class=\\\"ax-underline\\\">\\n {{ '@dashboard:add-first-dashboard' | translate | async }}\\n </button>\\n </div>\\n </axp-state-message>\\n }\\n <!-- No Selected Dashboard State -->\\n <!-- @else if (!store.selectedDashboard()) {\\n <div class=\\\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-p-4\\\">\\n <ax-icon icon=\\\"fa-light fa-shapes\\\" class=\\\"ax-text-4xl ax-mb-4\\\"></ax-icon>\\n <h2 class=\\\"ax-text-xl ax-font-semibold ax-mb-2\\\">\\n {{ '@dashboard:no-current-dashboard' | translate | async }}\\n </h2>\\n <p class=\\\"ax-text-center ax-mb-6\\\">{{ '@dashboard:select-dashboard' | translate | async }}</p>\\n </div>\\n } -->\\n <!-- No Widgets State -->\\n @else if (!store.selectedDashboard()?.widgets || store.selectedDashboard()?.widgets?.length === 0) {\\n <axp-state-message\\n icon=\\\"fa-light fa-shapes\\\"\\n [title]=\\\"'@dashboard:no-widgets.title'\\\"\\n [description]=\\\"'@dashboard:no-widgets.description'\\\"\\n >\\n <div slot=\\\"actions\\\">\\n <button (click)=\\\"execute({ name: 'new-widget' })\\\" class=\\\"ax-underline\\\">\\n {{ '@dashboard:add-widget' | translate | async }}\\n </button>\\n </div>\\n </axp-state-message>\\n }\\n <!-- Widgets Grid -->\\n @else { @for(widget of store.selectedDashboard()?.widgets; track widget.config.id) {\\n <ax-grid-layout-widget\\n [options]=\\\"widget.config\\\"\\n class=\\\"dark:[--ax-comp-grid-layout-stack-item-content-bg-color:var(--ax-sys-color-lighter-surface)] [--ax-comp-grid-layout-stack-item-content-bg-color:var(--ax-sys-color-lightest-surface)]\\\"\\n >\\n <axm-dashboard-widget-wrapper\\n [title]=\\\"widget.node?.options?.['title']\\\"\\n [hasConfiguration]=\\\"store.canConfigureWidget()(widget)\\\"\\n [isLocked]=\\\"store.isWidgetLocked()(widget)\\\"\\n (onDelete)=\\\"confirmWidgetDelete(store.selectedDashboard()?.id!, widget.config.id!)\\\"\\n (onConfiguration)=\\\"store.handlePopupConfiguration(widget.node!)\\\"\\n (onValueChanged)=\\\"store.handleValueChanged(widget?.node!,$event)\\\"\\n (onOptionsChanged)=\\\"store.handleOptionsChanged(widget?.node!,$event)\\\"\\n >\\n @if(widget.node) {\\n <ng-container axp-widget-renderer [node]=\\\"widget.node\\\" [mode]=\\\"'view'\\\"></ng-container>\\n }\\n </axm-dashboard-widget-wrapper>\\n </ax-grid-layout-widget>\\n } }\\n </ax-grid-layout-container>\\n </axp-widgets-container>\\n }\\n </axp-page-content>\\n</axp-page-layout>\\n\", styles: [\"axm-dashboard-home{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axm-dashboard-home .placeholder-content{border-radius:.5rem!important;border-width:1px!important;border-style:dashed!important;--tw-border-opacity: 1 !important;border-color:rgba(var(--ax-sys-color-primary-500),var(--tw-border-opacity, 1))!important;background-color:rgba(var(--ax-sys-color-primary-lightest-surface),.5)!important}axm-dashboard-home ax-grid-layout-widget .grid-stack-item-content{border-radius:.375rem!important;border-width:1px!important;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05) !important;--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"component\", type: i1.AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXPWidgetCoreModule }, { kind: \"component\", type: i2.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i2.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"ngmodule\", type: AXButtonGroupModule }, { kind: \"ngmodule\", type: AXGridLayoutBuilderModule }, { kind: \"component\", type: i3.AXGridLayoutContainerComponent, selector: \"ax-grid-layout-container\", inputs: [\"options\", \"isEmpty\"], outputs: [\"onAdded\", \"onRemoved\", \"onWidgetChange\", \"onChange\", \"onRender\", \"isEmptyChange\"] }, { kind: \"component\", type: i3.AXGridLayoutWidgetComponent, selector: \"ax-grid-layout-widget\", inputs: [\"options\"] }, { kind: \"component\", type: AXPPageLayoutComponent, selector: \"axp-page-layout\" }, { kind: \"component\", type: AXPThemeLayoutBlockComponent, selector: \" axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, \" }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"directive\", type: i4.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"ngmodule\", type: AXBreadcrumbsModule }, { kind: \"component\", type: AXMDashboardWidgetWrapperComponent, selector: \"axm-dashboard-widget-wrapper\", inputs: [\"title\", \"hasConfiguration\", \"isLocked\"], outputs: [\"onDelete\", \"onConfiguration\", \"onValueChanged\", \"onOptionsChanged\"] }, { kind: \"component\", type: AXPStateMessageComponent, selector: \"axp-state-message\", inputs: [\"mode\", \"icon\", \"title\", \"description\", \"variant\"] }, { kind: \"pipe\", type: i5.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i4.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMDashboardHomeComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axm-dashboard-home', standalone: true, imports: [\n CommonModule,\n AXLoadingModule,\n AXPWidgetCoreModule,\n AXButtonModule,\n AXButtonGroupModule,\n AXGridLayoutBuilderModule,\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXDropdownButtonModule,\n AXDropdownModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXBreadcrumbsModule,\n AXMDashboardWidgetWrapperComponent,\n AXPStateMessageComponent,\n ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n AXPDesignerService,\n AXMDashboardStore,\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMDashboardHomeComponent,\n },\n ], template: \"<axp-page-layout *translate=\\\"let t\\\">\\n <!-- Content Section -->\\n\\n <axp-page-content class=\\\"ax-relative\\\">\\n <!-- Loading State -->\\n @if(store.isLoading()) {\\n <div\\n class=\\\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-w-full ax-absolute ax-z-10 ax-bg-white/80\\\"\\n >\\n <ax-loading></ax-loading>\\n <p class=\\\"ax-mt-3 ax-text-gray-600\\\">{{ '@dashboard:loading' | translate | async }}</p>\\n </div>\\n } @else {\\n <axp-widgets-container [context]=\\\"context()\\\">\\n <ax-grid-layout-container [options]=\\\"store.currentLayoutOptions()\\\" (onChange)=\\\"store.onGridChange($event)\\\">\\n <!-- No Dashboards State -->\\n @if(!store.dashboards() || store.dashboards().length === 0) {\\n <axp-state-message\\n icon=\\\"fa-light fa-shapes\\\"\\n [title]=\\\"'@dashboard:empty-state.title'\\\"\\n [description]=\\\"'@dashboard:empty-state.description'\\\"\\n >\\n <div slot=\\\"actions\\\">\\n <button (click)=\\\"execute({ name: 'new-dashboard' })\\\" class=\\\"ax-underline\\\">\\n {{ '@dashboard:add-first-dashboard' | translate | async }}\\n </button>\\n </div>\\n </axp-state-message>\\n }\\n <!-- No Selected Dashboard State -->\\n <!-- @else if (!store.selectedDashboard()) {\\n <div class=\\\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-p-4\\\">\\n <ax-icon icon=\\\"fa-light fa-shapes\\\" class=\\\"ax-text-4xl ax-mb-4\\\"></ax-icon>\\n <h2 class=\\\"ax-text-xl ax-font-semibold ax-mb-2\\\">\\n {{ '@dashboard:no-current-dashboard' | translate | async }}\\n </h2>\\n <p class=\\\"ax-text-center ax-mb-6\\\">{{ '@dashboard:select-dashboard' | translate | async }}</p>\\n </div>\\n } -->\\n <!-- No Widgets State -->\\n @else if (!store.selectedDashboard()?.widgets || store.selectedDashboard()?.widgets?.length === 0) {\\n <axp-state-message\\n icon=\\\"fa-light fa-shapes\\\"\\n [title]=\\\"'@dashboard:no-widgets.title'\\\"\\n [description]=\\\"'@dashboard:no-widgets.description'\\\"\\n >\\n <div slot=\\\"actions\\\">\\n <button (click)=\\\"execute({ name: 'new-widget' })\\\" class=\\\"ax-underline\\\">\\n {{ '@dashboard:add-widget' | translate | async }}\\n </button>\\n </div>\\n </axp-state-message>\\n }\\n <!-- Widgets Grid -->\\n @else { @for(widget of store.selectedDashboard()?.widgets; track widget.config.id) {\\n <ax-grid-layout-widget\\n [options]=\\\"widget.config\\\"\\n class=\\\"dark:[--ax-comp-grid-layout-stack-item-content-bg-color:var(--ax-sys-color-lighter-surface)] [--ax-comp-grid-layout-stack-item-content-bg-color:var(--ax-sys-color-lightest-surface)]\\\"\\n >\\n <axm-dashboard-widget-wrapper\\n [title]=\\\"widget.node?.options?.['title']\\\"\\n [hasConfiguration]=\\\"store.canConfigureWidget()(widget)\\\"\\n [isLocked]=\\\"store.isWidgetLocked()(widget)\\\"\\n (onDelete)=\\\"confirmWidgetDelete(store.selectedDashboard()?.id!, widget.config.id!)\\\"\\n (onConfiguration)=\\\"store.handlePopupConfiguration(widget.node!)\\\"\\n (onValueChanged)=\\\"store.handleValueChanged(widget?.node!,$event)\\\"\\n (onOptionsChanged)=\\\"store.handleOptionsChanged(widget?.node!,$event)\\\"\\n >\\n @if(widget.node) {\\n <ng-container axp-widget-renderer [node]=\\\"widget.node\\\" [mode]=\\\"'view'\\\"></ng-container>\\n }\\n </axm-dashboard-widget-wrapper>\\n </ax-grid-layout-widget>\\n } }\\n </ax-grid-layout-container>\\n </axp-widgets-container>\\n }\\n </axp-page-content>\\n</axp-page-layout>\\n\", styles: [\"axm-dashboard-home{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axm-dashboard-home .placeholder-content{border-radius:.5rem!important;border-width:1px!important;border-style:dashed!important;--tw-border-opacity: 1 !important;border-color:rgba(var(--ax-sys-color-primary-500),var(--tw-border-opacity, 1))!important;background-color:rgba(var(--ax-sys-color-primary-lightest-surface),.5)!important}axm-dashboard-home ax-grid-layout-widget .grid-stack-item-content{border-radius:.375rem!important;border-width:1px!important;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05) !important;--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1kYXNoYm9hcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9ob21lLWRhc2hib2FyZC9kYXNoYm9hcmQtaG9tZS9ob21lLWRhc2hib2FyZC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL2hvbWUtZGFzaGJvYXJkL2Rhc2hib2FyZC1ob21lL2hvbWUtZGFzaGJvYXJkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ25G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QUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZDLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQzsrR0FsS1UseUJBQXlCO21HQUF6Qix5QkFBeUIsaUVBVHpCO1lBQ1Qsa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQUNqQjtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUseUJBQXlCO2FBQ3ZDO1NBQ0YsaURDekRILDRySEErRUEsczZCRC9DSSxZQUFZLDhCQUNaLGVBQWUsOEtBQ2YsbUJBQW1CLDhaQUNuQixjQUFjLDhCQUNkLG1CQUFtQiw4QkFDbkIseUJBQXlCLHdYQUN6QixzQkFBc0IsNERBQ3RCLDRCQUE0QiwraEJBQzVCLHNCQUFzQiw4QkFDdEIsZ0JBQWdCLDhCQUNoQixpQkFBaUIsOEJBQ2pCLG1CQUFtQiw4R0FDbkIsbUJBQW1CLCtCQUNuQixrQ0FBa0MsNE1BQ2xDLHdCQUF3Qjs7NEZBYWYseUJBQXlCO2tCQWpDckMsU0FBUzsrQkFDRSxvQkFBb0IsY0FHbEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQix5QkFBeUI7d0JBQ3pCLHNCQUFzQjt3QkFDdEIsNEJBQTRCO3dCQUM1QixzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsa0NBQWtDO3dCQUNsQyx3QkFBd0I7cUJBQ3pCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNULGtCQUFrQjt3QkFDbEIsaUJBQWlCO3dCQUNqQjs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLDJCQUEyQjt5QkFDdkM7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZWZmZWN0LCBpbmplY3QsIE9uSW5pdCwgc2lnbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEFYQnJlYWRjcnVtYnNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYQnV0dG9uR3JvdXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYRHJvcGRvd25CdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24tYnV0dG9uJztcbmltcG9ydCB7IEFYR3JpZExheW91dEJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZ3JpZC1sYXlvdXQtYnVpbGRlcic7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFdpZGdldENvcmVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQgeyBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50LCBBWFBTdGF0ZU1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzJztcbmltcG9ydCB7IEFYUERlc2lnbmVyU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyJztcbmltcG9ydCB7IEFYUFBhZ2VMYXlvdXRCYXNlLCBBWFBQYWdlTGF5b3V0QmFzZUNvbXBvbmVudCwgQVhQUGFnZUxheW91dENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3ZpZXdzJztcbmltcG9ydCB7IEFYUExheW91dFRoZW1lU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vdGhlbWVzL3NoYXJlZCc7XG5cbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYUEFjdGlvbk1lbnVJdGVtLCBBWFBFeGVjdXRlQ29tbWFuZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29uc3QnO1xuaW1wb3J0IHsgQVhNRGFzaGJvYXJkV2lkZ2V0V3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldC13cmFwcGVyL2Rhc2hib2FyZC13aWRnZXQtd3JhcHBlcic7XG5pbXBvcnQgeyBBWE1EYXNoYm9hcmRTdG9yZSB9IGZyb20gJy4vaG9tZS1kYXNoYm9hcmQuc3RvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheG0tZGFzaGJvYXJkLWhvbWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vaG9tZS1kYXNoYm9hcmQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hvbWUtZGFzaGJvYXJkLnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWExvYWRpbmdNb2R1bGUsXG4gICAgQVhQV2lkZ2V0Q29yZU1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWEJ1dHRvbkdyb3VwTW9kdWxlLFxuICAgIEFYR3JpZExheW91dEJ1aWxkZXJNb2R1bGUsXG4gICAgQVhQUGFnZUxheW91dENvbXBvbmVudCxcbiAgICBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50LFxuICAgIEFYRHJvcGRvd25CdXR0b25Nb2R1bGUsXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgIEFYQnJlYWRjcnVtYnNNb2R1bGUsXG4gICAgQVhNRGFzaGJvYXJkV2lkZ2V0V3JhcHBlckNvbXBvbmVudCxcbiAgICBBWFBTdGF0ZU1lc3NhZ2VDb21wb25lbnQsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICBBWFBEZXNpZ25lclNlcnZpY2UsXG4gICAgQVhNRGFzaGJvYXJkU3RvcmUsXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQUGFnZUxheW91dEJhc2UsXG4gICAgICB1c2VFeGlzdGluZzogQVhNRGFzaGJvYXJkSG9tZUNvbXBvbmVudCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1EYXNoYm9hcmRIb21lQ29tcG9uZW50IGV4dGVuZHMgQVhQUGFnZUxheW91dEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBEZXBlbmRlbmNpZXNcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvb3RDb25maWcgPSBSb290Q29uZmlnO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGlhbG9nU2VydmljZSA9IGluamVjdChBWERpYWxvZ1NlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcG9wdXBTZXJ2aWNlID0gaW5qZWN0KEFYUG9wdXBTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoQVhNRGFzaGJvYXJkU3RvcmUpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGhlbWVTZXJ2aWNlID0gaW5qZWN0KEFYUExheW91dFRoZW1lU2VydmljZSk7XG5cbiAgLy8gQ29tcG9uZW50IFN0YXRlXG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnRleHQgPSBzaWduYWwoe30pO1xuICBwcml2YXRlIGRhc2hib2FyZHNMb2FkZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8vIExpZmVjeWNsZSBIb29rc1xuICBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjaGlsZFJvdXRlID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5maXJzdENoaWxkIHx8IHRoaXMuYWN0aXZhdGVkUm91dGU7XG4gICAgY2hpbGRSb3V0ZS5kYXRhLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgY29uc3QgaXNBZG1pbiA9IGRhdGFbJ2lzQWRtaW4nXSA/PyBmYWxzZTtcbiAgICAgIHRoaXMuc3RvcmUuc2V0SXNBZG1pbihpc0FkbWluKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEVmZmVjdHNcbiAgI2luaXRFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGFsbERhc2hib2FyZHMgPSB0aGlzLnN0b3JlLmF2YWlsYWJsZURhc2hib2FyZHMoKTtcbiAgICBpZiAoYWxsRGFzaGJvYXJkcy5sZW5ndGggPiAwICYmICF0aGlzLmRhc2hib2FyZHNMb2FkZWQoKSkge1xuICAgICAgdGhpcy5kYXNoYm9hcmRzTG9hZGVkLnNldCh0cnVlKTtcbiAgICAgIHRoaXMuYXBwbHlEYXNoYm9hcmRGaWx0ZXJpbmcoKTtcbiAgICAgIHRoaXMucmVjb21wdXRlKCk7XG4gICAgfVxuICB9KTtcblxuICAvLyBQcml2YXRlIE1ldGhvZHNcbiAgcHJpdmF0ZSBhcHBseURhc2hib2FyZEZpbHRlcmluZygpOiB2b2lkIHsgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjb25maXJtV2lkZ2V0RGVsZXRlKGRhc2hib2FyZElkOiBzdHJpbmcsIHdpZGdldElkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGlhbG9nUmVzdWx0ID0gYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbmZpcm0oXG4gICAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYygnQGdlbmVyYWw6d29ya2Zsb3cud2FybmluZycpLFxuICAgICAgICBhd2FpdCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BnZW5lcmFsOndvcmtmbG93LmNvbmZpcm0tZGVsZXRlJyksXG4gICAgICAgICdkYW5nZXInLFxuICAgICAgICAnaG9yaXpvbnRhbCcsXG4gICAgICApO1xuXG4gICAgICBpZiAoZGlhbG9nUmVzdWx0LnJlc3VsdCkge1xuICAgICAgICB0aGlzLnN0b3JlLnJlbW92ZVdpZGdldChkYXNoYm9hcmRJZCwgd2lkZ2V0SWQpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBjb25maXJtaW5nIHdpZGdldCBkZWxldGlvbjonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFnZSBJbnRlcmZhY2UgSW1wbGVtZW50YXRpb25cbiAgb3ZlcnJpZGUgZ2V0UGFnZVRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0ZWREYXNoYm9hcmQoKT8udGl0bGUgfHwgJ0Rhc2hib2FyZCc7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBnZXRQYWdlRGVzY3JpcHRpb24oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3RlZERhc2hib2FyZCgpPy5kZXNjcmlwdGlvbiB8fCAnJztcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBnZXRUaXRsZUFjdGlvbnMoKTogQVhQQWN0aW9uTWVudUl0ZW1bXSB8IFByb21pc2U8QVhQQWN0aW9uTWVudUl0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlXG4gICAgICAuZGFzaGJvYXJkcygpXG4gICAgICAubWFwKChkYXNoYm9hcmQpID0+ICh7XG4gICAgICAgIHRpdGxlOiBkYXNoYm9hcmQudGl0bGUsXG4gICAgICAgIGNvbW1hbmQ6IHsgbmFtZTogZGFzaGJvYXJkLmlkLCBtZXRhZGF0YTogeyBpc0Rhc2hib2FyZDogdHJ1ZSwgZGFzaGJvYXJkIH0gfSxcbiAgICAgICAgaWNvbjogZGFzaGJvYXJkLmlkID09PSB0aGlzLnN0b3JlLmN1cnJlbnREYXNoYm9hcmRJZCgpID8gJ2ZhLXNvbGlkIGZhLWNoZWNrJyA6ICcnLFxuICAgICAgfSkpXG4gICAgICAuc29ydCgoYSwgYikgPT4gKGEudGl0bGUgPz8gJycpLmxvY2FsZUNvbXBhcmUoYi50aXRsZSA/PyAnJywgdW5kZWZpbmVkLCB7IHNlbnNpdGl2aXR5OiAnYmFzZScgfSkpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZ2V0UHJpbWFyeU1lbnVJdGVtcygpOiBQcm9taXNlPEFYUEFjdGlvbk1lbnVJdGVtW10+IHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMuYWRkLWl0ZW0udGl0bGUnLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtc3F1YXJlLXBsdXMnLFxuICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICBpdGVtczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRpdGxlOiBhd2FpdCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BkYXNoYm9hcmQ6ZGFzaGJvYXJkJyksXG4gICAgICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZ2F1Z2UtaGlnaCcsXG4gICAgICAgICAgICBicmVhazogdHJ1ZSxcbiAgICAgICAgICAgIGNvbW1hbmQ6IHsgbmFtZTogJ25ldy1kYXNoYm9hcmQnIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0aXRsZTogYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAZGFzaGJvYXJkOndpZGdldCcpLFxuICAgICAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXdpbmRvdy1yZXN0b3JlJyxcbiAgICAgICAgICAgIGNvbW1hbmQ6IHsgbmFtZTogJ25ldy13aWRnZXQnIH0sXG4gICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5zdG9yZS5kYXNoYm9hcmRzKCkubGVuZ3RoIDwgMSB8fCB0aGlzLnN0b3JlLmlzRGFzaGJvYXJkTG9ja2VkKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGdldFNlY29uZGFyeU1lbnVJdGVtcygpOiBQcm9taXNlPEFYUEFjdGlvbk1lbnVJdGVtW10+IHtcbiAgICBjb25zdCBpdGVtczogQVhQQWN0aW9uTWVudUl0ZW1bXSA9IFtcbiAgICAgIHtcbiAgICAgICAgdGl0bGU6IGF3YWl0IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYygnQGdlbmVyYWw6YWN0aW9ucy5lZGl0LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1wZW4nLFxuICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICBkaXNhYmxlZDogdGhpcy5zdG9yZS5kYXNoYm9hcmRzKCkubGVuZ3RoIDwgMSxcbiAgICAgICAgY29tbWFuZDogeyBuYW1lOiAnZWRpdCcgfSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGlmICghdGhpcy5zdG9yZS5pc1VzZXJBZG1pbigpICYmIHRoaXMudGhlbWVTZXJ2aWNlLmlzRGVza3RvcERldmljZSgpKSB7XG4gICAgICBpdGVtcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6IGF3YWl0IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYyh0aGlzLnN0b3JlLmlzRGFzaGJvYXJkTG9ja2VkKCkgPyAnQGdlbmVyYWw6YWN0aW9ucy51bmxvY2sudGl0bGUnIDogJ0BnZW5lcmFsOmFjdGlvbnMubG9jay50aXRsZScsIHtcbiAgICAgICAgICBzY29wZTogJ2Rhc2hib2FyZCcsXG4gICAgICAgIH0pLFxuICAgICAgICBpY29uOiB0aGlzLnN0b3JlLmlzRGFzaGJvYXJkTG9ja2VkKCkgPyAnZmEtbGlnaHQgZmEtbG9jay1vcGVuJyA6ICdmYS1saWdodCBmYS1sb2NrJyxcbiAgICAgICAgY29sb3I6ICdzZWNvbmRhcnknLFxuICAgICAgICBkaXNhYmxlZDogdGhpcy5zdG9yZS5kYXNoYm9hcmRzKCkubGVuZ3RoIDwgMSxcbiAgICAgICAgY29tbWFuZDogeyBuYW1lOiAndG9nZ2xlLWxvY2snIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpdGVtcy5wdXNoKHtcbiAgICAgIHRpdGxlOiBhd2FpdCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BnZW5lcmFsOmFjdGlvbnMuZGVsZXRlLnRpdGxlJyksXG4gICAgICBpY29uOiAnZmEtbGlnaHQgZmEtdHJhc2gtY2FuJyxcbiAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcbiAgICAgIGRpc2FibGVkOiB0aGlzLnN0b3JlLmRhc2hib2FyZHMoKS5sZW5ndGggPCAxLFxuICAgICAgY29tbWFuZDogeyBuYW1lOiAnZGVsZXRlJyB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZXhlY3V0ZShjb21tYW5kOiBBWFBFeGVjdXRlQ29tbWFuZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChjb21tYW5kLm1ldGFkYXRhPy5bJ2lzRGFzaGJvYXJkJ10pIHtcbiAgICAgIHRoaXMuc3RvcmUuaGFuZGxlQ29uZmlnQ2hhbmdlKGNvbW1hbmQubWV0YWRhdGE/LlsnZGFzaGJvYXJkJ10pO1xuICAgICAgdGhpcy5yZWNvbXB1dGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGNvbW1hbmQubmFtZSkge1xuICAgICAgY2FzZSAnbmV3LWRhc2hib2FyZCc6XG4gICAgICAgIGF3YWl0IHRoaXMuc3RvcmUuYWRkRGFzaGJvYXJkKCk7XG4gICAgICAgIHRoaXMucmVjb21wdXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbmV3LXdpZGdldCc6XG4gICAgICAgIGF3YWl0IHRoaXMuc3RvcmUuYWRkV2lkZ2V0KCk7XG4gICAgICAgIHRoaXMucmVjb21wdXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZWRpdCc6XG4gICAgICAgIGF3YWl0IHRoaXMuc3RvcmUuZWRpdERhc2hib2FyZCgpO1xuICAgICAgICB0aGlzLnJlY29tcHV0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIGF3YWl0IHRoaXMuc3RvcmUucmVtb3ZlRGFzaGJvYXJkKHRoaXMuc3RvcmUuc2VsZWN0ZWREYXNoYm9hcmQoKT8uaWQhKTtcbiAgICAgICAgdGhpcy5yZWNvbXB1dGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b2dnbGUtbG9jayc6XG4gICAgICAgIGF3YWl0IHRoaXMuc3RvcmUudG9nZ2xlTG9ja0Rhc2hib2FyZCgpO1xuICAgICAgICB0aGlzLnJlY29tcHV0ZSgpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVjb21wdXRlKCksIDUwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iLCI8YXhwLXBhZ2UtbGF5b3V0ICp0cmFuc2xhdGU9XCJsZXQgdFwiPlxuICA8IS0tIENvbnRlbnQgU2VjdGlvbiAtLT5cblxuICA8YXhwLXBhZ2UtY29udGVudCBjbGFzcz1cImF4LXJlbGF0aXZlXCI+XG4gICAgPCEtLSBMb2FkaW5nIFN0YXRlIC0tPlxuICAgIEBpZihzdG9yZS5pc0xvYWRpbmcoKSkge1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXIgYXgtaC1mdWxsIGF4LXctZnVsbCBheC1hYnNvbHV0ZSBheC16LTEwIGF4LWJnLXdoaXRlLzgwXCJcbiAgICA+XG4gICAgICA8YXgtbG9hZGluZz48L2F4LWxvYWRpbmc+XG4gICAgICA8cCBjbGFzcz1cImF4LW10LTMgYXgtdGV4dC1ncmF5LTYwMFwiPnt7ICdAZGFzaGJvYXJkOmxvYWRpbmcnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3A+XG4gICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgPGF4cC13aWRnZXRzLWNvbnRhaW5lciBbY29udGV4dF09XCJjb250ZXh0KClcIj5cbiAgICAgIDxheC1ncmlkLWxheW91dC1jb250YWluZXIgW29wdGlvbnNdPVwic3RvcmUuY3VycmVudExheW91dE9wdGlvbnMoKVwiIChvbkNoYW5nZSk9XCJzdG9yZS5vbkdyaWRDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICA8IS0tIE5vIERhc2hib2FyZHMgU3RhdGUgLS0+XG4gICAgICAgIEBpZighc3RvcmUuZGFzaGJvYXJkcygpIHx8IHN0b3JlLmRhc2hib2FyZHMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgPGF4cC1zdGF0ZS1tZXNzYWdlXG4gICAgICAgICAgaWNvbj1cImZhLWxpZ2h0IGZhLXNoYXBlc1wiXG4gICAgICAgICAgW3RpdGxlXT1cIidAZGFzaGJvYXJkOmVtcHR5LXN0YXRlLnRpdGxlJ1wiXG4gICAgICAgICAgW2Rlc2NyaXB0aW9uXT1cIidAZGFzaGJvYXJkOmVtcHR5LXN0YXRlLmRlc2NyaXB0aW9uJ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IHNsb3Q9XCJhY3Rpb25zXCI+XG4gICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJleGVjdXRlKHsgbmFtZTogJ25ldy1kYXNoYm9hcmQnIH0pXCIgY2xhc3M9XCJheC11bmRlcmxpbmVcIj5cbiAgICAgICAgICAgICAge3sgJ0BkYXNoYm9hcmQ6YWRkLWZpcnN0LWRhc2hib2FyZCcgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXhwLXN0YXRlLW1lc3NhZ2U+XG4gICAgICAgIH1cbiAgICAgICAgPCEtLSBObyBTZWxlY3RlZCBEYXNoYm9hcmQgU3RhdGUgLS0+XG4gICAgICAgIDwhLS0gQGVsc2UgaWYgKCFzdG9yZS5zZWxlY3RlZERhc2hib2FyZCgpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1oLWZ1bGwgYXgtcC00XCI+XG4gICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLWxpZ2h0IGZhLXNoYXBlc1wiIGNsYXNzPVwiYXgtdGV4dC00eGwgYXgtbWItNFwiPjwvYXgtaWNvbj5cbiAgICAgICAgICA8aDIgY2xhc3M9XCJheC10ZXh0LXhsIGF4LWZvbnQtc2VtaWJvbGQgYXgtbWItMlwiPlxuICAgICAgICAgICAge3sgJ0BkYXNoYm9hcmQ6bm8tY3VycmVudC1kYXNoYm9hcmQnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICA8L2gyPlxuICAgICAgICAgIDxwIGNsYXNzPVwiYXgtdGV4dC1jZW50ZXIgYXgtbWItNlwiPnt7ICdAZGFzaGJvYXJkOnNlbGVjdC1kYXNoYm9hcmQnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9IC0tPlxuICAgICAgICA8IS0tIE5vIFdpZGdldHMgU3RhdGUgLS0+XG4gICAgICAgIEBlbHNlIGlmICghc3RvcmUuc2VsZWN0ZWREYXNoYm9hcmQoKT8ud2lkZ2V0cyB8fCBzdG9yZS5zZWxlY3RlZERhc2hib2FyZCgpPy53aWRnZXRzPy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgPGF4cC1zdGF0ZS1tZXNzYWdlXG4gICAgICAgICAgaWNvbj1cImZhLWxpZ2h0IGZhLXNoYXBlc1wiXG4gICAgICAgICAgW3RpdGxlXT1cIidAZGFzaGJvYXJkOm5vLXdpZGdldHMudGl0bGUnXCJcbiAgICAgICAgICBbZGVzY3JpcHRpb25dPVwiJ0BkYXNoYm9hcmQ6bm8td2lkZ2V0cy5kZXNjcmlwdGlvbidcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBzbG90PVwiYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZXhlY3V0ZSh7IG5hbWU6ICduZXctd2lkZ2V0JyB9KVwiIGNsYXNzPVwiYXgtdW5kZXJsaW5lXCI+XG4gICAgICAgICAgICAgIHt7ICdAZGFzaGJvYXJkOmFkZC13aWRnZXQnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2F4cC1zdGF0ZS1tZXNzYWdlPlxuICAgICAgICB9XG4gICAgICAgIDwhLS0gV2lkZ2V0cyBHcmlkIC0tPlxuICAgICAgICBAZWxzZSB7IEBmb3Iod2lkZ2V0IG9mIHN0b3JlLnNlbGVjdGVkRGFzaGJvYXJkKCk/LndpZGdldHM7IHRyYWNrIHdpZGdldC5jb25maWcuaWQpIHtcbiAgICAgICAgPGF4LWdyaWQtbGF5b3V0LXdpZGdldFxuICAgICAgICAgIFtvcHRpb25zXT1cIndpZGdldC5jb25maWdcIlxuICAgICAgICAgIGNsYXNzPVwiZGFyazpbLS1heC1jb21wLWdyaWQtbGF5b3V0LXN0YWNrLWl0ZW0tY29udGVudC1iZy1jb2xvcjp2YXIoLS1heC1zeXMtY29sb3ItbGlnaHRlci1zdXJmYWNlKV0gWy0tYXgtY29tcC1ncmlkLWxheW91dC1zdGFjay1pdGVtLWNvbnRlbnQtYmctY29sb3I6dmFyKC0tYXgtc3lzLWNvbG9yLWxpZ2h0ZXN0LXN1cmZhY2UpXVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXhtLWRhc2hib2FyZC13aWRnZXQtd3JhcHBlclxuICAgICAgICAgICAgW3RpdGxlXT1cIndpZGdldC5ub2RlPy5vcHRpb25zPy5bJ3RpdGxlJ11cIlxuICAgICAgICAgICAgW2hhc0NvbmZpZ3VyYXRpb25dPVwic3RvcmUuY2FuQ29uZmlndXJlV2lkZ2V0KCkod2lkZ2V0KVwiXG4gICAgICAgICAgICBbaXNMb2NrZWRdPVwic3RvcmUuaXNXaWRnZXRMb2NrZWQoKSh3aWRnZXQpXCJcbiAgICAgICAgICAgIChvbkRlbGV0ZSk9XCJjb25maXJtV2lkZ2V0RGVsZXRlKHN0b3JlLnNlbGVjdGVkRGFzaGJvYXJkKCk/LmlkISwgd2lkZ2V0LmNvbmZpZy5pZCEpXCJcbiAgICAgICAgICAgIChvbkNvbmZpZ3VyYXRpb24pPVwic3RvcmUuaGFuZGxlUG9wdXBDb25maWd1cmF0aW9uKHdpZGdldC5ub2RlISlcIlxuICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cInN0b3JlLmhhbmRsZVZhbHVlQ2hhbmdlZCh3aWRnZXQ/Lm5vZGUhLCRldmVudClcIlxuICAgICAgICAgICAgKG9uT3B0aW9uc0NoYW5nZWQpPVwic3RvcmUuaGFuZGxlT3B0aW9uc0NoYW5nZWQod2lkZ2V0Py5ub2RlISwkZXZlbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYod2lkZ2V0Lm5vZGUpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgYXhwLXdpZGdldC1yZW5kZXJlciBbbm9kZV09XCJ3aWRnZXQubm9kZVwiIFttb2RlXT1cIid2aWV3J1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYXhtLWRhc2hib2FyZC13aWRnZXQtd3JhcHBlcj5cbiAgICAgICAgPC9heC1ncmlkLWxheW91dC13aWRnZXQ+XG4gICAgICAgIH0gfVxuICAgICAgPC9heC1ncmlkLWxheW91dC1jb250YWluZXI+XG4gICAgPC9heHAtd2lkZ2V0cy1jb250YWluZXI+XG4gICAgfVxuICA8L2F4cC1wYWdlLWNvbnRlbnQ+XG48L2F4cC1wYWdlLWxheW91dD5cbiJdfQ==","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXSwitchModule } from '@acorex/components/switch';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXMOrganizationManagementRoleEntityService } from '@acorex/modules/organization-management';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, model } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RootConfig } from '../../../const';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@acorex/components/text-box\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/components/select-box\";\nimport * as i6 from \"@acorex/components/switch\";\nimport * as i7 from \"@angular/common\";\nimport * as i8 from \"@acorex/core/translation\";\nexport class AXMAddDashboardPopup extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n this.scope = RootConfig.config.i18n;\n this.roleService = inject(AXMOrganizationManagementRoleEntityService);\n this.sessionService = inject(AXPSessionService);\n this.title = model('', ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.description = model('', ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n this.selectedRoleIds = model([], ...(ngDevMode ? [{ debugName: \"selectedRoleIds\" }] : []));\n this.isDisabled = model(false, ...(ngDevMode ? [{ debugName: \"isDisabled\" }] : []));\n this.isLocked = model(false, ...(ngDevMode ? [{ debugName: \"isLocked\" }] : []));\n this.isAdmin = model(false, ...(ngDevMode ? [{ debugName: \"isAdmin\" }] : []));\n this.roles = [];\n }\n get isValid() {\n return !!this.title()?.trim();\n }\n async ngOnInit() {\n // Set initial values from input data\n this.title.set(this.data?.title || '');\n this.description.set(this.data?.description || '');\n this.isDisabled.set(this.data?.isDeleted || false);\n this.isLocked.set(this.data?.locked || false);\n this.isAdmin.set(this.data?.isAdmin || false);\n // Load roles if admin\n if (this.isAdmin()) {\n try {\n const result = await this.roleService.query({ skip: 0, take: 100 });\n if (result.items && result.items.length > 0) {\n this.roles = result.items.map((i) => ({\n id: i.id,\n title: i.title,\n }));\n }\n this.selectedRoleIds.set(this.roles.filter((i) => this.data?.roleIds?.includes(i.id)).map((i) => i.id));\n }\n catch (error) {\n console.error('Error loading roles:', error);\n this.roles = [];\n }\n }\n }\n async handleClose(isCanceled = false) {\n this.close({\n title: this.title()?.trim(),\n description: this.description()?.trim(),\n roleIds: this.isAdmin() ? this.selectedRoleIds() : undefined,\n isDeleted: this.isAdmin() ? this.isDisabled() : undefined,\n locked: this.isAdmin() ? this.isLocked() : undefined,\n scope: this.isAdmin() ? 'T' : 'U',\n createdBy: this.sessionService.user?.id,\n createdAt: new Date(),\n updatedBy: this.sessionService.user?.id,\n updatedAt: new Date(),\n isCanceled,\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAddDashboardPopup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXMAddDashboardPopup, isStandalone: true, selector: \"ng-component\", inputs: { title: { classPropertyName: \"title\", publicName: \"title\", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: \"description\", publicName: \"description\", isSignal: true, isRequired: false, transformFunction: null }, selectedRoleIds: { classPropertyName: \"selectedRoleIds\", publicName: \"selectedRoleIds\", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: \"isDisabled\", publicName: \"isDisabled\", isSignal: true, isRequired: false, transformFunction: null }, isLocked: { classPropertyName: \"isLocked\", publicName: \"isLocked\", isSignal: true, isRequired: false, transformFunction: null }, isAdmin: { classPropertyName: \"isAdmin\", publicName: \"isAdmin\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { title: \"titleChange\", description: \"descriptionChange\", selectedRoleIds: \"selectedRoleIdsChange\", isDisabled: \"isDisabledChange\", isLocked: \"isLockedChange\", isAdmin: \"isAdminChange\" }, usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-card-body ax-p-4\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-pb-4\">\n <p class=\"ax-font-semibold\">{{ '@general:terms.common.title' | translate | async }}</p>\n <ax-text-box [(ngModel)]=\"title\" name=\"title\" placeholder=\"{{ '@general:terms.common.title' | translate | async }}\"> </ax-text-box>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <p class=\"ax-font-semibold\">{{ '@general:terms.common.description' | translate | async }}</p>\n <ax-text-box [(ngModel)]=\"description\" name=\"description\" placeholder=\"{{ '@general:terms.common.description' | translate | async }}\">\n </ax-text-box>\n </div>\n\n @if (isAdmin()) {\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-mt-4\">\n <p class=\"ax-font-semibold\">{{ 'roles' | translate: { scope } | async }}</p>\n <ax-select-box\n [(ngModel)]=\"selectedRoleIds\"\n [dataSource]=\"roles\"\n [multiple]=\"true\"\n [textField]=\"'title'\"\n [valueField]=\"'id'\"\n name=\"roles\"\n placeholder=\"{{ 'select-roles' | translate: { scope } | async }}\"\n >\n </ax-select-box>\n </div>\n\n <div class=\"ax-grid grid-cols-2 ax-grid-flow-col ax-gap-8 ax-mt-4\">\n <div class=\"ax-flex ax-flex-row ax-items-center ax-gap-2\">\n <p class=\"ax-font-semibold\">{{ 'disable' | translate: { scope } | async }}</p>\n <ax-switch [(ngModel)]=\"isDisabled\" name=\"isDisabled\"></ax-switch>\n </div>\n\n <div class=\"ax-flex ax-flex-row ax-items-center ax-gap-2\">\n <p class=\"ax-font-semibold\">{{ 'lock' | translate: { scope } | async }}</p>\n <ax-switch [(ngModel)]=\"isLocked\" name=\"isLocked\"></ax-switch>\n </div>\n </div>\n }\n </div>\n\n <ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button [text]=\"'@general:actions.cancel.title' | translate | async\" look=\"solid\" (onClick)=\"handleClose(true)\"> </ax-button>\n <ax-button\n [text]=\"'@general:actions.save.title' | translate | async\"\n look=\"solid\"\n color=\"primary\"\n [disabled]=\"!isValid\"\n (onClick)=\"handleClose()\"\n >\n <ax-icon class=\"fa-solid fa-save\"></ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-footer>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"component\", type: i3.AXTextBoxComponent, selector: \"ax-text-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"maxLength\", \"allowNull\", \"type\", \"autoComplete\", \"look\", \"mask-options\", \"class\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"component\", type: i5.AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"isItemTruncated\", \"showItemTooltip\", \"itemHeight\", \"maxVisibleItems\", \"dataSource\", \"minRecordsForSearch\", \"caption\", \"itemTemplate\", \"selectedTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"dropdownWidth\", \"searchBoxAutoFocus\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\", \"onItemSelected\", \"onItemClick\"] }, { kind: \"ngmodule\", type: AXSwitchModule }, { kind: \"component\", type: i6.AXSwitchComponent, selector: \"ax-switch\", inputs: [\"disabled\", \"readonly\", \"color\", \"tabIndex\", \"value\", \"name\", \"isLoading\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\"] }, { kind: \"pipe\", type: i7.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i8.AXTranslatorPipe, name: \"translate\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMAddDashboardPopup, decorators: [{\n type: Component,\n args: [{\n template: `\n <div class=\"ax-card-body ax-p-4\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-pb-4\">\n <p class=\"ax-font-semibold\">{{ '@general:terms.common.title' | translate | async }}</p>\n <ax-text-box [(ngModel)]=\"title\" name=\"title\" placeholder=\"{{ '@general:terms.common.title' | translate | async }}\"> </ax-text-box>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <p class=\"ax-font-semibold\">{{ '@general:terms.common.description' | translate | async }}</p>\n <ax-text-box [(ngModel)]=\"description\" name=\"description\" placeholder=\"{{ '@general:terms.common.description' | translate | async }}\">\n </ax-text-box>\n </div>\n\n @if (isAdmin()) {\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-mt-4\">\n <p class=\"ax-font-semibold\">{{ 'roles' | translate: { scope } | async }}</p>\n <ax-select-box\n [(ngModel)]=\"selectedRoleIds\"\n [dataSource]=\"roles\"\n [multiple]=\"true\"\n [textField]=\"'title'\"\n [valueField]=\"'id'\"\n name=\"roles\"\n placeholder=\"{{ 'select-roles' | translate: { scope } | async }}\"\n >\n </ax-select-box>\n </div>\n\n <div class=\"ax-grid grid-cols-2 ax-grid-flow-col ax-gap-8 ax-mt-4\">\n <div class=\"ax-flex ax-flex-row ax-items-center ax-gap-2\">\n <p class=\"ax-font-semibold\">{{ 'disable' | translate: { scope } | async }}</p>\n <ax-switch [(ngModel)]=\"isDisabled\" name=\"isDisabled\"></ax-switch>\n </div>\n\n <div class=\"ax-flex ax-flex-row ax-items-center ax-gap-2\">\n <p class=\"ax-font-semibold\">{{ 'lock' | translate: { scope } | async }}</p>\n <ax-switch [(ngModel)]=\"isLocked\" name=\"isLocked\"></ax-switch>\n </div>\n </div>\n }\n </div>\n\n <ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button [text]=\"'@general:actions.cancel.title' | translate | async\" look=\"solid\" (onClick)=\"handleClose(true)\"> </ax-button>\n <ax-button\n [text]=\"'@general:actions.save.title' | translate | async\"\n look=\"solid\"\n color=\"primary\"\n [disabled]=\"!isValid\"\n (onClick)=\"handleClose()\"\n >\n <ax-icon class=\"fa-solid fa-save\"></ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-footer>\n `,\n imports: [\n FormsModule,\n AXButtonModule,\n AXTextBoxModule,\n AXLabelModule,\n AXDecoratorModule,\n CommonModule,\n AXTranslationModule,\n AXSelectBoxModule,\n AXSwitchModule,\n ],\n standalone: true,\n }]\n }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: \"title\", required: false }] }, { type: i0.Output, args: [\"titleChange\"] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: \"description\", required: false }] }, { type: i0.Output, args: [\"descriptionChange\"] }], selectedRoleIds: [{ type: i0.Input, args: [{ isSignal: true, alias: \"selectedRoleIds\", required: false }] }, { type: i0.Output, args: [\"selectedRoleIdsChange\"] }], isDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: \"isDisabled\", required: false }] }, { type: i0.Output, args: [\"isDisabledChange\"] }], isLocked: [{ type: i0.Input, args: [{ isSignal: true, alias: \"isLocked\", required: false }] }, { type: i0.Output, args: [\"isLockedChange\"] }], isAdmin: [{ type: i0.Input, args: [{ isSignal: true, alias: \"isAdmin\", required: false }] }, { type: i0.Output, args: [\"isAdminChange\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWRhc2hib2FyZC1wb3B1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL2hvbWUtZGFzaGJvYXJkL2Rhc2hib2FyZC1wb3B1cHMvYWRkLWRhc2hib2FyZC1wb3B1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDckcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBeUU1QyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEs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Q2pCLGNBQWM7OzRGQUlMLG9CQUFvQjtrQkF2RWhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdEVDtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLGNBQWM7cUJBQ2Y7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhMYWJlbE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sYWJlbCc7XG5pbXBvcnQgeyBBWEJhc2VQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BhZ2UnO1xuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBBWFN3aXRjaE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zd2l0Y2gnO1xuaW1wb3J0IHsgQVhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RleHQtYm94JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhNT3JnYW5pemF0aW9uTWFuYWdlbWVudFJvbGVFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9tb2R1bGVzL29yZ2FuaXphdGlvbi1tYW5hZ2VtZW50JztcbmltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgbW9kZWwsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWE1EYXNoYm9hcmRMYXlvdXQgfSBmcm9tICcuLi9kYXNoYm9hcmQtaG9tZSc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29uc3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYXgtY2FyZC1ib2R5IGF4LXAtNFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTIgYXgtcGItNFwiPlxuICAgICAgICA8cCBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj57eyAnQGdlbmVyYWw6dGVybXMuY29tbW9uLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9wPlxuICAgICAgICA8YXgtdGV4dC1ib3ggWyhuZ01vZGVsKV09XCJ0aXRsZVwiIG5hbWU9XCJ0aXRsZVwiIHBsYWNlaG9sZGVyPVwie3sgJ0BnZW5lcmFsOnRlcm1zLmNvbW1vbi50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVwiPiA8L2F4LXRleHQtYm94PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMlwiPlxuICAgICAgICA8cCBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj57eyAnQGdlbmVyYWw6dGVybXMuY29tbW9uLmRlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9wPlxuICAgICAgICA8YXgtdGV4dC1ib3ggWyhuZ01vZGVsKV09XCJkZXNjcmlwdGlvblwiIG5hbWU9XCJkZXNjcmlwdGlvblwiIHBsYWNlaG9sZGVyPVwie3sgJ0BnZW5lcmFsOnRlcm1zLmNvbW1vbi5kZXNjcmlwdGlvbicgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVwiPlxuICAgICAgICA8L2F4LXRleHQtYm94PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAoaXNBZG1pbigpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0yIGF4LW10LTRcIj5cbiAgICAgICAgICA8cCBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj57eyAncm9sZXMnIHwgdHJhbnNsYXRlOiB7IHNjb3BlIH0gfCBhc3luYyB9fTwvcD5cbiAgICAgICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFJvbGVJZHNcIlxuICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwicm9sZXNcIlxuICAgICAgICAgICAgW211bHRpcGxlXT1cInRydWVcIlxuICAgICAgICAgICAgW3RleHRGaWVsZF09XCIndGl0bGUnXCJcbiAgICAgICAgICAgIFt2YWx1ZUZpZWxkXT1cIidpZCdcIlxuICAgICAgICAgICAgbmFtZT1cInJvbGVzXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ3NlbGVjdC1yb2xlcycgfCB0cmFuc2xhdGU6IHsgc2NvcGUgfSB8IGFzeW5jIH19XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9heC1zZWxlY3QtYm94PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBncmlkLWNvbHMtMiBheC1ncmlkLWZsb3ctY29sIGF4LWdhcC04IGF4LW10LTRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LXJvdyBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZFwiPnt7ICdkaXNhYmxlJyB8IHRyYW5zbGF0ZTogeyBzY29wZSB9IHwgYXN5bmMgfX08L3A+XG4gICAgICAgICAgICA8YXgtc3dpdGNoIFsobmdNb2RlbCldPVwiaXNEaXNhYmxlZFwiIG5hbWU9XCJpc0Rpc2FibGVkXCI+PC9heC1zd2l0Y2g+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LXJvdyBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZFwiPnt7ICdsb2NrJyB8IHRyYW5zbGF0ZTogeyBzY29wZSB9IHwgYXN5bmMgfX08L3A+XG4gICAgICAgICAgICA8YXgtc3dpdGNoIFsobmdNb2RlbCldPVwiaXNMb2NrZWRcIiBuYW1lPVwiaXNMb2NrZWRcIj48L2F4LXN3aXRjaD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICA8YXgtZm9vdGVyPlxuICAgICAgPGF4LXByZWZpeD48L2F4LXByZWZpeD5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC1idXR0b24gW3RleHRdPVwiJ0BnZW5lcmFsOmFjdGlvbnMuY2FuY2VsLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCIgbG9vaz1cInNvbGlkXCIgKG9uQ2xpY2spPVwiaGFuZGxlQ2xvc2UodHJ1ZSlcIj4gPC9heC1idXR0b24+XG4gICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICBbdGV4dF09XCInQGdlbmVyYWw6YWN0aW9ucy5zYXZlLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICBsb29rPVwic29saWRcIlxuICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc1ZhbGlkXCJcbiAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVDbG9zZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtc2F2ZVwiPjwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICA8L2F4LWZvb3Rlcj5cbiAgYCxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYVGV4dEJveE1vZHVsZSxcbiAgICBBWExhYmVsTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgIEFYU2VsZWN0Qm94TW9kdWxlLFxuICAgIEFYU3dpdGNoTW9kdWxlLFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1BZGREYXNoYm9hcmRQb3B1cCBleHRlbmRzIEFYQmFzZVBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2NvcGUgPSBSb290Q29uZmlnLmNvbmZpZy5pMThuO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YTogUGFydGlhbDxBWE1EYXNoYm9hcmRMYXlvdXQgJiB7IGlzQWRtaW46IGJvb2xlYW4gfT47XG5cbiAgcHJpdmF0ZSByZWFkb25seSByb2xlU2VydmljZSA9IGluamVjdChBWE1Pcmdhbml6YXRpb25NYW5hZ2VtZW50Um9sZUVudGl0eVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgdGl0bGUgPSBtb2RlbDxzdHJpbmc+KCcnKTtcbiAgcHJvdGVjdGVkIGRlc2NyaXB0aW9uID0gbW9kZWw8c3RyaW5nPignJyk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZFJvbGVJZHMgPSBtb2RlbDxzdHJpbmdbXT4oW10pO1xuICBwcm90ZWN0ZWQgaXNEaXNhYmxlZCA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJvdGVjdGVkIGlzTG9ja2VkID0gbW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcm90ZWN0ZWQgaXNBZG1pbiA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJvbGVzOiBhbnlbXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBnZXQgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnRpdGxlKCk/LnRyaW0oKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFNldCBpbml0aWFsIHZhbHVlcyBmcm9tIGlucHV0IGRhdGFcbiAgICB0aGlzLnRpdGxlLnNldCh0aGlzLmRhdGE/LnRpdGxlIHx8ICcnKTtcbiAgICB0aGlzLmRlc2NyaXB0aW9uLnNldCh0aGlzLmRhdGE/LmRlc2NyaXB0aW9uIHx8ICcnKTtcbiAgICB0aGlzLmlzRGlzYWJsZWQuc2V0KHRoaXMuZGF0YT8uaXNEZWxldGVkIHx8IGZhbHNlKTtcbiAgICB0aGlzLmlzTG9ja2VkLnNldCh0aGlzLmRhdGE/LmxvY2tlZCB8fCBmYWxzZSk7XG4gICAgdGhpcy5pc0FkbWluLnNldCh0aGlzLmRhdGE/LmlzQWRtaW4gfHwgZmFsc2UpO1xuICAgIC8vIExvYWQgcm9sZXMgaWYgYWRtaW5cbiAgICBpZiAodGhpcy5pc0FkbWluKCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucm9sZVNlcnZpY2UucXVlcnkoeyBza2lwOiAwLCB0YWtlOiAxMDAgfSk7XG4gICAgICAgIGlmIChyZXN1bHQuaXRlbXMgJiYgcmVzdWx0Lml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnJvbGVzID0gcmVzdWx0Lml0ZW1zLm1hcCgoaSkgPT4gKHtcbiAgICAgICAgICAgIGlkOiBpLmlkLFxuICAgICAgICAgICAgdGl0bGU6IGkudGl0bGUsXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSb2xlSWRzLnNldCh0aGlzLnJvbGVzLmZpbHRlcigoaSkgPT4gdGhpcy5kYXRhPy5yb2xlSWRzPy5pbmNsdWRlcyhpLmlkKSkubWFwKChpKSA9PiBpLmlkKSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIHJvbGVzOicsIGVycm9yKTtcbiAgICAgICAgdGhpcy5yb2xlcyA9IFtdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVDbG9zZShpc0NhbmNlbGVkID0gZmFsc2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNsb3NlKHtcbiAgICAgIHRpdGxlOiB0aGlzLnRpdGxlKCk/LnRyaW0oKSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uKCk/LnRyaW0oKSxcbiAgICAgIHJvbGVJZHM6IHRoaXMuaXNBZG1pbigpID8gdGhpcy5zZWxlY3RlZFJvbGVJZHMoKSA6IHVuZGVmaW5lZCxcbiAgICAgIGlzRGVsZXRlZDogdGhpcy5pc0FkbWluKCkgPyB0aGlzLmlzRGlzYWJsZWQoKSA6IHVuZGVmaW5lZCxcbiAgICAgIGxvY2tlZDogdGhpcy5pc0FkbWluKCkgPyB0aGlzLmlzTG9ja2VkKCkgOiB1bmRlZmluZWQsXG4gICAgICBzY29wZTogdGhpcy5pc0FkbWluKCkgPyAnVCcgOiAnVScsXG4gICAgICBjcmVhdGVkQnk6IHRoaXMuc2Vzc2lvblNlcnZpY2UudXNlcj8uaWQsXG4gICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICB1cGRhdGVkQnk6IHRoaXMuc2Vzc2lvblNlcnZpY2UudXNlcj8uaWQsXG4gICAgICB1cGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICBpc0NhbmNlbGVkLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","const path = 'home:dashboard:';\nexport var AXPHomeDashboardSetting;\n(function (AXPHomeDashboardSetting) {\n AXPHomeDashboardSetting[\"CurrentDashboard\"] = \"home:dashboard:current-dashboard\";\n})(AXPHomeDashboardSetting || (AXPHomeDashboardSetting = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0cnRpbmcua2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL2hvbWUtZGFzaGJvYXJkL3NldHJ0aW5nLmtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUM7QUFDL0IsTUFBTSxDQUFOLElBQVksdUJBRVg7QUFGRCxXQUFZLHVCQUF1QjtJQUNqQyxnRkFBNkMsQ0FBQTtBQUMvQyxDQUFDLEVBRlcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQUVsQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhdGggPSAnaG9tZTpkYXNoYm9hcmQ6JztcbmV4cG9ydCBlbnVtIEFYUEhvbWVEYXNoYm9hcmRTZXR0aW5nIHtcbiAgQ3VycmVudERhc2hib2FyZCA9IGAke3BhdGh9Y3VycmVudC1kYXNoYm9hcmRgLFxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LW1vZHVsZXMtZGFzaGJvYXJkLW1hbmFnZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2Fjb3JleC1tb2R1bGVzLWRhc2hib2FyZC1tYW5hZ2VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1","i2","i3","i4","rxjsInterval","i5","path","AXPHomeDashboardSetting","i7","i8"],"mappings":"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AAY;AAC9B,YAAY,KAAK,EAAE,2CAA2C;AAC9D,YAAY,KAAK,EAAE,6BAA6B;AAChD,YAAY,MAAM,EAAE;AACpB,gBAAgB,YAAY,EAAE,EAAE;AAChC,gBAAgB,QAAQ,EAAE,QAAQ;AAClC,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB,IAAI,EAAE,YAAY;AACtC,oBAAoB,IAAI,EAAE,oBAAoB;AAC9C,oBAAoB,IAAI,EAAE,iBAAiB,CAAC,IAAI;AAChD,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,EAAE,IAAI;AACzB,SAAS;AACT;AACA,QAAQ;AACR,YAAY,IAAI,EAAE,YAAY;AAC9B,YAAY,KAAK,EAAE,2CAA2C;AAC9D,YAAY,KAAK,EAAE,6BAA6B;AAChD,YAAY,MAAM,EAAE;AACpB,gBAAgB,YAAY,EAAE,EAAE;AAChC,gBAAgB,QAAQ,EAAE,QAAQ;AAClC,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB,IAAI,EAAE,YAAY;AACtC,oBAAoB,IAAI,EAAE,oBAAoB;AAC9C,oBAAoB,IAAI,EAAE,iBAAiB,CAAC,IAAI;AAChD,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,EAAE,IAAI;AACzB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,UAAU,EAAE;AAChB,QAAQ,IAAI,EAAE;AACd,YAAY,SAAS,EAAE,MAAM,wEAAsC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACjH,SAAS;AACT,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,UAAU,EAAE;AACpB,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,MAAM,EAAE,CAAC;AACrB,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,SAAS,EAAE,CAAC;AACxB,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,SAAS,EAAE,CAAC;AACxB,SAAS;AACT,KAAK;AACL;;ACzRO,MAAM,mCAAmC,SAAS,uBAAuB,CAAC;AACjF,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B;AACA,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC5C;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE;AACrC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE;AACrC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI;AACr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AI,EAAE,OAAO;AACjC,oBAAoB,IAAI,EAAE,eAAe;AACzC,oBAAoB,IAAI,EAAE,iBAAiB,CAAC,IAAI;AAChD,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,WAAW,EAAE,mBAAmB;AACxD,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,EAAE,IAAI;AACzB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,UAAU,EAAE;AAChB,QAAQ,IAAI,EAAE;AACd,YAAY,SAAS,EAAE,MAAM,0EAAwC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AACrH,SAAS;AACT,KAAK;AACL,IAAI,IAAI,EAAE;AACV,QAAQ,UAAU,EAAE;AACpB,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,MAAM,EAAE,CAAC;AACrB,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,SAAS,EAAE,CAAC;AACxB,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,SAAS,EAAE,CAAC;AACxB,SAAS;AACT,KAAK;AACL;;AChPA;AACA;AACA;AACA;AACO,MAAM,+BAA+B,SAAS,uBAAuB,CAAC;AAC7E,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpH,QAAQ,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,IA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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAClM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,+BAA+B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE;AAC7L,YAAY;AACZ,gBAAgB,OAAO,EAAE,qBAAqB;AAC9C,gBAAgB,QAAQ,EAAE,oBAAoB;AAC9C,aAAa;AACb,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,8aAA8a,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEH,IAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACt5C;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,UAAU,EAAE,CAAC;AAC1I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,CAAC,EAAE,SAAS,EAAE;AACrL,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,qBAAqB;AAC1D,4BAA4B,QAAQ,EAAE,oBAAoB;AAC1D,yBAAyB;AACzB,qBAAqB,EAAE,MAAM,EAAE,CAAC,8aAA8a,CAAC,EAAE;AACjd,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;;;;;;ACncvC;AACA;AACA;AACA;AACY,MAAC,wBAAwB,GAAG;AACxC,IAAI,IAAI,EAAE,kBAAkB;AAC5B,IAAI,KAAK,EAAE,yBAAyB;AACpC,IAAI,UAAU,EAAE,CAAC,4BAA4B,CAAC;AAC9C,IAAI,MAAM,EAAE,CAAC,kBAAkB,CAAC,eAAe,CAAC;AAChD,IAAI,IAAI,E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"}