@provoly/dashboard 0.14.7 → 0.14.9

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 (144) hide show
  1. package/admin/components/admin-metadata-user/admin-metadata-user.component.d.ts +1 -1
  2. package/admin/components/admin-metadata-user/store/admin-metadata-user.action.d.ts +0 -11
  3. package/admin/components/admin-metadata-user/store/admin-metadata-user.effects.d.ts +2 -7
  4. package/admin/components/admin-metadata-user/store/admin-metadata-user.reducer.d.ts +1 -3
  5. package/admin/components/admin-metadata-user/store/admin-metadata-user.selector.d.ts +1 -4
  6. package/admin/components/admin-user/store/admin-user.action.d.ts +1 -52
  7. package/admin/components/admin-user/store/admin-user.effects.d.ts +0 -28
  8. package/admin/components/admin-user/store/admin-user.reducer.d.ts +1 -2
  9. package/admin/components/admin-user/store/admin-user.selector.d.ts +0 -1
  10. package/admin/store/admin.service.d.ts +1 -4
  11. package/components/metadata-editor/metadata-editor.component.d.ts +6 -4
  12. package/components/metadata-editor/metadata-editor.module.d.ts +7 -6
  13. package/components/metadata-editor/public-api.d.ts +1 -0
  14. package/components/metadata-editor/store/metadata.action.d.ts +63 -1
  15. package/components/metadata-editor/store/metadata.effects.d.ts +33 -0
  16. package/components/metadata-editor/store/metadata.reducer.d.ts +3 -1
  17. package/components/metadata-editor/store/metadata.selector.d.ts +2 -0
  18. package/components/metadata-editor/store/metadata.service.d.ts +5 -1
  19. package/components/metadata-editor/style/_o-metadata-editor.scss +15 -0
  20. package/components/metadata-editor/style/css.component.d.ts +5 -0
  21. package/dataset/components/dataset-detail/dataset-detail.component.d.ts +1 -0
  22. package/dataset/i18n/en.translations.d.ts +1 -0
  23. package/dataset/i18n/fr.translations.d.ts +1 -0
  24. package/dataset/style/_o-pry-dataset-detail.scss +7 -6
  25. package/dataset/style/_o-pry-dataset.scss +6 -3
  26. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-edit/admin-abac-rules-edit.component.mjs +2 -3
  27. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-new/admin-abac-rules-new.component.mjs +2 -3
  28. package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +2 -3
  29. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-edit/admin-attributes-edit.component.mjs +1 -1
  30. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +4 -4
  31. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +3 -3
  32. package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +2 -3
  33. package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +3 -5
  34. package/esm2022/admin/components/admin-metadata-user/admin-metadata-user.component.mjs +9 -10
  35. package/esm2022/admin/components/admin-metadata-user/admin-user-edit-metadata/admin-user-edit-metadata.component.mjs +4 -4
  36. package/esm2022/admin/components/admin-metadata-user/admin-user-select-metadata/admin-user-select-metadata.component.mjs +7 -3
  37. package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.action.mjs +1 -4
  38. package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.effects.mjs +4 -4
  39. package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.reducer.mjs +8 -28
  40. package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.selector.mjs +2 -6
  41. package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +9 -10
  42. package/esm2022/admin/components/admin-user/admin-user.component.mjs +1 -1
  43. package/esm2022/admin/components/admin-user/store/admin-user.action.mjs +2 -11
  44. package/esm2022/admin/components/admin-user/store/admin-user.effects.mjs +1 -19
  45. package/esm2022/admin/components/admin-user/store/admin-user.reducer.mjs +2 -7
  46. package/esm2022/admin/components/admin-user/store/admin-user.selector.mjs +1 -3
  47. package/esm2022/admin/store/admin.effects.mjs +1 -1
  48. package/esm2022/admin/store/admin.service.mjs +1 -16
  49. package/esm2022/components/metadata-editor/metadata-editor.component.mjs +37 -21
  50. package/esm2022/components/metadata-editor/metadata-editor.module.mjs +5 -4
  51. package/esm2022/components/metadata-editor/public-api.mjs +2 -1
  52. package/esm2022/components/metadata-editor/store/metadata.action.mjs +14 -2
  53. package/esm2022/components/metadata-editor/store/metadata.effects.mjs +21 -1
  54. package/esm2022/components/metadata-editor/store/metadata.reducer.mjs +18 -2
  55. package/esm2022/components/metadata-editor/store/metadata.selector.mjs +6 -2
  56. package/esm2022/components/metadata-editor/store/metadata.service.mjs +21 -1
  57. package/esm2022/components/metadata-editor/style/css.component.mjs +11 -0
  58. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +6 -3
  59. package/esm2022/dataset/i18n/en.translations.mjs +2 -1
  60. package/esm2022/dataset/i18n/fr.translations.mjs +3 -2
  61. package/esm2022/dataset/style/css.component.mjs +2 -2
  62. package/esm2022/import/i18n/en.translations.mjs +4 -1
  63. package/esm2022/import/i18n/fr.translations.mjs +4 -1
  64. package/esm2022/import/store/import.effects.mjs +8 -1
  65. package/esm2022/lib/core/components/modal-status/modal-status.component.mjs +10 -6
  66. package/esm2022/lib/core/components/snackbar/snackbar.service.mjs +1 -1
  67. package/esm2022/lib/core/i18n/en.translations.mjs +3 -2
  68. package/esm2022/lib/core/i18n/fr.translations.mjs +3 -2
  69. package/esm2022/lib/core/model/display-options.interface.mjs +1 -1
  70. package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
  71. package/esm2022/lib/core/model/public-api.mjs +2 -1
  72. package/esm2022/lib/core/model/widget-vega-manifest.interface.mjs +2 -0
  73. package/esm2022/lib/core/store/config/config.effects.mjs +3 -3
  74. package/esm2022/lib/core/store/data-source/data-source.effects.mjs +4 -4
  75. package/esm2022/lib/core/store/relation-types/relation-types.effects.mjs +3 -2
  76. package/esm2022/lib/dashboard/components/context-menu/context-menu.component.mjs +1 -1
  77. package/esm2022/lib/dashboard/components/dashboard.component.mjs +11 -8
  78. package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-instanciator.component.mjs +2 -6
  79. package/esm2022/lib/dashboard/store/dashboard.actions.mjs +2 -2
  80. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +4 -3
  81. package/esm2022/lib/dashboard/store/dashboard.reducers.mjs +4 -2
  82. package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +3 -4
  83. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +3 -3
  84. package/esm2022/restitution/components/restitution/restitution.component.mjs +1 -1
  85. package/esm2022/toolbox/components/save-view/save-view.component.mjs +4 -4
  86. package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +3 -1
  87. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +16 -10
  88. package/esm2022/widgets/widget-map/utils/cql-utils.class.mjs +5 -5
  89. package/esm2022/widgets/widget-map/utils/xml-utils.class.mjs +23 -1
  90. package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +139 -0
  91. package/esm2022/widgets/widget-vega/i18n/en.translations.mjs +11 -0
  92. package/esm2022/widgets/widget-vega/i18n/fr.translations.mjs +11 -0
  93. package/esm2022/widgets/widget-vega/provoly-dashboard-widgets-widget-vega.mjs +5 -0
  94. package/esm2022/widgets/widget-vega/public-api.mjs +3 -0
  95. package/esm2022/widgets/widget-vega/style/css.component.mjs +11 -0
  96. package/esm2022/widgets/widget-vega/widget-vega.module.mjs +68 -0
  97. package/fesm2022/provoly-dashboard-admin.mjs +122 -197
  98. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  99. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +124 -28
  100. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  101. package/fesm2022/provoly-dashboard-dataset.mjs +10 -5
  102. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  103. package/fesm2022/provoly-dashboard-import.mjs +13 -0
  104. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  105. package/fesm2022/provoly-dashboard-presentation.mjs +2 -2
  106. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  107. package/fesm2022/provoly-dashboard-restitution.mjs +1 -1
  108. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  109. package/fesm2022/provoly-dashboard-toolbox.mjs +3 -3
  110. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  111. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +43 -14
  112. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  113. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +235 -0
  114. package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -0
  115. package/fesm2022/provoly-dashboard.mjs +40 -31
  116. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  117. package/import/i18n/en.translations.d.ts +3 -0
  118. package/import/i18n/fr.translations.d.ts +3 -0
  119. package/lib/core/i18n/en.translations.d.ts +1 -0
  120. package/lib/core/i18n/fr.translations.d.ts +1 -0
  121. package/lib/core/model/display-options.interface.d.ts +1 -1
  122. package/lib/core/model/manifest.interface.d.ts +2 -1
  123. package/lib/core/model/public-api.d.ts +1 -0
  124. package/lib/core/model/widget-vega-manifest.interface.d.ts +5 -0
  125. package/lib/dashboard/components/dashboard.component.d.ts +4 -4
  126. package/lib/dashboard/components/widgets/widget-instanciator/widget-instanciator.component.d.ts +1 -3
  127. package/lib/dashboard/store/dashboard.actions.d.ts +6 -4
  128. package/lib/dashboard/store/dashboard.effects.d.ts +2 -0
  129. package/lib/dashboard/store/dashboard.selectors.d.ts +1 -1
  130. package/package.json +31 -25
  131. package/schematics/ng-add/index.js +7 -1
  132. package/schematics/ng-add/index.js.map +1 -1
  133. package/schematics/ng-add/schema.json +2 -1
  134. package/styles/components/_o-tabs.scss +1 -7
  135. package/widgets/widget-map/component/widget-map.component.d.ts +3 -1
  136. package/widgets/widget-map/utils/xml-utils.class.d.ts +2 -0
  137. package/widgets/widget-vega/component/widget-vega.component.d.ts +37 -0
  138. package/widgets/widget-vega/i18n/en.translations.d.ts +10 -0
  139. package/widgets/widget-vega/i18n/fr.translations.d.ts +10 -0
  140. package/widgets/widget-vega/index.d.ts +5 -0
  141. package/widgets/widget-vega/public-api.d.ts +2 -0
  142. package/widgets/widget-vega/style/_o-widget-vega.scss +6 -0
  143. package/widgets/widget-vega/style/css.component.d.ts +5 -0
  144. package/widgets/widget-vega/widget-vega.module.d.ts +19 -0
@@ -1,6 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { createEffect, ofType } from '@ngrx/effects';
3
- import { filter, map, mergeMap, switchMap, tap } from 'rxjs';
3
+ import { debounceTime, filter, map, mergeMap, switchMap, tap } from 'rxjs';
4
4
  import { catchError, withLatestFrom } from 'rxjs/operators';
5
5
  import { DashboardActions } from '../../../dashboard/store/dashboard.actions';
6
6
  import { DashboardSelectors } from '../../../dashboard/store/dashboard.selectors';
@@ -49,7 +49,7 @@ export class DataSourceEffects {
49
49
  actions.push(DataSourceActions.namedQuery.load());
50
50
  return actions;
51
51
  }), catchError((error) => [DataSourceActions.namedQuery.failure({ error })])));
52
- this.getNamedQuery$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.namedQuery.load), switchMap(() => this.dataSourceService.get()), map((namedQueryList) => DataSourceActions.namedQuery.loaded({ list: namedQueryList })), catchError((error) => [DataSourceActions.namedQuery.failure({ error })])));
52
+ this.getNamedQuery$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.namedQuery.load), debounceTime(100), switchMap(() => this.dataSourceService.get()), map((namedQueryList) => DataSourceActions.namedQuery.loaded({ list: namedQueryList })), catchError((error) => [DataSourceActions.namedQuery.failure({ error })])));
53
53
  this.loaded$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.namedQuery.loaded), map((action) => {
54
54
  return DashboardActions.setAvailableNamedQueries({ names: action.list.map((nq) => nq.id) });
55
55
  })));
@@ -95,7 +95,7 @@ export class DataSourceEffects {
95
95
  this.loadedDataset$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.loadDataset), mergeMap((action) => this.dataSourceService
96
96
  .getDatasets()
97
97
  .pipe(map((dsd) => DataSourceActions.dataset.loadedDataset({ datasets: dsd }))))));
98
- this.loadDataset$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.load), mergeMap((action) => [DataSourceActions.namedQuery.load(), DataSourceActions.dataset.loadDataset()])));
98
+ this.loadDataset$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.load), debounceTime(100), mergeMap((action) => [DataSourceActions.namedQuery.load(), DataSourceActions.dataset.loadDataset()])));
99
99
  this.createDataset$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.create), switchMap((props) => this.dataSourceService
100
100
  .addDataset(props.dataset)
101
101
  .pipe(mergeMap(() => [
@@ -150,4 +150,4 @@ export class DataSourceEffects {
150
150
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DataSourceEffects, decorators: [{
151
151
  type: Injectable
152
152
  }], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.SearchService }, { type: i3.DataSourceService }, { type: i4.PrySnackbarService }, { type: i5.PryI18nService }, { type: i6.Store }, { type: i7.PryDialogService }]; } });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSx5QkFBeUIsRUFBd0IsTUFBTSxtREFBbUQsQ0FBQztBQUlwSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXpELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7QUFJOUQsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUNVLFFBQWlCLEVBQ2pCLGFBQTRCLEVBQzVCLGlCQUFvQyxFQUNwQyxRQUE0QixFQUM1QixTQUF5QixFQUN6QixLQUFZLEVBQ1osU0FBMkI7UUFOM0IsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixrQkFBYSxHQUFiLGFB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QUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUNsRCxTQUFTLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ2hELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQ2xGLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUN0RixDQUNGLENBQ0YsQ0FDRixDQUFDO0lBNVRDLENBQUM7OEdBWE8saUJBQWlCO2tIQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgQWN0aW9uLCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBtZXJnZU1hcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQuYWN0aW9ucyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBQcnlEaWFsb2dDb25maXJtQ29tcG9uZW50LCBQcnlEaWFsb2dDb25maXJtRGF0YSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvb3ZlcmxheS9kaWFsb2ctY29uZmlybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJ5RGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvb3ZlcmxheS9kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBQcnlTbmFja2JhclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NuYWNrYmFyL3NuYWNrYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJ5STE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9pMThuL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWdTZWxlY3RvcnMgfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBTZWFyY2hBY3Rpb25zIH0gZnJvbSAnLi4vc2VhcmNoL3NlYXJjaC5hY3Rpb25zJztcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZUFjdGlvbnMgfSBmcm9tICcuL2RhdGEtc291cmNlLmFjdGlvbnMnO1xuaW1wb3J0IHsgRGF0YXNldCwgTmFtZWRRdWVyeSB9IGZyb20gJy4vZGF0YS1zb3VyY2UubW9kZWwnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZVNlbGVjdG9ycyB9IGZyb20gJy4vZGF0YS1zb3VyY2Uuc2VsZWN0b3JzJztcbmltcG9ydCB7IERhdGFTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhLXNvdXJjZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VFZmZlY3RzIHtcbiAgcHJpdmF0ZSBpZE5hbWVkUXVlcnk/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRhU291cmNlU2VydmljZTogRGF0YVNvdXJjZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogUHJ5U25hY2tiYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBQcnlJMThuU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHByeURpYWxvZzogUHJ5RGlhbG9nU2VydmljZVxuICApIHt9XG5cbiAgcG9zdE5hbWVRdWVyeSQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5wb3N0KSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5yYW5kb21Db2xvcikpLFxuICAgICAgc3dpdGNoTWFwKChbYWN0aW9uLCByYW5kb21Db2xvcl0pID0+IHtcbiAgICAgICAgY29uc3QgeyBuYW1lLCBpZCwgcGF5bG9hZCwgZGVzY3JpcHRpb24sIGNvbG9yLCBmYXZvcml0ZSwgaXNFZGl0LCB2aXNpYmlsaXR5IH0gPSBhY3Rpb247XG4gICAgICAgIHRoaXMuaWROYW1lZFF1ZXJ5ID0gaXNFZGl0ID8gaWQgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IG5hbWVkUXVlcnk6IE5hbWVkUXVlcnkgPSB7XG4gICAgICAgICAgaWQ6IGlkID8/ICcnLFxuICAgICAgICAgIHNvdXJjZVR5cGU6ICduYW1lZFF1ZXJ5JyxcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJpbGl0eSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgcmVxdWVzdDogcGF5bG9hZCxcbiAgICAgICAgICBjb2xvcjogY29sb3IgPz8gcmFuZG9tQ29sb3IsXG4gICAgICAgICAgZmF2b3JpdGVcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2UucG9zdChuYW1lZFF1ZXJ5KTtcbiAgICAgIH0pLFxuICAgICAgbWVyZ2VNYXAoKCkgPT4ge1xuICAgICAgICBjb25zdCBhY3Rpb25zID0gW10gYXMgQWN0aW9uW107XG4gICAgICAgIGlmICh0aGlzLmlkTmFtZWRRdWVyeSkge1xuICAgICAgICAgIGFjdGlvbnMucHVzaChTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7IGlkOiB0aGlzLmlkTmFtZWRRdWVyeSB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pZE5hbWVkUXVlcnkgPSB1bmRlZmluZWQ7XG4gICAgICAgIGFjdGlvbnMucHVzaChEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmxvYWQoKSk7XG4gICAgICAgIHJldHVybiBhY3Rpb25zO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkuZmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICApXG4gICk7XG5cbiAgZ2V0TmFtZWRRdWVyeSQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5sb2FkKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmdldCgpKSxcbiAgICAgIG1hcCgobmFtZWRRdWVyeUxpc3Q6IE5hbWVkUXVlcnlbXSkgPT4gRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5sb2FkZWQoeyBsaXN0OiBuYW1lZFF1ZXJ5TGlzdCB9KSksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkuZmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICApXG4gICk7XG5cbiAgbG9hZGVkJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmxvYWRlZCksXG4gICAgICBtYXAoKGFjdGlvbjogeyBsaXN0OiBOYW1lZFF1ZXJ5W107IHR5cGU6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgIHJldHVybiBEYXNoYm9hcmRBY3Rpb25zLnNldEF2YWlsYWJsZU5hbWVkUXVlcmllcyh7IG5hbWVzOiBhY3Rpb24ubGlzdC5tYXAoKG5xKSA9PiBucS5pZCkgfSk7XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBkZWxldGVOYW1lZFF1ZXJ5JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmRlbGV0ZSksXG4gICAgICBzd2l0Y2hNYXAoKHByb3BzOiB7IGlkOiBzdHJpbmcgfSkgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZS5kZWxldGUocHJvcHMuaWQpLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAoKCkgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkubG9hZCgpXSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgYWRkRmF2b3JpdGVOYW1lZFF1ZXJ5JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmFkZEZhdm9yaXRlKSxcbiAgICAgIHN3aXRjaE1hcCgocHJvcHM6IHsgaWQ6IHN0cmluZyB9KSA9PiB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmFkZEZhdm9yaXRlKHByb3BzLmlkKSksXG4gICAgICBtZXJnZU1hcCgoKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5sb2FkKCldKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5mYWlsdXJlKHsgZXJyb3IgfSldKVxuICAgIClcbiAgKTtcblxuICBkZWxldGVGYXZvcml0ZU5hbWVkUXVlcnkkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkuZGVsZXRlRmF2b3JpdGUpLFxuICAgICAgc3dpdGNoTWFwKChwcm9wczogeyBpZDogc3RyaW5nIH0pID0+IHRoaXMuZGF0YVNvdXJjZVNlcnZpY2UuZGVsZXRlRmF2b3JpdGUocHJvcHMuaWQpKSxcbiAgICAgIG1lcmdlTWFwKCgpID0+IFtEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmxvYWQoKV0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgKVxuICApO1xuXG4gIHRyeUVkaXQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkuZWRpdCksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmVkaXRJblByb2dyZXNzKSksXG4gICAgICBtYXAoKFthY3Rpb24sIGluUHJvZ3Jlc3NdKSA9PiB7XG4gICAgICAgIGlmICghaW5Qcm9ncmVzcykge1xuICAgICAgICAgIHJldHVybiBEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5Lm9wZW5FZGl0KGFjdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0Bwcnkuc2VhcmNoLm5hbWVkUXVlcnkuYWxyZWFkeUVkaXRpbmcnKSxcbiAgICAgICAgICAgIHR5cGU6ICdlcnJvcidcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5mYWlsdXJlKHsgZXJyb3I6IG5ldyBFcnJvcignQHByeS5zZWFyY2gubmFtZWRRdWVyeS5hbHJlYWR5RWRpdGluZycpIH0pO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5mYWlsdXJlKHsgZXJyb3IgfSldKVxuICAgIClcbiAgKTtcblxuICB1cGRhdGVXaWRnZXRBZnRlclNhdmUkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgLy8gVXNpbmcgc3RyaW5ncyB0byBwcmV2ZW50IGhhdmluZyBjb3JlIG1vZHVsZSBkZXBlbmRpbmcgb24gc2VhcmNoIG1vZHVsZVxuICAgICAgb2ZUeXBlKCdbU2VhcmNoTW9ub0NsYXNzXSBzYXZlJywgJ1tTZWFyY2hNdWx0aUNsYXNzXSBsYXVuY2ggc2F2ZScsICdbU2VhcmNoIEZ1bGx0ZXh0XSBzYXZlJyksXG4gICAgICB3aXRoTGF0ZXN0RnJvbShcbiAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5lZGl0RnJvbVdpZGdldCksXG4gICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuY3VycmVudEVkaXQpLFxuICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMud2luZG93TWFuaWZlc3QpXG4gICAgICApLFxuICAgICAgZmlsdGVyKChbYWN0aW9uLCBmcm9tV2lkZ2V0LCBjdXJyZW50RWRpdCwgd2luZG93TWFuaWZlc3RdKSA9PiBmcm9tV2lkZ2V0ICE9PSB1bmRlZmluZWQpLFxuICAgICAgbWFwKChbYWN0aW9uLCBmcm9tV2lkZ2V0LCBjdXJyZW50RWRpdCwgd2luZG93TWFuaWZlc3RdKSA9PiB7XG4gICAgICAgIGNvbnN0IHdpZGdldE1hbmlmZXN0Q29weSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkod2luZG93TWFuaWZlc3Qud2lkZ2V0c1tmcm9tV2lkZ2V0Py53aWRnZXRJbmRleCA/PyAwXSkpO1xuICAgICAgICAvLyBSZXBsYWNpbmcgdXBkYXRlZCBxdWVyeSBpZCBieSBuZXcgcXVlcnkgaWRcbiAgICAgICAgY29uc3QgYXJyYXlPZk5hbWVkUXVlcnkgPSBBcnJheS5pc0FycmF5KHdpZGdldE1hbmlmZXN0Q29weS5uYW1lZFF1ZXJ5KVxuICAgICAgICAgID8gd2lkZ2V0TWFuaWZlc3RDb3B5Lm5hbWVkUXVlcnlcbiAgICAgICAgICA6IFt3aWRnZXRNYW5pZmVzdENvcHkubmFtZWRRdWVyeV07XG5cbiAgICAgICAgLy8gQHRzLWlnbm9yZSA6IHdlIGRvbid0IHdhbnQgdG8gbWFrZSBjb3JlIGRlcGVuZGluZyBvbiBzZWFyY2hcbiAgICAgICAgY29uc3QgbmV3UXVlcnlJZCA9IGFjdGlvbi5pZDtcbiAgICAgICAgY29uc3QgcHJldmlvdXNOcUluZGV4ID0gYXJyYXlPZk5hbWVkUXVlcnkuaW5kZXhPZihmcm9tV2lkZ2V0Py5lZGl0ZWRRdWVyeSk7XG4gICAgICAgIGlmIChwcmV2aW91c05xSW5kZXggPj0gMCkge1xuICAgICAgICAgIGFycmF5T2ZOYW1lZFF1ZXJ5W3ByZXZpb3VzTnFJbmRleF0gPSBuZXdRdWVyeUlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEVkaXRpbmcgYSByZXF1ZXN0IHRoYXQncyBub3QgaW4gdGhlIHdpZGdldC4gQWRkaW5nIGl0XG4gICAgICAgICAgYXJyYXlPZk5hbWVkUXVlcnkucHVzaChuZXdRdWVyeUlkKTtcbiAgICAgICAgfVxuICAgICAgICB3aWRnZXRNYW5pZmVzdENvcHkubmFtZWRRdWVyeSA9IGFycmF5T2ZOYW1lZFF1ZXJ5O1xuXG4gICAgICAgIHJldHVybiBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVdpZGdldE1hbmlmZXN0KHtcbiAgICAgICAgICBpbmRleDogZnJvbVdpZGdldD8ud2lkZ2V0SW5kZXggPz8gMCxcbiAgICAgICAgICBtYW5pZmVzdDogd2lkZ2V0TWFuaWZlc3RDb3B5XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApXG4gICk7XG5cbiAgbG9hZGVkRGF0YXNldCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5sb2FkRGF0YXNldCksXG4gICAgICBtZXJnZU1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlXG4gICAgICAgICAgLmdldERhdGFzZXRzKClcbiAgICAgICAgICAucGlwZShtYXAoKGRzZCkgPT4gRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5sb2FkZWREYXRhc2V0KHsgZGF0YXNldHM6IGRzZCB9KSkpXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGxvYWREYXRhc2V0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5sb2FkKSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+IFtEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmxvYWQoKSwgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5sb2FkRGF0YXNldCgpXSlcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlRGF0YXNldCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5jcmVhdGUpLFxuICAgICAgc3dpdGNoTWFwKChwcm9wczogeyBkYXRhc2V0OiBEYXRhc2V0OyByb3V0ZTogc3RyaW5nIH0pID0+XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2VcbiAgICAgICAgICAuYWRkRGF0YXNldChwcm9wcy5kYXRhc2V0KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAoKCkgPT4gW1xuICAgICAgICAgICAgICBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmxvYWREYXRhc2V0KCksXG4gICAgICAgICAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQudW5zZWxlY3REYXRhc2V0KCksXG4gICAgICAgICAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuY3JlYXRlZCh7IHBhdGg6IHByb3BzLnJvdXRlIH0pXG4gICAgICAgICAgICBdKVxuICAgICAgICAgIClcbiAgICAgICksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogYW55KSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5mYWlsdXJlKHsgZXJyb3IgfSldKVxuICAgIClcbiAgKTtcblxuICB1cGRhdGVEYXRhc2V0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnVwZGF0ZSksXG4gICAgICBzd2l0Y2hNYXAoKHByb3BzOiB7IGRhdGFzZXQ6IERhdGFzZXQ7IHJvdXRlOiBzdHJpbmcgfSkgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZVxuICAgICAgICAgIC51cGRhdGVEYXRhc2V0KHByb3BzLmRhdGFzZXQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtZXJnZU1hcCgoKSA9PiBbXG4gICAgICAgICAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubG9hZERhdGFzZXQoKSxcbiAgICAgICAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC51bnNlbGVjdERhdGFzZXQoKSxcbiAgICAgICAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC51cGRhdGVkKHsgcGF0aDogcHJvcHMucm91dGUgfSlcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IFtEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgKVxuICApO1xuXG4gIGRlbGV0ZURhdGFzZXQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVsZXRlKSxcbiAgICAgIHN3aXRjaE1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmRlbGV0ZURhdGFzZXQoYWN0aW9uLm5hbWUpLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAoKCkgPT4gW1xuICAgICAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5sb2FkRGF0YXNldCgpLFxuICAgICAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC51bnNlbGVjdERhdGFzZXQoKSxcbiAgICAgICAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVsZXRlZCh7IGFkZFJvdXRlOiBhY3Rpb24uYWRkUm91dGUgfSlcbiAgICAgICAgICBdKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBnZXREYXRhc2V0QnlJZCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5nZXREYXRhc2V0QnlJZCksXG4gICAgICBtZXJnZU1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmdldERhdGFzZXRCeUlkKGFjdGlvbi5pZCkucGlwZShcbiAgICAgICAgICBtYXAoKGRhdGEpID0+IERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZ2V0RGF0YXNldEJ5SWRTdWNjZXNzKHsgZGF0YSB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmdldERhdGFzZXRCeUlkRmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0VmVyc2lvbnMkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubGlzdFZlcnNpb25zKSxcbiAgICAgIHN3aXRjaE1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmdldERhdGFzZXRWZXJzaW9ucygpLnBpcGUoXG4gICAgICAgICAgbWFwKCh2ZXJzaW9ucykgPT4gRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5saXN0VmVyc2lvbnNTdWNjZXNzKHsgdmVyc2lvbnMgfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKF8pID0+IFtEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0Lmxpc3RWZXJzaW9uc0ZhaWx1cmUoKV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgbGlzdFZlcnNpb25zQnlJZCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5saXN0VmVyc2lvbnNCeURhdGFzZXRJZCksXG4gICAgICBzd2l0Y2hNYXAoKGFjdGlvbikgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZS5nZXREYXRhc2V0VmVyc2lvbnNCeUlkKGFjdGlvbi5pZCkucGlwZShcbiAgICAgICAgICBtYXAoKHZlcnNpb25zKSA9PiBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnVwZGF0ZVZlcnNpb25MaXN0KHsgaWQ6IGFjdGlvbi5pZCwgdmVyc2lvbnMgfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKF8pID0+IFtEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0Lmxpc3RWZXJzaW9uc0ZhaWx1cmUoKV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgY29uZmlybURhdGFzb3VyY2VEZWxldGlvbiQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuY29uZmlybURhdGFTb3VyY2VEZWxldGlvbiksXG4gICAgICAgIHRhcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGF0YTogUHJ5RGlhbG9nQ29uZmlybURhdGEgPSB7XG4gICAgICAgICAgICB0aXRsZTogJ0BwcnkuYWRtaW4uaW5mb01vZGFsVGl0bGUnLFxuICAgICAgICAgICAgbWVzc2FnZTogJ0BwcnkuYWRtaW4uZGF0YXNldC5kZWxldGUnLFxuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IDAsXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdAcHJ5LmFkbWluLmRlbGV0ZScsXG4gICAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5kZWxldGUoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBhY3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgcm91dGU6IGFjdGlvbi5yb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgYWRkUm91dGU6IGFjdGlvbi5hZGRSb3V0ZVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHsgaWQ6IDAsIGxhYmVsOiAnQHByeS5hZG1pbi5jYW5jZWwnIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMucHJ5RGlhbG9nLm9wZW4oUHJ5RGlhbG9nQ29uZmlybUNvbXBvbmVudCwgeyBkYXRhIH0pO1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgZGVhY3RpdmF0ZURhdGFzZXRWZXJzaW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmRlYWN0aXZhdGVEYXRhc2V0VmVyc2lvbiksXG4gICAgICBzd2l0Y2hNYXAoKGFjdGlvbjogYW55KSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmRlYWN0aXZhdGVEYXRhc2V0VmVyc2lvbihhY3Rpb24udmVyc2lvbklkKS5waXBlKFxuICAgICAgICAgIG1hcCgoZGF0YXNldFZlcnNpb24pID0+IERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVhY3RpdmF0ZURhdGFzZXRWZXJzaW9uU3VjY2Vzcyh7IGRhdGFzZXRWZXJzaW9uIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVhY3RpdmF0ZURhdGFzZXRWZXJzaW9uRmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBhY3RpdmF0ZURhdGFzZXRWZXJzaW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmFjdGl2YXRlRGF0YXNldFZlcnNpb24pLFxuICAgICAgc3dpdGNoTWFwKChhY3Rpb246IGFueSkgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZS5hY3RpdmF0ZURhdGFzZXRWZXJzaW9uKGFjdGlvbi52ZXJzaW9uSWQpLnBpcGUoXG4gICAgICAgICAgbWFwKChkYXRhc2V0VmVyc2lvbikgPT4gRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5hY3RpdmF0ZURhdGFzZXRWZXJzaW9uU3VjY2Vzcyh7IGRhdGFzZXRWZXJzaW9uIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuYWN0aXZhdGVEYXRhc2V0VmVyc2lvbkZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgYWN0aXZhdGVPckRlYWN0aXZhdGVEYXRhc2V0VmVyc2lvblN1Y2Nlc3MkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFxuICAgICAgICBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmFjdGl2YXRlRGF0YXNldFZlcnNpb25TdWNjZXNzLFxuICAgICAgICBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmRlYWN0aXZhdGVEYXRhc2V0VmVyc2lvblN1Y2Nlc3NcbiAgICAgICksXG4gICAgICBtYXAoKGFjdGlvbjogYW55KSA9PiBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0Lmxpc3RWZXJzaW9ucygpKVxuICAgIClcbiAgKTtcblxuICBwcmV2aWV3c0dldEJ5SWQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQucHJldmlld3MuZ2V0QnlJZCksXG4gICAgICBzd2l0Y2hNYXAoKGFjdGlvbjogYW55KSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmdldFByZXZpZXdzKGFjdGlvbi5pZCkucGlwZShcbiAgICAgICAgICBtYXAoKHByZXZpZXdzKSA9PiBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnByZXZpZXdzLmdldEJ5SWRTdWNjZXNzKHsgcHJldmlld3MgfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5wcmV2aWV3cy5nZXRCeUlkRmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcbn1cbiJdfQ==
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUseUJBQXlCLEVBQXdCLE1BQU0sbURBQW1ELENBQUM7QUFJcEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7O0FBSTlELE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFDVSxRQUFpQixFQUNqQixhQUE0QixFQUM1QixpQkFBb0MsRUFDcEMsUUFBNEIsRUFDNUIsU0FBeUIsRUFDekIsS0FBWSxFQUNaLFNBQTJCO1FBTjNCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsa0JB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QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQ2xELFNBQVMsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDaEQsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFDbEYsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3RGLENBQ0YsQ0FDRixDQUNGLENBQUM7SUE5VEMsQ0FBQzs4R0FYTyxpQkFBaUI7a0hBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBBY3Rpb24sIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLmFjdGlvbnMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vZGFzaGJvYXJkL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgUHJ5RGlhbG9nQ29uZmlybUNvbXBvbmVudCwgUHJ5RGlhbG9nQ29uZmlybURhdGEgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL292ZXJsYXkvZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFByeURpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL292ZXJsYXkvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJ5U25hY2tiYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zbmFja2Jhci9zbmFja2Jhci5zZXJ2aWNlJztcbmltcG9ydCB7IFByeUkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlnU2VsZWN0b3JzIH0gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU2VhcmNoQWN0aW9ucyB9IGZyb20gJy4uL3NlYXJjaC9zZWFyY2guYWN0aW9ucyc7XG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vc2VhcmNoL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFTb3VyY2VBY3Rpb25zIH0gZnJvbSAnLi9kYXRhLXNvdXJjZS5hY3Rpb25zJztcbmltcG9ydCB7IERhdGFzZXQsIE5hbWVkUXVlcnkgfSBmcm9tICcuL2RhdGEtc291cmNlLm1vZGVsJztcbmltcG9ydCB7IERhdGFTb3VyY2VTZWxlY3RvcnMgfSBmcm9tICcuL2RhdGEtc291cmNlLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBEYXRhU291cmNlU2VydmljZSB9IGZyb20gJy4vZGF0YS1zb3VyY2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlRWZmZWN0cyB7XG4gIHByaXZhdGUgaWROYW1lZFF1ZXJ5Pzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YVNvdXJjZVNlcnZpY2U6IERhdGFTb3VyY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgc25hY2tCYXI6IFByeVNuYWNrYmFyU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogUHJ5STE4blNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBwcnlEaWFsb2c6IFByeURpYWxvZ1NlcnZpY2VcbiAgKSB7fVxuXG4gIHBvc3ROYW1lUXVlcnkkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkucG9zdCksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMucmFuZG9tQ29sb3IpKSxcbiAgICAgIHN3aXRjaE1hcCgoW2FjdGlvbiwgcmFuZG9tQ29sb3JdKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgbmFtZSwgaWQsIHBheWxvYWQsIGRlc2NyaXB0aW9uLCBjb2xvciwgZmF2b3JpdGUsIGlzRWRpdCwgdmlzaWJpbGl0eSB9ID0gYWN0aW9uO1xuICAgICAgICB0aGlzLmlkTmFtZWRRdWVyeSA9IGlzRWRpdCA/IGlkIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBuYW1lZFF1ZXJ5OiBOYW1lZFF1ZXJ5ID0ge1xuICAgICAgICAgIGlkOiBpZCA/PyAnJyxcbiAgICAgICAgICBzb3VyY2VUeXBlOiAnbmFtZWRRdWVyeScsXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24gPz8gdW5kZWZpbmVkLFxuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2liaWxpdHkgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgIHJlcXVlc3Q6IHBheWxvYWQsXG4gICAgICAgICAgY29sb3I6IGNvbG9yID8/IHJhbmRvbUNvbG9yLFxuICAgICAgICAgIGZhdm9yaXRlXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLnBvc3QobmFtZWRRdWVyeSk7XG4gICAgICB9KSxcbiAgICAgIG1lcmdlTWFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IFtdIGFzIEFjdGlvbltdO1xuICAgICAgICBpZiAodGhpcy5pZE5hbWVkUXVlcnkpIHtcbiAgICAgICAgICBhY3Rpb25zLnB1c2goU2VhcmNoQWN0aW9ucy5nZXREYXRhc291cmNlSXRlbXMoeyBpZDogdGhpcy5pZE5hbWVkUXVlcnkgfSkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaWROYW1lZFF1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgICAgICBhY3Rpb25zLnB1c2goRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5sb2FkKCkpO1xuICAgICAgICByZXR1cm4gYWN0aW9ucztcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgKVxuICApO1xuXG4gIGdldE5hbWVkUXVlcnkkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkubG9hZCksXG4gICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmdldCgpKSxcbiAgICAgIG1hcCgobmFtZWRRdWVyeUxpc3Q6IE5hbWVkUXVlcnlbXSkgPT4gRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5sb2FkZWQoeyBsaXN0OiBuYW1lZFF1ZXJ5TGlzdCB9KSksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkuZmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICApXG4gICk7XG5cbiAgbG9hZGVkJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmxvYWRlZCksXG4gICAgICBtYXAoKGFjdGlvbjogeyBsaXN0OiBOYW1lZFF1ZXJ5W107IHR5cGU6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgIHJldHVybiBEYXNoYm9hcmRBY3Rpb25zLnNldEF2YWlsYWJsZU5hbWVkUXVlcmllcyh7IG5hbWVzOiBhY3Rpb24ubGlzdC5tYXAoKG5xKSA9PiBucS5pZCkgfSk7XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBkZWxldGVOYW1lZFF1ZXJ5JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmRlbGV0ZSksXG4gICAgICBzd2l0Y2hNYXAoKHByb3BzOiB7IGlkOiBzdHJpbmcgfSkgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZS5kZWxldGUocHJvcHMuaWQpLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAoKCkgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkubG9hZCgpXSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgYWRkRmF2b3JpdGVOYW1lZFF1ZXJ5JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmFkZEZhdm9yaXRlKSxcbiAgICAgIHN3aXRjaE1hcCgocHJvcHM6IHsgaWQ6IHN0cmluZyB9KSA9PiB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmFkZEZhdm9yaXRlKHByb3BzLmlkKSksXG4gICAgICBtZXJnZU1hcCgoKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5sb2FkKCldKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5mYWlsdXJlKHsgZXJyb3IgfSldKVxuICAgIClcbiAgKTtcblxuICBkZWxldGVGYXZvcml0ZU5hbWVkUXVlcnkkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkuZGVsZXRlRmF2b3JpdGUpLFxuICAgICAgc3dpdGNoTWFwKChwcm9wczogeyBpZDogc3RyaW5nIH0pID0+IHRoaXMuZGF0YVNvdXJjZVNlcnZpY2UuZGVsZXRlRmF2b3JpdGUocHJvcHMuaWQpKSxcbiAgICAgIG1lcmdlTWFwKCgpID0+IFtEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmxvYWQoKV0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5LmZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgKVxuICApO1xuXG4gIHRyeUVkaXQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkuZWRpdCksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmVkaXRJblByb2dyZXNzKSksXG4gICAgICBtYXAoKFthY3Rpb24sIGluUHJvZ3Jlc3NdKSA9PiB7XG4gICAgICAgIGlmICghaW5Qcm9ncmVzcykge1xuICAgICAgICAgIHJldHVybiBEYXRhU291cmNlQWN0aW9ucy5uYW1lZFF1ZXJ5Lm9wZW5FZGl0KGFjdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0Bwcnkuc2VhcmNoLm5hbWVkUXVlcnkuYWxyZWFkeUVkaXRpbmcnKSxcbiAgICAgICAgICAgIHR5cGU6ICdlcnJvcidcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5mYWlsdXJlKHsgZXJyb3I6IG5ldyBFcnJvcignQHByeS5zZWFyY2gubmFtZWRRdWVyeS5hbHJlYWR5RWRpdGluZycpIH0pO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMubmFtZWRRdWVyeS5mYWlsdXJlKHsgZXJyb3IgfSldKVxuICAgIClcbiAgKTtcblxuICB1cGRhdGVXaWRnZXRBZnRlclNhdmUkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgLy8gVXNpbmcgc3RyaW5ncyB0byBwcmV2ZW50IGhhdmluZyBjb3JlIG1vZHVsZSBkZXBlbmRpbmcgb24gc2VhcmNoIG1vZHVsZVxuICAgICAgb2ZUeXBlKCdbU2VhcmNoTW9ub0NsYXNzXSBzYXZlJywgJ1tTZWFyY2hNdWx0aUNsYXNzXSBsYXVuY2ggc2F2ZScsICdbU2VhcmNoIEZ1bGx0ZXh0XSBzYXZlJyksXG4gICAgICB3aXRoTGF0ZXN0RnJvbShcbiAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5lZGl0RnJvbVdpZGdldCksXG4gICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuY3VycmVudEVkaXQpLFxuICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMud2luZG93TWFuaWZlc3QpXG4gICAgICApLFxuICAgICAgZmlsdGVyKChbYWN0aW9uLCBmcm9tV2lkZ2V0LCBjdXJyZW50RWRpdCwgd2luZG93TWFuaWZlc3RdKSA9PiBmcm9tV2lkZ2V0ICE9PSB1bmRlZmluZWQpLFxuICAgICAgbWFwKChbYWN0aW9uLCBmcm9tV2lkZ2V0LCBjdXJyZW50RWRpdCwgd2luZG93TWFuaWZlc3RdKSA9PiB7XG4gICAgICAgIGNvbnN0IHdpZGdldE1hbmlmZXN0Q29weSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkod2luZG93TWFuaWZlc3Qud2lkZ2V0c1tmcm9tV2lkZ2V0Py53aWRnZXRJbmRleCA/PyAwXSkpO1xuICAgICAgICAvLyBSZXBsYWNpbmcgdXBkYXRlZCBxdWVyeSBpZCBieSBuZXcgcXVlcnkgaWRcbiAgICAgICAgY29uc3QgYXJyYXlPZk5hbWVkUXVlcnkgPSBBcnJheS5pc0FycmF5KHdpZGdldE1hbmlmZXN0Q29weS5uYW1lZFF1ZXJ5KVxuICAgICAgICAgID8gd2lkZ2V0TWFuaWZlc3RDb3B5Lm5hbWVkUXVlcnlcbiAgICAgICAgICA6IFt3aWRnZXRNYW5pZmVzdENvcHkubmFtZWRRdWVyeV07XG5cbiAgICAgICAgLy8gQHRzLWlnbm9yZSA6IHdlIGRvbid0IHdhbnQgdG8gbWFrZSBjb3JlIGRlcGVuZGluZyBvbiBzZWFyY2hcbiAgICAgICAgY29uc3QgbmV3UXVlcnlJZCA9IGFjdGlvbi5pZDtcbiAgICAgICAgY29uc3QgcHJldmlvdXNOcUluZGV4ID0gYXJyYXlPZk5hbWVkUXVlcnkuaW5kZXhPZihmcm9tV2lkZ2V0Py5lZGl0ZWRRdWVyeSk7XG4gICAgICAgIGlmIChwcmV2aW91c05xSW5kZXggPj0gMCkge1xuICAgICAgICAgIGFycmF5T2ZOYW1lZFF1ZXJ5W3ByZXZpb3VzTnFJbmRleF0gPSBuZXdRdWVyeUlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEVkaXRpbmcgYSByZXF1ZXN0IHRoYXQncyBub3QgaW4gdGhlIHdpZGdldC4gQWRkaW5nIGl0XG4gICAgICAgICAgYXJyYXlPZk5hbWVkUXVlcnkucHVzaChuZXdRdWVyeUlkKTtcbiAgICAgICAgfVxuICAgICAgICB3aWRnZXRNYW5pZmVzdENvcHkubmFtZWRRdWVyeSA9IGFycmF5T2ZOYW1lZFF1ZXJ5O1xuXG4gICAgICAgIHJldHVybiBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVdpZGdldE1hbmlmZXN0KHtcbiAgICAgICAgICBpbmRleDogZnJvbVdpZGdldD8ud2lkZ2V0SW5kZXggPz8gMCxcbiAgICAgICAgICBtYW5pZmVzdDogd2lkZ2V0TWFuaWZlc3RDb3B5XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApXG4gICk7XG5cbiAgbG9hZGVkRGF0YXNldCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5sb2FkRGF0YXNldCksXG4gICAgICBtZXJnZU1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlXG4gICAgICAgICAgLmdldERhdGFzZXRzKClcbiAgICAgICAgICAucGlwZShtYXAoKGRzZCkgPT4gRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5sb2FkZWREYXRhc2V0KHsgZGF0YXNldHM6IGRzZCB9KSkpXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGxvYWREYXRhc2V0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5sb2FkKSxcbiAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgbWVyZ2VNYXAoKGFjdGlvbikgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLm5hbWVkUXVlcnkubG9hZCgpLCBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmxvYWREYXRhc2V0KCldKVxuICAgIClcbiAgKTtcblxuICBjcmVhdGVEYXRhc2V0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmNyZWF0ZSksXG4gICAgICBzd2l0Y2hNYXAoKHByb3BzOiB7IGRhdGFzZXQ6IERhdGFzZXQ7IHJvdXRlOiBzdHJpbmcgfSkgPT5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlU2VydmljZVxuICAgICAgICAgIC5hZGREYXRhc2V0KHByb3BzLmRhdGFzZXQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtZXJnZU1hcCgoKSA9PiBbXG4gICAgICAgICAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubG9hZERhdGFzZXQoKSxcbiAgICAgICAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC51bnNlbGVjdERhdGFzZXQoKSxcbiAgICAgICAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5jcmVhdGVkKHsgcGF0aDogcHJvcHMucm91dGUgfSlcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IFtEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgKVxuICApO1xuXG4gIHVwZGF0ZURhdGFzZXQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQudXBkYXRlKSxcbiAgICAgIHN3aXRjaE1hcCgocHJvcHM6IHsgZGF0YXNldDogRGF0YXNldDsgcm91dGU6IHN0cmluZyB9KSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlXG4gICAgICAgICAgLnVwZGF0ZURhdGFzZXQocHJvcHMuZGF0YXNldClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKCgpID0+IFtcbiAgICAgICAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5sb2FkRGF0YXNldCgpLFxuICAgICAgICAgICAgICBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnVuc2VsZWN0RGF0YXNldCgpLFxuICAgICAgICAgICAgICBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnVwZGF0ZWQoeyBwYXRoOiBwcm9wcy5yb3V0ZSB9KVxuICAgICAgICAgICAgXSlcbiAgICAgICAgICApXG4gICAgICApLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IGFueSkgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICApXG4gICk7XG5cbiAgZGVsZXRlRGF0YXNldCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5kZWxldGUpLFxuICAgICAgc3dpdGNoTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2UuZGVsZXRlRGF0YXNldChhY3Rpb24ubmFtZSkucGlwZShcbiAgICAgICAgICBtZXJnZU1hcCgoKSA9PiBbXG4gICAgICAgICAgICBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmxvYWREYXRhc2V0KCksXG4gICAgICAgICAgICBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnVuc2VsZWN0RGF0YXNldCgpLFxuICAgICAgICAgICAgRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5kZWxldGVkKHsgYWRkUm91dGU6IGFjdGlvbi5hZGRSb3V0ZSB9KVxuICAgICAgICAgIF0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5mYWlsdXJlKHsgZXJyb3IgfSldKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGdldERhdGFzZXRCeUlkJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmdldERhdGFzZXRCeUlkKSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2UuZ2V0RGF0YXNldEJ5SWQoYWN0aW9uLmlkKS5waXBlKFxuICAgICAgICAgIG1hcCgoZGF0YSkgPT4gRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5nZXREYXRhc2V0QnlJZFN1Y2Nlc3MoeyBkYXRhIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZ2V0RGF0YXNldEJ5SWRGYWlsdXJlKHsgZXJyb3IgfSldKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGxpc3RWZXJzaW9ucyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5saXN0VmVyc2lvbnMpLFxuICAgICAgc3dpdGNoTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2UuZ2V0RGF0YXNldFZlcnNpb25zKCkucGlwZShcbiAgICAgICAgICBtYXAoKHZlcnNpb25zKSA9PiBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0Lmxpc3RWZXJzaW9uc1N1Y2Nlc3MoeyB2ZXJzaW9ucyB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoXykgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubGlzdFZlcnNpb25zRmFpbHVyZSgpXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0VmVyc2lvbnNCeUlkJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0Lmxpc3RWZXJzaW9uc0J5RGF0YXNldElkKSxcbiAgICAgIHN3aXRjaE1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmdldERhdGFzZXRWZXJzaW9uc0J5SWQoYWN0aW9uLmlkKS5waXBlKFxuICAgICAgICAgIG1hcCgodmVyc2lvbnMpID0+IERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQudXBkYXRlVmVyc2lvbkxpc3QoeyBpZDogYWN0aW9uLmlkLCB2ZXJzaW9ucyB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoXykgPT4gW0RhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubGlzdFZlcnNpb25zRmFpbHVyZSgpXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBjb25maXJtRGF0YXNvdXJjZURlbGV0aW9uJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5jb25maXJtRGF0YVNvdXJjZURlbGV0aW9uKSxcbiAgICAgICAgdGFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBkYXRhOiBQcnlEaWFsb2dDb25maXJtRGF0YSA9IHtcbiAgICAgICAgICAgIHRpdGxlOiAnQHByeS5hZG1pbi5pbmZvTW9kYWxUaXRsZScsXG4gICAgICAgICAgICBtZXNzYWdlOiAnQHByeS5hZG1pbi5kYXRhc2V0LmRlbGV0ZScsXG4gICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogMCxcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0BwcnkuYWRtaW4uZGVsZXRlJyxcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmRlbGV0ZSh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGFjdGlvbi5uYW1lLFxuICAgICAgICAgICAgICAgICAgICByb3V0ZTogYWN0aW9uLnJvdXRlLFxuICAgICAgICAgICAgICAgICAgICBhZGRSb3V0ZTogYWN0aW9uLmFkZFJvdXRlXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgeyBpZDogMCwgbGFiZWw6ICdAcHJ5LmFkbWluLmNhbmNlbCcgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5wcnlEaWFsb2cub3BlbihQcnlEaWFsb2dDb25maXJtQ29tcG9uZW50LCB7IGRhdGEgfSk7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICBkZWFjdGl2YXRlRGF0YXNldFZlcnNpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVhY3RpdmF0ZURhdGFzZXRWZXJzaW9uKSxcbiAgICAgIHN3aXRjaE1hcCgoYWN0aW9uOiBhbnkpID0+XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2UuZGVhY3RpdmF0ZURhdGFzZXRWZXJzaW9uKGFjdGlvbi52ZXJzaW9uSWQpLnBpcGUoXG4gICAgICAgICAgbWFwKChkYXRhc2V0VmVyc2lvbikgPT4gRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5kZWFjdGl2YXRlRGF0YXNldFZlcnNpb25TdWNjZXNzKHsgZGF0YXNldFZlcnNpb24gfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5kZWFjdGl2YXRlRGF0YXNldFZlcnNpb25GYWlsdXJlKHsgZXJyb3IgfSldKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGFjdGl2YXRlRGF0YXNldFZlcnNpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuYWN0aXZhdGVEYXRhc2V0VmVyc2lvbiksXG4gICAgICBzd2l0Y2hNYXAoKGFjdGlvbjogYW55KSA9PlxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VTZXJ2aWNlLmFjdGl2YXRlRGF0YXNldFZlcnNpb24oYWN0aW9uLnZlcnNpb25JZCkucGlwZShcbiAgICAgICAgICBtYXAoKGRhdGFzZXRWZXJzaW9uKSA9PiBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmFjdGl2YXRlRGF0YXNldFZlcnNpb25TdWNjZXNzKHsgZGF0YXNldFZlcnNpb24gfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5hY3RpdmF0ZURhdGFzZXRWZXJzaW9uRmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBhY3RpdmF0ZU9yRGVhY3RpdmF0ZURhdGFzZXRWZXJzaW9uU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoXG4gICAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuYWN0aXZhdGVEYXRhc2V0VmVyc2lvblN1Y2Nlc3MsXG4gICAgICAgIERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQuZGVhY3RpdmF0ZURhdGFzZXRWZXJzaW9uU3VjY2Vzc1xuICAgICAgKSxcbiAgICAgIG1hcCgoYWN0aW9uOiBhbnkpID0+IERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubGlzdFZlcnNpb25zKCkpXG4gICAgKVxuICApO1xuXG4gIHByZXZpZXdzR2V0QnlJZCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5wcmV2aWV3cy5nZXRCeUlkKSxcbiAgICAgIHN3aXRjaE1hcCgoYWN0aW9uOiBhbnkpID0+XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZVNlcnZpY2UuZ2V0UHJldmlld3MoYWN0aW9uLmlkKS5waXBlKFxuICAgICAgICAgIG1hcCgocHJldmlld3MpID0+IERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQucHJldmlld3MuZ2V0QnlJZFN1Y2Nlc3MoeyBwcmV2aWV3cyB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnByZXZpZXdzLmdldEJ5SWRGYWlsdXJlKHsgZXJyb3IgfSldKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xufVxuIl19
@@ -1,5 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { createEffect, ofType } from '@ngrx/effects';
3
+ import { debounceTime } from 'rxjs';
3
4
  import { catchError, map, mergeMap } from 'rxjs/operators';
4
5
  import { DashboardActions } from '../../../dashboard/store/dashboard.actions';
5
6
  import { PryDialogConfirmComponent } from '../../components/overlay/dialog-confirm.component';
@@ -15,7 +16,7 @@ export class RelationTypesEffects {
15
16
  this.service = service;
16
17
  this.router = router;
17
18
  this.pryDialog = pryDialog;
18
- this.loadRelationsTypes$ = createEffect(() => this.actions$.pipe(ofType(RelationTypesActions.load), mergeMap((action) => this.service.getRelationsTypes().pipe(map((datas) => RelationTypesActions.loadSuccess({ datas })), catchError((error) => [RelationTypesActions.loadFailure({ error })])))));
19
+ this.loadRelationsTypes$ = createEffect(() => this.actions$.pipe(ofType(RelationTypesActions.load), debounceTime(100), mergeMap((action) => this.service.getRelationsTypes().pipe(map((datas) => RelationTypesActions.loadSuccess({ datas })), catchError((error) => [RelationTypesActions.loadFailure({ error })])))));
19
20
  this.saveRelationType$ = createEffect(() => this.actions$.pipe(ofType(RelationTypesActions.saveRelationType), mergeMap((action) => this.service.addRelationType(action.id, action.name).pipe(map((data) => RelationTypesActions.saveRelationTypeSuccess()), catchError((error) => [RelationTypesActions.saveRelationTypeFailure({ error })])))));
20
21
  this.saveRelationTypeSuccess$ = createEffect(() => this.actions$.pipe(ofType(RelationTypesActions.saveRelationTypeSuccess), map((action) => {
21
22
  return RelationTypesActions.load();
@@ -45,4 +46,4 @@ export class RelationTypesEffects {
45
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: RelationTypesEffects, decorators: [{
46
47
  type: Injectable
47
48
  }], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.RelationTypesService }, { type: i3.Router }, { type: i4.PryDialogService }]; } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24tdHlwZXMuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL3N0b3JlL3JlbGF0aW9uLXR5cGVzL3JlbGF0aW9uLXR5cGVzLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUseUJBQXlCLEVBQXdCLE1BQU0sbURBQW1ELENBQUM7QUFFcEgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQUloRSxNQUFNLE9BQU8sb0JBQW9CO0lBdUUvQixZQUNVLFFBQWlCLEVBQ2pCLE9BQTZCLEVBQzdCLE1BQWMsRUFDZCxTQUEyQjtRQUgzQixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQzdCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQTFFckMsd0JBQW1CLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUNqQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUMsSUFBSSxDQUNuQyxHQUFHLENBQUMsQ0FBQyxLQUFL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QUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUN2RixRQUFRLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLG9CQUFvQixDQUFDLHFCQUFxQixFQUFFO1lBQzVDLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUM7U0FDekQsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUMvRSxDQUNGLENBQ0YsQ0FDRixDQUFDO0lBT0MsQ0FBQzs4R0E1RU8sb0JBQW9CO2tIQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vZGFzaGJvYXJkL3N0b3JlL2Rhc2hib2FyZC5hY3Rpb25zJztcbmltcG9ydCB7IFByeURpYWxvZ0NvbmZpcm1Db21wb25lbnQsIFByeURpYWxvZ0NvbmZpcm1EYXRhIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9vdmVybGF5L2RpYWxvZy1jb25maXJtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcnlEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9vdmVybGF5L2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlbGF0aW9uVHlwZXNBY3Rpb25zIH0gZnJvbSAnLi9yZWxhdGlvbi10eXBlcy5hY3Rpb25zJztcbmltcG9ydCB7IFJlbGF0aW9uVHlwZXNTZXJ2aWNlIH0gZnJvbSAnLi9yZWxhdGlvbi10eXBlcy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJlbGF0aW9uVHlwZXNFZmZlY3RzIHtcbiAgbG9hZFJlbGF0aW9uc1R5cGVzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShSZWxhdGlvblR5cGVzQWN0aW9ucy5sb2FkKSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMuc2VydmljZS5nZXRSZWxhdGlvbnNUeXBlcygpLnBpcGUoXG4gICAgICAgICAgbWFwKChkYXRhcykgPT4gUmVsYXRpb25UeXBlc0FjdGlvbnMubG9hZFN1Y2Nlc3MoeyBkYXRhcyB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtSZWxhdGlvblR5cGVzQWN0aW9ucy5sb2FkRmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBzYXZlUmVsYXRpb25UeXBlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShSZWxhdGlvblR5cGVzQWN0aW9ucy5zYXZlUmVsYXRpb25UeXBlKSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMuc2VydmljZS5hZGRSZWxhdGlvblR5cGUoYWN0aW9uLmlkLCBhY3Rpb24ubmFtZSkucGlwZShcbiAgICAgICAgICBtYXAoKGRhdGEpID0+IFJlbGF0aW9uVHlwZXNBY3Rpb25zLnNhdmVSZWxhdGlvblR5cGVTdWNjZXNzKCkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbUmVsYXRpb25UeXBlc0FjdGlvbnMuc2F2ZVJlbGF0aW9uVHlwZUZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgc2F2ZVJlbGF0aW9uVHlwZVN1Y2Nlc3MkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFJlbGF0aW9uVHlwZXNBY3Rpb25zLnNhdmVSZWxhdGlvblR5cGVTdWNjZXNzKSxcbiAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgIHJldHVybiBSZWxhdGlvblR5cGVzQWN0aW9ucy5sb2FkKCk7XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBkZWxldGVSZWxhdGlvblR5cGUkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFJlbGF0aW9uVHlwZXNBY3Rpb25zLmRlbGV0ZVJlbGF0aW9uVHlwZSksXG4gICAgICBtZXJnZU1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgIGlmICghYWN0aW9uLnJlbGF0aW9uVHlwZS5kZWxldGFibGUpIHtcbiAgICAgICAgICBjb25zdCBkYXRhOiBQcnlEaWFsb2dDb25maXJtRGF0YSA9IHtcbiAgICAgICAgICAgIHRpdGxlOiAnQHByeS5hZG1pbi5pbmZvTW9kYWxUaXRsZScsXG4gICAgICAgICAgICBtZXNzYWdlOiAnQHByeS5hZG1pbi5yZWxhdGlvblR5cGVzLmRlbGV0ZU1vZGFsTWVzc2FnZScsXG4gICAgICAgICAgICBhY3Rpb25zOiBbeyBpZDogMCwgbGFiZWw6ICdAcHJ5LmFkbWluLmNsb3NlTW9kYWxlJyB9XVxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5wcnlEaWFsb2cub3BlbihQcnlEaWFsb2dDb25maXJtQ29tcG9uZW50LCB7IGRhdGEgfSk7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZGVsZXRlUmVsYXRpb25UeXBlKGFjdGlvbi5yZWxhdGlvblR5cGUuaWQpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGRhdGEpID0+IFJlbGF0aW9uVHlwZXNBY3Rpb25zLmRlbGV0ZVJlbGF0aW9uVHlwZVN1Y2Nlc3MoKSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW1JlbGF0aW9uVHlwZXNBY3Rpb25zLmRlbGV0ZVJlbGF0aW9uVHlwZUZhaWx1cmUoeyBlcnJvciB9KV0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gICk7XG5cbiAgY3JlYXRlUmVsYXRpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFJlbGF0aW9uVHlwZXNBY3Rpb25zLmNyZWF0ZVJlbGF0aW9uKSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMuc2VydmljZS5jcmVhdGVSZWxhdGlvbihhY3Rpb24uZnJvbSwgYWN0aW9uLnRvLCBhY3Rpb24udHlwZUlkLCBhY3Rpb24uaW52ZXJzaW9uKS5waXBlKFxuICAgICAgICAgIG1lcmdlTWFwKChyZWxhdGlvbnMpID0+IFtcbiAgICAgICAgICAgIFJlbGF0aW9uVHlwZXNBY3Rpb25zLmNyZWF0ZVJlbGF0aW9uU3VjY2VzcygpLFxuICAgICAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy5hZGRSZWxhdGlvbnNUb1Jlc3VsdFNldHMoeyByZWxhdGlvbnMgfSlcbiAgICAgICAgICBdKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW1JlbGF0aW9uVHlwZXNBY3Rpb25zLmNyZWF0ZVJlbGF0aW9uRmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgc2VydmljZTogUmVsYXRpb25UeXBlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHByeURpYWxvZzogUHJ5RGlhbG9nU2VydmljZVxuICApIHt9XG59XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24tdHlwZXMuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL3N0b3JlL3JlbGF0aW9uLXR5cGVzL3JlbGF0aW9uLXR5cGVzLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx5QkFBeUIsRUFBd0IsTUFBTSxtREFBbUQsQ0FBQztBQUVwSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7O0FBSWhFLE1BQU0sT0FBTyxvQkFBb0I7SUF3RS9CLFlBQ1UsUUFBaUIsRUFDakIsT0FBNkIsRUFDN0IsTUFBYyxFQUNkLFNBQTJCO1FBSDNCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBM0VyQyx3QkFBbUIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQ2pDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FDbkMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQzNELFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDckUsQ0FDRixDQUNGLENBQ0YsQ0FBQztRQUVGLHNCQUFpQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUM3QyxRQUFRLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3ZELEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxFQUM3RCxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDakYsQ0FDRixDQUNGLENBQ0YsQ0FBQztRQUVGLDZCQUF3QixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQyxFQUNwRCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNiLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFDO1FBRUYsd0JBQW1CLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLEVBQy9DLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRTtnQkFDbEMsTUFBTSxJQUFJLEdBQXlCO29CQUNqQyxLQUFLLEVBQUUsMkJBQTJCO29CQUNsQyxPQUFPLEVBQUUsNkNBQTZDO29CQUN0RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFLENBQUM7aUJBQ3RELENBQUM7Z0JBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUN6RCxPQUFPLEVBQUUsQ0FBQzthQUNYO2lCQUFNO2dCQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDakUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLEVBQy9ELFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUNuRixDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUNGLENBQUM7UUFFRixvQkFBZSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsRUFDM0MsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDdkYsUUFBUSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUN0QixvQkFBb0IsQ0FBQyxxQkFBcUIsRUFBRTtZQUM1QyxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDO1NBQ3pELENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsb0JBQW9CLENBQUMscUJBQXFCLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDL0UsQ0FDRixDQUNGLENBQ0YsQ0FBQztJQU9DLENBQUM7OEdBN0VPLG9CQUFvQjtrSEFBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vZGFzaGJvYXJkL3N0b3JlL2Rhc2hib2FyZC5hY3Rpb25zJztcbmltcG9ydCB7IFByeURpYWxvZ0NvbmZpcm1Db21wb25lbnQsIFByeURpYWxvZ0NvbmZpcm1EYXRhIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9vdmVybGF5L2RpYWxvZy1jb25maXJtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcnlEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9vdmVybGF5L2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlbGF0aW9uVHlwZXNBY3Rpb25zIH0gZnJvbSAnLi9yZWxhdGlvbi10eXBlcy5hY3Rpb25zJztcbmltcG9ydCB7IFJlbGF0aW9uVHlwZXNTZXJ2aWNlIH0gZnJvbSAnLi9yZWxhdGlvbi10eXBlcy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJlbGF0aW9uVHlwZXNFZmZlY3RzIHtcbiAgbG9hZFJlbGF0aW9uc1R5cGVzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShSZWxhdGlvblR5cGVzQWN0aW9ucy5sb2FkKSxcbiAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgbWVyZ2VNYXAoKGFjdGlvbikgPT5cbiAgICAgICAgdGhpcy5zZXJ2aWNlLmdldFJlbGF0aW9uc1R5cGVzKCkucGlwZShcbiAgICAgICAgICBtYXAoKGRhdGFzKSA9PiBSZWxhdGlvblR5cGVzQWN0aW9ucy5sb2FkU3VjY2Vzcyh7IGRhdGFzIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW1JlbGF0aW9uVHlwZXNBY3Rpb25zLmxvYWRGYWlsdXJlKHsgZXJyb3IgfSldKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHNhdmVSZWxhdGlvblR5cGUkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFJlbGF0aW9uVHlwZXNBY3Rpb25zLnNhdmVSZWxhdGlvblR5cGUpLFxuICAgICAgbWVyZ2VNYXAoKGFjdGlvbikgPT5cbiAgICAgICAgdGhpcy5zZXJ2aWNlLmFkZFJlbGF0aW9uVHlwZShhY3Rpb24uaWQsIGFjdGlvbi5uYW1lKS5waXBlKFxuICAgICAgICAgIG1hcCgoZGF0YSkgPT4gUmVsYXRpb25UeXBlc0FjdGlvbnMuc2F2ZVJlbGF0aW9uVHlwZVN1Y2Nlc3MoKSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtSZWxhdGlvblR5cGVzQWN0aW9ucy5zYXZlUmVsYXRpb25UeXBlRmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBzYXZlUmVsYXRpb25UeXBlU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoUmVsYXRpb25UeXBlc0FjdGlvbnMuc2F2ZVJlbGF0aW9uVHlwZVN1Y2Nlc3MpLFxuICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIFJlbGF0aW9uVHlwZXNBY3Rpb25zLmxvYWQoKTtcbiAgICAgIH0pXG4gICAgKVxuICApO1xuXG4gIGRlbGV0ZVJlbGF0aW9uVHlwZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoUmVsYXRpb25UeXBlc0FjdGlvbnMuZGVsZXRlUmVsYXRpb25UeXBlKSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgaWYgKCFhY3Rpb24ucmVsYXRpb25UeXBlLmRlbGV0YWJsZSkge1xuICAgICAgICAgIGNvbnN0IGRhdGE6IFByeURpYWxvZ0NvbmZpcm1EYXRhID0ge1xuICAgICAgICAgICAgdGl0bGU6ICdAcHJ5LmFkbWluLmluZm9Nb2RhbFRpdGxlJyxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdAcHJ5LmFkbWluLnJlbGF0aW9uVHlwZXMuZGVsZXRlTW9kYWxNZXNzYWdlJyxcbiAgICAgICAgICAgIGFjdGlvbnM6IFt7IGlkOiAwLCBsYWJlbDogJ0BwcnkuYWRtaW4uY2xvc2VNb2RhbGUnIH1dXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLnByeURpYWxvZy5vcGVuKFByeURpYWxvZ0NvbmZpcm1Db21wb25lbnQsIHsgZGF0YSB9KTtcbiAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5kZWxldGVSZWxhdGlvblR5cGUoYWN0aW9uLnJlbGF0aW9uVHlwZS5pZCkucGlwZShcbiAgICAgICAgICAgIG1hcCgoZGF0YSkgPT4gUmVsYXRpb25UeXBlc0FjdGlvbnMuZGVsZXRlUmVsYXRpb25UeXBlU3VjY2VzcygpKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbUmVsYXRpb25UeXBlc0FjdGlvbnMuZGVsZXRlUmVsYXRpb25UeXBlRmFpbHVyZSh7IGVycm9yIH0pXSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBjcmVhdGVSZWxhdGlvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoUmVsYXRpb25UeXBlc0FjdGlvbnMuY3JlYXRlUmVsYXRpb24pLFxuICAgICAgbWVyZ2VNYXAoKGFjdGlvbikgPT5cbiAgICAgICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZVJlbGF0aW9uKGFjdGlvbi5mcm9tLCBhY3Rpb24udG8sIGFjdGlvbi50eXBlSWQsIGFjdGlvbi5pbnZlcnNpb24pLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAoKHJlbGF0aW9ucykgPT4gW1xuICAgICAgICAgICAgUmVsYXRpb25UeXBlc0FjdGlvbnMuY3JlYXRlUmVsYXRpb25TdWNjZXNzKCksXG4gICAgICAgICAgICBEYXNoYm9hcmRBY3Rpb25zLmFkZFJlbGF0aW9uc1RvUmVzdWx0U2V0cyh7IHJlbGF0aW9ucyB9KVxuICAgICAgICAgIF0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbUmVsYXRpb25UeXBlc0FjdGlvbnMuY3JlYXRlUmVsYXRpb25GYWlsdXJlKHsgZXJyb3IgfSldKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBSZWxhdGlvblR5cGVzU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcHJ5RGlhbG9nOiBQcnlEaWFsb2dTZXJ2aWNlXG4gICkge31cbn1cbiJdfQ==
@@ -112,7 +112,7 @@ export class ContextMenuComponent extends SubscriptionnerDirective {
112
112
  this.store.dispatch(ConfigActions.closeOverlay({ id: this.constructor.name + '-detail' }));
113
113
  }
114
114
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ContextMenuComponent, deps: [{ token: i1.Store }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i3.WidgetFactoryService }], target: i0.ɵɵFactoryTarget.Component }); }
115
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ContextMenuComponent, selector: "pry-context-menu", viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "detailTemplate", first: true, predicate: ["detailTemplate"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <ul class=\"m-context-menu__list\">\n <ng-container *ngIf=\"!!itemId\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionAddOrRemove()\">\n {{ ((isSelected$ | async) ? '@pry.context.remove' : '@pry.context.add') | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionInvert()\">\n {{ '@pry.context.invert' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" *ngIf=\"!!resultSet\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"proximity()\" *ngIf=\"!!resultSet\">\n {{ '@pry.context.proximity' | i18n }}\n </button>\n </li>\n <ng-container *ngIf=\"isModuleLoaded['graph']\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"explore()\">\n {{ '@pry.context.explore' | i18n }}\n </button>\n </li>\n </ng-container>\n <ng-container *ngIf=\"isModuleLoaded['detail']\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"detail()\">\n {{ '@pry.context.detail' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"flyingDetail()\">\n {{ '@pry.context.flyingDetail' | i18n }}\n </button>\n </li>\n </ng-container>\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li class=\"m-context-menu__list__item\">\n <pry-object-creation\n (closed)=\"hide()\"\n [link]=\"true\"\n [object]=\"false\"\n [menu]=\"true\"\n *ngIf=\"(selectedItemsIds?.length ?? 0) > 0\"\n ></pry-object-creation>\n <pry-object-creation (closed)=\"hide()\" [link]=\"true\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </li>\n </ng-container>\n </ng-container>\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li class=\"m-context-menu__list__item\">\n <pry-object-creation (closed)=\"hide()\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n<ng-template #detailTemplate>\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.context.flyingDetail' | i18n }}</h2>\n <button type=\"button\" (click)=\"hideDetail()\" class=\"a-btn a-btn--icon-only -close\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n <div class=\"o-settings__popup__content\">\n <pry-widget-instanciator [staticManifest]=\"detailManifest\"></pry-widget-instanciator>\n </div>\n <div class=\"o-settings__popup__footer\">\n <button (click)=\"hideDetail()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.action.close' | i18n }}\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i6.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i7.WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified", "widgetInstance"] }, { kind: "component", type: i8.PryObjectEditionComponent, selector: "pry-object-creation", inputs: ["link", "object", "menu"], outputs: ["closed"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.I18nPipe, name: "i18n" }] }); }
115
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: ContextMenuComponent, selector: "pry-context-menu", viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }, { propertyName: "detailTemplate", first: true, predicate: ["detailTemplate"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-template #template>\n <ul class=\"m-context-menu__list\">\n <ng-container *ngIf=\"!!itemId\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionAddOrRemove()\">\n {{ ((isSelected$ | async) ? '@pry.context.remove' : '@pry.context.add') | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"selectionInvert()\">\n {{ '@pry.context.invert' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\" *ngIf=\"!!resultSet\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"proximity()\" *ngIf=\"!!resultSet\">\n {{ '@pry.context.proximity' | i18n }}\n </button>\n </li>\n <ng-container *ngIf=\"isModuleLoaded['graph']\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"explore()\">\n {{ '@pry.context.explore' | i18n }}\n </button>\n </li>\n </ng-container>\n <ng-container *ngIf=\"isModuleLoaded['detail']\">\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"detail()\">\n {{ '@pry.context.detail' | i18n }}\n </button>\n </li>\n <li class=\"m-context-menu__list__item\">\n <button type=\"button\" class=\"a-btn -link-like\" (click)=\"flyingDetail()\">\n {{ '@pry.context.flyingDetail' | i18n }}\n </button>\n </li>\n </ng-container>\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li class=\"m-context-menu__list__item\">\n <pry-object-creation\n (closed)=\"hide()\"\n [link]=\"true\"\n [object]=\"false\"\n [menu]=\"true\"\n *ngIf=\"(selectedItemsIds?.length ?? 0) > 0\"\n ></pry-object-creation>\n <pry-object-creation (closed)=\"hide()\" [link]=\"true\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </li>\n </ng-container>\n </ng-container>\n <ng-container *pryAccess=\"{ module: 'dashboard', page: 'dashboard', action: 'edit_object' }\">\n <li class=\"m-context-menu__list__item\">\n <pry-object-creation (closed)=\"hide()\" [object]=\"true\" [menu]=\"true\"></pry-object-creation>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n<ng-template #detailTemplate>\n <div class=\"o-settings__popup__header\">\n <h2 class=\"a-h2\">{{ '@pry.context.flyingDetail' | i18n }}</h2>\n <button type=\"button\" (click)=\"hideDetail()\" class=\"a-btn a-btn--icon-only -close\">\n <pry-icon iconSvg=\"close\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.close' | i18n }}</span>\n </button>\n </div>\n <div class=\"o-settings__popup__content\">\n <pry-widget-instanciator [staticManifest]=\"detailManifest\"></pry-widget-instanciator>\n </div>\n <div class=\"o-settings__popup__footer\">\n <button (click)=\"hideDetail()\" class=\"a-btn a-btn--primary\">\n {{ '@pry.action.close' | i18n }}\n </button>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i6.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i7.WidgetInstanciatorComponent, selector: "pry-widget-instanciator", inputs: ["widgetIndex", "staticManifest", "standalone", "open$"], outputs: ["manifestModified"] }, { kind: "component", type: i8.PryObjectEditionComponent, selector: "pry-object-creation", inputs: ["link", "object", "menu"], outputs: ["closed"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.I18nPipe, name: "i18n" }] }); }
116
116
  }
117
117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: ContextMenuComponent, decorators: [{
118
118
  type: Component,