@acorex/modules 20.3.0-next.7 → 20.3.0-next.8

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 (96) hide show
  1. package/common/index.d.ts +1 -0
  2. package/data-management/index.d.ts +22 -3
  3. package/fesm2022/acorex-modules-common.mjs +97 -6
  4. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  5. package/fesm2022/{acorex-modules-contact-management-emergency-contact.entity-D75qsDor.mjs → acorex-modules-contact-management-emergency-contact.entity-3vnkpSvv.mjs} +10 -9
  6. package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-3vnkpSvv.mjs.map +1 -0
  7. package/fesm2022/acorex-modules-contact-management.mjs +1 -1
  8. package/fesm2022/acorex-modules-content-management.mjs +6 -0
  9. package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
  10. package/fesm2022/acorex-modules-conversation.mjs +3 -3
  11. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  12. package/fesm2022/acorex-modules-dashboard-management.mjs +11 -11
  13. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  14. package/fesm2022/acorex-modules-data-management.mjs +924 -8
  15. package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
  16. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-DhEDQZru.mjs → acorex-modules-document-management-acorex-modules-document-management-DUkSbCDD.mjs} +91 -58
  17. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-DhEDQZru.mjs.map → acorex-modules-document-management-acorex-modules-document-management-DUkSbCDD.mjs.map} +1 -1
  18. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-Bx2Ps7uX.mjs → acorex-modules-document-management-attachment-widget.component-Ded4rmGD.mjs} +2 -2
  19. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-Bx2Ps7uX.mjs.map → acorex-modules-document-management-attachment-widget.component-Ded4rmGD.mjs.map} +1 -1
  20. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-B26m8qWj.mjs → acorex-modules-document-management-create-folder-dialog.component-DdN8ilG4.mjs} +9 -9
  21. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-B26m8qWj.mjs.map → acorex-modules-document-management-create-folder-dialog.component-DdN8ilG4.mjs.map} +1 -1
  22. package/fesm2022/{acorex-modules-document-management-details-view.component-3DmulyK_.mjs → acorex-modules-document-management-details-view.component-DkeoYFvx.mjs} +2 -2
  23. package/fesm2022/{acorex-modules-document-management-details-view.component-3DmulyK_.mjs.map → acorex-modules-document-management-details-view.component-DkeoYFvx.mjs.map} +1 -1
  24. package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-DmR6gFdD.mjs → acorex-modules-document-management-document-signature-popup.component-DuPMRUTY.mjs} +2 -2
  25. package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-DmR6gFdD.mjs.map → acorex-modules-document-management-document-signature-popup.component-DuPMRUTY.mjs.map} +1 -1
  26. package/fesm2022/{acorex-modules-document-management-drive-choose.component-BNyPOrzl.mjs → acorex-modules-document-management-drive-choose.component-CKMMZHrc.mjs} +2 -2
  27. package/fesm2022/{acorex-modules-document-management-drive-choose.component-BNyPOrzl.mjs.map → acorex-modules-document-management-drive-choose.component-CKMMZHrc.mjs.map} +1 -1
  28. package/fesm2022/{acorex-modules-document-management-drive.component-D5X_bI5D.mjs → acorex-modules-document-management-drive.component-Dh2hcCpJ.mjs} +2 -2
  29. package/fesm2022/{acorex-modules-document-management-drive.component-D5X_bI5D.mjs.map → acorex-modules-document-management-drive.component-Dh2hcCpJ.mjs.map} +1 -1
  30. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-AzDtXQqt.mjs → acorex-modules-document-management-large-icons-view.component-DGUbA3xa.mjs} +2 -2
  31. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-AzDtXQqt.mjs.map → acorex-modules-document-management-large-icons-view.component-DGUbA3xa.mjs.map} +1 -1
  32. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-DCG_v9JT.mjs → acorex-modules-document-management-large-tiles-view.component-Bt6Py82M.mjs} +2 -2
  33. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-DCG_v9JT.mjs.map → acorex-modules-document-management-large-tiles-view.component-Bt6Py82M.mjs.map} +1 -1
  34. package/fesm2022/{acorex-modules-document-management-list-view.component-Cb2OVElN.mjs → acorex-modules-document-management-list-view.component-DQllDW_Q.mjs} +2 -2
  35. package/fesm2022/{acorex-modules-document-management-list-view.component-Cb2OVElN.mjs.map → acorex-modules-document-management-list-view.component-DQllDW_Q.mjs.map} +1 -1
  36. package/fesm2022/{acorex-modules-document-management-meta-choose-popup.component-DsSo9G8S.mjs → acorex-modules-document-management-meta-choose-popup.component-BSYX7W79.mjs} +4 -4
  37. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-BSYX7W79.mjs.map +1 -0
  38. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-EN4ttbvx.mjs → acorex-modules-document-management-small-icons-view.component-Umh8Z9qn.mjs} +2 -2
  39. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-EN4ttbvx.mjs.map → acorex-modules-document-management-small-icons-view.component-Umh8Z9qn.mjs.map} +1 -1
  40. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-C-HjbNwe.mjs → acorex-modules-document-management-small-tiles-view.component-CBgWWCdt.mjs} +2 -2
  41. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-C-HjbNwe.mjs.map → acorex-modules-document-management-small-tiles-view.component-CBgWWCdt.mjs.map} +1 -1
  42. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  43. package/fesm2022/{acorex-modules-human-capital-management-acorex-modules-human-capital-management-BQ_KNd7M.mjs → acorex-modules-human-capital-management-acorex-modules-human-capital-management-CdAtMLlz.mjs} +93 -213
  44. package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-CdAtMLlz.mjs.map +1 -0
  45. package/fesm2022/{acorex-modules-human-capital-management-employee-skill.entity-3wofaUXu.mjs → acorex-modules-human-capital-management-employee-skill.entity-BllN9Giu.mjs} +2 -2
  46. package/fesm2022/{acorex-modules-human-capital-management-employee-skill.entity-3wofaUXu.mjs.map → acorex-modules-human-capital-management-employee-skill.entity-BllN9Giu.mjs.map} +1 -1
  47. package/fesm2022/{acorex-modules-human-capital-management-employee.entity-1fVathnk.mjs → acorex-modules-human-capital-management-employee.entity-CKofleq7.mjs} +2 -2
  48. package/fesm2022/{acorex-modules-human-capital-management-employee.entity-1fVathnk.mjs.map → acorex-modules-human-capital-management-employee.entity-CKofleq7.mjs.map} +1 -1
  49. package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-BWrwli0P.mjs → acorex-modules-human-capital-management-employment-type.entity-DfrErkOs.mjs} +2 -2
  50. package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-BWrwli0P.mjs.map → acorex-modules-human-capital-management-employment-type.entity-DfrErkOs.mjs.map} +1 -1
  51. package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-4ddc6R_K.mjs → acorex-modules-human-capital-management-leave-request.entity-Bz_4gE7D.mjs} +2 -2
  52. package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-4ddc6R_K.mjs.map → acorex-modules-human-capital-management-leave-request.entity-Bz_4gE7D.mjs.map} +1 -1
  53. package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-DYYJVRju.mjs → acorex-modules-human-capital-management-leave-type.entity-CFqmKzkn.mjs} +2 -2
  54. package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-DYYJVRju.mjs.map → acorex-modules-human-capital-management-leave-type.entity-CFqmKzkn.mjs.map} +1 -1
  55. package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-DIqdhqk4.mjs → acorex-modules-human-capital-management-position-assignment.entity-BYqhKD95.mjs} +36 -4
  56. package/fesm2022/acorex-modules-human-capital-management-position-assignment.entity-BYqhKD95.mjs.map +1 -0
  57. package/fesm2022/{acorex-modules-human-capital-management-skill-level.entity-BN67pBaa.mjs → acorex-modules-human-capital-management-skill-level.entity-D4WoE6MR.mjs} +2 -2
  58. package/fesm2022/{acorex-modules-human-capital-management-skill-level.entity-BN67pBaa.mjs.map → acorex-modules-human-capital-management-skill-level.entity-D4WoE6MR.mjs.map} +1 -1
  59. package/fesm2022/{acorex-modules-human-capital-management-skill.entity-D4CglCC7.mjs → acorex-modules-human-capital-management-skill.entity-DqUyAAgW.mjs} +2 -2
  60. package/fesm2022/{acorex-modules-human-capital-management-skill.entity-D4CglCC7.mjs.map → acorex-modules-human-capital-management-skill.entity-DqUyAAgW.mjs.map} +1 -1
  61. package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
  62. package/fesm2022/acorex-modules-notification-management.mjs +5 -5
  63. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  64. package/fesm2022/{acorex-modules-organization-management-org-chart.page-keZ4Gk7y.mjs → acorex-modules-organization-management-org-chart.page-Caboa2La.mjs} +75 -23
  65. package/fesm2022/acorex-modules-organization-management-org-chart.page-Caboa2La.mjs.map +1 -0
  66. package/fesm2022/acorex-modules-organization-management.mjs +5 -2
  67. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  68. package/fesm2022/acorex-modules-project-management-email-jsa.command-DS9XIlQ0.mjs +91 -0
  69. package/fesm2022/acorex-modules-project-management-email-jsa.command-DS9XIlQ0.mjs.map +1 -0
  70. package/fesm2022/acorex-modules-project-management-reassign-jsa.command-DbxxI3e3.mjs +88 -0
  71. package/fesm2022/acorex-modules-project-management-reassign-jsa.command-DbxxI3e3.mjs.map +1 -0
  72. package/fesm2022/acorex-modules-project-management-sign-jsa.command-cRf0DeTE.mjs +75 -0
  73. package/fesm2022/acorex-modules-project-management-sign-jsa.command-cRf0DeTE.mjs.map +1 -0
  74. package/fesm2022/acorex-modules-project-management.mjs +6 -6
  75. package/fesm2022/acorex-modules-report-management.mjs +4 -2
  76. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  77. package/fesm2022/acorex-modules-security-management.mjs +347 -3
  78. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  79. package/fesm2022/acorex-modules-task-management.mjs +18 -11
  80. package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
  81. package/human-capital-management/index.d.ts +1 -1
  82. package/package.json +1 -1
  83. package/security-management/index.d.ts +42 -3
  84. package/fesm2022/acorex-modules-contact-management-emergency-contact.entity-D75qsDor.mjs.map +0 -1
  85. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-DsSo9G8S.mjs.map +0 -1
  86. package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-B7gcoDDb.mjs +0 -101
  87. package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-B7gcoDDb.mjs.map +0 -1
  88. package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-BQ_KNd7M.mjs.map +0 -1
  89. package/fesm2022/acorex-modules-human-capital-management-position-assignment.entity-DIqdhqk4.mjs.map +0 -1
  90. package/fesm2022/acorex-modules-organization-management-org-chart.page-keZ4Gk7y.mjs.map +0 -1
  91. package/fesm2022/acorex-modules-project-management-email-jsa.command-BuT5Vj4Y.mjs +0 -115
  92. package/fesm2022/acorex-modules-project-management-email-jsa.command-BuT5Vj4Y.mjs.map +0 -1
  93. package/fesm2022/acorex-modules-project-management-reassign-jsa.command-B3OsacOq.mjs +0 -113
  94. package/fesm2022/acorex-modules-project-management-reassign-jsa.command-B3OsacOq.mjs.map +0 -1
  95. package/fesm2022/acorex-modules-project-management-sign-jsa.command-CJWg6Ntg.mjs +0 -77
  96. package/fesm2022/acorex-modules-project-management-sign-jsa.command-CJWg6Ntg.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-modules-human-capital-management-position-assignment.entity-DIqdhqk4.mjs","sources":["../tmp-esm2022/human-capital-management/lib/entities/position-assignment/position-assignment.entity.js"],"sourcesContent":["import { AXPEntityCommandScope, AXPEntityQueryType, createAllQueryView } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { RootConfig } from '../../const';\nimport { AXMHumanCapitalManagementPositionAssignmentEntityService } from './position-assignment.service';\nexport async function factory(injector) {\n const dataService = injector.get(AXMHumanCapitalManagementPositionAssignmentEntityService);\n const i18n = RootConfig.config.i18n;\n const entityName = 'position-assignment';\n const entityDef = {\n module: RootConfig.module.name,\n name: RootConfig.entities.positionAssignment.name,\n icon: 'fa-light fa-user-tie-hair',\n plugins: [{ name: 'history' }, { name: 'lock' }, { name: 'compare' }, { name: 'extra-properties' }],\n source: '',\n title: '@human-capital-management:position-assignment.individual-title',\n formats: {\n individual: '@human-capital-management:position-assignment.individual-title',\n plural: '@human-capital-management:position-assignment.plural-title',\n searchResult: { title: '{{ position.title }}', description: RootConfig.module.title },\n },\n relatedEntities: [],\n groups: [\n { id: 'assignment', title: '@human-capital-management:position-assignment.assignment' },\n { id: 'period', title: '@general:terms.period' },\n { id: 'additional', title: '@general:terms.additional-info' },\n ],\n properties: [\n { name: 'id', title: 'ID', groupId: 'assignment', schema: { dataType: 'uuid', hidden: true, nullable: false, readonly: true, unique: { enabled: true } } },\n {\n name: 'employeeId',\n title: '@general:terms.employee',\n groupId: 'assignment',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.lookup,\n options: {\n entity: `HumanCapitalManagement.Employee`,\n textField: 'party.displayName',\n valueField: 'id',\n look: 'select',\n columns: ['party.displayName', 'employeeCode'],\n expose: [\n { source: 'id', target: 'employee.id' },\n { source: 'party.displayName', target: 'employee.party.displayName' },\n ],\n },\n },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'positionId',\n title: '@general:terms.position',\n groupId: 'assignment',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.lookup,\n options: {\n entity: `OrganizationManagement.Position`,\n textField: 'title',\n valueField: 'id',\n look: 'select',\n columns: ['title'],\n expose: [\n { source: 'id', target: 'position.id' },\n { source: 'title', target: 'position.title' },\n ],\n },\n },\n },\n validations: [{ rule: 'required' }],\n },\n { name: 'businessUnitId', title: '@organization-management:business-unit.individual-title', groupId: 'assignment', schema: { dataType: 'object', interface: { type: AXPWidgetsCatalog.lookup, options: { entity: `OrganizationManagement.BusinessUnit`, textField: 'title', valueField: 'id', look: 'select', expose: [{ source: 'id', target: 'businessUnit.id' }, { source: 'title', target: 'businessUnit.title' }] } } }, validations: [{ rule: 'required' }] },\n { name: 'startDate', title: '@general:terms.start-date', groupId: 'period', schema: { dataType: 'date', interface: { type: AXPWidgetsCatalog.dateTime } }, validations: [{ rule: 'required' }] },\n { name: 'endDate', title: '@general:terms.end-date', groupId: 'period', schema: { dataType: 'date', interface: { type: AXPWidgetsCatalog.dateTime } } },\n { name: 'isPrimary', title: '@general:terms.is-primary', groupId: 'additional', schema: { dataType: 'boolean', interface: { type: AXPWidgetsCatalog.toggle } } },\n { name: 'notes', title: '@general:terms.notes', groupId: 'additional', schema: { dataType: 'string', interface: { type: AXPWidgetsCatalog.largeText } } },\n ],\n columns: [\n { name: 'employeeId', options: { dataPath: 'employee.party.displayName' } },\n { name: 'positionId', options: { dataPath: 'position.title' } },\n { name: 'businessUnitId', options: { dataPath: 'businessUnit.title' } },\n { name: 'startDate' },\n { name: 'endDate' },\n { name: 'isPrimary' },\n ],\n commands: {\n create: { execute: async (data) => ({ id: await dataService.insertOne(data) }) },\n delete: { execute: async (id) => await dataService.deleteOne(id) },\n update: { execute: async (data) => await dataService.updateOne(data.id, data) },\n },\n queries: {\n byKey: { execute: async (id) => await dataService.getOne(id), type: AXPEntityQueryType.Single },\n list: { execute: async (e) => await dataService.query(e), type: AXPEntityQueryType.List },\n },\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'assignment' }, { id: 'period' }, { id: 'additional' }], properties: [\n { name: 'employeeId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'positionId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'businessUnitId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'startDate', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'endDate', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isPrimary', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'notes', layout: { positions: { lg: { colSpan: 12 } } } },\n ]\n },\n update: {\n sections: [{ id: 'assignment' }, { id: 'period' }, { id: 'additional' }], properties: [\n { name: 'employeeId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'positionId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'businessUnitId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'startDate', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'endDate', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isPrimary', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'notes', layout: { positions: { lg: { colSpan: 12 } } } },\n ]\n },\n single: {\n title: `{{position.title}}`, sections: [{ id: 'assignment' }, { id: 'period' }, { id: 'additional' }], properties: [\n { name: 'employeeId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'positionId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'businessUnitId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'startDate', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'endDate', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isPrimary', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'notes', layout: { positions: { lg: { colSpan: 12 } } } },\n ], actions: [\n { title: '@general:actions.delete.title', command: 'delete-entity', priority: 'secondary', type: 'delete', scope: AXPEntityCommandScope.Individual },\n ]\n },\n list: {\n actions: [\n { title: '@general:actions.create.title', command: 'create-entity', priority: 'primary', type: 'create', scope: AXPEntityCommandScope.TypeLevel },\n { title: '@general:actions.delete-items.title', command: 'delete-entity', priority: 'primary', type: 'delete', scope: AXPEntityCommandScope.Selected },\n { title: '@general:actions.edit.title', command: 'quick-modify-entity', priority: 'secondary', type: 'update', scope: AXPEntityCommandScope.Individual },\n { title: '@general:actions.delete.title', command: 'delete-entity', priority: 'secondary', type: 'delete', scope: AXPEntityCommandScope.Individual },\n ], views: [createAllQueryView({ sorts: [{ name: 'startDate', dir: 'desc' }] })]\n },\n },\n },\n };\n return entityDef;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24tYXNzaWdubWVudC5lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvaHVtYW4tY2FwaXRhbC1tYW5hZ2VtZW50L3NyYy9saWIvZW50aXRpZXMvcG9zaXRpb24tYXNzaWdubWVudC9wb3NpdGlvbi1hc3NpZ25tZW50LmVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx3REFBd0QsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXpHLE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTyxDQUFDLFFBQWtCO0lBQzVDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsd0RBQXdELENBQUMsQ0FBQztJQUMzRixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNwQyxNQUFNLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQztJQUV6QyxNQUFNLFNBQVMsR0FBYztRQUN6QixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1FBQzlCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUk7UUFDakQsSUFBSSxFQUFFLDJCQUEyQjtRQUNqQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1FB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QXFCLENBQUMsVUFBVSxFQUFFO3dCQUN4SixFQUFFLEtBQUssRUFBRSwrQkFBK0IsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUscUJBQXFCLENBQUMsVUFBVSxFQUFFO3FCQUN2SixFQUFFLEtBQUssRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDbEY7YUFDSjtTQUNKO0tBQ0osQ0FBQztJQUVGLE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBFbnRpdHksIEFYUEVudGl0eUNvbW1hbmRTY29wZSwgQVhQRW50aXR5UXVlcnlUeXBlLCBjcmVhdGVBbGxRdWVyeVZpZXcgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBXaWRnZXRzQ2F0YWxvZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuLi8uLi9jb25zdCc7XG5pbXBvcnQgeyBBWE1IdW1hbkNhcGl0YWxNYW5hZ2VtZW50UG9zaXRpb25Bc3NpZ25tZW50RW50aXR5U2VydmljZSB9IGZyb20gJy4vcG9zaXRpb24tYXNzaWdubWVudC5zZXJ2aWNlJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogUHJvbWlzZTxBWFBFbnRpdHkgfCBudWxsPiB7XG4gICAgY29uc3QgZGF0YVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQVhNSHVtYW5DYXBpdGFsTWFuYWdlbWVudFBvc2l0aW9uQXNzaWdubWVudEVudGl0eVNlcnZpY2UpO1xuICAgIGNvbnN0IGkxOG4gPSBSb290Q29uZmlnLmNvbmZpZy5pMThuO1xuICAgIGNvbnN0IGVudGl0eU5hbWUgPSAncG9zaXRpb24tYXNzaWdubWVudCc7XG5cbiAgICBjb25zdCBlbnRpdHlEZWY6IEFYUEVudGl0eSA9IHtcbiAgICAgICAgbW9kdWxlOiBSb290Q29uZmlnLm1vZHVsZS5uYW1lLFxuICAgICAgICBuYW1lOiBSb290Q29uZmlnLmVudGl0aWVzLnBvc2l0aW9uQXNzaWdubWVudC5uYW1lLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtdXNlci10aWUtaGFpcicsXG4gICAgICAgIHBsdWdpbnM6IFt7IG5hbWU6ICdoaXN0b3J5JyB9LCB7IG5hbWU6ICdsb2NrJyB9LCB7IG5hbWU6ICdjb21wYXJlJyB9LCB7IG5hbWU6ICdleHRyYS1wcm9wZXJ0aWVzJyB9XSxcbiAgICAgICAgc291cmNlOiAnJyxcbiAgICAgICAgdGl0bGU6ICdAaHVtYW4tY2FwaXRhbC1tYW5hZ2VtZW50OnBvc2l0aW9uLWFzc2lnbm1lbnQuaW5kaXZpZHVhbC10aXRsZScsXG4gICAgICAgIGZvcm1hdHM6IHtcbiAgICAgICAgICAgIGluZGl2aWR1YWw6ICdAaHVtYW4tY2FwaXRhbC1tYW5hZ2VtZW50OnBvc2l0aW9uLWFzc2lnbm1lbnQuaW5kaXZpZHVhbC10aXRsZScsXG4gICAgICAgICAgICBwbHVyYWw6ICdAaHVtYW4tY2FwaXRhbC1tYW5hZ2VtZW50OnBvc2l0aW9uLWFzc2lnbm1lbnQucGx1cmFsLXRpdGxlJyxcbiAgICAgICAgICAgIHNlYXJjaFJlc3VsdDogeyB0aXRsZTogJ3t7IHBvc2l0aW9uLnRpdGxlIH19JywgZGVzY3JpcHRpb246IFJvb3RDb25maWcubW9kdWxlLnRpdGxlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0ZWRFbnRpdGllczogW10sXG4gICAgICAgIGdyb3VwczogW1xuICAgICAgICAgICAgeyBpZDogJ2Fzc2lnbm1lbnQnLCB0aXRsZTogJ0BodW1hbi1jYXBpdGFsLW1hbmFnZW1lbnQ6cG9zaXRpb24tYXNzaWdubWVudC5hc3NpZ25tZW50JyB9LFxuICAgICAgICAgICAgeyBpZDogJ3BlcmlvZCcsIHRpdGxlOiAnQGdlbmVyYWw6dGVybXMucGVyaW9kJyB9LFxuICAgICAgICAgICAgeyBpZDogJ2FkZGl0aW9uYWwnLCB0aXRsZTogJ0BnZW5lcmFsOnRlcm1zLmFkZGl0aW9uYWwtaW5mbycgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcHJvcGVydGllczogW1xuICAgICAgICAgICAgeyBuYW1lOiAnaWQnLCB0aXRsZTogJ0lEJywgZ3JvdXBJZDogJ2Fzc2lnbm1lbnQnLCBzY2hlbWE6IHsgZGF0YVR5cGU6ICd1dWlkJywgaGlkZGVuOiB0cnVlLCBudWxsYWJsZTogZmFsc2UsIHJlYWRvbmx5OiB0cnVlLCB1bmlxdWU6IHsgZW5hYmxlZDogdHJ1ZSB9IH0gfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZW1wbG95ZWVJZCcsXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdAZ2VuZXJhbDp0ZXJtcy5lbXBsb3llZScsXG4gICAgICAgICAgICAgICAgZ3JvdXBJZDogJ2Fzc2lnbm1lbnQnLFxuICAgICAgICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubG9va3VwLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogYEh1bWFuQ2FwaXRhbE1hbmFnZW1lbnQuRW1wbG95ZWVgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZDogJ3BhcnR5LmRpc3BsYXlOYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUZpZWxkOiAnaWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb2s6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IFsncGFydHkuZGlzcGxheU5hbWUnLCAnZW1wbG95ZWVDb2RlJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3NlOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgc291cmNlOiAnaWQnLCB0YXJnZXQ6ICdlbXBsb3llZS5pZCcgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBzb3VyY2U6ICdwYXJ0eS5kaXNwbGF5TmFtZScsIHRhcmdldDogJ2VtcGxveWVlLnBhcnR5LmRpc3BsYXlOYW1lJyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbnM6IFt7IHJ1bGU6ICdyZXF1aXJlZCcgfV0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdwb3NpdGlvbklkJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOnRlcm1zLnBvc2l0aW9uJyxcbiAgICAgICAgICAgICAgICBncm91cElkOiAnYXNzaWdubWVudCcsXG4gICAgICAgICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5sb29rdXAsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiBgT3JnYW5pemF0aW9uTWFuYWdlbWVudC5Qb3NpdGlvbmAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkOiAndGl0bGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlRmllbGQ6ICdpZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9vazogJ3NlbGVjdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogWyd0aXRsZSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9zZTogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHNvdXJjZTogJ2lkJywgdGFyZ2V0OiAncG9zaXRpb24uaWQnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgc291cmNlOiAndGl0bGUnLCB0YXJnZXQ6ICdwb3NpdGlvbi50aXRsZScgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbGlkYXRpb25zOiBbeyBydWxlOiAncmVxdWlyZWQnIH1dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2J1c2luZXNzVW5pdElkJywgdGl0bGU6ICdAb3JnYW5pemF0aW9uLW1hbmFnZW1lbnQ6YnVzaW5lc3MtdW5pdC5pbmRpdmlkdWFsLXRpdGxlJywgZ3JvdXBJZDogJ2Fzc2lnbm1lbnQnLCBzY2hlbWE6IHsgZGF0YVR5cGU6ICdvYmplY3QnLCBpbnRlcmZhY2U6IHsgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubG9va3VwLCBvcHRpb25zOiB7IGVudGl0eTogYE9yZ2FuaXphdGlvbk1hbmFnZW1lbnQuQnVzaW5lc3NVbml0YCwgdGV4dEZpZWxkOiAndGl0bGUnLCB2YWx1ZUZpZWxkOiAnaWQnLCBsb29rOiAnc2VsZWN0JywgZXhwb3NlOiBbeyBzb3VyY2U6ICdpZCcsIHRhcmdldDogJ2J1c2luZXNzVW5pdC5pZCcgfSwgeyBzb3VyY2U6ICd0aXRsZScsIHRhcmdldDogJ2J1c2luZXNzVW5pdC50aXRsZScgfV0gfSB9IH0sIHZhbGlkYXRpb25zOiBbeyBydWxlOiAncmVxdWlyZWQnIH1dIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdzdGFydERhdGUnLCB0aXRsZTogJ0BnZW5lcmFsOnRlcm1zLnN0YXJ0LWRhdGUnLCBncm91cElkOiAncGVyaW9kJywgc2NoZW1hOiB7IGRhdGFUeXBlOiAnZGF0ZScsIGludGVyZmFjZTogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5kYXRlVGltZSB9IH0sIHZhbGlkYXRpb25zOiBbeyBydWxlOiAncmVxdWlyZWQnIH1dIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdlbmREYXRlJywgdGl0bGU6ICdAZ2VuZXJhbDp0ZXJtcy5lbmQtZGF0ZScsIGdyb3VwSWQ6ICdwZXJpb2QnLCBzY2hlbWE6IHsgZGF0YVR5cGU6ICdkYXRlJywgaW50ZXJmYWNlOiB7IHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLmRhdGVUaW1lIH0gfSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnaXNQcmltYXJ5JywgdGl0bGU6ICdAZ2VuZXJhbDp0ZXJtcy5pcy1wcmltYXJ5JywgZ3JvdXBJZDogJ2FkZGl0aW9uYWwnLCBzY2hlbWE6IHsgZGF0YVR5cGU6ICdib29sZWFuJywgaW50ZXJmYWNlOiB7IHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRvZ2dsZSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ25vdGVzJywgdGl0bGU6ICdAZ2VuZXJhbDp0ZXJtcy5ub3RlcycsIGdyb3VwSWQ6ICdhZGRpdGlvbmFsJywgc2NoZW1hOiB7IGRhdGFUeXBlOiAnc3RyaW5nJywgaW50ZXJmYWNlOiB7IHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLmxhcmdlVGV4dCB9IH0gfSxcbiAgICAgICAgXSxcbiAgICAgICAgY29sdW1uczogW1xuICAgICAgICAgICAgeyBuYW1lOiAnZW1wbG95ZWVJZCcsIG9wdGlvbnM6IHsgZGF0YVBhdGg6ICdlbXBsb3llZS5wYXJ0eS5kaXNwbGF5TmFtZScgfSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAncG9zaXRpb25JZCcsIG9wdGlvbnM6IHsgZGF0YVBhdGg6ICdwb3NpdGlvbi50aXRsZScgfSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnYnVzaW5lc3NVbml0SWQnLCBvcHRpb25zOiB7IGRhdGFQYXRoOiAnYnVzaW5lc3NVbml0LnRpdGxlJyB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdzdGFydERhdGUnIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdlbmREYXRlJyB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnaXNQcmltYXJ5JyB9LFxuICAgICAgICBdLFxuICAgICAgICBjb21tYW5kczoge1xuICAgICAgICAgICAgY3JlYXRlOiB7IGV4ZWN1dGU6IGFzeW5jIChkYXRhOiBhbnkpID0+ICh7IGlkOiBhd2FpdCBkYXRhU2VydmljZS5pbnNlcnRPbmUoZGF0YSkgfSkgfSxcbiAgICAgICAgICAgIGRlbGV0ZTogeyBleGVjdXRlOiBhc3luYyAoaWQ6IGFueSkgPT4gYXdhaXQgZGF0YVNlcnZpY2UuZGVsZXRlT25lKGlkKSB9LFxuICAgICAgICAgICAgdXBkYXRlOiB7IGV4ZWN1dGU6IGFzeW5jIChkYXRhOiBhbnkpID0+IGF3YWl0IGRhdGFTZXJ2aWNlLnVwZGF0ZU9uZShkYXRhLmlkLCBkYXRhKSB9LFxuICAgICAgICB9LFxuICAgICAgICBxdWVyaWVzOiB7XG4gICAgICAgICAgICBieUtleTogeyBleGVjdXRlOiBhc3luYyAoaWQ6IHN0cmluZykgPT4gYXdhaXQgZGF0YVNlcnZpY2UuZ2V0T25lKGlkKSwgdHlwZTogQVhQRW50aXR5UXVlcnlUeXBlLlNpbmdsZSB9LFxuICAgICAgICAgICAgbGlzdDogeyBleGVjdXRlOiBhc3luYyAoZTogYW55KSA9PiBhd2FpdCBkYXRhU2VydmljZS5xdWVyeShlKSwgdHlwZTogQVhQRW50aXR5UXVlcnlUeXBlLkxpc3QgfSxcbiAgICAgICAgfSxcbiAgICAgICAgaW50ZXJmYWNlczoge1xuICAgICAgICAgICAgbWFzdGVyOiB7XG4gICAgICAgICAgICAgICAgY3JlYXRlOiB7XG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zOiBbeyBpZDogJ2Fzc2lnbm1lbnQnIH0sIHsgaWQ6ICdwZXJpb2QnIH0sIHsgaWQ6ICdhZGRpdGlvbmFsJyB9XSwgcHJvcGVydGllczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnZW1wbG95ZWVJZCcsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAncG9zaXRpb25JZCcsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnYnVzaW5lc3NVbml0SWQnLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgbmFtZTogJ3N0YXJ0RGF0ZScsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnZW5kRGF0ZScsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnaXNQcmltYXJ5JywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICdub3RlcycsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogMTIgfSB9IH0gfSxcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdXBkYXRlOiB7XG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zOiBbeyBpZDogJ2Fzc2lnbm1lbnQnIH0sIHsgaWQ6ICdwZXJpb2QnIH0sIHsgaWQ6ICdhZGRpdGlvbmFsJyB9XSwgcHJvcGVydGllczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnZW1wbG95ZWVJZCcsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAncG9zaXRpb25JZCcsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnYnVzaW5lc3NVbml0SWQnLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgbmFtZTogJ3N0YXJ0RGF0ZScsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnZW5kRGF0ZScsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnaXNQcmltYXJ5JywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICdub3RlcycsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogMTIgfSB9IH0gfSxcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2luZ2xlOiB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBge3twb3NpdGlvbi50aXRsZX19YCwgc2VjdGlvbnM6IFt7IGlkOiAnYXNzaWdubWVudCcgfSwgeyBpZDogJ3BlcmlvZCcgfSwgeyBpZDogJ2FkZGl0aW9uYWwnIH1dLCBwcm9wZXJ0aWVzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICdlbXBsb3llZUlkJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICdwb3NpdGlvbklkJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICdidXNpbmVzc1VuaXRJZCcsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiAnc3RhcnREYXRlJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICdlbmREYXRlJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6ICdpc1ByaW1hcnknLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgbmFtZTogJ25vdGVzJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiAxMiB9IH0gfSB9LFxuICAgICAgICAgICAgICAgICAgICBdLCBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHRpdGxlOiAnQGdlbmVyYWw6YWN0aW9ucy5kZWxldGUudGl0bGUnLCBjb21tYW5kOiAnZGVsZXRlLWVudGl0eScsIHByaW9yaXR5OiAnc2Vjb25kYXJ5JywgdHlwZTogJ2RlbGV0ZScsIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCB9LFxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBsaXN0OiB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgdGl0bGU6ICdAZ2VuZXJhbDphY3Rpb25zLmNyZWF0ZS50aXRsZScsIGNvbW1hbmQ6ICdjcmVhdGUtZW50aXR5JywgcHJpb3JpdHk6ICdwcmltYXJ5JywgdHlwZTogJ2NyZWF0ZScsIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuVHlwZUxldmVsIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHRpdGxlOiAnQGdlbmVyYWw6YWN0aW9ucy5kZWxldGUtaXRlbXMudGl0bGUnLCBjb21tYW5kOiAnZGVsZXRlLWVudGl0eScsIHByaW9yaXR5OiAncHJpbWFyeScsIHR5cGU6ICdkZWxldGUnLCBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHRpdGxlOiAnQGdlbmVyYWw6YWN0aW9ucy5lZGl0LnRpdGxlJywgY29tbWFuZDogJ3F1aWNrLW1vZGlmeS1lbnRpdHknLCBwcmlvcml0eTogJ3NlY29uZGFyeScsIHR5cGU6ICd1cGRhdGUnLCBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgdGl0bGU6ICdAZ2VuZXJhbDphY3Rpb25zLmRlbGV0ZS50aXRsZScsIGNvbW1hbmQ6ICdkZWxldGUtZW50aXR5JywgcHJpb3JpdHk6ICdzZWNvbmRhcnknLCB0eXBlOiAnZGVsZXRlJywgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sIHZpZXdzOiBbY3JlYXRlQWxsUXVlcnlWaWV3KHsgc29ydHM6IFt7IG5hbWU6ICdzdGFydERhdGUnLCBkaXI6ICdkZXNjJyB9XSB9KV1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVudGl0eURlZjtcbn1cblxuXG4iXX0="],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-modules-organization-management-org-chart.page-keZ4Gk7y.mjs","sources":["../tmp-esm2022/organization-management/lib/features/organization-chart/org-chart.service.js","../tmp-esm2022/organization-management/lib/features/organization-chart/org-chart.page.js"],"sourcesContent":["import { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPExportService } from '@acorex/platform/common';\nimport { AXPCommandService } from '@acorex/platform/runtime';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPDataGenerator } from '@acorex/platform/core';\nimport { inject, Injectable, signal } from '@angular/core';\nimport { AXMOrganizationManagementChartEntityService } from '../../entities';\nimport * as i0 from \"@angular/core\";\nexport class AXMOrgChartService {\n constructor() {\n // Employee moved to HCM; resolve via runtime query mapping instead of direct service\n this.chartService = inject(AXMOrganizationManagementChartEntityService);\n this.sessionService = inject(AXPSessionService);\n this.loadingDialog = inject(AXLoadingDialogService);\n this.exportService = inject(AXPExportService);\n this.translationService = inject(AXTranslationService);\n this.commandService = inject(AXPCommandService);\n this._rootNode = signal({ id: AXPDataGenerator.uuid(), title: 'Company' }, ...(ngDevMode ? [{ debugName: \"_rootNode\" }] : []));\n this.rootNode = this._rootNode.asReadonly();\n }\n async load() {\n const first = (await this.chartService.query({\n skip: 0,\n take: 1,\n sort: [{ field: 'version', dir: 'desc' }],\n })).items[0];\n //\n if (first && first.data) {\n const data = first.data;\n this._rootNode.set(data);\n }\n else {\n await this.createNew();\n await this.load();\n }\n }\n async createNew() {\n // Prefer generating a fresh chart via mock command when available\n await this.commandService.execute('organization.chart.generate', {\n includeEmployees: true,\n preferPrimary: true,\n });\n return;\n }\n //#region ---- Printing ----\n async printChart(element) {\n const d = this.loadingDialog.show({\n title: 'Printing Organization Chart...',\n mode: 'determinate',\n progressColor: 'primary',\n progressValue: 0,\n status: '0/10',\n text: 'Initializing print process...',\n buttons: [\n { text: 'Cancel', color: 'danger', onClick: () => d.close() }\n ],\n });\n try {\n await this.updateStep(d, await this.translate('preparing-document'), 10, '1/10');\n const chartElement = element;\n const { originalStyles, modifiedStyles } = this.expandChart(chartElement);\n await this.updateStep(d, await this.translate('rendering-chart-image'), 25, '2.5/10');\n const blob = await this.exportService.generateBlobFromElement(chartElement, {\n popup: true,\n filter: (node) => !(node instanceof Element && node.classList.contains('--toggle')),\n bgcolor: 'transparent',\n scale: 2,\n quality: 1,\n height: Number.parseInt(modifiedStyles.modifiedHeight),\n width: Number.parseInt(modifiedStyles.modifiedWidth),\n });\n await this.updateStep(d, await this.translate('finalizing-image-processing'), 50, '5/10');\n this.restoreChartStyles(chartElement, originalStyles);\n await this.updateStep(d, await this.translate('downloading-image'), 75, '7.5/10');\n this.exportService.download(blob, 'org-chart.png');\n await this.updateStep(d, await this.translate('process-complete'), 100, '10/10');\n setTimeout(() => d.close(), 1500);\n }\n catch (err) {\n console.error('Error capturing chart:', err);\n await this.updateStep(d, await this.translate('failed-to-generate-chart-image'), 100, 'Error', 'danger');\n d.close();\n }\n }\n expandChart(chartElement) {\n const originalStyles = {\n originalOverflow: chartElement.style.overflow,\n originalWidth: chartElement.style.width,\n originalHeight: chartElement.style.height,\n };\n const modifiedStyles = {\n modifiedOverflow: 'visible',\n modifiedWidth: `${chartElement.scrollWidth}px`,\n modifiedHeight: `${chartElement.scrollHeight}px`,\n };\n chartElement.style.overflow = modifiedStyles.modifiedOverflow;\n chartElement.style.width = modifiedStyles.modifiedWidth;\n chartElement.style.height = modifiedStyles.modifiedHeight;\n return { originalStyles, modifiedStyles };\n }\n restoreChartStyles(chartElement, originalStyles) {\n chartElement.style.overflow = originalStyles.originalOverflow;\n chartElement.style.width = originalStyles.originalWidth;\n chartElement.style.height = originalStyles.originalHeight;\n }\n async updateStep(dialog, text, progress, status, color = 'primary') {\n return new Promise((resolve) => {\n dialog.setProgressColor(color);\n dialog.setProgressText(text);\n dialog.setProgressValue(progress);\n dialog.setProgressStatus(status);\n resolve();\n });\n }\n async translate(key) {\n return (await this.translationService.translateAsync(key, { scope: 'organization-management' })) + '...';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMOrgChartService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMOrgChartService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMOrgChartService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLWNoYXJ0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvb3JnYW5pemF0aW9uLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9vcmdhbml6YXRpb24tY2hhcnQvb3JnLWNoYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNELE9BQU8sRUFBRSwyQ0FBMkMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUc3RSxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBR0UscUZBQXFGO1FBQzdFLGlCQUFZLEdBQUcsTUFBTSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFFbkUsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQy9DLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekMsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbEQsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUds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QztZQUMvQixNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQVc7UUFDakMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzNHLENBQUM7OEdBdElVLGtCQUFrQjtrSEFBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhTdHlsZUNvbG9yVHlwZSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWExvYWRpbmdEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUEV4cG9ydFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBDb21tYW5kU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vcnVudGltZSc7XG5pbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5cbmltcG9ydCB7IEFYUERhdGFHZW5lcmF0b3IgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQVhNT3JnYW5pemF0aW9uTm9kZSB9IGZyb20gJy4vb3JnLWNoYXJ0LnR5cGUnO1xuaW1wb3J0IHsgQVhNT3JnYW5pemF0aW9uTWFuYWdlbWVudENoYXJ0RW50aXR5U2VydmljZSB9IGZyb20gJy4uLy4uL2VudGl0aWVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTU9yZ0NoYXJ0U2VydmljZSB7XG5cbiAgLy8gRW1wbG95ZWUgbW92ZWQgdG8gSENNOyByZXNvbHZlIHZpYSBydW50aW1lIHF1ZXJ5IG1hcHBpbmcgaW5zdGVhZCBvZiBkaXJlY3Qgc2VydmljZVxuICBwcml2YXRlIGNoYXJ0U2VydmljZSA9IGluamVjdChBWE1Pcmdhbml6YXRpb25NYW5hZ2VtZW50Q2hhcnRFbnRpdHlTZXJ2aWNlKTtcblxuICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsb2FkaW5nRGlhbG9nID0gaW5qZWN0KEFYTG9hZGluZ0RpYWxvZ1NlcnZpY2UpO1xuICBwcml2YXRlIGV4cG9ydFNlcnZpY2UgPSBpbmplY3QoQVhQRXhwb3J0U2VydmljZSk7XG4gIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjb21tYW5kU2VydmljZSA9IGluamVjdChBWFBDb21tYW5kU2VydmljZSk7XG5cblxuICBwcml2YXRlIHJlYWRvbmx5IF9yb290Tm9kZSA9IHNpZ25hbDxBWE1Pcmdhbml6YXRpb25Ob2RlPih7IGlkOiBBWFBEYXRhR2VuZXJhdG9yLnV1aWQoKSwgdGl0bGU6ICdDb21wYW55JyB9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcm9vdE5vZGUgPSB0aGlzLl9yb290Tm9kZS5hc1JlYWRvbmx5KCk7XG5cblxuICBwdWJsaWMgYXN5bmMgbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmaXJzdCA9IChcbiAgICAgIGF3YWl0IHRoaXMuY2hhcnRTZXJ2aWNlLnF1ZXJ5KHtcbiAgICAgICAgc2tpcDogMCxcbiAgICAgICAgdGFrZTogMSxcbiAgICAgICAgc29ydDogW3sgZmllbGQ6ICd2ZXJzaW9uJywgZGlyOiAnZGVzYycgfV0sXG4gICAgICB9KVxuICAgICkuaXRlbXNbMF07XG4gICAgLy9cbiAgICBpZiAoZmlyc3QgJiYgZmlyc3QuZGF0YSkge1xuICAgICAgY29uc3QgZGF0YSA9IGZpcnN0LmRhdGEgYXMgQVhNT3JnYW5pemF0aW9uTm9kZTtcbiAgICAgIHRoaXMuX3Jvb3ROb2RlLnNldChkYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5jcmVhdGVOZXcoKTtcbiAgICAgIGF3YWl0IHRoaXMubG9hZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlTmV3KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFByZWZlciBnZW5lcmF0aW5nIGEgZnJlc2ggY2hhcnQgdmlhIG1vY2sgY29tbWFuZCB3aGVuIGF2YWlsYWJsZVxuICAgIGF3YWl0IHRoaXMuY29tbWFuZFNlcnZpY2UuZXhlY3V0ZSgnb3JnYW5pemF0aW9uLmNoYXJ0LmdlbmVyYXRlJywge1xuICAgICAgaW5jbHVkZUVtcGxveWVlczogdHJ1ZSxcbiAgICAgIHByZWZlclByaW1hcnk6IHRydWUsXG4gICAgfSBhcyBhbnkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgUHJpbnRpbmcgICAtLS0tXG5cbiAgYXN5bmMgcHJpbnRDaGFydChlbGVtZW50OiBIVE1MRWxlbWVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGQgPSB0aGlzLmxvYWRpbmdEaWFsb2cuc2hvdyh7XG4gICAgICB0aXRsZTogJ1ByaW50aW5nIE9yZ2FuaXphdGlvbiBDaGFydC4uLicsXG4gICAgICBtb2RlOiAnZGV0ZXJtaW5hdGUnLFxuICAgICAgcHJvZ3Jlc3NDb2xvcjogJ3ByaW1hcnknLFxuICAgICAgcHJvZ3Jlc3NWYWx1ZTogMCxcbiAgICAgIHN0YXR1czogJzAvMTAnLFxuICAgICAgdGV4dDogJ0luaXRpYWxpemluZyBwcmludCBwcm9jZXNzLi4uJyxcbiAgICAgIGJ1dHRvbnM6IFtcbiAgICAgICAgeyB0ZXh0OiAnQ2FuY2VsJywgY29sb3I6ICdkYW5nZXInLCBvbkNsaWNrOiAoKSA9PiBkLmNsb3NlKCkgfVxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZVN0ZXAoZCwgYXdhaXQgdGhpcy50cmFuc2xhdGUoJ3ByZXBhcmluZy1kb2N1bWVudCcpLCAxMCwgJzEvMTAnKTtcbiAgICAgIGNvbnN0IGNoYXJ0RWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICBjb25zdCB7IG9yaWdpbmFsU3R5bGVzLCBtb2RpZmllZFN0eWxlcyB9ID0gdGhpcy5leHBhbmRDaGFydChjaGFydEVsZW1lbnQpO1xuXG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZVN0ZXAoZCwgYXdhaXQgdGhpcy50cmFuc2xhdGUoJ3JlbmRlcmluZy1jaGFydC1pbWFnZScpLCAyNSwgJzIuNS8xMCcpO1xuICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IHRoaXMuZXhwb3J0U2VydmljZS5nZW5lcmF0ZUJsb2JGcm9tRWxlbWVudChjaGFydEVsZW1lbnQsIHtcbiAgICAgICAgcG9wdXA6IHRydWUsXG4gICAgICAgIGZpbHRlcjogKG5vZGU6IE5vZGUpID0+ICEobm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQgJiYgbm9kZS5jbGFzc0xpc3QuY29udGFpbnMoJy0tdG9nZ2xlJykpLFxuICAgICAgICBiZ2NvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBzY2FsZTogMixcbiAgICAgICAgcXVhbGl0eTogMSxcbiAgICAgICAgaGVpZ2h0OiBOdW1iZXIucGFyc2VJbnQobW9kaWZpZWRTdHlsZXMubW9kaWZpZWRIZWlnaHQpLFxuICAgICAgICB3aWR0aDogTnVtYmVyLnBhcnNlSW50KG1vZGlmaWVkU3R5bGVzLm1vZGlmaWVkV2lkdGgpLFxuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlU3RlcChkLCBhd2FpdCB0aGlzLnRyYW5zbGF0ZSgnZmluYWxpemluZy1pbWFnZS1wcm9jZXNzaW5nJyksIDUwLCAnNS8xMCcpO1xuICAgICAgdGhpcy5yZXN0b3JlQ2hhcnRTdHlsZXMoY2hhcnRFbGVtZW50LCBvcmlnaW5hbFN0eWxlcyk7XG5cbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlU3RlcChkLCBhd2FpdCB0aGlzLnRyYW5zbGF0ZSgnZG93bmxvYWRpbmctaW1hZ2UnKSwgNzUsICc3LjUvMTAnKTtcbiAgICAgIHRoaXMuZXhwb3J0U2VydmljZS5kb3dubG9hZChibG9iLCAnb3JnLWNoYXJ0LnBuZycpO1xuXG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZVN0ZXAoZCwgYXdhaXQgdGhpcy50cmFuc2xhdGUoJ3Byb2Nlc3MtY29tcGxldGUnKSwgMTAwLCAnMTAvMTAnKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gZC5jbG9zZSgpLCAxNTAwKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNhcHR1cmluZyBjaGFydDonLCBlcnIpO1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVTdGVwKGQsIGF3YWl0IHRoaXMudHJhbnNsYXRlKCdmYWlsZWQtdG8tZ2VuZXJhdGUtY2hhcnQtaW1hZ2UnKSwgMTAwLCAnRXJyb3InLCAnZGFuZ2VyJyk7XG4gICAgICBkLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBleHBhbmRDaGFydChjaGFydEVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3Qgb3JpZ2luYWxTdHlsZXMgPSB7XG4gICAgICBvcmlnaW5hbE92ZXJmbG93OiBjaGFydEVsZW1lbnQuc3R5bGUub3ZlcmZsb3csXG4gICAgICBvcmlnaW5hbFdpZHRoOiBjaGFydEVsZW1lbnQuc3R5bGUud2lkdGgsXG4gICAgICBvcmlnaW5hbEhlaWdodDogY2hhcnRFbGVtZW50LnN0eWxlLmhlaWdodCxcbiAgICB9O1xuICAgIGNvbnN0IG1vZGlmaWVkU3R5bGVzID0ge1xuICAgICAgbW9kaWZpZWRPdmVyZmxvdzogJ3Zpc2libGUnLFxuICAgICAgbW9kaWZpZWRXaWR0aDogYCR7Y2hhcnRFbGVtZW50LnNjcm9sbFdpZHRofXB4YCxcbiAgICAgIG1vZGlmaWVkSGVpZ2h0OiBgJHtjaGFydEVsZW1lbnQuc2Nyb2xsSGVpZ2h0fXB4YCxcbiAgICB9O1xuICAgIGNoYXJ0RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9IG1vZGlmaWVkU3R5bGVzLm1vZGlmaWVkT3ZlcmZsb3c7XG4gICAgY2hhcnRFbGVtZW50LnN0eWxlLndpZHRoID0gbW9kaWZpZWRTdHlsZXMubW9kaWZpZWRXaWR0aDtcbiAgICBjaGFydEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gbW9kaWZpZWRTdHlsZXMubW9kaWZpZWRIZWlnaHQ7XG4gICAgcmV0dXJuIHsgb3JpZ2luYWxTdHlsZXMsIG1vZGlmaWVkU3R5bGVzIH07XG4gIH1cblxuICBwcml2YXRlIHJlc3RvcmVDaGFydFN0eWxlcyhcbiAgICBjaGFydEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIG9yaWdpbmFsU3R5bGVzOiB7IG9yaWdpbmFsT3ZlcmZsb3c6IHN0cmluZzsgb3JpZ2luYWxXaWR0aDogc3RyaW5nOyBvcmlnaW5hbEhlaWdodDogc3RyaW5nIH0sXG4gICk6IHZvaWQge1xuICAgIGNoYXJ0RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9IG9yaWdpbmFsU3R5bGVzLm9yaWdpbmFsT3ZlcmZsb3c7XG4gICAgY2hhcnRFbGVtZW50LnN0eWxlLndpZHRoID0gb3JpZ2luYWxTdHlsZXMub3JpZ2luYWxXaWR0aDtcbiAgICBjaGFydEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gb3JpZ2luYWxTdHlsZXMub3JpZ2luYWxIZWlnaHQ7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZVN0ZXAoXG4gICAgZGlhbG9nOiBhbnksXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIHByb2dyZXNzOiBudW1iZXIsXG4gICAgc3RhdHVzOiBzdHJpbmcsXG4gICAgY29sb3I6IEFYU3R5bGVDb2xvclR5cGUgPSAncHJpbWFyeScsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgZGlhbG9nLnNldFByb2dyZXNzQ29sb3IoY29sb3IpO1xuICAgICAgZGlhbG9nLnNldFByb2dyZXNzVGV4dCh0ZXh0KTtcbiAgICAgIGRpYWxvZy5zZXRQcm9ncmVzc1ZhbHVlKHByb2dyZXNzKTtcbiAgICAgIGRpYWxvZy5zZXRQcm9ncmVzc1N0YXR1cyhzdGF0dXMpO1xuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB0cmFuc2xhdGUoa2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoa2V5LCB7IHNjb3BlOiAnb3JnYW5pemF0aW9uLW1hbmFnZW1lbnQnIH0pKSArICcuLi4nO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbn1cbiJdfQ==","import { AXPanViewDirective } from '@acorex/cdk/pan-view';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXContextMenuComponent, AXMenuModule, } from '@acorex/components/menu';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex/platform/layout/views';\nimport { AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';\nimport { CommonModule } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, inject, NgZone, signal, viewChild, ViewContainerRef, ViewEncapsulation, } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport set from 'lodash-es/set';\nimport { RootConfig } from '../../const';\nimport { AXMOrgChartService } from './org-chart.service';\nimport { AXMOrgChartCategory, AXMOrgChartNodeType } from './org-chart.type';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@acorex/core/translation\";\nimport * as i4 from \"@acorex/components/decorators\";\n/**\n * Component for displaying and interacting with an organizational chart.\n */\nexport class AXMOrgChartPage extends AXPPageLayoutBaseComponent {\n constructor() {\n super(...arguments);\n this.rootConfig = RootConfig;\n this.nodeTemplate = viewChild.required('nodeTemplate');\n this.treeContainer = viewChild.required('chart');\n this.parent = viewChild.required('parent');\n this.contextMenu = viewChild(AXContextMenuComponent, ...(ngDevMode ? [{ debugName: \"contextMenu\" }] : []));\n this.panView = viewChild(AXPanViewDirective, ...(ngDevMode ? [{ debugName: \"panView\" }] : []));\n this.ngzone = inject(NgZone);\n this.viewContainerRef = inject(ViewContainerRef);\n // printing is handled by service itself\n this.chartService = inject(AXMOrgChartService);\n this.NODE_STROKE_COLOR = 'rgba(var(--ax-sys-color-primary-400))';\n this.LINK_STROKE_WIDTH = 1;\n this.NodeTypes = AXMOrgChartNodeType;\n this.isFullscreen = signal(false, ...(ngDevMode ? [{ debugName: \"isFullscreen\" }] : []));\n this.panX = signal(0, ...(ngDevMode ? [{ debugName: \"panX\" }] : []));\n this.panY = signal(0, ...(ngDevMode ? [{ debugName: \"panY\" }] : []));\n this.panZoomLevel = signal(100, ...(ngDevMode ? [{ debugName: \"panZoomLevel\" }] : []));\n this.isChartRendered = false;\n this.nodeTypes = [\n { title: 'Company', color: 'primary', icon: 'fal fa-building', category: AXMOrgChartCategory.Company },\n { title: 'Location', color: 'accent1', icon: 'fal fa-globe', category: AXMOrgChartCategory.Location },\n { title: 'Business Unit', color: 'accent2', icon: 'fal fa-sitemap', category: AXMOrgChartCategory.BusinessUnit },\n { title: 'Position', color: 'accent3', icon: 'fal fa-user-tie', category: AXMOrgChartCategory.Position },\n { title: 'Employee', color: 'surface', icon: 'fal fa-address-card', category: AXMOrgChartCategory.Employee },\n ];\n this.#initialize = afterNextRender(async () => {\n this.d3 = await import('d3');\n await this.chartService.load();\n await this.refreshChart();\n });\n }\n #initialize;\n /**\n * Zooms in the chart.\n */\n zoomIn() {\n this.panView()?.zoomIn();\n }\n /**\n * Zooms out the chart.\n */\n zoomOut() {\n this.panView()?.zoomOut();\n }\n /**\n * Resets the zoom level and pan position of the chart.\n */\n zoomReset() {\n this.panView()?.resetPosition();\n }\n /**\n * Toggles fullscreen mode for the chart.\n */\n toggleFullscreen() {\n if (this.isFullscreen()) {\n document.exitFullscreen();\n this.isFullscreen.set(false);\n }\n else {\n this.parent().nativeElement.requestFullscreen();\n this.isFullscreen.set(true);\n }\n document.querySelector(`foreignObject[node=\"node-${this.chartService.rootNode().id}\"]`)?.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: 'center',\n });\n }\n /**\n * Calculates the maximum depth of the organizational chart.\n * @param node - The root node of the chart.\n * @returns The maximum depth of the chart.\n */\n calculateMaxDepth(node) {\n if (!node.children || node.children.length === 0 || node.isExpanded === false) {\n return 1;\n }\n return 1 + Math.max(...node.children.map((child) => this.calculateMaxDepth(child)));\n }\n /**\n * Calculates the maximum breadth of the organizational chart.\n * @param node - The root node of the chart.\n * @returns The maximum breadth of the chart.\n */\n calculateMaxBreadth(node) {\n if (!node.children || node.children.length === 0 || node.isExpanded === false) {\n return 1;\n }\n return node.children.reduce((acc, child) => acc + this.calculateMaxBreadth(child), 0);\n }\n /**\n * Creates and renders the organizational chart.\n * @param el - The container element for the chart.\n * @param data - The root node of the organizational chart.\n */\n createChart(el, data) {\n if (!this.d3) {\n return;\n }\n this.ngzone.runOutsideAngular(() => {\n const NODE_WIDTH_BASE = 260;\n const NODE_HEIGHT_BASE = 180;\n const HORIZONTAL_SPACING = 20;\n const VERTICAL_SPACING = 40;\n this.clearChart(el);\n const newSvg = this.d3.select(el).append('svg');\n const root = this.d3.hierarchy(data);\n root.descendants().forEach((node) => {\n if (node.data.isExpanded === false) {\n node.children = undefined;\n }\n });\n const treeLayout = this.d3\n .tree()\n .nodeSize([NODE_WIDTH_BASE + HORIZONTAL_SPACING, NODE_HEIGHT_BASE + VERTICAL_SPACING]);\n treeLayout(root);\n let minX = Infinity, maxX = -Infinity, minY = Infinity, maxY = -Infinity;\n root.descendants().forEach((d) => {\n if (d.x < minX)\n minX = d.x;\n if (d.x > maxX)\n maxX = d.x;\n if (d.y < minY)\n minY = d.y;\n if (d.y > maxY)\n maxY = d.y;\n });\n const CONTAINER_WIDTH = maxX - minX + NODE_WIDTH_BASE + 2 * HORIZONTAL_SPACING;\n const CONTAINER_HEIGHT = maxY - minY + NODE_HEIGHT_BASE + 2 * VERTICAL_SPACING;\n newSvg.attr('width', CONTAINER_WIDTH).attr('height', CONTAINER_HEIGHT);\n const g = newSvg\n .append('g')\n .attr('transform', `translate(${-minX + NODE_WIDTH_BASE / 2 + HORIZONTAL_SPACING / 2}, ${-minY + NODE_HEIGHT_BASE / 2 + VERTICAL_SPACING / 2})`);\n const link = g\n .selectAll('.link')\n .data(root.links())\n .enter()\n .append('path')\n .attr('class', 'link')\n .attr('d', (d) => {\n const source = d.source;\n const target = d.target;\n return `M${source.x},${source.y}V${(source.y + target.y) / 2}H${target.x}V${target.y - 10}`;\n })\n .attr('fill', 'none')\n .attr('stroke', this.NODE_STROKE_COLOR)\n .attr('stroke-width', this.LINK_STROKE_WIDTH)\n .attr('from', (d) => `node-${d.source.data.id}`)\n .attr('to', (d) => `node-${d.target.data.id}`);\n const node = g\n .selectAll('.axp-chart-node')\n .data(root.descendants())\n .enter()\n .append('foreignObject')\n .attr('class', 'axp-chart-node')\n .attr('node', (d) => `node-${d.data.id}`)\n .attr('x', (d) => d.x - NODE_WIDTH_BASE / 2)\n .attr('y', (d) => d.y - NODE_HEIGHT_BASE / 2 + 10)\n .attr('width', NODE_WIDTH_BASE)\n .attr('height', NODE_HEIGHT_BASE)\n .each((d) => this.renderNodeTemplate(d.data, d.x, d.y));\n this.contextMenu()?.refresh();\n });\n if (!this.isChartRendered) {\n // document.querySelector(`foreignObject[node=\"node-${data.id}\"] .--heading-container`)?.scrollIntoView({\n // behavior: 'smooth',\n // block: 'center',\n // inline: 'center',\n // });\n this.isChartRendered = true;\n this.panView()?.resetPosition();\n }\n }\n /**\n * Renders the node template for a given organizational node.\n * @param data - The node data.\n * @param x - The x-coordinate of the node.\n * @param y - The y-coordinate of the node.\n */\n renderNodeTemplate(data, x, y) {\n // Find the key that matches the node type\n // category is the same as type in simplified structure\n set(data, 'category', data.type);\n const viewRef = this.viewContainerRef.createEmbeddedView(this.nodeTemplate(), {\n $implicit: data,\n });\n const nodeElement = this.d3.select(this.treeContainer().nativeElement).select(`[node=\"node-${data.id}\"]`);\n const element = nodeElement.node();\n if (element) {\n element.appendChild(viewRef.rootNodes[0]);\n }\n }\n /**\n * Toggles the expansion state of a node.\n * @param data - The node data.\n * @param el - The HTML element representing the node.\n */\n toggleNode(data, el) {\n data.isExpanded = data.isExpanded === undefined ? false : !data.isExpanded;\n this.createChart(this.treeContainer().nativeElement, this.chartService.rootNode());\n // el.scrollIntoView({\n // behavior: 'smooth',\n // });\n }\n /**\n * Clears the chart from the container element.\n * @param el - The container element.\n */\n clearChart(el) {\n if (this.d3) {\n this.d3.select(el).select('svg').remove();\n this.viewContainerRef.clear();\n }\n }\n async refreshChart() {\n if (this.d3) {\n this.createChart(this.treeContainer().nativeElement, this.chartService.rootNode());\n }\n }\n //#region Context Menu\n // protected async handleContextMenuOnOpening(e: AXContextMenuOpeningEvent) {\n // const node = get(e.targetElement, '__data__.data') as any as AXMOrganizationNode;\n // const allowedAddItems = await this.chartService.getAllowedAddMenuItems(node);\n // const allowDelete = node.type != AXMOrganizationNodeType.Company;\n // const isPasteAvailable = await this.chartService.isPasteAvailable();\n // const allowPaste = await this.chartService.allowPaste(node);\n // //\n // if (allowedAddItems.length) {\n // e.items.push({\n // text: 'Add New',\n // icon: 'fa-light fa-plus',\n // items: allowedAddItems,\n // break: allowDelete,\n // });\n // }\n // //\n // if (allowDelete) {\n // e.items.push({\n // name: 'cut',\n // text: 'Cut',\n // icon: 'fa-light fa-cut',\n // data: node,\n // });\n // e.items.push({\n // name: 'copy',\n // text: 'Copy',\n // icon: 'fa-light fa-copy',\n // data: node,\n // break: !isPasteAvailable,\n // });\n // }\n // if (isPasteAvailable) {\n // e.items.push({\n // name: 'paste',\n // text: 'Paste',\n // icon: 'fa-light fa-paste',\n // data: node,\n // break: true,\n // disabled: !allowPaste,\n // });\n // }\n // //\n // if (allowDelete) {\n // e.items.push({\n // name: 'remove',\n // text: 'Remove',\n // color: 'danger',\n // icon: 'fa-light fa-trash-can',\n // data: node,\n // });\n // }\n // //\n // if (e.items.length == 0) {\n // e.canceled = true;\n // }\n // }\n async handleContextMenuItemClick(e) {\n }\n //#endregion\n /**\n * Prints the organizational chart.\n */\n async printChart() {\n let [panX, panY, panZoomLevel] = [this.panX(), this.panY(), this.panZoomLevel()];\n this.panX.set(0), this.panY.set(0), this.panZoomLevel.set(100);\n await this.chartService.printChart(this.treeContainer().nativeElement);\n this.panX.set(panX), this.panY.set(panY), this.panZoomLevel.set(panZoomLevel);\n }\n /**\n * Gets the node colors based on the provided color.\n * @param color - The color to use for the node.\n * @returns An object containing the node's background, text, and border colors.\n */\n getNodeColors(color) {\n if (color.includes('surface')) {\n return {\n '--node-bg-color': `var(--ax-sys-color-${color})`,\n '--node-text-color': `var(--ax-sys-color-on-${color})`,\n '--node-border-color': `var(--ax-sys-color-border-${color})`,\n };\n }\n return {\n '--node-bg-color': `var(--ax-sys-color-${color}-surface)`,\n '--node-text-color': `var(--ax-sys-color-on-${color}-surface)`,\n '--node-border-color': `var(--ax-sys-color-border-${color}-surface)`,\n };\n }\n updateVar(oldValue, newValue) {\n oldValue.cat = newValue;\n }\n async getPageTitle() {\n return await this.translateService.translateAsync('chart.page-title', { scope: this.rootConfig.config.i18n });\n }\n async getPageDescription() {\n return await this.translateService.translateAsync('chart.page-description', { scope: this.rootConfig.config.i18n });\n }\n async getSecondaryMenuItems() {\n return [\n {\n title: await this.translateService.translateAsync('chart.actions.print', { scope: this.rootConfig.config.i18n }),\n icon: 'fa-light fa-print',\n color: 'primary',\n name: 'print',\n command: {\n name: 'print',\n },\n },\n {\n title: await this.translateService.translateAsync('chart.actions.generate', { scope: this.rootConfig.config.i18n }),\n icon: 'fa-light fa-generate',\n color: 'primary',\n name: 'generate',\n command: {\n name: 'organization.chart.generate',\n },\n }\n ];\n }\n async getPageBreadcrumbs() {\n return [\n {\n title: await this.translateService.translateAsync('root-menu', { scope: this.rootConfig.config.i18n })\n },\n ];\n }\n async execute(command) {\n if (command.name == 'print') {\n await this.printChart();\n }\n }\n ngOnDestroy() {\n this.clearChart(this.treeContainer().nativeElement);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMOrgChartPage, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXMOrgChartPage, isStandalone: true, selector: \"ng-component\", providers: [\n AXMOrgChartService,\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMOrgChartPage\n }\n ], viewQueries: [{ propertyName: \"nodeTemplate\", first: true, predicate: [\"nodeTemplate\"], descendants: true, isSignal: true }, { propertyName: \"treeContainer\", first: true, predicate: [\"chart\"], descendants: true, isSignal: true }, { propertyName: \"parent\", first: true, predicate: [\"parent\"], descendants: true, isSignal: true }, { propertyName: \"contextMenu\", first: true, predicate: AXContextMenuComponent, descendants: true, isSignal: true }, { propertyName: \"panView\", first: true, predicate: AXPanViewDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<axp-page-layout *translate=\\\"let t\\\">\\n <axp-page-content class=\\\"ax-overflow-hidden\\\">\\n <div class=\\\"ax-h-[calc(100vh-290px)]\\\" #parent id=\\\"parent\\\">\\n <div\\n #chart\\n axPanView\\n [(panX)]=\\\"panX\\\"\\n [(panY)]=\\\"panY\\\"\\n [freeMode]=\\\"true\\\"\\n [(zoom)]=\\\"panZoomLevel\\\"\\n [fitContent]=\\\"true\\\"\\n wrapperClasses=\\\"h\\\"\\n class=\\\"ax-light\\\"\\n ></div>\\n <!-- <ax-context-menu\\n [target]=\\\"'.axp-chart-node'\\\"\\n [orientation]=\\\"'vertical'\\\"\\n [closeOn]=\\\"'leave'\\\"\\n (onItemClick)=\\\"handleContextMenuItemClick($event)\\\"\\n (onOpening)=\\\"handleContextMenuOnOpening($event)\\\"\\n >\\n </ax-context-menu> -->\\n </div>\\n </axp-page-content>\\n <axp-page-footer>\\n <axp-layout-prefix>\\n <div class=\\\"ax-flex ax-gap-1 ax-light ax-flex-wrap ax-justify-center\\\">\\n @let v = {cat:'Company'}; @for (item of nodeTypes; track $index) {\\n <div class=\\\"axp-node-hint\\\" [style]=\\\"getNodeColors(item.color)\\\" [class.ax-ms-4]=\\\"v.cat!=item.category\\\">\\n <div class=\\\"--badge\\\"></div>\\n {{item.title}}\\n </div>\\n {{updateVar(v, item.category)}} }\\n </div>\\n </axp-layout-prefix>\\n <axp-layout-suffix>\\n <div class=\\\"ax-flex ax-gap-2\\\">\\n <ax-button (onClick)=\\\"zoomOut()\\\">\\n <ax-icon class=\\\"fa-solid fa-minus\\\"> </ax-icon>\\n </ax-button>\\n <ax-button [text]=\\\"panZoomLevel()\\\" (onClick)=\\\"zoomReset()\\\"></ax-button>\\n <ax-button (onClick)=\\\"zoomIn()\\\">\\n <ax-icon class=\\\"fa-solid fa-add\\\"> </ax-icon>\\n </ax-button>\\n <ax-button (onClick)=\\\"toggleFullscreen()\\\">\\n <ax-icon>\\n <i class=\\\"fa-solid\\\" [class]=\\\"isFullscreen()? 'fa-compress' : 'fa-expand'\\\"></i>\\n </ax-icon>\\n </ax-button>\\n </div>\\n </axp-layout-suffix>\\n </axp-page-footer>\\n</axp-page-layout>\\n\\n<ng-template #nodeTemplate let-data>\\n <div>\\n @switch (data.category) {\\n <!-- Company -->\\n @case (NodeTypes.Company) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'primary' }\\\"></ng-container>\\n }\\n <!-- Location -->\\n @case (NodeTypes.Country) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'accent1' }\\\"></ng-container>\\n } @case (NodeTypes.State) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'accent1' }\\\"></ng-container>\\n } @case (NodeTypes.City) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'accent1' }\\\"></ng-container>\\n }\\n <!-- BusinessUnit -->\\n @case (NodeTypes.Division) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'accent2' }\\\"></ng-container>\\n } @case (NodeTypes.Department) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'accent2' }\\\"></ng-container>\\n } @case (NodeTypes.Branch) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'accent2' }\\\"></ng-container>\\n }\\n <!-- Role -->\\n @case (NodeTypes.Position) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'accent3' }\\\"></ng-container>\\n }\\n <!-- Employee -->\\n @case (NodeTypes.Employee) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'surface' }\\\"></ng-container>\\n } }\\n </div>\\n</ng-template>\\n\\n<!----------------------------------- General Node Template ----------------------------------->\\n<ng-template #generalTemplate let-data=\\\"data\\\" let-color=\\\"color\\\">\\n <div #node class=\\\"--node-container\\\" [style]=\\\"getNodeColors(color)\\\">\\n <div class=\\\"--container\\\">\\n <div class=\\\"--heading-container\\\">\\n <div class=\\\"--content\\\">\\n <div class=\\\"--icon\\\">\\n <i class=\\\"fa-light fa-xl fa-fw\\\" [class]=\\\"data.icon\\\"></i>\\n </div>\\n <div class=\\\"--titles\\\">\\n <span class=\\\"--title\\\" [title]=\\\"data.title\\\">{{data.title}}</span>\\n @if(data.subtitle) {\\n <span class=\\\"--sub-title\\\" [title]=\\\"data.subtitle\\\">{{data.subtitle}}</span>\\n }\\n </div>\\n @if(data?.children?.length){\\n <div class=\\\"--badge\\\">\\n <span>{{data?.children?.length ?? 0}}</span>\\n </div>\\n }\\n </div>\\n </div>\\n @if(data.description) {\\n <div class=\\\"--body-container\\\">\\n <div class=\\\"--description\\\" [class.ax-pb-3]=\\\"data.children && data.children.length > 0\\\">\\n <span>{{data.description}}</span>\\n </div>\\n </div>\\n } @if(data.children && data.children.length > 0){\\n <div class=\\\"--toggle\\\">\\n <ax-button class=\\\"ax-xs ax-rounded-sm\\\" (onClick)=\\\"toggleNode(data,node)\\\">\\n <ax-icon icon=\\\"fa-solid\\\" [class]=\\\"data.isExpanded === false ? 'fa-chevron-down' : 'fa-chevron-up'\\\"></ax-icon>\\n </ax-button>\\n </div>\\n }\\n </div>\\n </div>\\n</ng-template>\\n\", styles: [\".axp-node-hint{display:flex;align-items:center;justify-content:center;gap:.25rem;font-size:.75rem;line-height:1rem}.axp-node-hint>div.--badge{background-color:rgba(var(--node-bg-color));color:rgba(var(--node-text-color));display:flex;width:.75rem;height:.75rem;align-items:center;justify-content:center;border-radius:.125rem}.axp-chart-node{display:flex;align-items:center;justify-content:center}.axp-chart-node .--node-container{position:relative;cursor:pointer;--node-bg-color: var(--ax-sys-color-primary-surface);--node-text-color: var(--ax-sys-color-on-primary-surface);--node-border-color: var(--ax-sys-color-border-primary-surface)}.axp-chart-node .--node-container .--container{display:flex;max-height:100%;width:100%;flex-direction:column;overflow:hidden;border-radius:.375rem;border-width:1px;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);border-color:rgba(var(--node-border-color))}.axp-chart-node .--node-container .--container .--heading-container{background-color:rgba(var(--node-bg-color));color:rgba(var(--node-text-color));width:100%;padding:.5rem .75rem}.axp-chart-node .--node-container .--container .--heading-container .--content{display:flex;width:100%;align-items:center;justify-content:center;gap:.5rem;overflow:hidden}.axp-chart-node .--node-container .--container .--heading-container .--content .--icon{background-color:color-mix(in srgb,rgba(var(--node-bg-color),1) 85%,black);display:flex;width:2.75rem;height:2.75rem;flex:none;align-items:center;justify-content:center;border-radius:.5rem}.axp-chart-node .--node-container .--container .--heading-container .--content .--badge{background-color:color-mix(in srgb,rgba(var(--node-bg-color),1) 85%,black);display:flex;width:1.5rem;height:1.5rem;flex:none;align-items:center;justify-content:center;border-radius:.375rem;line-height:1}.axp-chart-node .--node-container .--container .--heading-container .--content .--badge>span{font-size:.75rem;line-height:1rem}.axp-chart-node .--node-container .--container .--heading-container .--content .--titles{display:flex;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}.axp-chart-node .--node-container .--container .--heading-container .--content .--titles .--title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-chart-node .--node-container .--container .--heading-container .--content .--titles .--sub-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;opacity:.85}.axp-chart-node .--node-container .--container .--body-container{width:100%;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));padding:.5rem .75rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}.axp-chart-node .--node-container .--container .--body-container .--description{text-align:center;font-size:.875rem;line-height:1rem;opacity:.85}.axp-chart-node .--node-container .--container .--toggle{position:absolute;left:0;right:0;bottom:-.75rem;display:flex;width:100%;-webkit-user-select:none;-moz-user-select:-moz-none;user-select:none;align-items:center;justify-content:center}#parent:fullscreen{background-color:rgba(var(--ax-sys-color-primary-lightest-surface))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: RouterModule }, { kind: \"ngmodule\", type: \n //\n AXMenuModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"directive\", type: i3.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"directive\", type: AXPanViewDirective, selector: \"[axPanView]\", inputs: [\"zoomStep\", \"minZoom\", \"maxZoom\", \"freeMode\", \"fitContent\", \"disablePan\", \"disableZoom\", \"wrapperClasses\", \"panX\", \"panY\", \"zoom\"], outputs: [\"panXChange\", \"panYChange\", \"zoomChange\", \"positionChange\"], exportAs: [\"axPanView\"] }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"ngmodule\", type: AXBreadcrumbsModule }, { kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: \n //\n 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\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMOrgChartPage, decorators: [{\n type: Component,\n args: [{ imports: [\n CommonModule,\n RouterModule,\n //\n AXMenuModule,\n AXButtonModule,\n AXDropdownButtonModule,\n AXTranslationModule,\n AXDecoratorModule,\n AXPanViewDirective,\n AXLoadingModule,\n AXBreadcrumbsModule,\n AXBadgeModule,\n //\n AXPThemeLayoutBlockComponent,\n AXPPageLayoutComponent,\n ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n AXMOrgChartService,\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMOrgChartPage\n }\n ], template: \"<axp-page-layout *translate=\\\"let t\\\">\\n <axp-page-content class=\\\"ax-overflow-hidden\\\">\\n <div class=\\\"ax-h-[calc(100vh-290px)]\\\" #parent id=\\\"parent\\\">\\n <div\\n #chart\\n axPanView\\n [(panX)]=\\\"panX\\\"\\n [(panY)]=\\\"panY\\\"\\n [freeMode]=\\\"true\\\"\\n [(zoom)]=\\\"panZoomLevel\\\"\\n [fitContent]=\\\"true\\\"\\n wrapperClasses=\\\"h\\\"\\n class=\\\"ax-light\\\"\\n ></div>\\n <!-- <ax-context-menu\\n [target]=\\\"'.axp-chart-node'\\\"\\n [orientation]=\\\"'vertical'\\\"\\n [closeOn]=\\\"'leave'\\\"\\n (onItemClick)=\\\"handleContextMenuItemClick($event)\\\"\\n (onOpening)=\\\"handleContextMenuOnOpening($event)\\\"\\n >\\n </ax-context-menu> -->\\n </div>\\n </axp-page-content>\\n <axp-page-footer>\\n <axp-layout-prefix>\\n <div class=\\\"ax-flex ax-gap-1 ax-light ax-flex-wrap ax-justify-center\\\">\\n @let v = {cat:'Company'}; @for (item of nodeTypes; track $index) {\\n <div class=\\\"axp-node-hint\\\" [style]=\\\"getNodeColors(item.color)\\\" [class.ax-ms-4]=\\\"v.cat!=item.category\\\">\\n <div class=\\\"--badge\\\"></div>\\n {{item.title}}\\n </div>\\n {{updateVar(v, item.category)}} }\\n </div>\\n </axp-layout-prefix>\\n <axp-layout-suffix>\\n <div class=\\\"ax-flex ax-gap-2\\\">\\n <ax-button (onClick)=\\\"zoomOut()\\\">\\n <ax-icon class=\\\"fa-solid fa-minus\\\"> </ax-icon>\\n </ax-button>\\n <ax-button [text]=\\\"panZoomLevel()\\\" (onClick)=\\\"zoomReset()\\\"></ax-button>\\n <ax-button (onClick)=\\\"zoomIn()\\\">\\n <ax-icon class=\\\"fa-solid fa-add\\\"> </ax-icon>\\n </ax-button>\\n <ax-button (onClick)=\\\"toggleFullscreen()\\\">\\n <ax-icon>\\n <i class=\\\"fa-solid\\\" [class]=\\\"isFullscreen()? 'fa-compress' : 'fa-expand'\\\"></i>\\n </ax-icon>\\n </ax-button>\\n </div>\\n </axp-layout-suffix>\\n </axp-page-footer>\\n</axp-page-layout>\\n\\n<ng-template #nodeTemplate let-data>\\n <div>\\n @switch (data.category) {\\n <!-- Company -->\\n @case (NodeTypes.Company) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'primary' }\\\"></ng-container>\\n }\\n <!-- Location -->\\n @case (NodeTypes.Country) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'accent1' }\\\"></ng-container>\\n } @case (NodeTypes.State) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'accent1' }\\\"></ng-container>\\n } @case (NodeTypes.City) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'accent1' }\\\"></ng-container>\\n }\\n <!-- BusinessUnit -->\\n @case (NodeTypes.Division) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'accent2' }\\\"></ng-container>\\n } @case (NodeTypes.Department) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'accent2' }\\\"></ng-container>\\n } @case (NodeTypes.Branch) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'accent2' }\\\"></ng-container>\\n }\\n <!-- Role -->\\n @case (NodeTypes.Position) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'accent3' }\\\"></ng-container>\\n }\\n <!-- Employee -->\\n @case (NodeTypes.Employee) {\\n <ng-container *ngTemplateOutlet=\\\"generalTemplate; context: { data,color:'surface' }\\\"></ng-container>\\n } }\\n </div>\\n</ng-template>\\n\\n<!----------------------------------- General Node Template ----------------------------------->\\n<ng-template #generalTemplate let-data=\\\"data\\\" let-color=\\\"color\\\">\\n <div #node class=\\\"--node-container\\\" [style]=\\\"getNodeColors(color)\\\">\\n <div class=\\\"--container\\\">\\n <div class=\\\"--heading-container\\\">\\n <div class=\\\"--content\\\">\\n <div class=\\\"--icon\\\">\\n <i class=\\\"fa-light fa-xl fa-fw\\\" [class]=\\\"data.icon\\\"></i>\\n </div>\\n <div class=\\\"--titles\\\">\\n <span class=\\\"--title\\\" [title]=\\\"data.title\\\">{{data.title}}</span>\\n @if(data.subtitle) {\\n <span class=\\\"--sub-title\\\" [title]=\\\"data.subtitle\\\">{{data.subtitle}}</span>\\n }\\n </div>\\n @if(data?.children?.length){\\n <div class=\\\"--badge\\\">\\n <span>{{data?.children?.length ?? 0}}</span>\\n </div>\\n }\\n </div>\\n </div>\\n @if(data.description) {\\n <div class=\\\"--body-container\\\">\\n <div class=\\\"--description\\\" [class.ax-pb-3]=\\\"data.children && data.children.length > 0\\\">\\n <span>{{data.description}}</span>\\n </div>\\n </div>\\n } @if(data.children && data.children.length > 0){\\n <div class=\\\"--toggle\\\">\\n <ax-button class=\\\"ax-xs ax-rounded-sm\\\" (onClick)=\\\"toggleNode(data,node)\\\">\\n <ax-icon icon=\\\"fa-solid\\\" [class]=\\\"data.isExpanded === false ? 'fa-chevron-down' : 'fa-chevron-up'\\\"></ax-icon>\\n </ax-button>\\n </div>\\n }\\n </div>\\n </div>\\n</ng-template>\\n\", styles: [\".axp-node-hint{display:flex;align-items:center;justify-content:center;gap:.25rem;font-size:.75rem;line-height:1rem}.axp-node-hint>div.--badge{background-color:rgba(var(--node-bg-color));color:rgba(var(--node-text-color));display:flex;width:.75rem;height:.75rem;align-items:center;justify-content:center;border-radius:.125rem}.axp-chart-node{display:flex;align-items:center;justify-content:center}.axp-chart-node .--node-container{position:relative;cursor:pointer;--node-bg-color: var(--ax-sys-color-primary-surface);--node-text-color: var(--ax-sys-color-on-primary-surface);--node-border-color: var(--ax-sys-color-border-primary-surface)}.axp-chart-node .--node-container .--container{display:flex;max-height:100%;width:100%;flex-direction:column;overflow:hidden;border-radius:.375rem;border-width:1px;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);border-color:rgba(var(--node-border-color))}.axp-chart-node .--node-container .--container .--heading-container{background-color:rgba(var(--node-bg-color));color:rgba(var(--node-text-color));width:100%;padding:.5rem .75rem}.axp-chart-node .--node-container .--container .--heading-container .--content{display:flex;width:100%;align-items:center;justify-content:center;gap:.5rem;overflow:hidden}.axp-chart-node .--node-container .--container .--heading-container .--content .--icon{background-color:color-mix(in srgb,rgba(var(--node-bg-color),1) 85%,black);display:flex;width:2.75rem;height:2.75rem;flex:none;align-items:center;justify-content:center;border-radius:.5rem}.axp-chart-node .--node-container .--container .--heading-container .--content .--badge{background-color:color-mix(in srgb,rgba(var(--node-bg-color),1) 85%,black);display:flex;width:1.5rem;height:1.5rem;flex:none;align-items:center;justify-content:center;border-radius:.375rem;line-height:1}.axp-chart-node .--node-container .--container .--heading-container .--content .--badge>span{font-size:.75rem;line-height:1rem}.axp-chart-node .--node-container .--container .--heading-container .--content .--titles{display:flex;width:100%;flex:1 1 0%;flex-direction:column;overflow:hidden}.axp-chart-node .--node-container .--container .--heading-container .--content .--titles .--title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-chart-node .--node-container .--container .--heading-container .--content .--titles .--sub-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1rem;opacity:.85}.axp-chart-node .--node-container .--container .--body-container{width:100%;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));padding:.5rem .75rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}.axp-chart-node .--node-container .--container .--body-container .--description{text-align:center;font-size:.875rem;line-height:1rem;opacity:.85}.axp-chart-node .--node-container .--container .--toggle{position:absolute;left:0;right:0;bottom:-.75rem;display:flex;width:100%;-webkit-user-select:none;-moz-user-select:-moz-none;user-select:none;align-items:center;justify-content:center}#parent:fullscreen{background-color:rgba(var(--ax-sys-color-primary-lightest-surface))}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLWNoYXJ0LnBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvb3JnYW5pemF0aW9uLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9vcmdhbml6YXRpb24tY2hhcnQvb3JnLWNoYXJ0LnBhZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvb3JnYW5pemF0aW9uLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9vcmdhbml6YXRpb24tY2hhcnQvb3JnLWNoYXJ0LnBhZ2UuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsc0JBQXNCLEVBR3RCLFlBQVksR0FDYixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSwwQkFBMEIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxP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O3lCQUM3QjtxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUGFuVmlld0RpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvY2RrL3Bhbi12aWV3JztcbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhCcmVhZGNydW1ic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERyb3Bkb3duQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duLWJ1dHRvbic7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQge1xuICBBWENvbnRleHRNZW51Q29tcG9uZW50LFxuICBBWENvbnRleHRNZW51SXRlbXNDbGlja0V2ZW50LFxuICBBWENvbnRleHRNZW51T3BlbmluZ0V2ZW50LFxuICBBWE1lbnVNb2R1bGUsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQUGFnZUxheW91dEJhc2UsIEFYUFBhZ2VMYXlvdXRCYXNlQ29tcG9uZW50LCBBWFBQYWdlTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvdmlld3MnO1xuaW1wb3J0IHsgQVhQVGhlbWVMYXlvdXRCbG9ja0NvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBOZ1pvbmUsXG4gIHNpZ25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoLWVzL2dldCc7XG5pbXBvcnQgc2V0IGZyb20gJ2xvZGFzaC1lcy9zZXQnO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbnN0JztcbmltcG9ydCB7IEFYTU9yZ0NoYXJ0U2VydmljZSB9IGZyb20gJy4vb3JnLWNoYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhNT3JnYW5pemF0aW9uTm9kZSwgQVhNT3JnQ2hhcnRDYXRlZ29yeSwgQVhNT3JnQ2hhcnROb2RlVHlwZSB9IGZyb20gJy4vb3JnLWNoYXJ0LnR5cGUnO1xuaW1wb3J0IHsgQVhQQWN0aW9uTWVudUl0ZW0sIEFYUEJyZWFkY3J1bWJJdGVtLCBBWFBFeGVjdXRlQ29tbWFuZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG4vKipcbiAqIENvbXBvbmVudCBmb3IgZGlzcGxheWluZyBhbmQgaW50ZXJhY3Rpbmcgd2l0aCBhbiBvcmdhbml6YXRpb25hbCBjaGFydC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9vcmctY2hhcnQucGFnZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb3JnLWNoYXJ0LnBhZ2Uuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICAvL1xuICAgIEFYTWVudU1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWERyb3Bkb3duQnV0dG9uTW9kdWxlLFxuICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhQYW5WaWV3RGlyZWN0aXZlLFxuICAgIEFYTG9hZGluZ01vZHVsZSxcbiAgICBBWEJyZWFkY3J1bWJzTW9kdWxlLFxuICAgIEFYQmFkZ2VNb2R1bGUsXG4gICAgLy9cbiAgICBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50LFxuICAgIEFYUFBhZ2VMYXlvdXRDb21wb25lbnQsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICBBWE1PcmdDaGFydFNlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQUGFnZUxheW91dEJhc2UsXG4gICAgICB1c2VFeGlzdGluZzogQVhNT3JnQ2hhcnRQYWdlXG4gICAgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1PcmdDaGFydFBhZ2UgZXh0ZW5kcyBBWFBQYWdlTGF5b3V0QmFzZUNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCByZWFkb25seSByb290Q29uZmlnID0gUm9vdENvbmZpZztcblxuICBwcml2YXRlIGQzITogdHlwZW9mIGltcG9ydCgnZDMnKTtcblxuICBwcml2YXRlIG5vZGVUZW1wbGF0ZSA9IHZpZXdDaGlsZC5yZXF1aXJlZDxUZW1wbGF0ZVJlZjxhbnk+Pignbm9kZVRlbXBsYXRlJyk7XG4gIHByaXZhdGUgdHJlZUNvbnRhaW5lciA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj4oJ2NoYXJ0Jyk7XG4gIHByaXZhdGUgcGFyZW50ID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PigncGFyZW50Jyk7XG4gIHByaXZhdGUgY29udGV4dE1lbnUgPSB2aWV3Q2hpbGQoQVhDb250ZXh0TWVudUNvbXBvbmVudCk7XG4gIHByaXZhdGUgcGFuVmlldyA9IHZpZXdDaGlsZChBWFBhblZpZXdEaXJlY3RpdmUpO1xuXG4gIHByaXZhdGUgbmd6b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgLy8gcHJpbnRpbmcgaXMgaGFuZGxlZCBieSBzZXJ2aWNlIGl0c2VsZlxuICBwcml2YXRlIGNoYXJ0U2VydmljZSA9IGluamVjdChBWE1PcmdDaGFydFNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgTk9ERV9TVFJPS0VfQ09MT1IgPSAncmdiYSh2YXIoLS1heC1zeXMtY29sb3ItcHJpbWFyeS00MDApKSc7XG4gIHByaXZhdGUgcmVhZG9ubHkgTElOS19TVFJPS0VfV0lEVEggPSAxO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBOb2RlVHlwZXMgPSBBWE1PcmdDaGFydE5vZGVUeXBlO1xuXG4gIHByb3RlY3RlZCBpc0Z1bGxzY3JlZW4gPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcGFuWCA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIHBhblkgPSBzaWduYWwoMCk7XG4gIHByb3RlY3RlZCBwYW5ab29tTGV2ZWwgPSBzaWduYWwoMTAwKTtcblxuICBwcm90ZWN0ZWQgaXNDaGFydFJlbmRlcmVkID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIG5vZGVUeXBlcyA9IFtcbiAgICB7IHRpdGxlOiAnQ29tcGFueScsIGNvbG9yOiAncHJpbWFyeScsIGljb246ICdmYWwgZmEtYnVpbGRpbmcnLCBjYXRlZ29yeTogQVhNT3JnQ2hhcnRDYXRlZ29yeS5Db21wYW55IH0sXG4gICAgeyB0aXRsZTogJ0xvY2F0aW9uJywgY29sb3I6ICdhY2NlbnQxJywgaWNvbjogJ2ZhbCBmYS1nbG9iZScsIGNhdGVnb3J5OiBBWE1PcmdDaGFydENhdGVnb3J5LkxvY2F0aW9uIH0sXG4gICAgeyB0aXRsZTogJ0J1c2luZXNzIFVuaXQnLCBjb2xvcjogJ2FjY2VudDInLCBpY29uOiAnZmFsIGZhLXNpdGVtYXAnLCBjYXRlZ29yeTogQVhNT3JnQ2hhcnRDYXRlZ29yeS5CdXNpbmVzc1VuaXQgfSxcbiAgICB7IHRpdGxlOiAnUG9zaXRpb24nLCBjb2xvcjogJ2FjY2VudDMnLCBpY29uOiAnZmFsIGZhLXVzZXItdGllJywgY2F0ZWdvcnk6IEFYTU9yZ0NoYXJ0Q2F0ZWdvcnkuUG9zaXRpb24gfSxcbiAgICB7IHRpdGxlOiAnRW1wbG95ZWUnLCBjb2xvcjogJ3N1cmZhY2UnLCBpY29uOiAnZmFsIGZhLWFkZHJlc3MtY2FyZCcsIGNhdGVnb3J5OiBBWE1PcmdDaGFydENhdGVnb3J5LkVtcGxveWVlIH0sXG4gIF07XG5cbiAgI2luaXRpYWxpemUgPSBhZnRlck5leHRSZW5kZXIoYXN5bmMgKCkgPT4ge1xuICAgIHRoaXMuZDMgPSBhd2FpdCBpbXBvcnQoJ2QzJyk7XG4gICAgYXdhaXQgdGhpcy5jaGFydFNlcnZpY2UubG9hZCgpO1xuICAgIGF3YWl0IHRoaXMucmVmcmVzaENoYXJ0KCk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBab29tcyBpbiB0aGUgY2hhcnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgem9vbUluKCkge1xuICAgIHRoaXMucGFuVmlldygpPy56b29tSW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBab29tcyBvdXQgdGhlIGNoYXJ0LlxuICAgKi9cbiAgcHJvdGVjdGVkIHpvb21PdXQoKSB7XG4gICAgdGhpcy5wYW5WaWV3KCk/Lnpvb21PdXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIHpvb20gbGV2ZWwgYW5kIHBhbiBwb3NpdGlvbiBvZiB0aGUgY2hhcnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgem9vbVJlc2V0KCkge1xuICAgIHRoaXMucGFuVmlldygpPy5yZXNldFBvc2l0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyBmdWxsc2NyZWVuIG1vZGUgZm9yIHRoZSBjaGFydC5cbiAgICovXG4gIHByb3RlY3RlZCB0b2dnbGVGdWxsc2NyZWVuKCkge1xuICAgIGlmICh0aGlzLmlzRnVsbHNjcmVlbigpKSB7XG4gICAgICBkb2N1bWVudC5leGl0RnVsbHNjcmVlbigpO1xuICAgICAgdGhpcy5pc0Z1bGxzY3JlZW4uc2V0KGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wYXJlbnQoKS5uYXRpdmVFbGVtZW50LnJlcXVlc3RGdWxsc2NyZWVuKCk7XG4gICAgICB0aGlzLmlzRnVsbHNjcmVlbi5zZXQodHJ1ZSk7XG4gICAgfVxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGZvcmVpZ25PYmplY3Rbbm9kZT1cIm5vZGUtJHt0aGlzLmNoYXJ0U2VydmljZS5yb290Tm9kZSgpLmlkfVwiXWApPy5zY3JvbGxJbnRvVmlldyh7XG4gICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICBibG9jazogJ3N0YXJ0JyxcbiAgICAgIGlubGluZTogJ2NlbnRlcicsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgbWF4aW11bSBkZXB0aCBvZiB0aGUgb3JnYW5pemF0aW9uYWwgY2hhcnQuXG4gICAqIEBwYXJhbSBub2RlIC0gVGhlIHJvb3Qgbm9kZSBvZiB0aGUgY2hhcnQuXG4gICAqIEByZXR1cm5zIFRoZSBtYXhpbXVtIGRlcHRoIG9mIHRoZSBjaGFydC5cbiAgICovXG4gIHByaXZhdGUgY2FsY3VsYXRlTWF4RGVwdGgobm9kZTogQVhNT3JnYW5pemF0aW9uTm9kZSk6IG51bWJlciB7XG4gICAgaWYgKCFub2RlLmNoaWxkcmVuIHx8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoID09PSAwIHx8IG5vZGUuaXNFeHBhbmRlZCA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICByZXR1cm4gMSArIE1hdGgubWF4KC4uLm5vZGUuY2hpbGRyZW4ubWFwKChjaGlsZCkgPT4gdGhpcy5jYWxjdWxhdGVNYXhEZXB0aChjaGlsZCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWxhdGVzIHRoZSBtYXhpbXVtIGJyZWFkdGggb2YgdGhlIG9yZ2FuaXphdGlvbmFsIGNoYXJ0LlxuICAgKiBAcGFyYW0gbm9kZSAtIFRoZSByb290IG5vZGUgb2YgdGhlIGNoYXJ0LlxuICAgKiBAcmV0dXJucyBUaGUgbWF4aW11bSBicmVhZHRoIG9mIHRoZSBjaGFydC5cbiAgICovXG4gIHByaXZhdGUgY2FsY3VsYXRlTWF4QnJlYWR0aChub2RlOiBBWE1Pcmdhbml6YXRpb25Ob2RlKTogbnVtYmVyIHtcbiAgICBpZiAoIW5vZGUuY2hpbGRyZW4gfHwgbm9kZS5jaGlsZHJlbi5sZW5ndGggPT09IDAgfHwgbm9kZS5pc0V4cGFuZGVkID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIHJldHVybiBub2RlLmNoaWxkcmVuLnJlZHVjZSgoYWNjLCBjaGlsZCkgPT4gYWNjICsgdGhpcy5jYWxjdWxhdGVNYXhCcmVhZHRoKGNoaWxkKSwgMCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbmQgcmVuZGVycyB0aGUgb3JnYW5pemF0aW9uYWwgY2hhcnQuXG4gICAqIEBwYXJhbSBlbCAtIFRoZSBjb250YWluZXIgZWxlbWVudCBmb3IgdGhlIGNoYXJ0LlxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSByb290IG5vZGUgb2YgdGhlIG9yZ2FuaXphdGlvbmFsIGNoYXJ0LlxuICAgKi9cbiAgY3JlYXRlQ2hhcnQoZWw6IEVsZW1lbnQsIGRhdGE6IEFYTU9yZ2FuaXphdGlvbk5vZGUpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZDMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5uZ3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgY29uc3QgTk9ERV9XSURUSF9CQVNFID0gMjYwO1xuICAgICAgY29uc3QgTk9ERV9IRUlHSFRfQkFTRSA9IDE4MDtcbiAgICAgIGNvbnN0IEhPUklaT05UQUxfU1BBQ0lORyA9IDIwO1xuICAgICAgY29uc3QgVkVSVElDQUxfU1BBQ0lORyA9IDQwO1xuXG4gICAgICB0aGlzLmNsZWFyQ2hhcnQoZWwpO1xuICAgICAgY29uc3QgbmV3U3ZnID0gdGhpcy5kMy5zZWxlY3QoZWwpLmFwcGVuZCgnc3ZnJyk7XG5cbiAgICAgIGNvbnN0IHJvb3QgPSB0aGlzLmQzLmhpZXJhcmNoeShkYXRhKTtcblxuICAgICAgcm9vdC5kZXNjZW5kYW50cygpLmZvckVhY2goKG5vZGU6IGFueSkgPT4ge1xuICAgICAgICBpZiAobm9kZS5kYXRhLmlzRXhwYW5kZWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgbm9kZS5jaGlsZHJlbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHRyZWVMYXlvdXQgPSB0aGlzLmQzXG4gICAgICAgIC50cmVlPEFYTU9yZ2FuaXphdGlvbk5vZGU+KClcbiAgICAgICAgLm5vZGVTaXplKFtOT0RFX1dJRFRIX0JBU0UgKyBIT1JJWk9OVEFMX1NQQUNJTkcsIE5PREVfSEVJR0hUX0JBU0UgKyBWRVJUSUNBTF9TUEFDSU5HXSk7XG5cbiAgICAgIHRyZWVMYXlvdXQocm9vdCk7XG5cbiAgICAgIGxldCBtaW5YID0gSW5maW5pdHksXG4gICAgICAgIG1heFggPSAtSW5maW5pdHksXG4gICAgICAgIG1pblkgPSBJbmZpbml0eSxcbiAgICAgICAgbWF4WSA9IC1JbmZpbml0eTtcbiAgICAgIHJvb3QuZGVzY2VuZGFudHMoKS5mb3JFYWNoKChkOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGQueCA8IG1pblgpIG1pblggPSBkLng7XG4gICAgICAgIGlmIChkLnggPiBtYXhYKSBtYXhYID0gZC54O1xuICAgICAgICBpZiAoZC55IDwgbWluWSkgbWluWSA9IGQueTtcbiAgICAgICAgaWYgKGQueSA+IG1heFkpIG1heFkgPSBkLnk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgQ09OVEFJTkVSX1dJRFRIID0gbWF4WCAtIG1pblggKyBOT0RFX1dJRFRIX0JBU0UgKyAyICogSE9SSVpPTlRBTF9TUEFDSU5HO1xuICAgICAgY29uc3QgQ09OVEFJTkVSX0hFSUdIVCA9IG1heFkgLSBtaW5ZICsgTk9ERV9IRUlHSFRfQkFTRSArIDIgKiBWRVJUSUNBTF9TUEFDSU5HO1xuXG4gICAgICBuZXdTdmcuYXR0cignd2lkdGgnLCBDT05UQUlORVJfV0lEVEgpLmF0dHIoJ2hlaWdodCcsIENPTlRBSU5FUl9IRUlHSFQpO1xuXG4gICAgICBjb25zdCBnID0gbmV3U3ZnXG4gICAgICAgIC5hcHBlbmQoJ2cnKVxuICAgICAgICAuYXR0cihcbiAgICAgICAgICAndHJhbnNmb3JtJyxcbiAgICAgICAgICBgdHJhbnNsYXRlKCR7LW1pblggKyBOT0RFX1dJRFRIX0JBU0UgLyAyICsgSE9SSVpPTlRBTF9TUEFDSU5HIC8gMn0sICR7LW1pblkgKyBOT0RFX0hFSUdIVF9CQVNFIC8gMiArIFZFUlRJQ0FMX1NQQUNJTkcgLyAyXG4gICAgICAgICAgfSlgXG4gICAgICAgICk7XG5cbiAgICAgIGNvbnN0IGxpbmsgPSBnXG4gICAgICAgIC5zZWxlY3RBbGwoJy5saW5rJylcbiAgICAgICAgLmRhdGEocm9vdC5saW5rcygpKVxuICAgICAgICAuZW50ZXIoKVxuICAgICAgICAuYXBwZW5kKCdwYXRoJylcbiAgICAgICAgLmF0dHIoJ2NsYXNzJywgJ2xpbmsnKVxuICAgICAgICAuYXR0cignZCcsIChkOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBzb3VyY2UgPSBkLnNvdXJjZTtcbiAgICAgICAgICBjb25zdCB0YXJnZXQgPSBkLnRhcmdldDtcbiAgICAgICAgICByZXR1cm4gYE0ke3NvdXJjZS54fSwke3NvdXJjZS55fVYkeyhzb3VyY2UueSArIHRhcmdldC55KSAvIDJ9SCR7dGFyZ2V0Lnh9ViR7dGFyZ2V0LnkgLSAxMH1gO1xuICAgICAgICB9KVxuICAgICAgICAuYXR0cignZmlsbCcsICdub25lJylcbiAgICAgICAgLmF0dHIoJ3N0cm9rZScsIHRoaXMuTk9ERV9TVFJPS0VfQ09MT1IpXG4gICAgICAgIC5hdHRyKCdzdHJva2Utd2lkdGgnLCB0aGlzLkxJTktfU1RST0tFX1dJRFRIKVxuICAgICAgICAuYXR0cignZnJvbScsIChkOiBhbnkpID0+IGBub2RlLSR7ZC5zb3VyY2UuZGF0YS5pZH1gKVxuICAgICAgICAuYXR0cigndG8nLCAoZDogYW55KSA9PiBgbm9kZS0ke2QudGFyZ2V0LmRhdGEuaWR9YCk7XG5cbiAgICAgIGNvbnN0IG5vZGUgPSBnXG4gICAgICAgIC5zZWxlY3RBbGwoJy5heHAtY2hhcnQtbm9kZScpXG4gICAgICAgIC5kYXRhKHJvb3QuZGVzY2VuZGFudHMoKSlcbiAgICAgICAgLmVudGVyKClcbiAgICAgICAgLmFwcGVuZCgnZm9yZWlnbk9iamVjdCcpXG4gICAgICAgIC5hdHRyKCdjbGFzcycsICdheHAtY2hhcnQtbm9kZScpXG4gICAgICAgIC5hdHRyKCdub2RlJywgKGQ6IGFueSkgPT4gYG5vZGUtJHtkLmRhdGEuaWR9YClcbiAgICAgICAgLmF0dHIoJ3gnLCAoZDogYW55KSA9PiBkLnggLSBOT0RFX1dJRFRIX0JBU0UgLyAyKVxuICAgICAgICAuYXR0cigneScsIChkOiBhbnkpID0+IGQueSAtIE5PREVfSEVJR0hUX0JBU0UgLyAyICsgMTApXG4gICAgICAgIC5hdHRyKCd3aWR0aCcsIE5PREVfV0lEVEhfQkFTRSlcbiAgICAgICAgLmF0dHIoJ2hlaWdodCcsIE5PREVfSEVJR0hUX0JBU0UpXG4gICAgICAgIC5lYWNoKChkOiBhbnkpID0+IHRoaXMucmVuZGVyTm9kZVRlbXBsYXRlKGQuZGF0YSwgZC54LCBkLnkpKTtcblxuICAgICAgdGhpcy5jb250ZXh0TWVudSgpPy5yZWZyZXNoKCk7XG4gICAgfSk7XG4gICAgaWYgKCF0aGlzLmlzQ2hhcnRSZW5kZXJlZCkge1xuICAgICAgLy8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgZm9yZWlnbk9iamVjdFtub2RlPVwibm9kZS0ke2RhdGEuaWR9XCJdIC4tLWhlYWRpbmctY29udGFpbmVyYCk/LnNjcm9sbEludG9WaWV3KHtcbiAgICAgIC8vICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgLy8gICBibG9jazogJ2NlbnRlcicsXG4gICAgICAvLyAgIGlubGluZTogJ2NlbnRlcicsXG4gICAgICAvLyB9KTtcbiAgICAgIHRoaXMuaXNDaGFydFJlbmRlcmVkID0gdHJ1ZTtcbiAgICAgIHRoaXMucGFuVmlldygpPy5yZXNldFBvc2l0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIG5vZGUgdGVtcGxhdGUgZm9yIGEgZ2l2ZW4gb3JnYW5pemF0aW9uYWwgbm9kZS5cbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgbm9kZSBkYXRhLlxuICAgKiBAcGFyYW0geCAtIFRoZSB4LWNvb3JkaW5hdGUgb2YgdGhlIG5vZGUuXG4gICAqIEBwYXJhbSB5IC0gVGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgbm9kZS5cbiAgICovXG4gIHByaXZhdGUgcmVuZGVyTm9kZVRlbXBsYXRlKGRhdGE6IEFYTU9yZ2FuaXphdGlvbk5vZGUsIHg6IG51bWJlciwgeTogbnVtYmVyKTogdm9pZCB7XG4gICAgLy8gRmluZCB0aGUga2V5IHRoYXQgbWF0Y2hlcyB0aGUgbm9kZSB0eXBlXG4gICAgLy8gY2F0ZWdvcnkgaXMgdGhlIHNhbWUgYXMgdHlwZSBpbiBzaW1wbGlmaWVkIHN0cnVjdHVyZVxuICAgIHNldChkYXRhLCAnY2F0ZWdvcnknLCBkYXRhLnR5cGUpO1xuXG4gICAgY29uc3Qgdmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5ub2RlVGVtcGxhdGUoKSwge1xuICAgICAgJGltcGxpY2l0OiBkYXRhLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgbm9kZUVsZW1lbnQgPSB0aGlzLmQzLnNlbGVjdCh0aGlzLnRyZWVDb250YWluZXIoKS5uYXRpdmVFbGVtZW50KS5zZWxlY3QoYFtub2RlPVwibm9kZS0ke2RhdGEuaWR9XCJdYCk7XG4gICAgY29uc3QgZWxlbWVudCA9IG5vZGVFbGVtZW50Lm5vZGUoKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQodmlld1JlZi5yb290Tm9kZXNbMF0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSBleHBhbnNpb24gc3RhdGUgb2YgYSBub2RlLlxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSBub2RlIGRhdGEuXG4gICAqIEBwYXJhbSBlbCAtIFRoZSBIVE1MIGVsZW1lbnQgcmVwcmVzZW50aW5nIHRoZSBub2RlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHRvZ2dsZU5vZGUoZGF0YTogQVhNT3JnYW5pemF0aW9uTm9kZSwgZWw6IEhUTUxEaXZFbGVtZW50KSB7XG4gICAgZGF0YS5pc0V4cGFuZGVkID0gZGF0YS5pc0V4cGFuZGVkID09PSB1bmRlZmluZWQgPyBmYWxzZSA6ICFkYXRhLmlzRXhwYW5kZWQ7XG4gICAgdGhpcy5jcmVhdGVDaGFydCh0aGlzLnRyZWVDb250YWluZXIoKS5uYXRpdmVFbGVtZW50LCB0aGlzLmNoYXJ0U2VydmljZS5yb290Tm9kZSgpKTtcbiAgICAvLyBlbC5zY3JvbGxJbnRvVmlldyh7XG4gICAgLy8gICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgLy8gfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBjaGFydCBmcm9tIHRoZSBjb250YWluZXIgZWxlbWVudC5cbiAgICogQHBhcmFtIGVsIC0gVGhlIGNvbnRhaW5lciBlbGVtZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBjbGVhckNoYXJ0KGVsOiBFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZDMpIHtcbiAgICAgIHRoaXMuZDMuc2VsZWN0KGVsKS5zZWxlY3QoJ3N2ZycpLnJlbW92ZSgpO1xuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWZyZXNoQ2hhcnQoKSB7XG4gICAgaWYgKHRoaXMuZDMpIHtcbiAgICAgIHRoaXMuY3JlYXRlQ2hhcnQodGhpcy50cmVlQ29udGFpbmVyKCkubmF0aXZlRWxlbWVudCwgdGhpcy5jaGFydFNlcnZpY2Uucm9vdE5vZGUoKSk7XG4gICAgfVxuICB9XG5cbiAgLy8jcmVnaW9uIENvbnRleHQgTWVudVxuXG4gIC8vIHByb3RlY3RlZCBhc3luYyBoYW5kbGVDb250ZXh0TWVudU9uT3BlbmluZyhlOiBBWENvbnRleHRNZW51T3BlbmluZ0V2ZW50KSB7XG4gIC8vICAgY29uc3Qgbm9kZSA9IGdldChlLnRhcmdldEVsZW1lbnQsICdfX2RhdGFfXy5kYXRhJykgYXMgYW55IGFzIEFYTU9yZ2FuaXphdGlvbk5vZGU7XG4gIC8vICAgY29uc3QgYWxsb3dlZEFkZEl0ZW1zID0gYXdhaXQgdGhpcy5jaGFydFNlcnZpY2UuZ2V0QWxsb3dlZEFkZE1lbnVJdGVtcyhub2RlKTtcbiAgLy8gICBjb25zdCBhbGxvd0RlbGV0ZSA9IG5vZGUudHlwZSAhPSBBWE1Pcmdhbml6YXRpb25Ob2RlVHlwZS5Db21wYW55O1xuICAvLyAgIGNvbnN0IGlzUGFzdGVBdmFpbGFibGUgPSBhd2FpdCB0aGlzLmNoYXJ0U2VydmljZS5pc1Bhc3RlQXZhaWxhYmxlKCk7XG4gIC8vICAgY29uc3QgYWxsb3dQYXN0ZSA9IGF3YWl0IHRoaXMuY2hhcnRTZXJ2aWNlLmFsbG93UGFzdGUobm9kZSk7XG4gIC8vICAgLy9cbiAgLy8gICBpZiAoYWxsb3dlZEFkZEl0ZW1zLmxlbmd0aCkge1xuICAvLyAgICAgZS5pdGVtcy5wdXNoKHtcbiAgLy8gICAgICAgdGV4dDogJ0FkZCBOZXcnLFxuICAvLyAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGx1cycsXG4gIC8vICAgICAgIGl0ZW1zOiBhbGxvd2VkQWRkSXRlbXMsXG4gIC8vICAgICAgIGJyZWFrOiBhbGxvd0RlbGV0ZSxcbiAgLy8gICAgIH0pO1xuICAvLyAgIH1cbiAgLy8gICAvL1xuICAvLyAgIGlmIChhbGxvd0RlbGV0ZSkge1xuICAvLyAgICAgZS5pdGVtcy5wdXNoKHtcbiAgLy8gICAgICAgbmFtZTogJ2N1dCcsXG4gIC8vICAgICAgIHRleHQ6ICdDdXQnLFxuICAvLyAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtY3V0JyxcbiAgLy8gICAgICAgZGF0YTogbm9kZSxcbiAgLy8gICAgIH0pO1xuICAvLyAgICAgZS5pdGVtcy5wdXNoKHtcbiAgLy8gICAgICAgbmFtZTogJ2NvcHknLFxuICAvLyAgICAgICB0ZXh0OiAnQ29weScsXG4gIC8vICAgICAgIGljb246ICdmYS1saWdodCBmYS1jb3B5JyxcbiAgLy8gICAgICAgZGF0YTogbm9kZSxcbiAgLy8gICAgICAgYnJlYWs6ICFpc1Bhc3RlQXZhaWxhYmxlLFxuICAvLyAgICAgfSk7XG4gIC8vICAgfVxuICAvLyAgIGlmIChpc1Bhc3RlQXZhaWxhYmxlKSB7XG4gIC8vICAgICBlLml0ZW1zLnB1c2goe1xuICAvLyAgICAgICBuYW1lOiAncGFzdGUnLFxuICAvLyAgICAgICB0ZXh0OiAnUGFzdGUnLFxuICAvLyAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGFzdGUnLFxuICAvLyAgICAgICBkYXRhOiBub2RlLFxuICAvLyAgICAgICBicmVhazogdHJ1ZSxcbiAgLy8gICAgICAgZGlzYWJsZWQ6ICFhbGxvd1Bhc3RlLFxuICAvLyAgICAgfSk7XG4gIC8vICAgfVxuICAvLyAgIC8vXG4gIC8vICAgaWYgKGFsbG93RGVsZXRlKSB7XG4gIC8vICAgICBlLml0ZW1zLnB1c2goe1xuICAvLyAgICAgICBuYW1lOiAncmVtb3ZlJyxcbiAgLy8gICAgICAgdGV4dDogJ1JlbW92ZScsXG4gIC8vICAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcbiAgLy8gICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXRyYXNoLWNhbicsXG4gIC8vICAgICAgIGRhdGE6IG5vZGUsXG4gIC8vICAgICB9KTtcbiAgLy8gICB9XG4gIC8vICAgLy9cbiAgLy8gICBpZiAoZS5pdGVtcy5sZW5ndGggPT0gMCkge1xuICAvLyAgICAgZS5jYW5jZWxlZCA9IHRydWU7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUNvbnRleHRNZW51SXRlbUNsaWNrKGU6IEFYQ29udGV4dE1lbnVJdGVtc0NsaWNrRXZlbnQpIHtcblxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLyoqXG4gICAqIFByaW50cyB0aGUgb3JnYW5pemF0aW9uYWwgY2hhcnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgcHJpbnRDaGFydCgpIHtcbiAgICBsZXQgW3BhblgsIHBhblksIHBhblpvb21MZXZlbF0gPSBbdGhpcy5wYW5YKCksIHRoaXMucGFuWSgpLCB0aGlzLnBhblpvb21MZXZlbCgpXTtcbiAgICB0aGlzLnBhblguc2V0KDApLCB0aGlzLnBhblkuc2V0KDApLCB0aGlzLnBhblpvb21MZXZlbC5zZXQoMTAwKTtcbiAgICBhd2FpdCB0aGlzLmNoYXJ0U2VydmljZS5wcmludENoYXJ0KHRoaXMudHJlZUNvbnRhaW5lcigpLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHRoaXMucGFuWC5zZXQocGFuWCksIHRoaXMucGFuWS5zZXQocGFuWSksIHRoaXMucGFuWm9vbUxldmVsLnNldChwYW5ab29tTGV2ZWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIG5vZGUgY29sb3JzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBjb2xvci5cbiAgICogQHBhcmFtIGNvbG9yIC0gVGhlIGNvbG9yIHRvIHVzZSBmb3IgdGhlIG5vZGUuXG4gICAqIEByZXR1cm5zIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBub2RlJ3MgYmFja2dyb3VuZCwgdGV4dCwgYW5kIGJvcmRlciBjb2xvcnMuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0Tm9kZUNvbG9ycyhjb2xvcjogc3RyaW5nKSB7XG4gICAgaWYgKGNvbG9yLmluY2x1ZGVzKCdzdXJmYWNlJykpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICctLW5vZGUtYmctY29sb3InOiBgdmFyKC0tYXgtc3lzLWNvbG9yLSR7Y29sb3J9KWAsXG4gICAgICAgICctLW5vZGUtdGV4dC1jb2xvcic6IGB2YXIoLS1heC1zeXMtY29sb3Itb24tJHtjb2xvcn0pYCxcbiAgICAgICAgJy0tbm9kZS1ib3JkZXItY29sb3InOiBgdmFyKC0tYXgtc3lzLWNvbG9yLWJvcmRlci0ke2NvbG9yfSlgLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICctLW5vZGUtYmctY29sb3InOiBgdmFyKC0tYXgtc3lzLWNvbG9yLSR7Y29sb3J9LXN1cmZhY2UpYCxcbiAgICAgICctLW5vZGUtdGV4dC1jb2xvcic6IGB2YXIoLS1heC1zeXMtY29sb3Itb24tJHtjb2xvcn0tc3VyZmFjZSlgLFxuICAgICAgJy0tbm9kZS1ib3JkZXItY29sb3InOiBgdmFyKC0tYXgtc3lzLWNvbG9yLWJvcmRlci0ke2NvbG9yfS1zdXJmYWNlKWAsXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVWYXIob2xkVmFsdWU6IGFueSwgbmV3VmFsdWU6IEFYTU9yZ0NoYXJ0Q2F0ZWdvcnkpIHtcbiAgICBvbGRWYWx1ZS5jYXQgPSBuZXdWYWx1ZTtcbiAgfVxuXG5cblxuICBvdmVycmlkZSBhc3luYyBnZXRQYWdlVGl0bGUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdjaGFydC5wYWdlLXRpdGxlJywgeyBzY29wZTogdGhpcy5yb290Q29uZmlnLmNvbmZpZy5pMThuIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZ2V0UGFnZURlc2NyaXB0aW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYygnY2hhcnQucGFnZS1kZXNjcmlwdGlvbicsIHsgc2NvcGU6IHRoaXMucm9vdENvbmZpZy5jb25maWcuaTE4biB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGdldFNlY29uZGFyeU1lbnVJdGVtcygpOiBQcm9taXNlPEFYUEFjdGlvbk1lbnVJdGVtW10+IHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICB0aXRsZTogYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdjaGFydC5hY3Rpb25zLnByaW50JywgeyBzY29wZTogdGhpcy5yb290Q29uZmlnLmNvbmZpZy5pMThuIH0pLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcHJpbnQnLFxuICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICBuYW1lOiAncHJpbnQnLFxuICAgICAgICBjb21tYW5kOiB7XG4gICAgICAgICAgbmFtZTogJ3ByaW50JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRpdGxlOiBhd2FpdCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ2NoYXJ0LmFjdGlvbnMuZ2VuZXJhdGUnLCB7IHNjb3BlOiB0aGlzLnJvb3RDb25maWcuY29uZmlnLmkxOG4gfSksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1nZW5lcmF0ZScsXG4gICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgIG5hbWU6ICdnZW5lcmF0ZScsXG4gICAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICBuYW1lOiAnb3JnYW5pemF0aW9uLmNoYXJ0LmdlbmVyYXRlJyxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICBdO1xuICB9XG4gIG92ZXJyaWRlIGFzeW5jIGdldFBhZ2VCcmVhZGNydW1icygpOiBQcm9taXNlPEFYUEJyZWFkY3J1bWJJdGVtW10+IHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICB0aXRsZTogYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdyb290LW1lbnUnLCB7IHNjb3BlOiB0aGlzLnJvb3RDb25maWcuY29uZmlnLmkxOG4gfSlcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGV4ZWN1dGUoY29tbWFuZDogQVhQRXhlY3V0ZUNvbW1hbmQpIHtcbiAgICBpZiAoY29tbWFuZC5uYW1lID09ICdwcmludCcpIHtcbiAgICAgIGF3YWl0IHRoaXMucHJpbnRDaGFydCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJDaGFydCh0aGlzLnRyZWVDb250YWluZXIoKS5uYXRpdmVFbGVtZW50KTtcbiAgfVxufVxuIiwiPGF4cC1wYWdlLWxheW91dCAqdHJhbnNsYXRlPVwibGV0IHRcIj5cbiAgPGF4cC1wYWdlLWNvbnRlbnQgY2xhc3M9XCJheC1vdmVyZmxvdy1oaWRkZW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtaC1bY2FsYygxMDB2aC0yOTBweCldXCIgI3BhcmVudCBpZD1cInBhcmVudFwiPlxuICAgICAgPGRpdlxuICAgICAgICAjY2hhcnRcbiAgICAgICAgYXhQYW5WaWV3XG4gICAgICAgIFsocGFuWCldPVwicGFuWFwiXG4gICAgICAgIFsocGFuWSldPVwicGFuWVwiXG4gICAgICAgIFtmcmVlTW9kZV09XCJ0cnVlXCJcbiAgICAgICAgWyh6b29tKV09XCJwYW5ab29tTGV2ZWxcIlxuICAgICAgICBbZml0Q29udGVudF09XCJ0cnVlXCJcbiAgICAgICAgd3JhcHBlckNsYXNzZXM9XCJoXCJcbiAgICAgICAgY2xhc3M9XCJheC1saWdodFwiXG4gICAgICA+PC9kaXY+XG4gICAgICA8IS0tIDxheC1jb250ZXh0LW1lbnVcbiAgICAgICAgW3RhcmdldF09XCInLmF4cC1jaGFydC1ub2RlJ1wiXG4gICAgICAgIFtvcmllbnRhdGlvbl09XCIndmVydGljYWwnXCJcbiAgICAgICAgW2Nsb3NlT25dPVwiJ2xlYXZlJ1wiXG4gICAgICAgIChvbkl0ZW1DbGljayk9XCJoYW5kbGVDb250ZXh0TWVudUl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAgICAgKG9uT3BlbmluZyk9XCJoYW5kbGVDb250ZXh0TWVudU9uT3BlbmluZygkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDwvYXgtY29udGV4dC1tZW51PiAtLT5cbiAgICA8L2Rpdj5cbiAgPC9heHAtcGFnZS1jb250ZW50PlxuICA8YXhwLXBhZ2UtZm9vdGVyPlxuICAgIDxheHAtbGF5b3V0LXByZWZpeD5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdhcC0xIGF4LWxpZ2h0IGF4LWZsZXgtd3JhcCBheC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICBAbGV0IHYgPSB7Y2F0OidDb21wYW55J307IEBmb3IgKGl0ZW0gb2Ygbm9kZVR5cGVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4cC1ub2RlLWhpbnRcIiBbc3R5bGVdPVwiZ2V0Tm9kZUNvbG9ycyhpdGVtLmNvbG9yKVwiIFtjbGFzcy5heC1tcy00XT1cInYuY2F0IT1pdGVtLmNhdGVnb3J5XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIi0tYmFkZ2VcIj48L2Rpdj5cbiAgICAgICAgICB7e2l0ZW0udGl0bGV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge3t1cGRhdGVWYXIodiwgaXRlbS5jYXRlZ29yeSl9fSB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2F4cC1sYXlvdXQtcHJlZml4PlxuICAgIDxheHAtbGF5b3V0LXN1ZmZpeD5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdhcC0yXCI+XG4gICAgICAgIDxheC1idXR0b24gKG9uQ2xpY2spPVwiem9vbU91dCgpXCI+XG4gICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1taW51c1wiPiA8L2F4LWljb24+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8YXgtYnV0dG9uIFt0ZXh0XT1cInBhblpvb21MZXZlbCgpXCIgKG9uQ2xpY2spPVwiem9vbVJlc2V0KClcIj48L2F4LWJ1dHRvbj5cbiAgICAgICAgPGF4LWJ1dHRvbiAob25DbGljayk9XCJ6b29tSW4oKVwiPlxuICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtYWRkXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDxheC1idXR0b24gKG9uQ2xpY2spPVwidG9nZ2xlRnVsbHNjcmVlbigpXCI+XG4gICAgICAgICAgPGF4LWljb24+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkXCIgW2NsYXNzXT1cImlzRnVsbHNjcmVlbigpPyAnZmEtY29tcHJlc3MnIDogJ2ZhLWV4cGFuZCdcIj48L2k+XG4gICAgICAgICAgPC9heC1pY29uPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYXhwLWxheW91dC1zdWZmaXg+XG4gIDwvYXhwLXBhZ2UtZm9vdGVyPlxuPC9heHAtcGFnZS1sYXlvdXQ+XG5cbjxuZy10ZW1wbGF0ZSAjbm9kZVRlbXBsYXRlIGxldC1kYXRhPlxuICA8ZGl2PlxuICAgIEBzd2l0Y2ggKGRhdGEuY2F0ZWdvcnkpIHtcbiAgICA8IS0tIENvbXBhbnkgLS0+XG4gICAgQGNhc2UgKE5vZGVUeXBlcy5Db21wYW55KSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdlbmVyYWxUZW1wbGF0ZTsgY29udGV4dDogeyAgZGF0YSxjb2xvcjoncHJpbWFyeScgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICA8IS0tIExvY2F0aW9uIC0tPlxuICAgIEBjYXNlIChOb2RlVHlwZXMuQ291bnRyeSkge1xuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnZW5lcmFsVGVtcGxhdGU7IGNvbnRleHQ6IHsgIGRhdGEsY29sb3I6J2FjY2VudDEnIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICB9IEBjYXNlIChOb2RlVHlwZXMuU3RhdGUpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ2VuZXJhbFRlbXBsYXRlOyBjb250ZXh0OiB7ICBkYXRhLGNvbG9yOidhY2NlbnQxJyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgfSBAY2FzZSAoTm9kZVR5cGVzLkNpdHkpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ2VuZXJhbFRlbXBsYXRlOyBjb250ZXh0OiB7ICBkYXRhLGNvbG9yOidhY2NlbnQxJyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIDwhLS0gQnVzaW5lc3NVbml0IC0tPlxuICAgIEBjYXNlIChOb2RlVHlwZXMuRGl2aXNpb24pIHtcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ2VuZXJhbFRlbXBsYXRlOyBjb250ZXh0OiB7ICBkYXRhLGNvbG9yOidhY2NlbnQyJyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgfSBAY2FzZSAoTm9kZVR5cGVzLkRlcGFydG1lbnQpIHtcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ2VuZXJhbFRlbXBsYXRlOyBjb250ZXh0OiB7ICBkYXRhLGNvbG9yOidhY2NlbnQyJyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgfSBAY2FzZSAoTm9kZVR5cGVzLkJyYW5jaCkge1xuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnZW5lcmFsVGVtcGxhdGU7IGNvbnRleHQ6IHsgIGRhdGEsY29sb3I6J2FjY2VudDInIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gICAgPCEtLSBSb2xlIC0tPlxuICAgIEBjYXNlIChOb2RlVHlwZXMuUG9zaXRpb24pIHtcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ2VuZXJhbFRlbXBsYXRlOyBjb250ZXh0OiB7ICBkYXRhLGNvbG9yOidhY2NlbnQzJyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIDwhLS0gRW1wbG95ZWUgLS0+XG4gICAgQGNhc2UgKE5vZGVUeXBlcy5FbXBsb3llZSkge1xuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnZW5lcmFsVGVtcGxhdGU7IGNvbnRleHQ6IHsgIGRhdGEsY29sb3I6J3N1cmZhY2UnIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICB9IH1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEdlbmVyYWwgTm9kZSBUZW1wbGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cbjxuZy10ZW1wbGF0ZSAjZ2VuZXJhbFRlbXBsYXRlIGxldC1kYXRhPVwiZGF0YVwiIGxldC1jb2xvcj1cImNvbG9yXCI+XG4gIDxkaXYgI25vZGUgY2xhc3M9XCItLW5vZGUtY29udGFpbmVyXCIgW3N0eWxlXT1cImdldE5vZGVDb2xvcnMoY29sb3IpXCI+XG4gICAgPGRpdiBjbGFzcz1cIi0tY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiLS1oZWFkaW5nLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiLS1jb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIi0taWNvblwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS14bCBmYS1md1wiIFtjbGFzc109XCJkYXRhLmljb25cIj48L2k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIi0tdGl0bGVzXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIi0tdGl0bGVcIiBbdGl0bGVdPVwiZGF0YS50aXRsZVwiPnt7ZGF0YS50aXRsZX19PC9zcGFuPlxuICAgICAgICAgICAgQGlmKGRhdGEuc3VidGl0bGUpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiLS1zdWItdGl0bGVcIiBbdGl0bGVdPVwiZGF0YS5zdWJ0aXRsZVwiPnt7ZGF0YS5zdWJ0aXRsZX19PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIEBpZihkYXRhPy5jaGlsZHJlbj8ubGVuZ3RoKXtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiLS1iYWRnZVwiPlxuICAgICAgICAgICAgPHNwYW4+e3tkYXRhPy5jaGlsZHJlbj8ubGVuZ3RoID8/IDB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICBAaWYoZGF0YS5kZXNjcmlwdGlvbikge1xuICAgICAgPGRpdiBjbGFzcz1cIi0tYm9keS1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIi0tZGVzY3JpcHRpb25cIiBbY2xhc3MuYXgtcGItM109XCJkYXRhLmNoaWxkcmVuICYmIGRhdGEuY2hpbGRyZW4ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIDxzcGFuPnt7ZGF0YS5kZXNjcmlwdGlvbn19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgfSBAaWYoZGF0YS5jaGlsZHJlbiAmJiBkYXRhLmNoaWxkcmVuLmxlbmd0aCA+IDApe1xuICAgICAgPGRpdiBjbGFzcz1cIi0tdG9nZ2xlXCI+XG4gICAgICAgIDxheC1idXR0b24gY2xhc3M9XCJheC14cyBheC1yb3VuZGVkLXNtXCIgKG9uQ2xpY2spPVwidG9nZ2xlTm9kZShkYXRhLG5vZGUpXCI+XG4gICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLXNvbGlkXCIgW2NsYXNzXT1cImRhdGEuaXNFeHBhbmRlZCA9PT0gZmFsc2UgPyAnZmEtY2hldnJvbi1kb3duJyA6ICdmYS1jaGV2cm9uLXVwJ1wiPjwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19"],"names":[],"mappings":"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"}
@@ -1,115 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { inject, Injectable } from '@angular/core';
3
- import { AXPDynamicDialogService } from '@acorex/platform/layout/components';
4
- import { AXTranslationService } from '@acorex/core/translation';
5
- import { AXPWidgetsList } from '@acorex/modules/common';
6
- import { AXToastService } from '@acorex/components/toast';
7
-
8
- class AXPEmailJsaCommand {
9
- constructor() {
10
- //#region ---- Services & Dependencies ----
11
- this.dialogService = inject(AXPDynamicDialogService);
12
- this.translationService = inject(AXTranslationService);
13
- this.toastService = inject(AXToastService);
14
- }
15
- //#endregion
16
- //#region ---- Command Execution ----
17
- async execute(input) {
18
- // Show dialog to select email recipients
19
- const dialogResult = await this.showEmailDialog();
20
- if (dialogResult.cancelled) {
21
- return { success: false };
22
- }
23
- // Show toast notification
24
- await this.showEmailSentNotification(dialogResult.selectedUsers);
25
- return { success: true };
26
- }
27
- //#endregion
28
- //#region ---- Dialog Logic ----
29
- async showEmailDialog() {
30
- const title = await this.translationService.translateAsync('@project-management:jsa.email-dialog.title');
31
- const message = await this.translationService.translateAsync('@project-management:jsa.email-dialog.message');
32
- const recipientsLabel = await this.translationService.translateAsync('@project-management:jsa.email-dialog.recipients-label');
33
- const config = {
34
- title,
35
- message,
36
- formDefinition: {
37
- groups: [{
38
- name: 'form',
39
- parameters: [
40
- {
41
- path: 'selectedUsers',
42
- title: recipientsLabel,
43
- widget: {
44
- type: AXPWidgetsList.Editors.LookupBox,
45
- path: 'selectedUsers',
46
- options: {
47
- entity: 'SecurityManagement.User',
48
- textField: 'displayName',
49
- valueField: 'id',
50
- look: 'select',
51
- columns: ['displayName', 'email'],
52
- multiple: true,
53
- allowClear: true,
54
- validations: [
55
- {
56
- rule: 'required',
57
- options: { message: 'Please select at least one recipient' }
58
- }
59
- ]
60
- }
61
- }
62
- },
63
- ]
64
- }]
65
- },
66
- context: { selectedUsers: [] },
67
- actions: {
68
- footer: {
69
- suffix: [
70
- { title: await this.translationService.translateAsync('@general:actions.cancel.title'), icon: 'fa-times', color: 'default', command: { name: 'cancel' } },
71
- { title: await this.translationService.translateAsync('@project-management:jsa.email-dialog.submit-text'), icon: 'fa-envelope', color: 'primary', command: { name: 'email-jsa', options: { validate: true } } },
72
- ]
73
- }
74
- },
75
- };
76
- const result = await this.dialogService.showDialog(config);
77
- return { selectedUsers: result.context['selectedUsers'], cancelled: result.action === 'cancel' };
78
- }
79
- //#endregion
80
- //#region ---- Toast Notification ----
81
- async showEmailSentNotification(selectedUsers) {
82
- const userCount = selectedUsers?.length || 0;
83
- let message;
84
- let error = false;
85
- if (userCount === 0) {
86
- message = await this.translationService.translateAsync('@project-management:jsa.email-toast.no-recipients');
87
- error = true;
88
- }
89
- else if (userCount === 1) {
90
- message = await this.translationService.translateAsync('@project-management:jsa.email-toast.single-recipient');
91
- }
92
- else {
93
- message = await this.translationService.translateAsync('@project-management:jsa.email-toast.multiple-recipients', {
94
- params: { count: userCount }
95
- });
96
- }
97
- const title = await this.translationService.translateAsync('@project-management:jsa.email-toast.title');
98
- // Show success toast notification
99
- if (error) {
100
- this.toastService.danger(`${title}: ${message}`);
101
- }
102
- else {
103
- this.toastService.success(`${title}: ${message}`);
104
- }
105
- }
106
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPEmailJsaCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
107
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPEmailJsaCommand, providedIn: 'root' }); }
108
- }
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPEmailJsaCommand, decorators: [{
110
- type: Injectable,
111
- args: [{ providedIn: 'root' }]
112
- }] });
113
-
114
- export { AXPEmailJsaCommand };
115
- //# sourceMappingURL=acorex-modules-project-management-email-jsa.command-BuT5Vj4Y.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-modules-project-management-email-jsa.command-BuT5Vj4Y.mjs","sources":["../tmp-esm2022/project-management/lib/features/jsa/commands/email-jsa.command.js"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { AXPDynamicDialogService } from '@acorex/platform/layout/components';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWidgetsList } from '@acorex/modules/common';\nimport { AXToastService } from '@acorex/components/toast';\nimport * as i0 from \"@angular/core\";\nexport class AXPEmailJsaCommand {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.dialogService = inject(AXPDynamicDialogService);\n this.translationService = inject(AXTranslationService);\n this.toastService = inject(AXToastService);\n }\n //#endregion\n //#region ---- Command Execution ----\n async execute(input) {\n // Show dialog to select email recipients\n const dialogResult = await this.showEmailDialog();\n if (dialogResult.cancelled) {\n return { success: false };\n }\n // Show toast notification\n await this.showEmailSentNotification(dialogResult.selectedUsers);\n return { success: true };\n }\n //#endregion\n //#region ---- Dialog Logic ----\n async showEmailDialog() {\n const title = await this.translationService.translateAsync('@project-management:jsa.email-dialog.title');\n const message = await this.translationService.translateAsync('@project-management:jsa.email-dialog.message');\n const recipientsLabel = await this.translationService.translateAsync('@project-management:jsa.email-dialog.recipients-label');\n const config = {\n title,\n message,\n formDefinition: {\n groups: [{\n name: 'form',\n parameters: [\n {\n path: 'selectedUsers',\n title: recipientsLabel,\n widget: {\n type: AXPWidgetsList.Editors.LookupBox,\n path: 'selectedUsers',\n options: {\n entity: 'SecurityManagement.User',\n textField: 'displayName',\n valueField: 'id',\n look: 'select',\n columns: ['displayName', 'email'],\n multiple: true,\n allowClear: true,\n validations: [\n {\n rule: 'required',\n options: { message: 'Please select at least one recipient' }\n }\n ]\n }\n }\n },\n ]\n }]\n },\n context: { selectedUsers: [] },\n actions: {\n footer: {\n suffix: [\n { title: await this.translationService.translateAsync('@general:actions.cancel.title'), icon: 'fa-times', color: 'default', command: { name: 'cancel' } },\n { title: await this.translationService.translateAsync('@project-management:jsa.email-dialog.submit-text'), icon: 'fa-envelope', color: 'primary', command: { name: 'email-jsa', options: { validate: true } } },\n ]\n }\n },\n };\n const result = await this.dialogService.showDialog(config);\n return { selectedUsers: result.context['selectedUsers'], cancelled: result.action === 'cancel' };\n }\n //#endregion\n //#region ---- Toast Notification ----\n async showEmailSentNotification(selectedUsers) {\n const userCount = selectedUsers?.length || 0;\n let message;\n let error = false;\n if (userCount === 0) {\n message = await this.translationService.translateAsync('@project-management:jsa.email-toast.no-recipients');\n error = true;\n }\n else if (userCount === 1) {\n message = await this.translationService.translateAsync('@project-management:jsa.email-toast.single-recipient');\n }\n else {\n message = await this.translationService.translateAsync('@project-management:jsa.email-toast.multiple-recipients', {\n params: { count: userCount }\n });\n }\n const title = await this.translationService.translateAsync('@project-management:jsa.email-toast.title');\n // Show success toast notification\n if (error) {\n this.toastService.danger(`${title}: ${message}`);\n }\n else {\n this.toastService.success(`${title}: ${message}`);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPEmailJsaCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPEmailJsaCommand, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPEmailJsaCommand, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtanNhLmNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvcHJvamVjdC1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvanNhL2NvbW1hbmRzL2VtYWlsLWpzYS5jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSx1QkFBdUIsRUFBMEIsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQVcxRCxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBR0ksK0NBQStDO1FBRTlCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDaEQsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbEQsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7S0E0RzFEO0lBMUdHLFlBQVk7SUFFWix5Q0FBeUM7SUFFekMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUE4QjtRQUN4Qyx5Q0FBeUM7UUFDekMsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFbEQsSUFBSSxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDekIsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUM5QixDQUFDO1FBRUQsMEJBQTBCO1FBQzFCLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVqRSxPQUFP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Q0FBQztZQUM1RyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLENBQUM7YUFBTSxJQUFJLFNBQVMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QixPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7UUFDbkgsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLHlEQUF5RCxFQUFFO2dCQUM5RyxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2FBQy9CLENBQUMsQ0FBQztRQUNQLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUV4RyxrQ0FBa0M7UUFDbEMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxLQUFLLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssS0FBSyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDTCxDQUFDOzhHQS9HUSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQURMLE1BQU07OzJGQUNuQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQQ29tbWFuZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vcnVudGltZSc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTVByb2plY3RNYW5hZ2VtZW50SnNhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VudGl0aWVzL2pzYS9qc2Euc2VydmljZSc7XG5pbXBvcnQgeyBBWFBEeW5hbWljRGlhbG9nU2VydmljZSwgQVhQRHluYW1pY0RpYWxvZ0NvbmZpZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQV2lkZ2V0c0xpc3QgfSBmcm9tICdAYWNvcmV4L21vZHVsZXMvY29tbW9uJztcbmltcG9ydCB7IEFYVG9hc3RTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RvYXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBFbWFpbEpzYUNvbW1hbmRJbnB1dCB7XG4gICAgaWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBFbWFpbEpzYUNvbW1hbmRSZXN1bHQge1xuICAgIHN1Y2Nlc3M6IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW1haWxKc2FDb21tYW5kIGltcGxlbWVudHMgQVhQQ29tbWFuZDxBWFBFbWFpbEpzYUNvbW1hbmRJbnB1dCwgQVhQRW1haWxKc2FDb21tYW5kUmVzdWx0PiB7XG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFNlcnZpY2VzICYgRGVwZW5kZW5jaWVzICAgLS0tLVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFYUER5bmFtaWNEaWFsb2dTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdFNlcnZpY2UgPSBpbmplY3QoQVhUb2FzdFNlcnZpY2UpO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIENvbW1hbmQgRXhlY3V0aW9uICAgLS0tLVxuXG4gICAgYXN5bmMgZXhlY3V0ZShpbnB1dDogQVhQRW1haWxKc2FDb21tYW5kSW5wdXQpOiBQcm9taXNlPEFYUEVtYWlsSnNhQ29tbWFuZFJlc3VsdD4ge1xuICAgICAgICAvLyBTaG93IGRpYWxvZyB0byBzZWxlY3QgZW1haWwgcmVjaXBpZW50c1xuICAgICAgICBjb25zdCBkaWFsb2dSZXN1bHQgPSBhd2FpdCB0aGlzLnNob3dFbWFpbERpYWxvZygpO1xuXG4gICAgICAgIGlmIChkaWFsb2dSZXN1bHQuY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2hvdyB0b2FzdCBub3RpZmljYXRpb25cbiAgICAgICAgYXdhaXQgdGhpcy5zaG93RW1haWxTZW50Tm90aWZpY2F0aW9uKGRpYWxvZ1Jlc3VsdC5zZWxlY3RlZFVzZXJzKTtcblxuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlIH07XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIERpYWxvZyBMb2dpYyAgIC0tLS1cblxuICAgIHByaXZhdGUgYXN5bmMgc2hvd0VtYWlsRGlhbG9nKCk6IFByb21pc2U8eyBzZWxlY3RlZFVzZXJzPzogc3RyaW5nW107IGNhbmNlbGxlZDogYm9vbGVhbiB9PiB7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0Bwcm9qZWN0LW1hbmFnZW1lbnQ6anNhLmVtYWlsLWRpYWxvZy50aXRsZScpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0Bwcm9qZWN0LW1hbmFnZW1lbnQ6anNhLmVtYWlsLWRpYWxvZy5tZXNzYWdlJyk7XG4gICAgICAgIGNvbnN0IHJlY2lwaWVudHNMYWJlbCA9IGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAcHJvamVjdC1tYW5hZ2VtZW50OmpzYS5lbWFpbC1kaWFsb2cucmVjaXBpZW50cy1sYWJlbCcpO1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZzogQVhQRHluYW1pY0RpYWxvZ0NvbmZpZyA9IHtcbiAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgICAgIGZvcm1EZWZpbml0aW9uOiB7XG4gICAgICAgICAgICAgICAgZ3JvdXBzOiBbe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZm9ybScsXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnc2VsZWN0ZWRVc2VycycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHJlY2lwaWVudHNMYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWRnZXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0xpc3QuRWRpdG9ycy5Mb29rdXBCb3gsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICdzZWxlY3RlZFVzZXJzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiAnU2VjdXJpdHlNYW5hZ2VtZW50LlVzZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkOiAnZGlzcGxheU5hbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVGaWVsZDogJ2lkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb2s6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uczogWydkaXNwbGF5TmFtZScsICdlbWFpbCddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd0NsZWFyOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGU6ICdyZXF1aXJlZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHsgbWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIHJlY2lwaWVudCcgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9XVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgc2VsZWN0ZWRVc2VyczogW10gfSxcbiAgICAgICAgICAgIGFjdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBmb290ZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgc3VmZml4OiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHRpdGxlOiBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQGdlbmVyYWw6YWN0aW9ucy5jYW5jZWwudGl0bGUnKSwgaWNvbjogJ2ZhLXRpbWVzJywgY29sb3I6ICdkZWZhdWx0JywgY29tbWFuZDogeyBuYW1lOiAnY2FuY2VsJyB9IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHRpdGxlOiBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQHByb2plY3QtbWFuYWdlbWVudDpqc2EuZW1haWwtZGlhbG9nLnN1Ym1pdC10ZXh0JyksIGljb246ICdmYS1lbnZlbG9wZScsIGNvbG9yOiAncHJpbWFyeScsIGNvbW1hbmQ6IHsgbmFtZTogJ2VtYWlsLWpzYScsIG9wdGlvbnM6IHsgdmFsaWRhdGU6IHRydWUgfSB9IH0sXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5zaG93RGlhbG9nKGNvbmZpZyk7XG4gICAgICAgIHJldHVybiB7IHNlbGVjdGVkVXNlcnM6IHJlc3VsdC5jb250ZXh0WydzZWxlY3RlZFVzZXJzJ10sIGNhbmNlbGxlZDogcmVzdWx0LmFjdGlvbiA9PT0gJ2NhbmNlbCcgfTtcbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgVG9hc3QgTm90aWZpY2F0aW9uICAgLS0tLVxuXG4gICAgcHJpdmF0ZSBhc3luYyBzaG93RW1haWxTZW50Tm90aWZpY2F0aW9uKHNlbGVjdGVkVXNlcnM/OiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB1c2VyQ291bnQgPSBzZWxlY3RlZFVzZXJzPy5sZW5ndGggfHwgMDtcbiAgICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZztcbiAgICAgICAgbGV0IGVycm9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHVzZXJDb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgbWVzc2FnZSA9IGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAcHJvamVjdC1tYW5hZ2VtZW50OmpzYS5lbWFpbC10b2FzdC5uby1yZWNpcGllbnRzJyk7XG4gICAgICAgICAgICBlcnJvciA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodXNlckNvdW50ID09PSAxKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0Bwcm9qZWN0LW1hbmFnZW1lbnQ6anNhLmVtYWlsLXRvYXN0LnNpbmdsZS1yZWNpcGllbnQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQHByb2plY3QtbWFuYWdlbWVudDpqc2EuZW1haWwtdG9hc3QubXVsdGlwbGUtcmVjaXBpZW50cycsIHtcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHsgY291bnQ6IHVzZXJDb3VudCB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRpdGxlID0gYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0Bwcm9qZWN0LW1hbmFnZW1lbnQ6anNhLmVtYWlsLXRvYXN0LnRpdGxlJyk7XG5cbiAgICAgICAgLy8gU2hvdyBzdWNjZXNzIHRvYXN0IG5vdGlmaWNhdGlvblxuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmRhbmdlcihgJHt0aXRsZX06ICR7bWVzc2FnZX1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnN1Y2Nlc3MoYCR7dGl0bGV9OiAke21lc3NhZ2V9YCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cbn1cbiJdfQ=="],"names":[],"mappings":"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"}