@acorex/modules 20.3.0-next.2 → 20.3.0-next.3

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 (73) hide show
  1. package/fesm2022/acorex-modules-common.mjs +0 -21
  2. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  3. package/fesm2022/acorex-modules-content-management.mjs +4 -44
  4. package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
  5. package/fesm2022/acorex-modules-dashboard-management.mjs +1 -1
  6. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  7. package/fesm2022/acorex-modules-data-management.mjs +5 -0
  8. package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
  9. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-Dgy-OSBs.mjs → acorex-modules-document-management-acorex-modules-document-management-DDriJFmP.mjs} +88 -67
  10. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-DDriJFmP.mjs.map +1 -0
  11. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-Df-ToSSS.mjs → acorex-modules-document-management-attachment-widget.component-OYJu4IJz.mjs} +2 -2
  12. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-Df-ToSSS.mjs.map → acorex-modules-document-management-attachment-widget.component-OYJu4IJz.mjs.map} +1 -1
  13. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-rD3uIvAi.mjs → acorex-modules-document-management-create-folder-dialog.component-CZzlGMcu.mjs} +2 -2
  14. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-rD3uIvAi.mjs.map → acorex-modules-document-management-create-folder-dialog.component-CZzlGMcu.mjs.map} +1 -1
  15. package/fesm2022/{acorex-modules-document-management-details-view.component-B46W2yNV.mjs → acorex-modules-document-management-details-view.component-VdV7xGPS.mjs} +2 -2
  16. package/fesm2022/{acorex-modules-document-management-details-view.component-B46W2yNV.mjs.map → acorex-modules-document-management-details-view.component-VdV7xGPS.mjs.map} +1 -1
  17. package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-DVNJGVCs.mjs → acorex-modules-document-management-document-signature-popup.component-Gi0_m0oe.mjs} +2 -2
  18. package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-DVNJGVCs.mjs.map → acorex-modules-document-management-document-signature-popup.component-Gi0_m0oe.mjs.map} +1 -1
  19. package/fesm2022/{acorex-modules-document-management-drive-choose.component-BX7CGKrz.mjs → acorex-modules-document-management-drive-choose.component-BgRZ_nhs.mjs} +2 -2
  20. package/fesm2022/{acorex-modules-document-management-drive-choose.component-BX7CGKrz.mjs.map → acorex-modules-document-management-drive-choose.component-BgRZ_nhs.mjs.map} +1 -1
  21. package/fesm2022/{acorex-modules-document-management-drive.component-Cq2jq81B.mjs → acorex-modules-document-management-drive.component-BRCGsnuI.mjs} +2 -2
  22. package/fesm2022/{acorex-modules-document-management-drive.component-Cq2jq81B.mjs.map → acorex-modules-document-management-drive.component-BRCGsnuI.mjs.map} +1 -1
  23. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-YFCNhzDy.mjs → acorex-modules-document-management-large-icons-view.component-CnsPx3K3.mjs} +2 -2
  24. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-YFCNhzDy.mjs.map → acorex-modules-document-management-large-icons-view.component-CnsPx3K3.mjs.map} +1 -1
  25. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component--qzP70x7.mjs → acorex-modules-document-management-large-tiles-view.component-D4OUme1W.mjs} +2 -2
  26. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component--qzP70x7.mjs.map → acorex-modules-document-management-large-tiles-view.component-D4OUme1W.mjs.map} +1 -1
  27. package/fesm2022/{acorex-modules-document-management-list-view.component-BX-LW6ZY.mjs → acorex-modules-document-management-list-view.component-C7i4jI9h.mjs} +2 -2
  28. package/fesm2022/{acorex-modules-document-management-list-view.component-BX-LW6ZY.mjs.map → acorex-modules-document-management-list-view.component-C7i4jI9h.mjs.map} +1 -1
  29. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-CzKeJee7.mjs → acorex-modules-document-management-permission-definition.provider-ZQbJAb7x.mjs} +42 -2
  30. package/fesm2022/acorex-modules-document-management-permission-definition.provider-ZQbJAb7x.mjs.map +1 -0
  31. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DdNiN_KY.mjs → acorex-modules-document-management-rename-node-dialog.component-DHVn7RIv.mjs} +2 -2
  32. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DdNiN_KY.mjs.map → acorex-modules-document-management-rename-node-dialog.component-DHVn7RIv.mjs.map} +1 -1
  33. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BHt1AmMl.mjs → acorex-modules-document-management-small-icons-view.component-By36moe5.mjs} +2 -2
  34. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BHt1AmMl.mjs.map → acorex-modules-document-management-small-icons-view.component-By36moe5.mjs.map} +1 -1
  35. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-FB8Wld2S.mjs → acorex-modules-document-management-small-tiles-view.component-CO6MfsEU.mjs} +2 -2
  36. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-FB8Wld2S.mjs.map → acorex-modules-document-management-small-tiles-view.component-CO6MfsEU.mjs.map} +1 -1
  37. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  38. package/fesm2022/{acorex-modules-human-capital-management-acorex-modules-human-capital-management-Bf-tLXnX.mjs → acorex-modules-human-capital-management-acorex-modules-human-capital-management-WkDn4mpE.mjs} +10 -10
  39. package/fesm2022/{acorex-modules-human-capital-management-acorex-modules-human-capital-management-Bf-tLXnX.mjs.map → acorex-modules-human-capital-management-acorex-modules-human-capital-management-WkDn4mpE.mjs.map} +1 -1
  40. package/fesm2022/{acorex-modules-human-capital-management-employee-skill.entity-Bf59aJXl.mjs → acorex-modules-human-capital-management-employee-skill.entity-DsUYujPr.mjs} +2 -2
  41. package/fesm2022/{acorex-modules-human-capital-management-employee-skill.entity-Bf59aJXl.mjs.map → acorex-modules-human-capital-management-employee-skill.entity-DsUYujPr.mjs.map} +1 -1
  42. package/fesm2022/{acorex-modules-human-capital-management-employee.entity-CkCvNdte.mjs → acorex-modules-human-capital-management-employee.entity-CC-LIIki.mjs} +2 -2
  43. package/fesm2022/{acorex-modules-human-capital-management-employee.entity-CkCvNdte.mjs.map → acorex-modules-human-capital-management-employee.entity-CC-LIIki.mjs.map} +1 -1
  44. package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-CDsdURsN.mjs → acorex-modules-human-capital-management-employment-type.entity-Mgkdm2vo.mjs} +2 -2
  45. package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-CDsdURsN.mjs.map → acorex-modules-human-capital-management-employment-type.entity-Mgkdm2vo.mjs.map} +1 -1
  46. package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-D5iNotoP.mjs → acorex-modules-human-capital-management-leave-request.entity-BJyciZGL.mjs} +2 -2
  47. package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-D5iNotoP.mjs.map → acorex-modules-human-capital-management-leave-request.entity-BJyciZGL.mjs.map} +1 -1
  48. package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-DuLh4EF_.mjs → acorex-modules-human-capital-management-leave-type.entity-IewYlMLV.mjs} +2 -2
  49. package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-DuLh4EF_.mjs.map → acorex-modules-human-capital-management-leave-type.entity-IewYlMLV.mjs.map} +1 -1
  50. package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-DdsBZyVA.mjs → acorex-modules-human-capital-management-position-assignment.entity-BlKFRnO0.mjs} +2 -2
  51. package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-DdsBZyVA.mjs.map → acorex-modules-human-capital-management-position-assignment.entity-BlKFRnO0.mjs.map} +1 -1
  52. package/fesm2022/{acorex-modules-human-capital-management-skill-level.entity-BVFXdOYw.mjs → acorex-modules-human-capital-management-skill-level.entity-De1qKpcU.mjs} +2 -2
  53. package/fesm2022/{acorex-modules-human-capital-management-skill-level.entity-BVFXdOYw.mjs.map → acorex-modules-human-capital-management-skill-level.entity-De1qKpcU.mjs.map} +1 -1
  54. package/fesm2022/{acorex-modules-human-capital-management-skill.entity-Civ9PhC3.mjs → acorex-modules-human-capital-management-skill.entity-RrnBU0M5.mjs} +2 -2
  55. package/fesm2022/{acorex-modules-human-capital-management-skill.entity-Civ9PhC3.mjs.map → acorex-modules-human-capital-management-skill.entity-RrnBU0M5.mjs.map} +1 -1
  56. package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
  57. package/fesm2022/acorex-modules-locale-management.mjs +5 -0
  58. package/fesm2022/acorex-modules-locale-management.mjs.map +1 -1
  59. package/fesm2022/acorex-modules-organization-management.mjs +1 -1
  60. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  61. package/fesm2022/acorex-modules-report-management.mjs +1 -1
  62. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  63. package/fesm2022/acorex-modules-security-management.mjs +4 -2
  64. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  65. package/fesm2022/acorex-modules-settings-management.mjs +46 -2
  66. package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
  67. package/fesm2022/{acorex-modules-task-management-task-board.page-FDZgH0ir.mjs → acorex-modules-task-management-task-board.page-DThbrMLC.mjs} +3 -3
  68. package/fesm2022/{acorex-modules-task-management-task-board.page-FDZgH0ir.mjs.map → acorex-modules-task-management-task-board.page-DThbrMLC.mjs.map} +1 -1
  69. package/fesm2022/acorex-modules-task-management.mjs +35 -34
  70. package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
  71. package/package.json +1 -1
  72. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-Dgy-OSBs.mjs.map +0 -1
  73. package/fesm2022/acorex-modules-document-management-permission-definition.provider-CzKeJee7.mjs.map +0 -1
@@ -1,10 +1,10 @@
1
- import { AXPSettingDefinitionProviderService, AXPSettingService, AXP_SEARCH_PROVIDER, AXP_SEARCH_DEFINITION_PROVIDER } from '@acorex/platform/common';
1
+ import { AXPSettingDefinitionProviderService, AXPSettingService, AXP_SEARCH_PROVIDER, AXP_SEARCH_DEFINITION_PROVIDER, AXP_MENU_PROVIDER } from '@acorex/platform/common';
2
2
  import { AXPPageStatus } from '@acorex/platform/layout/builder';
3
3
  import * as i0 from '@angular/core';
4
4
  import { computed, inject, NgModule } from '@angular/core';
5
5
  import { signalStore, withState, withComputed, withMethods, patchState, withHooks } from '@ngrx/signals';
6
6
  import { get, isEqual, isNil, isEmpty, sortBy } from 'lodash-es';
7
- import { filter, merge } from 'rxjs';
7
+ import { filter, merge, firstValueFrom } from 'rxjs';
8
8
  import { AXToastService } from '@acorex/components/toast';
9
9
  import { AXTranslationService } from '@acorex/core/translation';
10
10
  import * as i1 from '@acorex/platform/core';
@@ -362,6 +362,40 @@ class AXPSettingSearchProvider {
362
362
  }
363
363
  }
364
364
 
365
+ class AXMMenuProvider {
366
+ constructor() {
367
+ this.sessionService = inject(AXPSessionService);
368
+ }
369
+ async provide(context) {
370
+ const appName = this.sessionService.application?.name;
371
+ const isAuthorized = await firstValueFrom(this.sessionService.isAuthorized$);
372
+ if (!isAuthorized) {
373
+ return;
374
+ }
375
+ context.find('user-profile').addItems([
376
+ {
377
+ text: `t('user.title', {scope: "settings"})`,
378
+ name: 'user-settings',
379
+ icon: 'fa-light fa-gear',
380
+ path: `/${this.sessionService.application?.name}/settings/user`,
381
+ },
382
+ ]);
383
+ context.addItems([
384
+ {
385
+ name: 'tenant-application-settings',
386
+ priority: 10000000,
387
+ text: `t('tenant.title', {scope: "settings"})`,
388
+ type: 'menu',
389
+ icon: 'fa-light fa-gear',
390
+ path: `/${appName}/settings/tenant`,
391
+ data: {
392
+ requiredPermission: 'admin',
393
+ },
394
+ },
395
+ ]);
396
+ }
397
+ }
398
+
365
399
  function routesFacory() {
366
400
  let routes = [
367
401
  {
@@ -407,6 +441,11 @@ class AXMSettingsManagementModule {
407
441
  multi: true,
408
442
  useFactory: routesFacory,
409
443
  },
444
+ {
445
+ provide: AXP_MENU_PROVIDER,
446
+ useClass: AXMMenuProvider,
447
+ multi: true,
448
+ },
410
449
  ] }); }
411
450
  }
412
451
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXMSettingsManagementModule, decorators: [{
@@ -431,6 +470,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
431
470
  multi: true,
432
471
  useFactory: routesFacory,
433
472
  },
473
+ {
474
+ provide: AXP_MENU_PROVIDER,
475
+ useClass: AXMMenuProvider,
476
+ multi: true,
477
+ },
434
478
  ],
435
479
  }]
436
480
  }], ctorParameters: () => [{ type: i1.AXPAppStartUpService }, { type: i0.Injector }] });
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-modules-settings-management.mjs","sources":["../tmp-esm2022/settings-management/lib/features/settings/convert-setting-data.js","../tmp-esm2022/settings-management/lib/features/settings/settings.viewmodel.js","../tmp-esm2022/settings-management/lib/features/settings/search-definition.provider.js","../tmp-esm2022/settings-management/lib/features/settings/search.provider.js","../tmp-esm2022/settings-management/lib/settings-management.module.js","../tmp-esm2022/settings-management/acorex-modules-settings-management.js"],"sourcesContent":["export function searchSettings(groups, search) {\n const sectionMatchResult = [];\n const settingMatchResult = [];\n const processedGroups = new Set();\n const createGroupIdentifier = (group) => `${group.name}-${group.title}`;\n const addGroupToResult = (group, sections, resultArray) => {\n const groupId = createGroupIdentifier(group);\n if (!processedGroups.has(groupId)) {\n resultArray.push({\n ...group,\n sections,\n groups: [], // Exclude nested groups\n });\n processedGroups.add(groupId);\n }\n };\n const processSections = (group, filterFn) => {\n const matchedSections = group.sections.filter(filterFn);\n if (matchedSections.length > 0) {\n addGroupToResult(group, matchedSections, sectionMatchResult);\n }\n };\n const processSettings = (group, filterFn) => {\n const matchedSections = group.sections\n .map(filterFn)\n .filter((section) => section !== null);\n if (matchedSections.length > 0) {\n addGroupToResult(group, matchedSections, settingMatchResult);\n }\n };\n const sectionMatches = (section) => section.name.toLowerCase().includes(search.toLowerCase()) ||\n section.title.toLowerCase().includes(search.toLowerCase());\n const filterSettings = (section) => {\n const matchedSettings = section.settings.filter((setting) => setting.name.toLowerCase().includes(search.toLowerCase()) ||\n setting.title.toLowerCase().includes(search.toLowerCase()));\n return matchedSettings.length > 0 ? { ...section, settings: matchedSettings } : null;\n };\n const processGroupRecursively = (group) => {\n processSections(group, sectionMatches); // Match sections with all settings\n processSettings(group, filterSettings); // Match settings within sections\n group.groups.forEach(processGroupRecursively); // Recurse into nested groups\n };\n groups.forEach(processGroupRecursively);\n return [...sectionMatchResult, ...settingMatchResult];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC1zZXR0aW5nLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvc2V0dGluZ3MtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NldHRpbmdzL2NvbnZlcnQtc2V0dGluZy1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBbUMsRUFBRSxNQUFjO0lBQ2hGLE1BQU0sa0JBQWtCLEdBQWdDLEVBQUUsQ0FBQztJQUMzRCxNQUFNLGtCQUFrQixHQUFnQyxFQUFFLENBQUM7SUFDM0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUUxQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBZ0MsRUFBVSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUUzRyxNQUFNLGdCQUFnQixHQUFHLENBQ3ZCLEtBQWdDLEVBQ2hDLFFBQXVDLEVBQ3ZDLFdBQXdDLEVBQ3hDLEVBQUU7UUFDRixNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2xDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ2YsR0FBRyxLQUFLO2dCQUNSLFFBQVE7Z0JBQ1IsTUFBTSxFQUFFLEVBQUUsRUFBRSx3QkFBd0I7YUFDckMsQ0FBQyxDQUFDO1lBQ0gsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsS0FBZ0MsRUFDaEMsUUFBMkQsRUFDM0QsRUFBRTtRQUNGLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMvQixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDL0QsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLENBQ3RCLEtBQWdDLEVBQ2hDLFFBQXNGLEVBQ3RGLEVBQUU7UUFDRixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsUUFBUTthQUNuQyxHQUFHLENBQUMsUUFBUSxDQUFDO2FBQ2IsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUEwQyxFQUFFLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2pGLElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMvQixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDL0QsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBb0MsRUFBVyxFQUFFLENBQ3ZFLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6RCxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUU3RCxNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQW9DLEVBQXNDLEVBQUU7UUFDbEcsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQzdDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDVixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekQsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQzdELENBQUM7UUFDRixPQUFPLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3ZGLENBQUMsQ0FBQztJQUVGLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFnQyxFQUFFLEVBQUU7UUFDbkUsZUFBZSxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLG1DQUFtQztRQUMzRSxlQUFlLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsaUNBQWlDO1FBQ3pFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyw2QkFBNkI7SUFDOUUsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRXhDLE9BQU8sQ0FBQyxHQUFHLGtCQUFrQixFQUFFLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztBQUN4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cCwgQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hTZXR0aW5ncyhncm91cHM6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBbXSwgc2VhcmNoOiBzdHJpbmcpOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwW10ge1xuICBjb25zdCBzZWN0aW9uTWF0Y2hSZXN1bHQ6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBbXSA9IFtdO1xuICBjb25zdCBzZXR0aW5nTWF0Y2hSZXN1bHQ6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBbXSA9IFtdO1xuICBjb25zdCBwcm9jZXNzZWRHcm91cHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBjb25zdCBjcmVhdGVHcm91cElkZW50aWZpZXIgPSAoZ3JvdXA6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXApOiBzdHJpbmcgPT4gYCR7Z3JvdXAubmFtZX0tJHtncm91cC50aXRsZX1gO1xuXG4gIGNvbnN0IGFkZEdyb3VwVG9SZXN1bHQgPSAoXG4gICAgZ3JvdXA6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXAsXG4gICAgc2VjdGlvbnM6IEFYUFNldHRpbmdEZWZpbml0aW9uU2VjdGlvbltdLFxuICAgIHJlc3VsdEFycmF5OiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwW11cbiAgKSA9PiB7XG4gICAgY29uc3QgZ3JvdXBJZCA9IGNyZWF0ZUdyb3VwSWRlbnRpZmllcihncm91cCk7XG4gICAgaWYgKCFwcm9jZXNzZWRHcm91cHMuaGFzKGdyb3VwSWQpKSB7XG4gICAgICByZXN1bHRBcnJheS5wdXNoKHtcbiAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgIHNlY3Rpb25zLFxuICAgICAgICBncm91cHM6IFtdLCAvLyBFeGNsdWRlIG5lc3RlZCBncm91cHNcbiAgICAgIH0pO1xuICAgICAgcHJvY2Vzc2VkR3JvdXBzLmFkZChncm91cElkKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcHJvY2Vzc1NlY3Rpb25zID0gKFxuICAgIGdyb3VwOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwLFxuICAgIGZpbHRlckZuOiAoc2VjdGlvbjogQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uKSA9PiBib29sZWFuXG4gICkgPT4ge1xuICAgIGNvbnN0IG1hdGNoZWRTZWN0aW9ucyA9IGdyb3VwLnNlY3Rpb25zLmZpbHRlcihmaWx0ZXJGbik7XG4gICAgaWYgKG1hdGNoZWRTZWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBhZGRHcm91cFRvUmVzdWx0KGdyb3VwLCBtYXRjaGVkU2VjdGlvbnMsIHNlY3Rpb25NYXRjaFJlc3VsdCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHByb2Nlc3NTZXR0aW5ncyA9IChcbiAgICBncm91cDogQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cCxcbiAgICBmaWx0ZXJGbjogKHNlY3Rpb246IEFYUFNldHRpbmdEZWZpbml0aW9uU2VjdGlvbikgPT4gQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uIHwgbnVsbFxuICApID0+IHtcbiAgICBjb25zdCBtYXRjaGVkU2VjdGlvbnMgPSBncm91cC5zZWN0aW9uc1xuICAgICAgLm1hcChmaWx0ZXJGbilcbiAgICAgIC5maWx0ZXIoKHNlY3Rpb24pOiBzZWN0aW9uIGlzIEFYUFNldHRpbmdEZWZpbml0aW9uU2VjdGlvbiA9PiBzZWN0aW9uICE9PSBudWxsKTtcbiAgICBpZiAobWF0Y2hlZFNlY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGFkZEdyb3VwVG9SZXN1bHQoZ3JvdXAsIG1hdGNoZWRTZWN0aW9ucywgc2V0dGluZ01hdGNoUmVzdWx0KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgc2VjdGlvbk1hdGNoZXMgPSAoc2VjdGlvbjogQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uKTogYm9vbGVhbiA9PlxuICAgIHNlY3Rpb24ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKSB8fFxuICAgIHNlY3Rpb24udGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSk7XG5cbiAgY29uc3QgZmlsdGVyU2V0dGluZ3MgPSAoc2VjdGlvbjogQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uKTogQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uIHwgbnVsbCA9PiB7XG4gICAgY29uc3QgbWF0Y2hlZFNldHRpbmdzID0gc2VjdGlvbi5zZXR0aW5ncy5maWx0ZXIoXG4gICAgICAoc2V0dGluZykgPT5cbiAgICAgICAgc2V0dGluZy5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoLnRvTG93ZXJDYXNlKCkpIHx8XG4gICAgICAgIHNldHRpbmcudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSlcbiAgICApO1xuICAgIHJldHVybiBtYXRjaGVkU2V0dGluZ3MubGVuZ3RoID4gMCA/IHsgLi4uc2VjdGlvbiwgc2V0dGluZ3M6IG1hdGNoZWRTZXR0aW5ncyB9IDogbnVsbDtcbiAgfTtcblxuICBjb25zdCBwcm9jZXNzR3JvdXBSZWN1cnNpdmVseSA9IChncm91cDogQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cCkgPT4ge1xuICAgIHByb2Nlc3NTZWN0aW9ucyhncm91cCwgc2VjdGlvbk1hdGNoZXMpOyAvLyBNYXRjaCBzZWN0aW9ucyB3aXRoIGFsbCBzZXR0aW5nc1xuICAgIHByb2Nlc3NTZXR0aW5ncyhncm91cCwgZmlsdGVyU2V0dGluZ3MpOyAvLyBNYXRjaCBzZXR0aW5ncyB3aXRoaW4gc2VjdGlvbnNcbiAgICBncm91cC5ncm91cHMuZm9yRWFjaChwcm9jZXNzR3JvdXBSZWN1cnNpdmVseSk7IC8vIFJlY3Vyc2UgaW50byBuZXN0ZWQgZ3JvdXBzXG4gIH07XG5cbiAgZ3JvdXBzLmZvckVhY2gocHJvY2Vzc0dyb3VwUmVjdXJzaXZlbHkpO1xuXG4gIHJldHVybiBbLi4uc2VjdGlvbk1hdGNoUmVzdWx0LCAuLi5zZXR0aW5nTWF0Y2hSZXN1bHRdO1xufVxuIl19","import { AXPSettingDefinitionProviderService, AXPSettingService } from \"@acorex/platform/common\";\nimport { AXPPageStatus } from \"@acorex/platform/layout/builder\";\nimport { computed, inject } from \"@angular/core\";\nimport { signalStore, withMethods, withComputed, withState, withHooks, patchState } from \"@ngrx/signals\";\nimport { get, isEmpty, isEqual, isNil } from \"lodash-es\";\nimport { filter, merge } from \"rxjs\";\nimport { searchSettings } from \"./convert-setting-data\";\nimport { AXToastService } from \"@acorex/components/toast\";\nimport { AXTranslationService } from \"@acorex/core/translation\";\nimport { resolvePlatformScopeName } from \"@acorex/platform/core\";\nimport { AXLocaleService } from \"@acorex/core/locale\";\nimport { AXPLayoutThemeService } from \"@acorex/platform/themes/shared\";\nexport const AXPSettingsViewModel = signalStore(withState(() => ({\n groups: [],\n activateGroup: undefined,\n scope: 'U',\n //\n searchExpression: null,\n //\n previousContext: {},\n context: {},\n //\n status: AXPPageStatus.Processing,\n form: null,\n})), withComputed((store, layout = inject(AXPLayoutThemeService)) => ({\n searchResults: computed(() => searchSettings(store.groups(), store.searchExpression())),\n hasActivateGroup: computed(() => store.activateGroup() != null),\n showGroups: computed(() => store.activateGroup() != null && layout.isLarge()),\n scopeTitle: computed(() => {\n return `${resolvePlatformScopeName(store.scope())}.title`;\n }),\n scopeDescription: computed(() => {\n return `${resolvePlatformScopeName(store.scope())}.description`;\n }),\n isSearching: computed(() => store.searchExpression() != null),\n isBusy: computed(() => store.status() == AXPPageStatus.Processing),\n isSaving: computed(() => store.status() == AXPPageStatus.Submitting),\n isLoaded: computed(() => store.groups().length > 0),\n})), withMethods((store, settingDefinitionService = inject(AXPSettingDefinitionProviderService), settingValueService = inject(AXPSettingService), toastService = inject(AXToastService), translateService = inject(AXTranslationService)) => ({\n registerForm(form) {\n patchState(store, {\n form: form,\n });\n },\n async load(scope) {\n patchState(store, {\n scope: scope,\n status: AXPPageStatus.Processing,\n });\n //\n const groups = await settingDefinitionService.getListAsync(scope);\n patchState(store, {\n groups: groups,\n });\n const currentContext = await settingValueService.scope(scope).all();\n const defaults = await settingValueService.scope(scope).defaultValues();\n patchState(store, {\n context: { ...defaults, ...currentContext },\n });\n patchState(store, {\n previousContext: store.context(),\n status: AXPPageStatus.Rendered,\n });\n },\n async reload() {\n await settingDefinitionService.reload();\n const groups = await settingDefinitionService.getListAsync(store.scope());\n const oldActivateGroupName = store.activateGroup()?.name;\n patchState(store, {\n groups: groups,\n activateGroup: undefined,\n });\n if (oldActivateGroupName) {\n this.setActivateGroupByName(oldActivateGroupName);\n }\n },\n updateContext(context) {\n patchState(store, {\n context: { ...store.context(), ...context },\n });\n },\n updatePreviousContext(context) {\n patchState(store, {\n previousContext: { ...store.previousContext(), ...context },\n });\n },\n setActivateGroup(group) {\n patchState(store, {\n activateGroup: group,\n });\n },\n unloadActivateGroup() {\n patchState(store, {\n activateGroup: undefined,\n });\n },\n setActivateGroupByName(name) {\n const group = store.groups().find(g => g.name === name);\n if (group) {\n patchState(store, {\n activateGroup: group,\n });\n }\n },\n //\n async search(expression) {\n if (!isNil(expression) && !isEmpty(expression)) {\n patchState(store, {\n searchExpression: expression,\n });\n }\n else {\n patchState(store, {\n searchExpression: null,\n });\n }\n },\n clearSearch() {\n patchState(store, {\n searchExpression: null,\n });\n },\n isDirty() {\n return store.groups()?.some((group) => group.sections.some((sec) => sec.settings.some((setting) => {\n const currentValue = get(store.context(), setting.name);\n const previousValue = get(store.previousContext(), setting.name);\n return !isEqual(currentValue, previousValue);\n }))) || false;\n },\n async apply() {\n const i18nScope = \"settings\";\n try {\n if (await store.form() && this.isDirty()) {\n const form = store.form();\n form.resetErrors();\n //\n patchState(store, {\n status: AXPPageStatus.Submitting,\n });\n const formResult = await form.validate();\n if (!formResult.result) {\n toastService.show({\n color: 'danger',\n title: await translateService.translateAsync('actions.apply.invalid.title', { scope: i18nScope }),\n content: await translateService.translateAsync('actions.apply.invalid.message', { scope: i18nScope }),\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n patchState(store, {\n status: AXPPageStatus.Error,\n });\n return false;\n }\n await settingValueService.scope(store.scope()).set(store.context());\n // Show success notification\n toastService.show({\n color: 'success',\n title: await translateService.translateAsync('actions.apply.success.title', { scope: i18nScope }),\n content: await translateService.translateAsync('actions.apply.success.message', { scope: i18nScope }),\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n patchState(store, {\n status: AXPPageStatus.Submitted,\n });\n return true;\n }\n return false;\n }\n catch (error) {\n toastService.show({\n color: 'danger',\n title: await translateService.translateAsync('actions.apply.error.title', { scope: i18nScope }),\n content: await translateService.translateAsync('actions.apply.error.message', { scope: i18nScope }),\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n patchState(store, {\n status: AXPPageStatus.Error,\n });\n return false;\n }\n },\n async discard() {\n const form = store.form();\n form.resetErrors();\n //\n patchState(store, {\n status: AXPPageStatus.Rendered,\n });\n patchState(store, {\n context: store.previousContext(),\n });\n },\n async resetToDefault() {\n // Update the context with the defaults\n const defaults = await settingValueService.scope(store.scope()).defaultValues();\n patchState(store, {\n context: defaults,\n });\n //\n const result = await this.apply();\n if (!result) {\n this.discard();\n }\n },\n})), withHooks((store, settingValueService = inject(AXPSettingService), translationService = inject(AXTranslationService), localeService = inject(AXLocaleService)) => ({\n async onInit() {\n //\n settingValueService.onChanged.pipe(filter((c) => c.scope == store.scope())).subscribe((e) => {\n e.keys.forEach((k) => {\n const currentValue = e.values[k];\n const contextValue = get(store.context(), k);\n const previousValue = get(store.previousContext(), k);\n // Update only if there are actual changes\n if (!isEqual(previousValue, currentValue) || !isEqual(currentValue, contextValue)) {\n patchState(store, {\n previousContext: {\n ...store.previousContext(),\n [k]: currentValue,\n }\n });\n patchState(store, {\n context: {\n ...store.context(),\n [k]: currentValue,\n }\n });\n }\n });\n });\n //\n merge(translationService.langChanges$, localeService.profileChanged$).subscribe(async () => {\n if (store.isLoaded()) {\n await store.reload();\n }\n });\n },\n onDestroy() { },\n})));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Mudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3NldHRpbmdzLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zZXR0aW5ncy9zZXR0aW5ncy52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE2QixtQ0FBbUMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBdUIsd0JBQXdCLEVBQW9CLE1BQU0sdUJBQXVCLENBQUM7QUFDeEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSXZFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLFdBQVcsQ0FDM0MsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFD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QUFFO3dCQUNkLGVBQWUsRUFBRTs0QkFDYixHQUFHLEtBQUssQ0FBQyxlQUFlLEVBQUU7NEJBQzFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWTt5QkFDcEI7cUJBQ0osQ0FBQyxDQUFDO29CQUNILFVBQVUsQ0FBQyxLQUFLLEVBQUU7d0JBQ2QsT0FBTyxFQUFFOzRCQUNMLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRTs0QkFDbEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZO3lCQUNwQjtxQkFDSixDQUFDLENBQUM7Z0JBQ1AsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFO1FBQ0YsS0FBSyxDQUNELGtCQUFrQixDQUFDLFlBQVksRUFDL0IsYUFBYSxDQUFDLGVBQWUsQ0FDaEMsQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDbkIsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUNELFNBQVMsS0FBSyxDQUFDO0NBQ2xCLENBQUMsQ0FBQyxDQUVOLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwLCBBWFBTZXR0aW5nRGVmaW5pdGlvblByb3ZpZGVyU2VydmljZSwgQVhQU2V0dGluZ1NlcnZpY2UgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9jb21tb25cIjtcbmltcG9ydCB7IEFYUFBhZ2VTdGF0dXMgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlclwiO1xuaW1wb3J0IHsgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBzaWduYWxTdG9yZSwgd2l0aE1ldGhvZHMsIHdpdGhDb21wdXRlZCwgd2l0aFN0YXRlLCB3aXRoSG9va3MsIHBhdGNoU3RhdGUgfSBmcm9tIFwiQG5ncngvc2lnbmFsc1wiO1xuaW1wb3J0IHsgZ2V0LCBpc0VtcHR5LCBpc0VxdWFsLCBpc05pbCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IGZpbHRlciwgbWVyZ2UgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgc2VhcmNoU2V0dGluZ3MgfSBmcm9tIFwiLi9jb252ZXJ0LXNldHRpbmctZGF0YVwiO1xuaW1wb3J0IHsgQVhGb3JtQ29tcG9uZW50IH0gZnJvbSBcIkBhY29yZXgvY29tcG9uZW50cy9mb3JtXCI7XG5pbXBvcnQgeyBBWFRvYXN0U2VydmljZSB9IGZyb20gXCJAYWNvcmV4L2NvbXBvbmVudHMvdG9hc3RcIjtcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBhY29yZXgvY29yZS90cmFuc2xhdGlvblwiO1xuaW1wb3J0IHsgQVhQUGxhdGZvcm1TY29wZUtleSwgcmVzb2x2ZVBsYXRmb3JtU2NvcGVOYW1lLCBBWFBQbGF0Zm9ybVNjb3BlIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vY29yZVwiO1xuaW1wb3J0IHsgQVhMb2NhbGVTZXJ2aWNlIH0gZnJvbSBcIkBhY29yZXgvY29yZS9sb2NhbGVcIjtcbmltcG9ydCB7IEFYUExheW91dFRoZW1lU2VydmljZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9zaGFyZWRcIjtcblxuXG5cbmV4cG9ydCBjb25zdCBBWFBTZXR0aW5nc1ZpZXdNb2RlbCA9IHNpZ25hbFN0b3JlKFxuICAgIHdpdGhTdGF0ZSgoKSA9PiAoe1xuICAgICAgICBncm91cHM6IFtdIGFzIEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBbXSxcbiAgICAgICAgYWN0aXZhdGVHcm91cDogdW5kZWZpbmVkIGFzIEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXAgfCB1bmRlZmluZWQsXG4gICAgICAgIHNjb3BlOiAnVScgYXMgQVhQUGxhdGZvcm1TY29wZUtleSxcbiAgICAgICAgLy9cbiAgICAgICAgc2VhcmNoRXhwcmVzc2lvbjogbnVsbCBhcyBzdHJpbmcgfCBudWxsLFxuICAgICAgICAvL1xuICAgICAgICBwcmV2aW91c0NvbnRleHQ6IHt9IGFzIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICAgIGNvbnRleHQ6IHt9IGFzIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICAgIC8vXG4gICAgICAgIHN0YXR1czogQVhQUGFnZVN0YXR1cy5Qcm9jZXNzaW5nLFxuICAgICAgICBmb3JtOiBudWxsIGFzIEFYRm9ybUNvbXBvbmVudCB8IG51bGwsXG4gICAgfSkpLFxuICAgIHdpdGhDb21wdXRlZCgoc3RvcmUsIGxheW91dCA9IGluamVjdChBWFBMYXlvdXRUaGVtZVNlcnZpY2UpKSA9PiAoe1xuICAgICAgICBzZWFyY2hSZXN1bHRzOiBjb21wdXRlZCgoKSA9PiBzZWFyY2hTZXR0aW5ncyhzdG9yZS5ncm91cHMoKSwgc3RvcmUuc2VhcmNoRXhwcmVzc2lvbigpISkpLFxuICAgICAgICBoYXNBY3RpdmF0ZUdyb3VwOiBjb21wdXRlZCgoKSA9PiBzdG9yZS5hY3RpdmF0ZUdyb3VwKCkgIT0gbnVsbCksXG4gICAgICAgIHNob3dHcm91cHM6IGNvbXB1dGVkKCgpID0+IHN0b3JlLmFjdGl2YXRlR3JvdXAoKSAhPSBudWxsICYmIGxheW91dC5pc0xhcmdlKCkpLFxuICAgICAgICBzY29wZVRpdGxlOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYCR7cmVzb2x2ZVBsYXRmb3JtU2NvcGVOYW1lKHN0b3JlLnNjb3BlKCkpfS50aXRsZWA7XG4gICAgICAgIH0pLFxuICAgICAgICBzY29wZURlc2NyaXB0aW9uOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYCR7cmVzb2x2ZVBsYXRmb3JtU2NvcGVOYW1lKHN0b3JlLnNjb3BlKCkpfS5kZXNjcmlwdGlvbmA7XG4gICAgICAgIH0pLFxuICAgICAgICBpc1NlYXJjaGluZzogY29tcHV0ZWQoKCkgPT4gc3RvcmUuc2VhcmNoRXhwcmVzc2lvbigpICE9IG51bGwpLFxuICAgICAgICBpc0J1c3k6IGNvbXB1dGVkKCgpID0+IHN0b3JlLnN0YXR1cygpID09IEFYUFBhZ2VTdGF0dXMuUHJvY2Vzc2luZyksXG4gICAgICAgIGlzU2F2aW5nOiBjb21wdXRlZCgoKSA9PiBzdG9yZS5zdGF0dXMoKSA9PSBBWFBQYWdlU3RhdHVzLlN1Ym1pdHRpbmcpLFxuICAgICAgICBpc0xvYWRlZDogY29tcHV0ZWQoKCkgPT4gc3RvcmUuZ3JvdXBzKCkubGVuZ3RoID4gMCksXG4gICAgfSkpLFxuICAgIHdpdGhNZXRob2RzKFxuICAgICAgICAoc3RvcmUsXG4gICAgICAgICAgICBzZXR0aW5nRGVmaW5pdGlvblNlcnZpY2UgPSBpbmplY3QoQVhQU2V0dGluZ0RlZmluaXRpb25Qcm92aWRlclNlcnZpY2UpLFxuICAgICAgICAgICAgc2V0dGluZ1ZhbHVlU2VydmljZSA9IGluamVjdChBWFBTZXR0aW5nU2VydmljZSksXG4gICAgICAgICAgICB0b2FzdFNlcnZpY2UgPSBpbmplY3QoQVhUb2FzdFNlcnZpY2UpLFxuICAgICAgICAgICAgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSksXG4gICAgICAgICkgPT4gKHtcbiAgICAgICAgICAgIHJlZ2lzdGVyRm9ybShmb3JtOiBBWEZvcm1Db21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm06IGZvcm0sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhc3luYyBsb2FkKHNjb3BlOiBBWFBQbGF0Zm9ybVNjb3BlS2V5KSB7XG4gICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICBzY29wZTogc2NvcGUsXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogQVhQUGFnZVN0YXR1cy5Qcm9jZXNzaW5nLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBhd2FpdCBzZXR0aW5nRGVmaW5pdGlvblNlcnZpY2UuZ2V0TGlzdEFzeW5jKHNjb3BlKTtcbiAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgIGdyb3VwczogZ3JvdXBzLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudENvbnRleHQgPSBhd2FpdCBzZXR0aW5nVmFsdWVTZXJ2aWNlLnNjb3BlKHNjb3BlIGFzIEFYUFBsYXRmb3JtU2NvcGUpLmFsbCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRzID0gYXdhaXQgc2V0dGluZ1ZhbHVlU2VydmljZS5zY29wZShzY29wZSBhcyBBWFBQbGF0Zm9ybVNjb3BlKS5kZWZhdWx0VmFsdWVzKCk7XG4gICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7IC4uLmRlZmF1bHRzLCAuLi5jdXJyZW50Q29udGV4dCB9LFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NvbnRleHQ6IHN0b3JlLmNvbnRleHQoKSxcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBBWFBQYWdlU3RhdHVzLlJlbmRlcmVkLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXN5bmMgcmVsb2FkKCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHNldHRpbmdEZWZpbml0aW9uU2VydmljZS5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBhd2FpdCBzZXR0aW5nRGVmaW5pdGlvblNlcnZpY2UuZ2V0TGlzdEFzeW5jKHN0b3JlLnNjb3BlKCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9sZEFjdGl2YXRlR3JvdXBOYW1lID0gc3RvcmUuYWN0aXZhdGVHcm91cCgpPy5uYW1lO1xuICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBzOiBncm91cHMsXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlR3JvdXA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIGlmIChvbGRBY3RpdmF0ZUdyb3VwTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEFjdGl2YXRlR3JvdXBCeU5hbWUob2xkQWN0aXZhdGVHcm91cE5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGVDb250ZXh0KGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgLi4uc3RvcmUuY29udGV4dCgpLCAuLi5jb250ZXh0IH0sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGVQcmV2aW91c0NvbnRleHQoY29udGV4dDogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDb250ZXh0OiB7IC4uLnN0b3JlLnByZXZpb3VzQ29udGV4dCgpLCAuLi5jb250ZXh0IH0sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRBY3RpdmF0ZUdyb3VwKGdyb3VwOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwKSB7XG4gICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZUdyb3VwOiBncm91cCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVubG9hZEFjdGl2YXRlR3JvdXAoKSB7XG4gICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZUdyb3VwOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRBY3RpdmF0ZUdyb3VwQnlOYW1lKG5hbWU6IHN0cmluZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gc3RvcmUuZ3JvdXBzKCkuZmluZChnID0+IGcubmFtZSA9PT0gbmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKGdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlR3JvdXA6IGdyb3VwLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgYXN5bmMgc2VhcmNoKGV4cHJlc3Npb246IHN0cmluZykge1xuICAgICAgICAgICAgICAgIGlmICghaXNOaWwoZXhwcmVzc2lvbikgJiYgIWlzRW1wdHkoZXhwcmVzc2lvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoRXhwcmVzc2lvbjogZXhwcmVzc2lvbixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEV4cHJlc3Npb246IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsZWFyU2VhcmNoKCkge1xuICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoRXhwcmVzc2lvbjogbnVsbCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlzRGlydHkoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0b3JlLmdyb3VwcygpPy5zb21lKChncm91cCkgPT5cbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAuc2VjdGlvbnMuc29tZSgoc2VjKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VjLnNldHRpbmdzLnNvbWUoKHNldHRpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBnZXQoc3RvcmUuY29udGV4dCgpLCBzZXR0aW5nLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBnZXQoc3RvcmUucHJldmlvdXNDb250ZXh0KCksIHNldHRpbmcubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFpc0VxdWFsKGN1cnJlbnRWYWx1ZSwgcHJldmlvdXNWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKSB8fCBmYWxzZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFzeW5jIGFwcGx5KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGkxOG5TY29wZSA9IFwic2V0dGluZ3NcIjtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXdhaXQgc3RvcmUuZm9ybSgpICYmIHRoaXMuaXNEaXJ0eSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtID0gc3RvcmUuZm9ybSgpITtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0ucmVzZXRFcnJvcnMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBBWFBQYWdlU3RhdHVzLlN1Ym1pdHRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1SZXN1bHQgPSBhd2FpdCBmb3JtLnZhbGlkYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZvcm1SZXN1bHQucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBhd2FpdCB0cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdhY3Rpb25zLmFwcGx5LmludmFsaWQudGl0bGUnLCB7IHNjb3BlOiBpMThuU2NvcGUgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF3YWl0IHRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ2FjdGlvbnMuYXBwbHkuaW52YWxpZC5tZXNzYWdlJywgeyBzY29wZTogaTE4blNjb3BlIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZU91dDogMzAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZU91dFByb2dyZXNzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBBWFBQYWdlU3RhdHVzLkVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNldHRpbmdWYWx1ZVNlcnZpY2Uuc2NvcGUoc3RvcmUuc2NvcGUoKSBhcyBBWFBQbGF0Zm9ybVNjb3BlKS5zZXQoc3RvcmUuY29udGV4dCgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNob3cgc3VjY2VzcyBub3RpZmljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBhd2FpdCB0cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdhY3Rpb25zLmFwcGx5LnN1Y2Nlc3MudGl0bGUnLCB7IHNjb3BlOiBpMThuU2NvcGUgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXdhaXQgdHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYygnYWN0aW9ucy5hcHBseS5zdWNjZXNzLm1lc3NhZ2UnLCB7IHNjb3BlOiBpMThuU2NvcGUgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lT3V0OiAzMDAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVPdXRQcm9ncmVzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogQVhQUGFnZVN0YXR1cy5TdWJtaXR0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB0b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogYXdhaXQgdHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYygnYWN0aW9ucy5hcHBseS5lcnJvci50aXRsZScsIHsgc2NvcGU6IGkxOG5TY29wZSB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF3YWl0IHRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ2FjdGlvbnMuYXBwbHkuZXJyb3IubWVzc2FnZScsIHsgc2NvcGU6IGkxOG5TY29wZSB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVPdXQ6IDMwMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lT3V0UHJvZ3Jlc3M6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IEFYUFBhZ2VTdGF0dXMuRXJyb3IsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXN5bmMgZGlzY2FyZCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtID0gc3RvcmUuZm9ybSgpITtcbiAgICAgICAgICAgICAgICBmb3JtLnJlc2V0RXJyb3JzKCk7XG4gICAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogQVhQUGFnZVN0YXR1cy5SZW5kZXJlZCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogc3RvcmUucHJldmlvdXNDb250ZXh0KCksXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhc3luYyByZXNldFRvRGVmYXVsdCgpIHtcbiAgICAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNvbnRleHQgIHdpdGggdGhlIGRlZmF1bHRzXG4gICAgICAgICAgICAgICAgY29uc3QgZGVmYXVsdHMgPSBhd2FpdCBzZXR0aW5nVmFsdWVTZXJ2aWNlLnNjb3BlKHN0b3JlLnNjb3BlKCkgYXMgQVhQUGxhdGZvcm1TY29wZSkuZGVmYXVsdFZhbHVlcygpO1xuICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogZGVmYXVsdHMsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAvL1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYXBwbHkoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2NhcmQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KSksXG4gICAgd2l0aEhvb2tzKChzdG9yZSxcbiAgICAgICAgc2V0dGluZ1ZhbHVlU2VydmljZSA9IGluamVjdChBWFBTZXR0aW5nU2VydmljZSksXG4gICAgICAgIHRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSksXG4gICAgICAgIGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoQVhMb2NhbGVTZXJ2aWNlKVxuICAgICkgPT4gKHtcbiAgICAgICAgYXN5bmMgb25Jbml0KCkge1xuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIHNldHRpbmdWYWx1ZVNlcnZpY2Uub25DaGFuZ2VkLnBpcGUoZmlsdGVyKChjKSA9PiBjLnNjb3BlID09IHN0b3JlLnNjb3BlKCkpKS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgICAgICAgICBlLmtleXMuZm9yRWFjaCgoaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBlLnZhbHVlc1trXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGV4dFZhbHVlID0gZ2V0KHN0b3JlLmNvbnRleHQoKSwgayk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBnZXQoc3RvcmUucHJldmlvdXNDb250ZXh0KCksIGspO1xuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgb25seSBpZiB0aGVyZSBhcmUgYWN0dWFsIGNoYW5nZXNcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0VxdWFsKHByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSkgfHwgIWlzRXF1YWwoY3VycmVudFZhbHVlLCBjb250ZXh0VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnN0b3JlLnByZXZpb3VzQ29udGV4dCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba106IGN1cnJlbnRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnN0b3JlLmNvbnRleHQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tdOiBjdXJyZW50VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uU2VydmljZS5sYW5nQ2hhbmdlcyQsXG4gICAgICAgICAgICAgICAgbG9jYWxlU2VydmljZS5wcm9maWxlQ2hhbmdlZCRcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmUuaXNMb2FkZWQoKSkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzdG9yZS5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB9LFxuICAgICAgICBvbkRlc3Ryb3koKSB7IH0sXG4gICAgfSkpXG5cbikiXX0=","export class AXPSettingSearchDefinitionProvider {\n async provide(context) {\n context.addDefinition('setting', 'Setting', 'setting', 'fa-solid fa-gear', 3, {\n format: {\n id: '{{data.name}}',\n },\n actions: [\n {\n name: 'navigate',\n type: 'view',\n priority: 'primary',\n },\n ],\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlZmluaXRpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvc2V0dGluZ3MtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NldHRpbmdzL3NlYXJjaC1kZWZpbml0aW9uLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxrQ0FBa0M7SUFDN0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQztRQUN2RCxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUMsRUFBRTtZQUM1RSxNQUFNLEVBQUU7Z0JBQ04sRUFBRSxFQUFFLGVBQWU7YUFDcEI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLElBQUksRUFBRSxNQUFNO29CQUNaLFFBQVEsRUFBRSxTQUFTO2lCQUNwQjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyLCBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuXG5leHBvcnQgY2xhc3MgQVhQU2V0dGluZ1NlYXJjaERlZmluaXRpb25Qcm92aWRlciBpbXBsZW1lbnRzIEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlciB7XG4gIGFzeW5jIHByb3ZpZGUoY29udGV4dDogQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnRleHQuYWRkRGVmaW5pdGlvbignc2V0dGluZycsICdTZXR0aW5nJywgJ3NldHRpbmcnLCAnZmEtc29saWQgZmEtZ2VhcicsIDMsIHtcbiAgICAgIGZvcm1hdDoge1xuICAgICAgICBpZDogJ3t7ZGF0YS5uYW1lfX0nLFxuICAgICAgfSxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICduYXZpZ2F0ZScsXG4gICAgICAgICAgdHlwZTogJ3ZpZXcnLFxuICAgICAgICAgIHByaW9yaXR5OiAncHJpbWFyeScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPSettingDefinitionProviderService, } from '@acorex/platform/common';\nimport { AXPPlatformScope } from '@acorex/platform/core';\nimport { inject } from '@angular/core';\nimport { sortBy } from 'lodash-es';\nexport class AXPSettingSearchProvider {\n constructor() {\n this.settingService = inject(AXPSettingDefinitionProviderService);\n this.sessionService = inject(AXPSessionService);\n }\n async search(text) {\n const groupsSetting = this.settingService.getList(AXPPlatformScope.User);\n if (groupsSetting.length == 0) {\n groupsSetting.push(...(await this.settingService.getListAsync(AXPPlatformScope.User)));\n }\n // Step 2: Flatten settings from groups\n const allSettings = [];\n const extractSettings = (group) => {\n for (const section of group.sections) {\n allSettings.push(...section.settings.map((x) => ({ ...x, group })));\n }\n for (const subGroup of group.groups) {\n extractSettings(subGroup); // Recursive extraction\n }\n };\n for (const group of groupsSetting) {\n extractSettings(group);\n }\n // Step 3: Search settings by title\n const searchResults = allSettings.filter((setting) => setting.title.toLowerCase().includes(text.toLowerCase()));\n return sortBy(searchResults.map((setting) => ({\n title: setting.title,\n description: setting.description,\n group: 'setting',\n data: setting,\n command: {\n name: 'navigate',\n options: {\n type: 'router',\n options: {\n path: `/${this.sessionService.application?.name}/settings/user/${setting.group.name}#${setting.title}`,\n },\n }\n },\n parent: setting.group\n ? {\n title: setting.group.title,\n data: setting.group,\n }\n : undefined,\n })), ['title']);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3NldHRpbmdzLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zZXR0aW5ncy9zZWFyY2gucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUtMLG1DQUFtQyxHQUNwQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQU1uQyxNQUFNLE9BQU8sd0JBQXdCO0lBQXJDO1FBQ1UsbUJBQWMsR0FBRyxNQUFNLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUM3RCxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBbURyRCxDQUFDO0lBakRDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBWTtRQUN2QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RSxJQUFJLGFBQWEsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDOUIsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekYsQ0FBQztRQUVELHVDQUF1QztRQUN2QyxNQUFNLFdBQVcsR0FBaUMsRUFBRSxDQUFDO1FBQ3JELE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBZ0MsRUFBRSxFQUFFO1lBQzNELEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNyQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQWlDLENBQUEsQ0FBQyxDQUFDLENBQUM7WUFDcEcsQ0FBQztZQUNELEtBQUssTUFBTSxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyx1QkFBdUI7WUFDcEQsQ0FBQztRQUNILENBQUMsQ0FBQztRQUVGLEtBQUssTUFBTSxLQUFLLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFFRCxtQ0FBbUM7UUFDbkMsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoSCxPQUFPLE1BQU0sQ0FDWCxhQUFhLENBQUMsR0FBRyxDQUFrQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1lBQ2hDLEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxPQUFPO1lBQ2IsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxVQUFVO2dCQUNoQixPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsT0FBTyxFQUFFO3dCQUNQLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLElBQUksa0JBQWtCLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7cUJBQ3ZHO2lCQUNGO2FBQ0Y7WUFDRCxNQUFNLEVBQUUsT0FBTyxDQUFDLEtBQUs7Z0JBQ25CLENBQUMsQ0FBQztvQkFDQSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLO29CQUMxQixJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQWtDO2lCQUNqRDtnQkFDRCxDQUFDLENBQUMsU0FBUztTQUNkLENBQUMsQ0FBQyxFQUNILENBQUMsT0FBTyxDQUFDLENBQ1YsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7XG4gIEFYUFNlYXJjaFByb3ZpZGVyLFxuICBBWFBTZWFyY2hSZXN1bHQsXG4gIEFYUFNldHRpbmdEZWZpbml0aW9uLFxuICBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwLFxuICBBWFBTZXR0aW5nRGVmaW5pdGlvblByb3ZpZGVyU2VydmljZSxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQUGxhdGZvcm1TY29wZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNvcnRCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQU2V0dGluZ0RlZmluaXRpb25TZWFyY2ggZXh0ZW5kcyBBWFBTZXR0aW5nRGVmaW5pdGlvbiB7XG4gIGdyb3VwOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwO1xufVxuXG5leHBvcnQgY2xhc3MgQVhQU2V0dGluZ1NlYXJjaFByb3ZpZGVyIGltcGxlbWVudHMgQVhQU2VhcmNoUHJvdmlkZXIge1xuICBwcml2YXRlIHNldHRpbmdTZXJ2aWNlID0gaW5qZWN0KEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZSA9IGluamVjdChBWFBTZXNzaW9uU2VydmljZSk7XG5cbiAgYXN5bmMgc2VhcmNoKHRleHQ6IHN0cmluZyk6IFByb21pc2U8QVhQU2VhcmNoUmVzdWx0W10+IHtcbiAgICBjb25zdCBncm91cHNTZXR0aW5nID0gdGhpcy5zZXR0aW5nU2VydmljZS5nZXRMaXN0KEFYUFBsYXRmb3JtU2NvcGUuVXNlcik7XG4gICAgaWYgKGdyb3Vwc1NldHRpbmcubGVuZ3RoID09IDApIHtcbiAgICAgIGdyb3Vwc1NldHRpbmcucHVzaCguLi4oYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5nZXRMaXN0QXN5bmMoQVhQUGxhdGZvcm1TY29wZS5Vc2VyKSkpO1xuICAgIH1cblxuICAgIC8vIFN0ZXAgMjogRmxhdHRlbiBzZXR0aW5ncyBmcm9tIGdyb3Vwc1xuICAgIGNvbnN0IGFsbFNldHRpbmdzOiBBWFBTZXR0aW5nRGVmaW5pdGlvblNlYXJjaFtdID0gW107XG4gICAgY29uc3QgZXh0cmFjdFNldHRpbmdzID0gKGdyb3VwOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IHNlY3Rpb24gb2YgZ3JvdXAuc2VjdGlvbnMpIHtcbiAgICAgICAgYWxsU2V0dGluZ3MucHVzaCguLi5zZWN0aW9uLnNldHRpbmdzLm1hcCgoeCkgPT4gKHsgLi4ueCwgZ3JvdXAgfSBhcyBBWFBTZXR0aW5nRGVmaW5pdGlvblNlYXJjaCkpKTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3Qgc3ViR3JvdXAgb2YgZ3JvdXAuZ3JvdXBzKSB7XG4gICAgICAgIGV4dHJhY3RTZXR0aW5ncyhzdWJHcm91cCk7IC8vIFJlY3Vyc2l2ZSBleHRyYWN0aW9uXG4gICAgICB9XG4gICAgfTtcblxuICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgZ3JvdXBzU2V0dGluZykge1xuICAgICAgZXh0cmFjdFNldHRpbmdzKGdyb3VwKTtcbiAgICB9XG5cbiAgICAvLyBTdGVwIDM6IFNlYXJjaCBzZXR0aW5ncyBieSB0aXRsZVxuICAgIGNvbnN0IHNlYXJjaFJlc3VsdHMgPSBhbGxTZXR0aW5ncy5maWx0ZXIoKHNldHRpbmcpID0+IHNldHRpbmcudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXh0LnRvTG93ZXJDYXNlKCkpKTtcblxuICAgIHJldHVybiBzb3J0QnkoXG4gICAgICBzZWFyY2hSZXN1bHRzLm1hcDxBWFBTZWFyY2hSZXN1bHQ+KChzZXR0aW5nKSA9PiAoe1xuICAgICAgICB0aXRsZTogc2V0dGluZy50aXRsZSxcbiAgICAgICAgZGVzY3JpcHRpb246IHNldHRpbmcuZGVzY3JpcHRpb24sXG4gICAgICAgIGdyb3VwOiAnc2V0dGluZycsXG4gICAgICAgIGRhdGE6IHNldHRpbmcsXG4gICAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICBuYW1lOiAnbmF2aWdhdGUnLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHR5cGU6ICdyb3V0ZXInLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBwYXRoOiBgLyR7dGhpcy5zZXNzaW9uU2VydmljZS5hcHBsaWNhdGlvbj8ubmFtZX0vc2V0dGluZ3MvdXNlci8ke3NldHRpbmcuZ3JvdXAubmFtZX0jJHtzZXR0aW5nLnRpdGxlfWAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcGFyZW50OiBzZXR0aW5nLmdyb3VwXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICB0aXRsZTogc2V0dGluZy5ncm91cC50aXRsZSxcbiAgICAgICAgICAgIGRhdGE6IHNldHRpbmcuZ3JvdXAgYXMgQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cCxcbiAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB9KSksXG4gICAgICBbJ3RpdGxlJ11cbiAgICApO1xuICB9XG59XG4iXX0=","import { AXPAuthGuard } from '@acorex/platform/auth';\nimport { AXP_SEARCH_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex/platform/common';\nimport { AXPAppStartUpService } from '@acorex/platform/core';\nimport { AXPRootLayoutComponent } from '@acorex/platform/themes/default';\nimport { Injector, NgModule } from '@angular/core';\nimport { ROUTES } from '@angular/router';\nimport { AXPSettingSearchDefinitionProvider } from './features/settings/search-definition.provider';\nimport { AXPSettingSearchProvider } from './features/settings/search.provider';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/core\";\nfunction routesFacory() {\n let routes = [\n {\n path: ':app/settings/:scope',\n canActivate: [AXPAuthGuard],\n loadComponent: () => {\n return AXPRootLayoutComponent;\n },\n children: [\n {\n path: '',\n loadComponent: () => import('./features/settings/setting-page/setting-page.component').then((c) => c.AXPSettingPageComponent),\n data: { reuse: true },\n children: [\n {\n path: ':group',\n loadComponent: () => import('./features/settings/setting-view/setting-view.component').then((c) => c.AXPSettingsViewComponent),\n },\n ],\n },\n ],\n },\n ];\n return routes;\n}\nexport class AXMSettingsManagementModule {\n constructor(appInitService, injector) { }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMSettingsManagementModule, deps: [{ token: i1.AXPAppStartUpService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMSettingsManagementModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMSettingsManagementModule, providers: [\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXPSettingSearchProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPSettingSearchDefinitionProvider,\n multi: true,\n },\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFacory,\n },\n ] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMSettingsManagementModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXPSettingSearchProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPSettingSearchDefinitionProvider,\n multi: true,\n },\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFacory,\n },\n ],\n }]\n }], ctorParameters: () => [{ type: i1.AXPAppStartUpService }, { type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtbWFuYWdlbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvc2V0dGluZ3MtbWFuYWdlbWVudC9zcmMvbGliL3NldHRpbmdzLW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQVUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDcEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7OztBQUUvRSxTQUFTLFlBQVk7SUFDbkIsSUFBSSxNQUFNLEdBQVc7UUFDbkI7WUFDRSxJQUFJLEVBQUUsc0JBQXNCO1lBQzVCLFdBQVcsRUFBRSxDQUFDLFlBQVksQ0FBQztZQUMzQixhQUFhLEVBQUUsR0FBRyxFQUFFO2dCQUNsQixPQUFPLHNCQUFzQixDQUFDO1lBQ2hDLENBQUM7WUFDRCxRQUFRLEVBQUU7Z0JBQ1I7b0JBQ0UsSUFBSSxFQUFFLEVBQUU7b0JBQ1IsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUNsQixNQUFNLENBQUMseURBQXlELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDMUcsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtvQkFDckIsUUFBUSxFQUFFO3dCQUNSOzRCQUNFLElBQUksRUFBRSxRQUFROzRCQUNkLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FDbEIsTUFBTSxDQUFDLHlEQUF5RCxDQUFDLENBQUMsSUFBSSxDQUNwRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUNsQzt5QkFDSjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQXdCRCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFlBQVksY0FBb0MsRUFBRSxRQUFrQixJQUFHLENBQUM7OEdBRDdELDJCQUEyQjsrR0FBM0IsMkJBQTJCOytHQUEzQiwyQkFBMkIsYUFsQjNCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLG1CQUFtQjtnQkFDNUIsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsS0FBSyxFQUFFLElBQUk7YUFDWjtZQUNEO2dCQUNFLE9BQU8sRUFBRSw4QkFBOEI7Z0JBQ3ZDLFFBQVEsRUFBRSxrQ0FBa0M7Z0JBQzVDLEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUsTUFBTTtnQkFDZixLQUFLLEVBQUUsSUFBSTtnQkFDWCxVQUFVLEVBQUUsWUFBWTthQUN6QjtTQUNGOzsyRkFFVSwyQkFBMkI7a0JBdEJ2QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRSxFQUFFO29CQUNYLFlBQVksRUFBRSxFQUFFO29CQUNoQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsUUFBUSxFQUFFLHdCQUF3Qjs0QkFDbEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLDhCQUE4Qjs0QkFDdkMsUUFBUSxFQUFFLGtDQUFrQzs0QkFDNUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLE1BQU07NEJBQ2YsS0FBSyxFQUFFLElBQUk7NEJBQ1gsVUFBVSxFQUFFLFlBQVk7eUJBQ3pCO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQQXV0aEd1YXJkIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IEFYUF9TRUFSQ0hfREVGSU5JVElPTl9QUk9WSURFUiwgQVhQX1NFQVJDSF9QUk9WSURFUiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUEFwcFN0YXJ0VXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUFJvb3RMYXlvdXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9kZWZhdWx0JztcbmltcG9ydCB7IEluamVjdG9yLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVzLCBST1VURVMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQVhQU2V0dGluZ1NlYXJjaERlZmluaXRpb25Qcm92aWRlciB9IGZyb20gJy4vZmVhdHVyZXMvc2V0dGluZ3Mvc2VhcmNoLWRlZmluaXRpb24ucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhQU2V0dGluZ1NlYXJjaFByb3ZpZGVyIH0gZnJvbSAnLi9mZWF0dXJlcy9zZXR0aW5ncy9zZWFyY2gucHJvdmlkZXInO1xuXG5mdW5jdGlvbiByb3V0ZXNGYWNvcnkoKSB7XG4gIGxldCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAgICB7XG4gICAgICBwYXRoOiAnOmFwcC9zZXR0aW5ncy86c2NvcGUnLFxuICAgICAgY2FuQWN0aXZhdGU6IFtBWFBBdXRoR3VhcmRdLFxuICAgICAgbG9hZENvbXBvbmVudDogKCkgPT4ge1xuICAgICAgICByZXR1cm4gQVhQUm9vdExheW91dENvbXBvbmVudDtcbiAgICAgIH0sXG4gICAgICBjaGlsZHJlbjogW1xuICAgICAgICB7XG4gICAgICAgICAgcGF0aDogJycsXG4gICAgICAgICAgbG9hZENvbXBvbmVudDogKCkgPT5cbiAgICAgICAgICAgIGltcG9ydCgnLi9mZWF0dXJlcy9zZXR0aW5ncy9zZXR0aW5nLXBhZ2Uvc2V0dGluZy1wYWdlLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQU2V0dGluZ1BhZ2VDb21wb25lbnQpLFxuICAgICAgICAgIGRhdGE6IHsgcmV1c2U6IHRydWUgfSxcbiAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwYXRoOiAnOmdyb3VwJyxcbiAgICAgICAgICAgICAgbG9hZENvbXBvbmVudDogKCkgPT5cbiAgICAgICAgICAgICAgICBpbXBvcnQoJy4vZmVhdHVyZXMvc2V0dGluZ3Mvc2V0dGluZy12aWV3L3NldHRpbmctdmlldy5jb21wb25lbnQnKS50aGVuKFxuICAgICAgICAgICAgICAgICAgKGMpID0+IGMuQVhQU2V0dGluZ3NWaWV3Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF07XG4gIHJldHVybiByb3V0ZXM7XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtdLFxuICBleHBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX1NFQVJDSF9QUk9WSURFUixcbiAgICAgIHVzZUNsYXNzOiBBWFBTZXR0aW5nU2VhcmNoUHJvdmlkZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9TRUFSQ0hfREVGSU5JVElPTl9QUk9WSURFUixcbiAgICAgIHVzZUNsYXNzOiBBWFBTZXR0aW5nU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBST1VURVMsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUZhY3Rvcnk6IHJvdXRlc0ZhY29yeSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1TZXR0aW5nc01hbmFnZW1lbnRNb2R1bGUge1xuICBjb25zdHJ1Y3RvcihhcHBJbml0U2VydmljZTogQVhQQXBwU3RhcnRVcFNlcnZpY2UsIGluamVjdG9yOiBJbmplY3Rvcikge31cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LW1vZHVsZXMtc2V0dGluZ3MtbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9zZXR0aW5ncy1tYW5hZ2VtZW50L3NyYy9hY29yZXgtbW9kdWxlcy1zZXR0aW5ncy1tYW5hZ2VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-modules-settings-management.mjs","sources":["../tmp-esm2022/settings-management/lib/features/settings/convert-setting-data.js","../tmp-esm2022/settings-management/lib/features/settings/settings.viewmodel.js","../tmp-esm2022/settings-management/lib/features/settings/search-definition.provider.js","../tmp-esm2022/settings-management/lib/features/settings/search.provider.js","../tmp-esm2022/settings-management/lib/menu.provider.js","../tmp-esm2022/settings-management/lib/settings-management.module.js","../tmp-esm2022/settings-management/acorex-modules-settings-management.js"],"sourcesContent":["export function searchSettings(groups, search) {\n const sectionMatchResult = [];\n const settingMatchResult = [];\n const processedGroups = new Set();\n const createGroupIdentifier = (group) => `${group.name}-${group.title}`;\n const addGroupToResult = (group, sections, resultArray) => {\n const groupId = createGroupIdentifier(group);\n if (!processedGroups.has(groupId)) {\n resultArray.push({\n ...group,\n sections,\n groups: [], // Exclude nested groups\n });\n processedGroups.add(groupId);\n }\n };\n const processSections = (group, filterFn) => {\n const matchedSections = group.sections.filter(filterFn);\n if (matchedSections.length > 0) {\n addGroupToResult(group, matchedSections, sectionMatchResult);\n }\n };\n const processSettings = (group, filterFn) => {\n const matchedSections = group.sections\n .map(filterFn)\n .filter((section) => section !== null);\n if (matchedSections.length > 0) {\n addGroupToResult(group, matchedSections, settingMatchResult);\n }\n };\n const sectionMatches = (section) => section.name.toLowerCase().includes(search.toLowerCase()) ||\n section.title.toLowerCase().includes(search.toLowerCase());\n const filterSettings = (section) => {\n const matchedSettings = section.settings.filter((setting) => setting.name.toLowerCase().includes(search.toLowerCase()) ||\n setting.title.toLowerCase().includes(search.toLowerCase()));\n return matchedSettings.length > 0 ? { ...section, settings: matchedSettings } : null;\n };\n const processGroupRecursively = (group) => {\n processSections(group, sectionMatches); // Match sections with all settings\n processSettings(group, filterSettings); // Match settings within sections\n group.groups.forEach(processGroupRecursively); // Recurse into nested groups\n };\n groups.forEach(processGroupRecursively);\n return [...sectionMatchResult, ...settingMatchResult];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC1zZXR0aW5nLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvc2V0dGluZ3MtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NldHRpbmdzL2NvbnZlcnQtc2V0dGluZy1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBbUMsRUFBRSxNQUFjO0lBQ2hGLE1BQU0sa0JBQWtCLEdBQWdDLEVBQUUsQ0FBQztJQUMzRCxNQUFNLGtCQUFrQixHQUFnQyxFQUFFLENBQUM7SUFDM0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUUxQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBZ0MsRUFBVSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUUzRyxNQUFNLGdCQUFnQixHQUFHLENBQ3ZCLEtBQWdDLEVBQ2hDLFFBQXVDLEVBQ3ZDLFdBQXdDLEVBQ3hDLEVBQUU7UUFDRixNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2xDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ2YsR0FBRyxLQUFLO2dCQUNSLFFBQVE7Z0JBQ1IsTUFBTSxFQUFFLEVBQUUsRUFBRSx3QkFBd0I7YUFDckMsQ0FBQyxDQUFDO1lBQ0gsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsTUFBTSxlQUFlLEdBQUcsQ0FDdEIsS0FBZ0MsRUFDaEMsUUFBMkQsRUFDM0QsRUFBRTtRQUNGLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMvQixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDL0QsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLENBQ3RCLEtBQWdDLEVBQ2hDLFFBQXNGLEVBQ3RGLEVBQUU7UUFDRixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsUUFBUTthQUNuQyxHQUFHLENBQUMsUUFBUSxDQUFDO2FBQ2IsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUEwQyxFQUFFLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2pGLElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMvQixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDL0QsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBb0MsRUFBVyxFQUFFLENBQ3ZFLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6RCxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUU3RCxNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQW9DLEVBQXNDLEVBQUU7UUFDbEcsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQzdDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDVixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekQsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQzdELENBQUM7UUFDRixPQUFPLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3ZGLENBQUMsQ0FBQztJQUVGLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFnQyxFQUFFLEVBQUU7UUFDbkUsZUFBZSxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLG1DQUFtQztRQUMzRSxlQUFlLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsaUNBQWlDO1FBQ3pFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyw2QkFBNkI7SUFDOUUsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRXhDLE9BQU8sQ0FBQyxHQUFHLGtCQUFrQixFQUFFLEdBQUcsa0JBQWtCLENBQUMsQ0FBQztBQUN4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cCwgQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hTZXR0aW5ncyhncm91cHM6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBbXSwgc2VhcmNoOiBzdHJpbmcpOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwW10ge1xuICBjb25zdCBzZWN0aW9uTWF0Y2hSZXN1bHQ6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBbXSA9IFtdO1xuICBjb25zdCBzZXR0aW5nTWF0Y2hSZXN1bHQ6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBbXSA9IFtdO1xuICBjb25zdCBwcm9jZXNzZWRHcm91cHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBjb25zdCBjcmVhdGVHcm91cElkZW50aWZpZXIgPSAoZ3JvdXA6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXApOiBzdHJpbmcgPT4gYCR7Z3JvdXAubmFtZX0tJHtncm91cC50aXRsZX1gO1xuXG4gIGNvbnN0IGFkZEdyb3VwVG9SZXN1bHQgPSAoXG4gICAgZ3JvdXA6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXAsXG4gICAgc2VjdGlvbnM6IEFYUFNldHRpbmdEZWZpbml0aW9uU2VjdGlvbltdLFxuICAgIHJlc3VsdEFycmF5OiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwW11cbiAgKSA9PiB7XG4gICAgY29uc3QgZ3JvdXBJZCA9IGNyZWF0ZUdyb3VwSWRlbnRpZmllcihncm91cCk7XG4gICAgaWYgKCFwcm9jZXNzZWRHcm91cHMuaGFzKGdyb3VwSWQpKSB7XG4gICAgICByZXN1bHRBcnJheS5wdXNoKHtcbiAgICAgICAgLi4uZ3JvdXAsXG4gICAgICAgIHNlY3Rpb25zLFxuICAgICAgICBncm91cHM6IFtdLCAvLyBFeGNsdWRlIG5lc3RlZCBncm91cHNcbiAgICAgIH0pO1xuICAgICAgcHJvY2Vzc2VkR3JvdXBzLmFkZChncm91cElkKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgcHJvY2Vzc1NlY3Rpb25zID0gKFxuICAgIGdyb3VwOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwLFxuICAgIGZpbHRlckZuOiAoc2VjdGlvbjogQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uKSA9PiBib29sZWFuXG4gICkgPT4ge1xuICAgIGNvbnN0IG1hdGNoZWRTZWN0aW9ucyA9IGdyb3VwLnNlY3Rpb25zLmZpbHRlcihmaWx0ZXJGbik7XG4gICAgaWYgKG1hdGNoZWRTZWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBhZGRHcm91cFRvUmVzdWx0KGdyb3VwLCBtYXRjaGVkU2VjdGlvbnMsIHNlY3Rpb25NYXRjaFJlc3VsdCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHByb2Nlc3NTZXR0aW5ncyA9IChcbiAgICBncm91cDogQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cCxcbiAgICBmaWx0ZXJGbjogKHNlY3Rpb246IEFYUFNldHRpbmdEZWZpbml0aW9uU2VjdGlvbikgPT4gQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uIHwgbnVsbFxuICApID0+IHtcbiAgICBjb25zdCBtYXRjaGVkU2VjdGlvbnMgPSBncm91cC5zZWN0aW9uc1xuICAgICAgLm1hcChmaWx0ZXJGbilcbiAgICAgIC5maWx0ZXIoKHNlY3Rpb24pOiBzZWN0aW9uIGlzIEFYUFNldHRpbmdEZWZpbml0aW9uU2VjdGlvbiA9PiBzZWN0aW9uICE9PSBudWxsKTtcbiAgICBpZiAobWF0Y2hlZFNlY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGFkZEdyb3VwVG9SZXN1bHQoZ3JvdXAsIG1hdGNoZWRTZWN0aW9ucywgc2V0dGluZ01hdGNoUmVzdWx0KTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3Qgc2VjdGlvbk1hdGNoZXMgPSAoc2VjdGlvbjogQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uKTogYm9vbGVhbiA9PlxuICAgIHNlY3Rpb24ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKSB8fFxuICAgIHNlY3Rpb24udGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSk7XG5cbiAgY29uc3QgZmlsdGVyU2V0dGluZ3MgPSAoc2VjdGlvbjogQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uKTogQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uIHwgbnVsbCA9PiB7XG4gICAgY29uc3QgbWF0Y2hlZFNldHRpbmdzID0gc2VjdGlvbi5zZXR0aW5ncy5maWx0ZXIoXG4gICAgICAoc2V0dGluZykgPT5cbiAgICAgICAgc2V0dGluZy5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoLnRvTG93ZXJDYXNlKCkpIHx8XG4gICAgICAgIHNldHRpbmcudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSlcbiAgICApO1xuICAgIHJldHVybiBtYXRjaGVkU2V0dGluZ3MubGVuZ3RoID4gMCA/IHsgLi4uc2VjdGlvbiwgc2V0dGluZ3M6IG1hdGNoZWRTZXR0aW5ncyB9IDogbnVsbDtcbiAgfTtcblxuICBjb25zdCBwcm9jZXNzR3JvdXBSZWN1cnNpdmVseSA9IChncm91cDogQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cCkgPT4ge1xuICAgIHByb2Nlc3NTZWN0aW9ucyhncm91cCwgc2VjdGlvbk1hdGNoZXMpOyAvLyBNYXRjaCBzZWN0aW9ucyB3aXRoIGFsbCBzZXR0aW5nc1xuICAgIHByb2Nlc3NTZXR0aW5ncyhncm91cCwgZmlsdGVyU2V0dGluZ3MpOyAvLyBNYXRjaCBzZXR0aW5ncyB3aXRoaW4gc2VjdGlvbnNcbiAgICBncm91cC5ncm91cHMuZm9yRWFjaChwcm9jZXNzR3JvdXBSZWN1cnNpdmVseSk7IC8vIFJlY3Vyc2UgaW50byBuZXN0ZWQgZ3JvdXBzXG4gIH07XG5cbiAgZ3JvdXBzLmZvckVhY2gocHJvY2Vzc0dyb3VwUmVjdXJzaXZlbHkpO1xuXG4gIHJldHVybiBbLi4uc2VjdGlvbk1hdGNoUmVzdWx0LCAuLi5zZXR0aW5nTWF0Y2hSZXN1bHRdO1xufVxuIl19","import { AXPSettingDefinitionProviderService, AXPSettingService } from \"@acorex/platform/common\";\nimport { AXPPageStatus } from \"@acorex/platform/layout/builder\";\nimport { computed, inject } from \"@angular/core\";\nimport { signalStore, withMethods, withComputed, withState, withHooks, patchState } from \"@ngrx/signals\";\nimport { get, isEmpty, isEqual, isNil } from \"lodash-es\";\nimport { filter, merge } from \"rxjs\";\nimport { searchSettings } from \"./convert-setting-data\";\nimport { AXToastService } from \"@acorex/components/toast\";\nimport { AXTranslationService } from \"@acorex/core/translation\";\nimport { resolvePlatformScopeName } from \"@acorex/platform/core\";\nimport { AXLocaleService } from \"@acorex/core/locale\";\nimport { AXPLayoutThemeService } from \"@acorex/platform/themes/shared\";\nexport const AXPSettingsViewModel = signalStore(withState(() => ({\n groups: [],\n activateGroup: undefined,\n scope: 'U',\n //\n searchExpression: null,\n //\n previousContext: {},\n context: {},\n //\n status: AXPPageStatus.Processing,\n form: null,\n})), withComputed((store, layout = inject(AXPLayoutThemeService)) => ({\n searchResults: computed(() => searchSettings(store.groups(), store.searchExpression())),\n hasActivateGroup: computed(() => store.activateGroup() != null),\n showGroups: computed(() => store.activateGroup() != null && layout.isLarge()),\n scopeTitle: computed(() => {\n return `${resolvePlatformScopeName(store.scope())}.title`;\n }),\n scopeDescription: computed(() => {\n return `${resolvePlatformScopeName(store.scope())}.description`;\n }),\n isSearching: computed(() => store.searchExpression() != null),\n isBusy: computed(() => store.status() == AXPPageStatus.Processing),\n isSaving: computed(() => store.status() == AXPPageStatus.Submitting),\n isLoaded: computed(() => store.groups().length > 0),\n})), withMethods((store, settingDefinitionService = inject(AXPSettingDefinitionProviderService), settingValueService = inject(AXPSettingService), toastService = inject(AXToastService), translateService = inject(AXTranslationService)) => ({\n registerForm(form) {\n patchState(store, {\n form: form,\n });\n },\n async load(scope) {\n patchState(store, {\n scope: scope,\n status: AXPPageStatus.Processing,\n });\n //\n const groups = await settingDefinitionService.getListAsync(scope);\n patchState(store, {\n groups: groups,\n });\n const currentContext = await settingValueService.scope(scope).all();\n const defaults = await settingValueService.scope(scope).defaultValues();\n patchState(store, {\n context: { ...defaults, ...currentContext },\n });\n patchState(store, {\n previousContext: store.context(),\n status: AXPPageStatus.Rendered,\n });\n },\n async reload() {\n await settingDefinitionService.reload();\n const groups = await settingDefinitionService.getListAsync(store.scope());\n const oldActivateGroupName = store.activateGroup()?.name;\n patchState(store, {\n groups: groups,\n activateGroup: undefined,\n });\n if (oldActivateGroupName) {\n this.setActivateGroupByName(oldActivateGroupName);\n }\n },\n updateContext(context) {\n patchState(store, {\n context: { ...store.context(), ...context },\n });\n },\n updatePreviousContext(context) {\n patchState(store, {\n previousContext: { ...store.previousContext(), ...context },\n });\n },\n setActivateGroup(group) {\n patchState(store, {\n activateGroup: group,\n });\n },\n unloadActivateGroup() {\n patchState(store, {\n activateGroup: undefined,\n });\n },\n setActivateGroupByName(name) {\n const group = store.groups().find(g => g.name === name);\n if (group) {\n patchState(store, {\n activateGroup: group,\n });\n }\n },\n //\n async search(expression) {\n if (!isNil(expression) && !isEmpty(expression)) {\n patchState(store, {\n searchExpression: expression,\n });\n }\n else {\n patchState(store, {\n searchExpression: null,\n });\n }\n },\n clearSearch() {\n patchState(store, {\n searchExpression: null,\n });\n },\n isDirty() {\n return store.groups()?.some((group) => group.sections.some((sec) => sec.settings.some((setting) => {\n const currentValue = get(store.context(), setting.name);\n const previousValue = get(store.previousContext(), setting.name);\n return !isEqual(currentValue, previousValue);\n }))) || false;\n },\n async apply() {\n const i18nScope = \"settings\";\n try {\n if (await store.form() && this.isDirty()) {\n const form = store.form();\n form.resetErrors();\n //\n patchState(store, {\n status: AXPPageStatus.Submitting,\n });\n const formResult = await form.validate();\n if (!formResult.result) {\n toastService.show({\n color: 'danger',\n title: await translateService.translateAsync('actions.apply.invalid.title', { scope: i18nScope }),\n content: await translateService.translateAsync('actions.apply.invalid.message', { scope: i18nScope }),\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n patchState(store, {\n status: AXPPageStatus.Error,\n });\n return false;\n }\n await settingValueService.scope(store.scope()).set(store.context());\n // Show success notification\n toastService.show({\n color: 'success',\n title: await translateService.translateAsync('actions.apply.success.title', { scope: i18nScope }),\n content: await translateService.translateAsync('actions.apply.success.message', { scope: i18nScope }),\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n patchState(store, {\n status: AXPPageStatus.Submitted,\n });\n return true;\n }\n return false;\n }\n catch (error) {\n toastService.show({\n color: 'danger',\n title: await translateService.translateAsync('actions.apply.error.title', { scope: i18nScope }),\n content: await translateService.translateAsync('actions.apply.error.message', { scope: i18nScope }),\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n patchState(store, {\n status: AXPPageStatus.Error,\n });\n return false;\n }\n },\n async discard() {\n const form = store.form();\n form.resetErrors();\n //\n patchState(store, {\n status: AXPPageStatus.Rendered,\n });\n patchState(store, {\n context: store.previousContext(),\n });\n },\n async resetToDefault() {\n // Update the context with the defaults\n const defaults = await settingValueService.scope(store.scope()).defaultValues();\n patchState(store, {\n context: defaults,\n });\n //\n const result = await this.apply();\n if (!result) {\n this.discard();\n }\n },\n})), withHooks((store, settingValueService = inject(AXPSettingService), translationService = inject(AXTranslationService), localeService = inject(AXLocaleService)) => ({\n async onInit() {\n //\n settingValueService.onChanged.pipe(filter((c) => c.scope == store.scope())).subscribe((e) => {\n e.keys.forEach((k) => {\n const currentValue = e.values[k];\n const contextValue = get(store.context(), k);\n const previousValue = get(store.previousContext(), k);\n // Update only if there are actual changes\n if (!isEqual(previousValue, currentValue) || !isEqual(currentValue, contextValue)) {\n patchState(store, {\n previousContext: {\n ...store.previousContext(),\n [k]: currentValue,\n }\n });\n patchState(store, {\n context: {\n ...store.context(),\n [k]: currentValue,\n }\n });\n }\n });\n });\n //\n merge(translationService.langChanges$, localeService.profileChanged$).subscribe(async () => {\n if (store.isLoaded()) {\n await store.reload();\n }\n });\n },\n onDestroy() { },\n})));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Mudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3NldHRpbmdzLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zZXR0aW5ncy9zZXR0aW5ncy52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE2QixtQ0FBbUMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBdUIsd0JBQXdCLEVBQW9CLE1BQU0sdUJBQXVCLENBQUM7QUFDeEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSXZFLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLFdBQVcsQ0FDM0MsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFD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QUFFO3dCQUNkLGVBQWUsRUFBRTs0QkFDYixHQUFHLEtBQUssQ0FBQyxlQUFlLEVBQUU7NEJBQzFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWTt5QkFDcEI7cUJBQ0osQ0FBQyxDQUFDO29CQUNILFVBQVUsQ0FBQyxLQUFLLEVBQUU7d0JBQ2QsT0FBTyxFQUFFOzRCQUNMLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRTs0QkFDbEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZO3lCQUNwQjtxQkFDSixDQUFDLENBQUM7Z0JBQ1AsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFO1FBQ0YsS0FBSyxDQUNELGtCQUFrQixDQUFDLFlBQVksRUFDL0IsYUFBYSxDQUFDLGVBQWUsQ0FDaEMsQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDbkIsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUNELFNBQVMsS0FBSyxDQUFDO0NBQ2xCLENBQUMsQ0FBQyxDQUVOLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwLCBBWFBTZXR0aW5nRGVmaW5pdGlvblByb3ZpZGVyU2VydmljZSwgQVhQU2V0dGluZ1NlcnZpY2UgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9jb21tb25cIjtcbmltcG9ydCB7IEFYUFBhZ2VTdGF0dXMgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlclwiO1xuaW1wb3J0IHsgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBzaWduYWxTdG9yZSwgd2l0aE1ldGhvZHMsIHdpdGhDb21wdXRlZCwgd2l0aFN0YXRlLCB3aXRoSG9va3MsIHBhdGNoU3RhdGUgfSBmcm9tIFwiQG5ncngvc2lnbmFsc1wiO1xuaW1wb3J0IHsgZ2V0LCBpc0VtcHR5LCBpc0VxdWFsLCBpc05pbCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IGZpbHRlciwgbWVyZ2UgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgc2VhcmNoU2V0dGluZ3MgfSBmcm9tIFwiLi9jb252ZXJ0LXNldHRpbmctZGF0YVwiO1xuaW1wb3J0IHsgQVhGb3JtQ29tcG9uZW50IH0gZnJvbSBcIkBhY29yZXgvY29tcG9uZW50cy9mb3JtXCI7XG5pbXBvcnQgeyBBWFRvYXN0U2VydmljZSB9IGZyb20gXCJAYWNvcmV4L2NvbXBvbmVudHMvdG9hc3RcIjtcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBhY29yZXgvY29yZS90cmFuc2xhdGlvblwiO1xuaW1wb3J0IHsgQVhQUGxhdGZvcm1TY29wZUtleSwgcmVzb2x2ZVBsYXRmb3JtU2NvcGVOYW1lLCBBWFBQbGF0Zm9ybVNjb3BlIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vY29yZVwiO1xuaW1wb3J0IHsgQVhMb2NhbGVTZXJ2aWNlIH0gZnJvbSBcIkBhY29yZXgvY29yZS9sb2NhbGVcIjtcbmltcG9ydCB7IEFYUExheW91dFRoZW1lU2VydmljZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9zaGFyZWRcIjtcblxuXG5cbmV4cG9ydCBjb25zdCBBWFBTZXR0aW5nc1ZpZXdNb2RlbCA9IHNpZ25hbFN0b3JlKFxuICAgIHdpdGhTdGF0ZSgoKSA9PiAoe1xuICAgICAgICBncm91cHM6IFtdIGFzIEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBbXSxcbiAgICAgICAgYWN0aXZhdGVHcm91cDogdW5kZWZpbmVkIGFzIEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXAgfCB1bmRlZmluZWQsXG4gICAgICAgIHNjb3BlOiAnVScgYXMgQVhQUGxhdGZvcm1TY29wZUtleSxcbiAgICAgICAgLy9cbiAgICAgICAgc2VhcmNoRXhwcmVzc2lvbjogbnVsbCBhcyBzdHJpbmcgfCBudWxsLFxuICAgICAgICAvL1xuICAgICAgICBwcmV2aW91c0NvbnRleHQ6IHt9IGFzIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICAgIGNvbnRleHQ6IHt9IGFzIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICAgIC8vXG4gICAgICAgIHN0YXR1czogQVhQUGFnZVN0YXR1cy5Qcm9jZXNzaW5nLFxuICAgICAgICBmb3JtOiBudWxsIGFzIEFYRm9ybUNvbXBvbmVudCB8IG51bGwsXG4gICAgfSkpLFxuICAgIHdpdGhDb21wdXRlZCgoc3RvcmUsIGxheW91dCA9IGluamVjdChBWFBMYXlvdXRUaGVtZVNlcnZpY2UpKSA9PiAoe1xuICAgICAgICBzZWFyY2hSZXN1bHRzOiBjb21wdXRlZCgoKSA9PiBzZWFyY2hTZXR0aW5ncyhzdG9yZS5ncm91cHMoKSwgc3RvcmUuc2VhcmNoRXhwcmVzc2lvbigpISkpLFxuICAgICAgICBoYXNBY3RpdmF0ZUdyb3VwOiBjb21wdXRlZCgoKSA9PiBzdG9yZS5hY3RpdmF0ZUdyb3VwKCkgIT0gbnVsbCksXG4gICAgICAgIHNob3dHcm91cHM6IGNvbXB1dGVkKCgpID0+IHN0b3JlLmFjdGl2YXRlR3JvdXAoKSAhPSBudWxsICYmIGxheW91dC5pc0xhcmdlKCkpLFxuICAgICAgICBzY29wZVRpdGxlOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYCR7cmVzb2x2ZVBsYXRmb3JtU2NvcGVOYW1lKHN0b3JlLnNjb3BlKCkpfS50aXRsZWA7XG4gICAgICAgIH0pLFxuICAgICAgICBzY29wZURlc2NyaXB0aW9uOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYCR7cmVzb2x2ZVBsYXRmb3JtU2NvcGVOYW1lKHN0b3JlLnNjb3BlKCkpfS5kZXNjcmlwdGlvbmA7XG4gICAgICAgIH0pLFxuICAgICAgICBpc1NlYXJjaGluZzogY29tcHV0ZWQoKCkgPT4gc3RvcmUuc2VhcmNoRXhwcmVzc2lvbigpICE9IG51bGwpLFxuICAgICAgICBpc0J1c3k6IGNvbXB1dGVkKCgpID0+IHN0b3JlLnN0YXR1cygpID09IEFYUFBhZ2VTdGF0dXMuUHJvY2Vzc2luZyksXG4gICAgICAgIGlzU2F2aW5nOiBjb21wdXRlZCgoKSA9PiBzdG9yZS5zdGF0dXMoKSA9PSBBWFBQYWdlU3RhdHVzLlN1Ym1pdHRpbmcpLFxuICAgICAgICBpc0xvYWRlZDogY29tcHV0ZWQoKCkgPT4gc3RvcmUuZ3JvdXBzKCkubGVuZ3RoID4gMCksXG4gICAgfSkpLFxuICAgIHdpdGhNZXRob2RzKFxuICAgICAgICAoc3RvcmUsXG4gICAgICAgICAgICBzZXR0aW5nRGVmaW5pdGlvblNlcnZpY2UgPSBpbmplY3QoQVhQU2V0dGluZ0RlZmluaXRpb25Qcm92aWRlclNlcnZpY2UpLFxuICAgICAgICAgICAgc2V0dGluZ1ZhbHVlU2VydmljZSA9IGluamVjdChBWFBTZXR0aW5nU2VydmljZSksXG4gICAgICAgICAgICB0b2FzdFNlcnZpY2UgPSBpbmplY3QoQVhUb2FzdFNlcnZpY2UpLFxuICAgICAgICAgICAgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSksXG4gICAgICAgICkgPT4gKHtcbiAgICAgICAgICAgIHJlZ2lzdGVyRm9ybShmb3JtOiBBWEZvcm1Db21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm06IGZvcm0sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhc3luYyBsb2FkKHNjb3BlOiBBWFBQbGF0Zm9ybVNjb3BlS2V5KSB7XG4gICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICBzY29wZTogc2NvcGUsXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogQVhQUGFnZVN0YXR1cy5Qcm9jZXNzaW5nLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBhd2FpdCBzZXR0aW5nRGVmaW5pdGlvblNlcnZpY2UuZ2V0TGlzdEFzeW5jKHNjb3BlKTtcbiAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgIGdyb3VwczogZ3JvdXBzLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudENvbnRleHQgPSBhd2FpdCBzZXR0aW5nVmFsdWVTZXJ2aWNlLnNjb3BlKHNjb3BlIGFzIEFYUFBsYXRmb3JtU2NvcGUpLmFsbCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRzID0gYXdhaXQgc2V0dGluZ1ZhbHVlU2VydmljZS5zY29wZShzY29wZSBhcyBBWFBQbGF0Zm9ybVNjb3BlKS5kZWZhdWx0VmFsdWVzKCk7XG4gICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7IC4uLmRlZmF1bHRzLCAuLi5jdXJyZW50Q29udGV4dCB9LFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NvbnRleHQ6IHN0b3JlLmNvbnRleHQoKSxcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBBWFBQYWdlU3RhdHVzLlJlbmRlcmVkLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXN5bmMgcmVsb2FkKCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHNldHRpbmdEZWZpbml0aW9uU2VydmljZS5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cHMgPSBhd2FpdCBzZXR0aW5nRGVmaW5pdGlvblNlcnZpY2UuZ2V0TGlzdEFzeW5jKHN0b3JlLnNjb3BlKCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9sZEFjdGl2YXRlR3JvdXBOYW1lID0gc3RvcmUuYWN0aXZhdGVHcm91cCgpPy5uYW1lO1xuICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXBzOiBncm91cHMsXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlR3JvdXA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIGlmIChvbGRBY3RpdmF0ZUdyb3VwTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEFjdGl2YXRlR3JvdXBCeU5hbWUob2xkQWN0aXZhdGVHcm91cE5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGVDb250ZXh0KGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgLi4uc3RvcmUuY29udGV4dCgpLCAuLi5jb250ZXh0IH0sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGVQcmV2aW91c0NvbnRleHQoY29udGV4dDogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDb250ZXh0OiB7IC4uLnN0b3JlLnByZXZpb3VzQ29udGV4dCgpLCAuLi5jb250ZXh0IH0sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRBY3RpdmF0ZUdyb3VwKGdyb3VwOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwKSB7XG4gICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZUdyb3VwOiBncm91cCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVubG9hZEFjdGl2YXRlR3JvdXAoKSB7XG4gICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZUdyb3VwOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRBY3RpdmF0ZUdyb3VwQnlOYW1lKG5hbWU6IHN0cmluZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gc3RvcmUuZ3JvdXBzKCkuZmluZChnID0+IGcubmFtZSA9PT0gbmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKGdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlR3JvdXA6IGdyb3VwLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgYXN5bmMgc2VhcmNoKGV4cHJlc3Npb246IHN0cmluZykge1xuICAgICAgICAgICAgICAgIGlmICghaXNOaWwoZXhwcmVzc2lvbikgJiYgIWlzRW1wdHkoZXhwcmVzc2lvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoRXhwcmVzc2lvbjogZXhwcmVzc2lvbixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEV4cHJlc3Npb246IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsZWFyU2VhcmNoKCkge1xuICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoRXhwcmVzc2lvbjogbnVsbCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlzRGlydHkoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0b3JlLmdyb3VwcygpPy5zb21lKChncm91cCkgPT5cbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAuc2VjdGlvbnMuc29tZSgoc2VjKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgc2VjLnNldHRpbmdzLnNvbWUoKHNldHRpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBnZXQoc3RvcmUuY29udGV4dCgpLCBzZXR0aW5nLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBnZXQoc3RvcmUucHJldmlvdXNDb250ZXh0KCksIHNldHRpbmcubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFpc0VxdWFsKGN1cnJlbnRWYWx1ZSwgcHJldmlvdXNWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKSB8fCBmYWxzZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFzeW5jIGFwcGx5KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGkxOG5TY29wZSA9IFwic2V0dGluZ3NcIjtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXdhaXQgc3RvcmUuZm9ybSgpICYmIHRoaXMuaXNEaXJ0eSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtID0gc3RvcmUuZm9ybSgpITtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0ucmVzZXRFcnJvcnMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBBWFBQYWdlU3RhdHVzLlN1Ym1pdHRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1SZXN1bHQgPSBhd2FpdCBmb3JtLnZhbGlkYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZvcm1SZXN1bHQucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBhd2FpdCB0cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdhY3Rpb25zLmFwcGx5LmludmFsaWQudGl0bGUnLCB7IHNjb3BlOiBpMThuU2NvcGUgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF3YWl0IHRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ2FjdGlvbnMuYXBwbHkuaW52YWxpZC5tZXNzYWdlJywgeyBzY29wZTogaTE4blNjb3BlIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZU91dDogMzAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZU91dFByb2dyZXNzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiBBWFBQYWdlU3RhdHVzLkVycm9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNldHRpbmdWYWx1ZVNlcnZpY2Uuc2NvcGUoc3RvcmUuc2NvcGUoKSBhcyBBWFBQbGF0Zm9ybVNjb3BlKS5zZXQoc3RvcmUuY29udGV4dCgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNob3cgc3VjY2VzcyBub3RpZmljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBhd2FpdCB0cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdhY3Rpb25zLmFwcGx5LnN1Y2Nlc3MudGl0bGUnLCB7IHNjb3BlOiBpMThuU2NvcGUgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXdhaXQgdHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYygnYWN0aW9ucy5hcHBseS5zdWNjZXNzLm1lc3NhZ2UnLCB7IHNjb3BlOiBpMThuU2NvcGUgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lT3V0OiAzMDAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVPdXRQcm9ncmVzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogQVhQUGFnZVN0YXR1cy5TdWJtaXR0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICB0b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogYXdhaXQgdHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYygnYWN0aW9ucy5hcHBseS5lcnJvci50aXRsZScsIHsgc2NvcGU6IGkxOG5TY29wZSB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF3YWl0IHRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ2FjdGlvbnMuYXBwbHkuZXJyb3IubWVzc2FnZScsIHsgc2NvcGU6IGkxOG5TY29wZSB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVPdXQ6IDMwMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lT3V0UHJvZ3Jlc3M6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IEFYUFBhZ2VTdGF0dXMuRXJyb3IsXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXN5bmMgZGlzY2FyZCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtID0gc3RvcmUuZm9ybSgpITtcbiAgICAgICAgICAgICAgICBmb3JtLnJlc2V0RXJyb3JzKCk7XG4gICAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogQVhQUGFnZVN0YXR1cy5SZW5kZXJlZCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogc3RvcmUucHJldmlvdXNDb250ZXh0KCksXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhc3luYyByZXNldFRvRGVmYXVsdCgpIHtcbiAgICAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGNvbnRleHQgIHdpdGggdGhlIGRlZmF1bHRzXG4gICAgICAgICAgICAgICAgY29uc3QgZGVmYXVsdHMgPSBhd2FpdCBzZXR0aW5nVmFsdWVTZXJ2aWNlLnNjb3BlKHN0b3JlLnNjb3BlKCkgYXMgQVhQUGxhdGZvcm1TY29wZSkuZGVmYXVsdFZhbHVlcygpO1xuICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogZGVmYXVsdHMsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAvL1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYXBwbHkoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2NhcmQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KSksXG4gICAgd2l0aEhvb2tzKChzdG9yZSxcbiAgICAgICAgc2V0dGluZ1ZhbHVlU2VydmljZSA9IGluamVjdChBWFBTZXR0aW5nU2VydmljZSksXG4gICAgICAgIHRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSksXG4gICAgICAgIGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoQVhMb2NhbGVTZXJ2aWNlKVxuICAgICkgPT4gKHtcbiAgICAgICAgYXN5bmMgb25Jbml0KCkge1xuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIHNldHRpbmdWYWx1ZVNlcnZpY2Uub25DaGFuZ2VkLnBpcGUoZmlsdGVyKChjKSA9PiBjLnNjb3BlID09IHN0b3JlLnNjb3BlKCkpKS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgICAgICAgICBlLmtleXMuZm9yRWFjaCgoaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBlLnZhbHVlc1trXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGV4dFZhbHVlID0gZ2V0KHN0b3JlLmNvbnRleHQoKSwgayk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBnZXQoc3RvcmUucHJldmlvdXNDb250ZXh0KCksIGspO1xuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgb25seSBpZiB0aGVyZSBhcmUgYWN0dWFsIGNoYW5nZXNcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0VxdWFsKHByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSkgfHwgIWlzRXF1YWwoY3VycmVudFZhbHVlLCBjb250ZXh0VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnN0b3JlLnByZXZpb3VzQ29udGV4dCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba106IGN1cnJlbnRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnN0b3JlLmNvbnRleHQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tdOiBjdXJyZW50VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uU2VydmljZS5sYW5nQ2hhbmdlcyQsXG4gICAgICAgICAgICAgICAgbG9jYWxlU2VydmljZS5wcm9maWxlQ2hhbmdlZCRcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmUuaXNMb2FkZWQoKSkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzdG9yZS5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB9LFxuICAgICAgICBvbkRlc3Ryb3koKSB7IH0sXG4gICAgfSkpXG5cbikiXX0=","export class AXPSettingSearchDefinitionProvider {\n async provide(context) {\n context.addDefinition('setting', 'Setting', 'setting', 'fa-solid fa-gear', 3, {\n format: {\n id: '{{data.name}}',\n },\n actions: [\n {\n name: 'navigate',\n type: 'view',\n priority: 'primary',\n },\n ],\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlZmluaXRpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvc2V0dGluZ3MtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NldHRpbmdzL3NlYXJjaC1kZWZpbml0aW9uLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxrQ0FBa0M7SUFDN0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQztRQUN2RCxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUMsRUFBRTtZQUM1RSxNQUFNLEVBQUU7Z0JBQ04sRUFBRSxFQUFFLGVBQWU7YUFDcEI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLElBQUksRUFBRSxNQUFNO29CQUNaLFFBQVEsRUFBRSxTQUFTO2lCQUNwQjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyLCBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuXG5leHBvcnQgY2xhc3MgQVhQU2V0dGluZ1NlYXJjaERlZmluaXRpb25Qcm92aWRlciBpbXBsZW1lbnRzIEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlciB7XG4gIGFzeW5jIHByb3ZpZGUoY29udGV4dDogQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnRleHQuYWRkRGVmaW5pdGlvbignc2V0dGluZycsICdTZXR0aW5nJywgJ3NldHRpbmcnLCAnZmEtc29saWQgZmEtZ2VhcicsIDMsIHtcbiAgICAgIGZvcm1hdDoge1xuICAgICAgICBpZDogJ3t7ZGF0YS5uYW1lfX0nLFxuICAgICAgfSxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICduYXZpZ2F0ZScsXG4gICAgICAgICAgdHlwZTogJ3ZpZXcnLFxuICAgICAgICAgIHByaW9yaXR5OiAncHJpbWFyeScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPSettingDefinitionProviderService, } from '@acorex/platform/common';\nimport { AXPPlatformScope } from '@acorex/platform/core';\nimport { inject } from '@angular/core';\nimport { sortBy } from 'lodash-es';\nexport class AXPSettingSearchProvider {\n constructor() {\n this.settingService = inject(AXPSettingDefinitionProviderService);\n this.sessionService = inject(AXPSessionService);\n }\n async search(text) {\n const groupsSetting = this.settingService.getList(AXPPlatformScope.User);\n if (groupsSetting.length == 0) {\n groupsSetting.push(...(await this.settingService.getListAsync(AXPPlatformScope.User)));\n }\n // Step 2: Flatten settings from groups\n const allSettings = [];\n const extractSettings = (group) => {\n for (const section of group.sections) {\n allSettings.push(...section.settings.map((x) => ({ ...x, group })));\n }\n for (const subGroup of group.groups) {\n extractSettings(subGroup); // Recursive extraction\n }\n };\n for (const group of groupsSetting) {\n extractSettings(group);\n }\n // Step 3: Search settings by title\n const searchResults = allSettings.filter((setting) => setting.title.toLowerCase().includes(text.toLowerCase()));\n return sortBy(searchResults.map((setting) => ({\n title: setting.title,\n description: setting.description,\n group: 'setting',\n data: setting,\n command: {\n name: 'navigate',\n options: {\n type: 'router',\n options: {\n path: `/${this.sessionService.application?.name}/settings/user/${setting.group.name}#${setting.title}`,\n },\n }\n },\n parent: setting.group\n ? {\n title: setting.group.title,\n data: setting.group,\n }\n : undefined,\n })), ['title']);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3NldHRpbmdzLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9zZXR0aW5ncy9zZWFyY2gucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUtMLG1DQUFtQyxHQUNwQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQU1uQyxNQUFNLE9BQU8sd0JBQXdCO0lBQXJDO1FBQ1UsbUJBQWMsR0FBRyxNQUFNLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUM3RCxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBbURyRCxDQUFDO0lBakRDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBWTtRQUN2QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RSxJQUFJLGFBQWEsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDOUIsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekYsQ0FBQztRQUVELHVDQUF1QztRQUN2QyxNQUFNLFdBQVcsR0FBaUMsRUFBRSxDQUFDO1FBQ3JELE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBZ0MsRUFBRSxFQUFFO1lBQzNELEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNyQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQWlDLENBQUEsQ0FBQyxDQUFDLENBQUM7WUFDcEcsQ0FBQztZQUNELEtBQUssTUFBTSxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyx1QkFBdUI7WUFDcEQsQ0FBQztRQUNILENBQUMsQ0FBQztRQUVGLEtBQUssTUFBTSxLQUFLLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFFRCxtQ0FBbUM7UUFDbkMsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoSCxPQUFPLE1BQU0sQ0FDWCxhQUFhLENBQUMsR0FBRyxDQUFrQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1lBQ2hDLEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxPQUFPO1lBQ2IsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxVQUFVO2dCQUNoQixPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsT0FBTyxFQUFFO3dCQUNQLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLElBQUksa0JBQWtCLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7cUJBQ3ZHO2lCQUNGO2FBQ0Y7WUFDRCxNQUFNLEVBQUUsT0FBTyxDQUFDLEtBQUs7Z0JBQ25CLENBQUMsQ0FBQztvQkFDQSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLO29CQUMxQixJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQWtDO2lCQUNqRDtnQkFDRCxDQUFDLENBQUMsU0FBUztTQUNkLENBQUMsQ0FBQyxFQUNILENBQUMsT0FBTyxDQUFDLENBQ1YsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7XG4gIEFYUFNlYXJjaFByb3ZpZGVyLFxuICBBWFBTZWFyY2hSZXN1bHQsXG4gIEFYUFNldHRpbmdEZWZpbml0aW9uLFxuICBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwLFxuICBBWFBTZXR0aW5nRGVmaW5pdGlvblByb3ZpZGVyU2VydmljZSxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQUGxhdGZvcm1TY29wZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNvcnRCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQU2V0dGluZ0RlZmluaXRpb25TZWFyY2ggZXh0ZW5kcyBBWFBTZXR0aW5nRGVmaW5pdGlvbiB7XG4gIGdyb3VwOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwO1xufVxuXG5leHBvcnQgY2xhc3MgQVhQU2V0dGluZ1NlYXJjaFByb3ZpZGVyIGltcGxlbWVudHMgQVhQU2VhcmNoUHJvdmlkZXIge1xuICBwcml2YXRlIHNldHRpbmdTZXJ2aWNlID0gaW5qZWN0KEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZSA9IGluamVjdChBWFBTZXNzaW9uU2VydmljZSk7XG5cbiAgYXN5bmMgc2VhcmNoKHRleHQ6IHN0cmluZyk6IFByb21pc2U8QVhQU2VhcmNoUmVzdWx0W10+IHtcbiAgICBjb25zdCBncm91cHNTZXR0aW5nID0gdGhpcy5zZXR0aW5nU2VydmljZS5nZXRMaXN0KEFYUFBsYXRmb3JtU2NvcGUuVXNlcik7XG4gICAgaWYgKGdyb3Vwc1NldHRpbmcubGVuZ3RoID09IDApIHtcbiAgICAgIGdyb3Vwc1NldHRpbmcucHVzaCguLi4oYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5nZXRMaXN0QXN5bmMoQVhQUGxhdGZvcm1TY29wZS5Vc2VyKSkpO1xuICAgIH1cblxuICAgIC8vIFN0ZXAgMjogRmxhdHRlbiBzZXR0aW5ncyBmcm9tIGdyb3Vwc1xuICAgIGNvbnN0IGFsbFNldHRpbmdzOiBBWFBTZXR0aW5nRGVmaW5pdGlvblNlYXJjaFtdID0gW107XG4gICAgY29uc3QgZXh0cmFjdFNldHRpbmdzID0gKGdyb3VwOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IHNlY3Rpb24gb2YgZ3JvdXAuc2VjdGlvbnMpIHtcbiAgICAgICAgYWxsU2V0dGluZ3MucHVzaCguLi5zZWN0aW9uLnNldHRpbmdzLm1hcCgoeCkgPT4gKHsgLi4ueCwgZ3JvdXAgfSBhcyBBWFBTZXR0aW5nRGVmaW5pdGlvblNlYXJjaCkpKTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3Qgc3ViR3JvdXAgb2YgZ3JvdXAuZ3JvdXBzKSB7XG4gICAgICAgIGV4dHJhY3RTZXR0aW5ncyhzdWJHcm91cCk7IC8vIFJlY3Vyc2l2ZSBleHRyYWN0aW9uXG4gICAgICB9XG4gICAgfTtcblxuICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgZ3JvdXBzU2V0dGluZykge1xuICAgICAgZXh0cmFjdFNldHRpbmdzKGdyb3VwKTtcbiAgICB9XG5cbiAgICAvLyBTdGVwIDM6IFNlYXJjaCBzZXR0aW5ncyBieSB0aXRsZVxuICAgIGNvbnN0IHNlYXJjaFJlc3VsdHMgPSBhbGxTZXR0aW5ncy5maWx0ZXIoKHNldHRpbmcpID0+IHNldHRpbmcudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXh0LnRvTG93ZXJDYXNlKCkpKTtcblxuICAgIHJldHVybiBzb3J0QnkoXG4gICAgICBzZWFyY2hSZXN1bHRzLm1hcDxBWFBTZWFyY2hSZXN1bHQ+KChzZXR0aW5nKSA9PiAoe1xuICAgICAgICB0aXRsZTogc2V0dGluZy50aXRsZSxcbiAgICAgICAgZGVzY3JpcHRpb246IHNldHRpbmcuZGVzY3JpcHRpb24sXG4gICAgICAgIGdyb3VwOiAnc2V0dGluZycsXG4gICAgICAgIGRhdGE6IHNldHRpbmcsXG4gICAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICBuYW1lOiAnbmF2aWdhdGUnLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHR5cGU6ICdyb3V0ZXInLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBwYXRoOiBgLyR7dGhpcy5zZXNzaW9uU2VydmljZS5hcHBsaWNhdGlvbj8ubmFtZX0vc2V0dGluZ3MvdXNlci8ke3NldHRpbmcuZ3JvdXAubmFtZX0jJHtzZXR0aW5nLnRpdGxlfWAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcGFyZW50OiBzZXR0aW5nLmdyb3VwXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICB0aXRsZTogc2V0dGluZy5ncm91cC50aXRsZSxcbiAgICAgICAgICAgIGRhdGE6IHNldHRpbmcuZ3JvdXAgYXMgQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cCxcbiAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB9KSksXG4gICAgICBbJ3RpdGxlJ11cbiAgICApO1xuICB9XG59XG4iXX0=","import { AXPSessionService } from '@acorex/platform/auth';\nimport { inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nexport class AXMMenuProvider {\n constructor() {\n this.sessionService = inject(AXPSessionService);\n }\n async provide(context) {\n const appName = this.sessionService.application?.name;\n const isAuthorized = await firstValueFrom(this.sessionService.isAuthorized$);\n if (!isAuthorized) {\n return;\n }\n context.find('user-profile').addItems([\n {\n text: `t('user.title', {scope: \"settings\"})`,\n name: 'user-settings',\n icon: 'fa-light fa-gear',\n path: `/${this.sessionService.application?.name}/settings/user`,\n },\n ]);\n context.addItems([\n {\n name: 'tenant-application-settings',\n priority: 10000000,\n text: `t('tenant.title', {scope: \"settings\"})`,\n type: 'menu',\n icon: 'fa-light fa-gear',\n path: `/${appName}/settings/tenant`,\n data: {\n requiredPermission: 'admin',\n },\n },\n ]);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9zZXR0aW5ncy1tYW5hZ2VtZW50L3NyYy9saWIvbWVudS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsTUFBTSxPQUFPLGVBQWU7SUFBNUI7UUFDVSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBaUNyRCxDQUFDO0lBL0JDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBK0I7UUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDO1FBRXRELE1BQU0sWUFBWSxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xCLE9BQU87UUFDVCxDQUFDO1FBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDcEM7Z0JBQ0UsSUFBSSxFQUFFLHNDQUFzQztnQkFDNUMsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLElBQUksZ0JBQWdCO2FBQ2hFO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNmO2dCQUNFLElBQUksRUFBRSw2QkFBNkI7Z0JBQ25DLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixJQUFJLEVBQUUsd0NBQXdDO2dCQUM5QyxJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixJQUFJLEVBQUUsSUFBSSxPQUFPLGtCQUFrQjtnQkFDbkMsSUFBSSxFQUFFO29CQUNKLGtCQUFrQixFQUFFLE9BQU87aUJBQzVCO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWFBNZW51UHJvdmlkZXIsIEFYUE1lbnVQcm92aWRlckNvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBBWE1NZW51UHJvdmlkZXIgaW1wbGVtZW50cyBBWFBNZW51UHJvdmlkZXIge1xuICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcblxuICBhc3luYyBwcm92aWRlKGNvbnRleHQ6IEFYUE1lbnVQcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBhcHBOYW1lID0gdGhpcy5zZXNzaW9uU2VydmljZS5hcHBsaWNhdGlvbj8ubmFtZTtcblxuICAgIGNvbnN0IGlzQXV0aG9yaXplZCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2Vzc2lvblNlcnZpY2UuaXNBdXRob3JpemVkJCk7XG4gICAgaWYgKCFpc0F1dGhvcml6ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb250ZXh0LmZpbmQoJ3VzZXItcHJvZmlsZScpLmFkZEl0ZW1zKFtcbiAgICAgIHtcbiAgICAgICAgdGV4dDogYHQoJ3VzZXIudGl0bGUnLCB7c2NvcGU6IFwic2V0dGluZ3NcIn0pYCxcbiAgICAgICAgbmFtZTogJ3VzZXItc2V0dGluZ3MnLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZ2VhcicsXG4gICAgICAgIHBhdGg6IGAvJHt0aGlzLnNlc3Npb25TZXJ2aWNlLmFwcGxpY2F0aW9uPy5uYW1lfS9zZXR0aW5ncy91c2VyYCxcbiAgICAgIH0sXG4gICAgXSk7XG5cbiAgICBjb250ZXh0LmFkZEl0ZW1zKFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3RlbmFudC1hcHBsaWNhdGlvbi1zZXR0aW5ncycsXG4gICAgICAgIHByaW9yaXR5OiAxMDAwMDAwMCxcbiAgICAgICAgdGV4dDogYHQoJ3RlbmFudC50aXRsZScsIHtzY29wZTogXCJzZXR0aW5nc1wifSlgLFxuICAgICAgICB0eXBlOiAnbWVudScsXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1nZWFyJyxcbiAgICAgICAgcGF0aDogYC8ke2FwcE5hbWV9L3NldHRpbmdzL3RlbmFudGAsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICByZXF1aXJlZFBlcm1pc3Npb246ICdhZG1pbicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0pO1xuICB9XG59XG4iXX0=","import { AXPAuthGuard } from '@acorex/platform/auth';\nimport { AXP_MENU_PROVIDER, AXP_SEARCH_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER } from '@acorex/platform/common';\nimport { AXPAppStartUpService } from '@acorex/platform/core';\nimport { AXPRootLayoutComponent } from '@acorex/platform/themes/default';\nimport { Injector, NgModule } from '@angular/core';\nimport { ROUTES } from '@angular/router';\nimport { AXPSettingSearchDefinitionProvider } from './features/settings/search-definition.provider';\nimport { AXPSettingSearchProvider } from './features/settings/search.provider';\nimport { AXMMenuProvider } from './menu.provider';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/core\";\nfunction routesFacory() {\n let routes = [\n {\n path: ':app/settings/:scope',\n canActivate: [AXPAuthGuard],\n loadComponent: () => {\n return AXPRootLayoutComponent;\n },\n children: [\n {\n path: '',\n loadComponent: () => import('./features/settings/setting-page/setting-page.component').then((c) => c.AXPSettingPageComponent),\n data: { reuse: true },\n children: [\n {\n path: ':group',\n loadComponent: () => import('./features/settings/setting-view/setting-view.component').then((c) => c.AXPSettingsViewComponent),\n },\n ],\n },\n ],\n },\n ];\n return routes;\n}\nexport class AXMSettingsManagementModule {\n constructor(appInitService, injector) { }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMSettingsManagementModule, deps: [{ token: i1.AXPAppStartUpService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMSettingsManagementModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMSettingsManagementModule, providers: [\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXPSettingSearchProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPSettingSearchDefinitionProvider,\n multi: true,\n },\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFacory,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n ] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMSettingsManagementModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXPSettingSearchProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPSettingSearchDefinitionProvider,\n multi: true,\n },\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFacory,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n ],\n }]\n }], ctorParameters: () => [{ type: i1.AXPAppStartUpService }, { type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtbWFuYWdlbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvc2V0dGluZ3MtbWFuYWdlbWVudC9zcmMvbGliL3NldHRpbmdzLW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsOEJBQThCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQVUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDcEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFbEQsU0FBUyxZQUFZO0lBQ25CLElBQUksTUFBTSxHQUFXO1FBQ25CO1lBQ0UsSUFBSSxFQUFFLHNCQUFzQjtZQUM1QixXQUFXLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDM0IsYUFBYSxFQUFFLEdBQUcsRUFBRTtnQkFDbEIsT0FBTyxzQkFBc0IsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsUUFBUSxFQUFFO2dCQUNSO29CQUNFLElBQUksRUFBRSxFQUFFO29CQUNSLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FDbEIsTUFBTSxDQUFDLHlEQUF5RCxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUM7b0JBQzFHLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7b0JBQ3JCLFFBQVEsRUFBRTt3QkFDUjs0QkFDRSxJQUFJLEVBQUUsUUFBUTs0QkFDZCxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQ2xCLE1BQU0sQ0FBQyx5REFBeUQsQ0FBQyxDQUFDLElBQUksQ0FDcEUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FDbEM7eUJBQ0o7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQztJQUNGLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUE2QkQsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxZQUFZLGNBQW9DLEVBQUUsUUFBa0IsSUFBSSxDQUFDOzhHQUQ5RCwyQkFBMkI7K0dBQTNCLDJCQUEyQjsrR0FBM0IsMkJBQTJCLGFBdkIzQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxtQkFBbUI7Z0JBQzVCLFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUsOEJBQThCO2dCQUN2QyxRQUFRLEVBQUUsa0NBQWtDO2dCQUM1QyxLQUFLLEVBQUUsSUFBSTthQUNaO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsVUFBVSxFQUFFLFlBQVk7YUFDekI7WUFDRDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixRQUFRLEVBQUUsZUFBZTtnQkFDekIsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGOzsyRkFFVSwyQkFBMkI7a0JBM0J2QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRSxFQUFFO29CQUNYLFlBQVksRUFBRSxFQUFFO29CQUNoQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsUUFBUSxFQUFFLHdCQUF3Qjs0QkFDbEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLDhCQUE4Qjs0QkFDdkMsUUFBUSxFQUFFLGtDQUFrQzs0QkFDNUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLE1BQU07NEJBQ2YsS0FBSyxFQUFFLElBQUk7NEJBQ1gsVUFBVSxFQUFFLFlBQVk7eUJBQ3pCO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFFBQVEsRUFBRSxlQUFlOzRCQUN6QixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEF1dGhHdWFyZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWFBfTUVOVV9QUk9WSURFUiwgQVhQX1NFQVJDSF9ERUZJTklUSU9OX1BST1ZJREVSLCBBWFBfU0VBUkNIX1BST1ZJREVSIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQQXBwU3RhcnRVcFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQUm9vdExheW91dENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vdGhlbWVzL2RlZmF1bHQnO1xuaW1wb3J0IHsgSW5qZWN0b3IsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXMsIFJPVVRFUyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBWFBTZXR0aW5nU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyIH0gZnJvbSAnLi9mZWF0dXJlcy9zZXR0aW5ncy9zZWFyY2gtZGVmaW5pdGlvbi5wcm92aWRlcic7XG5pbXBvcnQgeyBBWFBTZXR0aW5nU2VhcmNoUHJvdmlkZXIgfSBmcm9tICcuL2ZlYXR1cmVzL3NldHRpbmdzL3NlYXJjaC5wcm92aWRlcic7XG5pbXBvcnQgeyBBWE1NZW51UHJvdmlkZXIgfSBmcm9tICcuL21lbnUucHJvdmlkZXInO1xuXG5mdW5jdGlvbiByb3V0ZXNGYWNvcnkoKSB7XG4gIGxldCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAgICB7XG4gICAgICBwYXRoOiAnOmFwcC9zZXR0aW5ncy86c2NvcGUnLFxuICAgICAgY2FuQWN0aXZhdGU6IFtBWFBBdXRoR3VhcmRdLFxuICAgICAgbG9hZENvbXBvbmVudDogKCkgPT4ge1xuICAgICAgICByZXR1cm4gQVhQUm9vdExheW91dENvbXBvbmVudDtcbiAgICAgIH0sXG4gICAgICBjaGlsZHJlbjogW1xuICAgICAgICB7XG4gICAgICAgICAgcGF0aDogJycsXG4gICAgICAgICAgbG9hZENvbXBvbmVudDogKCkgPT5cbiAgICAgICAgICAgIGltcG9ydCgnLi9mZWF0dXJlcy9zZXR0aW5ncy9zZXR0aW5nLXBhZ2Uvc2V0dGluZy1wYWdlLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQU2V0dGluZ1BhZ2VDb21wb25lbnQpLFxuICAgICAgICAgIGRhdGE6IHsgcmV1c2U6IHRydWUgfSxcbiAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwYXRoOiAnOmdyb3VwJyxcbiAgICAgICAgICAgICAgbG9hZENvbXBvbmVudDogKCkgPT5cbiAgICAgICAgICAgICAgICBpbXBvcnQoJy4vZmVhdHVyZXMvc2V0dGluZ3Mvc2V0dGluZy12aWV3L3NldHRpbmctdmlldy5jb21wb25lbnQnKS50aGVuKFxuICAgICAgICAgICAgICAgICAgKGMpID0+IGMuQVhQU2V0dGluZ3NWaWV3Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF07XG4gIHJldHVybiByb3V0ZXM7XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtdLFxuICBleHBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX1NFQVJDSF9QUk9WSURFUixcbiAgICAgIHVzZUNsYXNzOiBBWFBTZXR0aW5nU2VhcmNoUHJvdmlkZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9TRUFSQ0hfREVGSU5JVElPTl9QUk9WSURFUixcbiAgICAgIHVzZUNsYXNzOiBBWFBTZXR0aW5nU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBST1VURVMsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUZhY3Rvcnk6IHJvdXRlc0ZhY29yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9NRU5VX1BST1ZJREVSLFxuICAgICAgdXNlQ2xhc3M6IEFYTU1lbnVQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTVNldHRpbmdzTWFuYWdlbWVudE1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKGFwcEluaXRTZXJ2aWNlOiBBWFBBcHBTdGFydFVwU2VydmljZSwgaW5qZWN0b3I6IEluamVjdG9yKSB7IH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LW1vZHVsZXMtc2V0dGluZ3MtbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9zZXR0aW5ncy1tYW5hZ2VtZW50L3NyYy9hY29yZXgtbW9kdWxlcy1zZXR0aW5ncy1tYW5hZ2VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ import * as i7 from '@acorex/components/popover';
15
15
  import { AXPopoverModule } from '@acorex/components/popover';
16
16
  import { AXCalendarService } from '@acorex/core/date-time';
17
17
  import { AXLocaleService } from '@acorex/core/locale';
18
- import * as i4 from '@acorex/core/translation';
18
+ import * as i2$1 from '@acorex/core/translation';
19
19
  import { AXTranslatorPipe, AXTranslationModule } from '@acorex/core/translation';
20
20
  import { AXUnsubscriber } from '@acorex/core/utils';
21
21
  import { AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';
@@ -1233,7 +1233,7 @@ class AXMTaskBoardPage extends AXPPageLayoutBaseComponent {
1233
1233
  },
1234
1234
  ], viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true, isSignal: true }, { propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true, isSignal: true }, { propertyName: "contextMenu", first: true, predicate: ["rootContextMenu"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n <axp-page-toolbar>\n <axp-layout-prefix class=\"sm:ax-flex-row ax-flex-col ax-items-start\">\n <ax-button [text]=\"(t('task-board.view.' + selectedViewMode().text, { scope: rootConfig.config.i18n}) | async)!\">\n <ax-prefix><ax-icon [icon]=\"selectedViewMode().icon\"></ax-icon></ax-prefix>\n <ax-dropdown-panel #dropdownPanel>\n <ax-menu [orientation]=\"'vertical'\" class=\"ax-menu-container\">\n @for (category of menuItems(); track category.key) {\n <ng-container>\n @if (category.children && category.children.length > 0) {\n <ax-menu-item>\n <ax-prefix>\n <ax-icon [icon]=\"category.icon\"></ax-icon>\n </ax-prefix>\n <ax-text>{{ (t('task-board.' + category.text, { scope: rootConfig.config.i18n}) | async)! }}</ax-text>\n @for (child of category.children; track child.key) {\n <ax-menu-item (onClick)=\"handleViewChange(child.key,dropdownPanel)\">\n <ax-prefix>\n <ax-icon [icon]=\"child.icon\"></ax-icon>\n </ax-prefix>\n <ax-text\n >{{ (t('task-board.view.' + child.text, { scope: rootConfig.config.i18n}) | async)! }}</ax-text\n >\n </ax-menu-item>\n }\n </ax-menu-item>\n } @else {\n <ax-menu-item (onClick)=\"handleViewChange(category.key,dropdownPanel)\">\n <ax-prefix>\n <ax-icon [icon]=\"category.icon\"></ax-icon>\n </ax-prefix>\n <ax-text>{{ (t('task-board.' + category.text, { scope: rootConfig.config.i18n}) | async)! }}</ax-text>\n </ax-menu-item>\n }\n </ng-container>\n }\n </ax-menu>\n </ax-dropdown-panel>\n <ax-suffix>\n <ax-icon icon=\"fa-light fa-caret-down\"></ax-icon>\n </ax-suffix>\n </ax-button>\n\n <div class=\"ax-scheduler-header ax-w-max ax-sm sm:ax-md\">\n <ax-button look=\"blank\" (onClick)=\"changeDate(false)\">\n <ax-icon class=\"ax-icon ax-text-xl ax-icon-chevron-left arrow-icon\"></ax-icon>\n </ax-button>\n <ax-button look=\"blank\" [text]=\"timeText()\" #date></ax-button>\n <ax-button look=\"blank\" (onClick)=\"changeDate(true)\">\n <ax-icon class=\"ax-icon ax-text-xl ax-icon-chevron-right arrow-icon\"></ax-icon>\n </ax-button>\n <ax-popover [target]=\"date\" [placement]=\"'bottom'\" #popover [adaptivityEnabled]=\"true\">\n <div class=\"ax-overlay-pane\">\n <ax-calendar\n #calendar\n [type]=\"calendarType()\"\n [depth]=\"calendarDepth()\"\n [cellClass]=\"getCellClass\"\n [ngModel]=\"vm.currentDate()\"\n class=\"ax-single-range-calendar\"\n (onSlotClick)=\"handleCalendarSlotClick($event)\"\n >\n <ax-footer>\n <ax-button\n look=\"link\"\n color=\"primary\"\n [text]=\"todayButtonText()\"\n (onClick)=\"handleTodayClick()\"\n ></ax-button>\n </ax-footer>\n </ax-calendar>\n </div>\n </ax-popover>\n </div>\n </axp-layout-prefix>\n\n <axp-layout-suffix>\n <ax-button [text]=\"t('task-board.filter.title', { scope: rootConfig.config.i18n }) | async\">\n <ax-prefix><ax-icon icon=\"fa-{{vm.activeFilterCount()?'solid':'light'}} fa-filter\"></ax-icon></ax-prefix>\n <ax-dropdown-panel #filterDropdownPanel (onOpened)=\"filtersComponent.resetContextToViewModel()\">\n <axm-task-board-filters\n #filtersComponent\n [isQueryParam]=\"isQueryParam()\"\n (applyClicked)=\"filterDropdownPanel.close()\"\n ></axm-task-board-filters>\n </ax-dropdown-panel>\n </ax-button>\n\n @if(layoutService.isLarge()) {\n <ax-button (onClick)=\"vm.toggleDetailPanel()\">\n <ax-icon icon=\"{{ vm.isDetailPanelOpen() ? 'fa-solid fa-square-info' : 'fa-light fa-square-info' }}\"></ax-icon>\n </ax-button>\n }\n </axp-layout-suffix>\n </axp-page-toolbar>\n <axp-page-content class=\"ax-flex ax-flex-row ax-gap-2\">\n @if (isReady()) { @switch(vm.currentViewMode()) { @case('kanban') {\n <axm-task-board-kanban-view\n class=\"axp-kanban-container ax-h-full ax-w-full ax-min-w-0\"\n [tasks]=\"resolvedTasks()\"\n (onTaskClick)=\"setActiveTask($event)\"\n (onActionClick)=\"handleContextMenu($event)\"\n ></axm-task-board-kanban-view>\n } @case('grid') {\n <axm-task-board-grid-view\n class=\"ax-h-full ax-w-full ax-min-w-0\"\n [dataSource]=\"gridDataSource\"\n (onTaskClick)=\"setActiveTask($event)\"\n (onActionClick)=\"handleContextMenu($event)\"\n ></axm-task-board-grid-view>\n } @case('status-grouped-grid') {\n <axm-task-board-status-grouped-grid-view\n class=\"ax-flex ax-flex-col ax-gap-2 ax-w-full ax-min-w-0\"\n [dataSource]=\"gridDataSource\"\n (onActionClick)=\"handleContextMenu($event)\"\n ></axm-task-board-status-grouped-grid-view>\n } @default {\n <axm-task-board-calendar-view\n class=\"axp-scheduler-container ax-h-full ax-w-full ax-min-w-0\"\n [dataSource]=\"schedulerDataSource\"\n [startingDate]=\"vm.currentDate()\"\n (onTaskClick)=\"setActiveTask($event)\"\n [selectedView]=\"vm.currentViewMode()\"\n (onActionClick)=\"handleContextMenu($event)\"\n (onTaskRightClick)=\"handleContextMenu($event)\"\n (component)=\"schedulerComponentChanged($event)\"\n (onMonthSlotDblClicked)=\"handleMonthSlotDblClicked($event)\"\n ></axm-task-board-calendar-view>\n } }\n <ax-context-menu\n #rootContextMenu\n [closeOn]=\"'leave'\"\n [orientation]=\"'vertical'\"\n (onOpening)=\"handleContextMenuOnOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n >\n </ax-context-menu>\n @if (vm.isDetailPanelOpen() && layoutService.isLarge()) {\n <axm-task-board-detail-panel></axm-task-board-detail-panel>\n } } @else {\n <div class=\"ax-flex ax-items-center ax-justify-center ax-w-full ax-h-full\">\n <ax-loading></ax-loading>\n </div>\n }\n </axp-page-content>\n</axp-page-layout>\n", styles: ["html[dir=rtl] axp-page-layout axp-page-toolbar axp-layout-prefix .ax-scheduler-header .arrow-icon:before{-moz-transform:scale(-1,1);-webkit-transform:scale(-1,1);-o-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scaleX(-1)}.ax-single-range-calendar .ax-range-start,.ax-single-range-calendar .ax-range-end{color:rgba(var(--ax-sys-color-on-primary-surface))!important;background-color:rgba(var(--ax-sys-color-primary-surface),.85)!important}.ax-single-range-calendar .ax-range-start:hover,.ax-single-range-calendar .ax-range-end:hover{background-color:rgba(var(--ax-sys-color-primary-surface))!important}.ax-single-range-calendar .ax-range-start.ax-state-holiday,.ax-single-range-calendar .ax-range-end.ax-state-holiday{background-color:rgba(var(--ax-sys-color-danger-surface),.85)!important}.ax-single-range-calendar .ax-range-between{color:rgba(var(--ax-sys-color-on-primary-surface))!important;background-color:rgba(var(--ax-sys-color-primary-surface),.65)}.ax-single-range-calendar .ax-range-between.ax-state-holiday{background-color:rgba(var(--ax-sys-color-danger-surface),.65)}.ax-single-range-calendar ax-footer{display:flex;justify-content:center;border-color:rgba(var(--ax-comp-calendar-view-header-border-color));border-top-width:var(--ax-comp-calendar-view-header-border-width, 1px)}axp-page-content:not(:has(axm-task-board-status-grouped-grid-view,axm-task-board-time-grouped-grid-view)){overflow-y:hidden}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type:
1235
1235
  //
1236
- AXMenuModule }, { kind: "component", type: i2.AXMenuItemComponent, selector: "ax-menu-item", inputs: ["name", "data", "disabled", "color"], outputs: ["onClick"] }, { kind: "component", type: i2.AXMenuComponent, selector: "ax-menu", inputs: ["orientation", "openOn", "closeOn", "items", "hasArrow"], outputs: ["onItemClick"] }, { kind: "component", type: i2.AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.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: AXDropdownButtonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i4.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.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: AXLoadingModule }, { kind: "component", type: i6.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type:
1236
+ AXMenuModule }, { kind: "component", type: i2.AXMenuItemComponent, selector: "ax-menu-item", inputs: ["name", "data", "disabled", "color"], outputs: ["onClick"] }, { kind: "component", type: i2.AXMenuComponent, selector: "ax-menu", inputs: ["orientation", "openOn", "closeOn", "items", "hasArrow"], outputs: ["onItemClick"] }, { kind: "component", type: i2.AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.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: AXDropdownButtonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i2$1.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.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: AXLoadingModule }, { kind: "component", type: i6.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type:
1237
1237
  //
1238
1238
  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: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXMTaskBoardCalendarViewComponent, selector: "axm-task-board-calendar-view", inputs: ["startingDate", "selectedView", "dataSource"], outputs: ["onTaskClick", "onTaskChanged", "onMonthSlotDblClicked", "onActionClick", "component", "onTaskRightClick", "onRangeChanged"] }, { kind: "component", type: AXMTaskBoardKanbanViewComponent, selector: "axm-task-board-kanban-view", inputs: ["tasks"], outputs: ["tasksChange", "onTaskClick", "onTaskChanged", "component", "onActionClick"] }, { kind: "component", type: AXMTaskBoardGridViewComponent, selector: "axm-task-board-grid-view", inputs: ["dataSource"], outputs: ["onTaskClick", "onActionClick"] }, { kind: "component", type: AXMTaskBoardStatusGroupedGridViewComponent, selector: "axm-task-board-status-grouped-grid-view", inputs: ["provider", "dataSource"], outputs: ["onActionClick"] }, { kind: "component", type: AXMTaskBoardDetailPanel, selector: "axm-task-board-detail-panel" }, { kind: "component", type: AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i7.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXCalendarComponent, selector: "ax-calendar", inputs: ["rtl", "readonly", "value", "name", "disabled", "depth", "activeView", "minValue", "maxValue", "disabledDates", "holidayDates", "type", "cellTemplate", "cellClass", "showNavigation", "count", "id"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "minValueChange", "maxValueChange", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "countChange"] }, { kind: "component", type: AXMTaskBoardFiltersComponent, selector: "axm-task-board-filters", inputs: ["isQueryParam"], outputs: ["applyClicked"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1239
1239
  }
@@ -1273,4 +1273,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
1273
1273
  }] });
1274
1274
 
1275
1275
  export { AXMTaskBoardPage };
1276
- //# sourceMappingURL=acorex-modules-task-management-task-board.page-FDZgH0ir.mjs.map
1276
+ //# sourceMappingURL=acorex-modules-task-management-task-board.page-DThbrMLC.mjs.map