@energycap/components 0.44.8 → 0.44.9-Angular19Upgrade.20260217-1620

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 (145) hide show
  1. package/fesm2022/energycap-components.mjs +379 -354
  2. package/fesm2022/energycap-components.mjs.map +1 -1
  3. package/lib/controls/button/copy-button-base.directive.d.ts +1 -1
  4. package/lib/controls/date-input/date-input.component.d.ts +1 -1
  5. package/lib/controls/form-control-base.d.ts +1 -1
  6. package/lib/core/date-time-helper.d.ts +2 -2
  7. package/lib/display/hierarchy/hierarchy-base.d.ts +1 -1
  8. package/lib/display/hierarchy/hierarchy-mocks.spec.d.ts +1 -1
  9. package/lib/display/resizable/resizable-base.d.ts +1 -1
  10. package/lib/shared/display/pipes/date-display.pipe.d.ts +1 -1
  11. package/lib/shared/page/page-base/page-base.component.d.ts +1 -1
  12. package/lib/shared/testing/public-mocks.spec.d.ts +1 -1
  13. package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +1 -1
  14. package/package.json +1 -3
  15. package/schematics/utilities/typescript.js +3 -4
  16. package/schematics/utilities/typescript.js.map +1 -1
  17. package/schematics/utilities/workspace.d.ts +0 -8
  18. package/schematics/utilities/workspace.js +48 -71
  19. package/schematics/utilities/workspace.js.map +1 -1
  20. package/esm2022/energycap-components.mjs +0 -5
  21. package/esm2022/lib/components.module.mjs +0 -425
  22. package/esm2022/lib/controls/banner/banner.component.mjs +0 -112
  23. package/esm2022/lib/controls/button/button.component.mjs +0 -114
  24. package/esm2022/lib/controls/button/copy-button-base.directive.mjs +0 -67
  25. package/esm2022/lib/controls/button/copy-button.directive.mjs +0 -28
  26. package/esm2022/lib/controls/button/copy-table-button.directive.mjs +0 -43
  27. package/esm2022/lib/controls/calendar/calendar-item.component.mjs +0 -91
  28. package/esm2022/lib/controls/calendar/calendar.component.mjs +0 -251
  29. package/esm2022/lib/controls/calendar/calendar.types.mjs +0 -2
  30. package/esm2022/lib/controls/checkbox/checkbox.component.mjs +0 -140
  31. package/esm2022/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +0 -38
  32. package/esm2022/lib/controls/combobox/combobox.component.mjs +0 -879
  33. package/esm2022/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.mjs +0 -57
  34. package/esm2022/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs +0 -62
  35. package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.mjs +0 -100
  36. package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.mjs +0 -101
  37. package/esm2022/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs +0 -76
  38. package/esm2022/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.mjs +0 -79
  39. package/esm2022/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.mjs +0 -210
  40. package/esm2022/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.mjs +0 -81
  41. package/esm2022/lib/controls/date-input/date-input.component.mjs +0 -466
  42. package/esm2022/lib/controls/date-input/date-input.types.mjs +0 -44
  43. package/esm2022/lib/controls/dropdown/dropdown.component.mjs +0 -243
  44. package/esm2022/lib/controls/file-upload/file-upload.component.mjs +0 -261
  45. package/esm2022/lib/controls/form-control/form-control.component.mjs +0 -110
  46. package/esm2022/lib/controls/form-control-base.mjs +0 -151
  47. package/esm2022/lib/controls/form-control-label/form-control-label.component.mjs +0 -136
  48. package/esm2022/lib/controls/form-group/form-group.component.mjs +0 -261
  49. package/esm2022/lib/controls/help-popover/help-popover.component.mjs +0 -31
  50. package/esm2022/lib/controls/item-picker/item-picker.component.mjs +0 -329
  51. package/esm2022/lib/controls/link-button/link-button.component.mjs +0 -11
  52. package/esm2022/lib/controls/menu/menu.component.mjs +0 -485
  53. package/esm2022/lib/controls/navigation/link-item.mjs +0 -2
  54. package/esm2022/lib/controls/navigation/nav-group.mjs +0 -39
  55. package/esm2022/lib/controls/navigation/nav-item-active.directive.mjs +0 -92
  56. package/esm2022/lib/controls/navigation/nav-item.mjs +0 -2
  57. package/esm2022/lib/controls/numericbox/numericbox.component.mjs +0 -372
  58. package/esm2022/lib/controls/popover/popover.component.mjs +0 -117
  59. package/esm2022/lib/controls/radio-button/radio-button-option.mjs +0 -3
  60. package/esm2022/lib/controls/radio-button/radio-button.component.mjs +0 -82
  61. package/esm2022/lib/controls/select/select.component.mjs +0 -88
  62. package/esm2022/lib/controls/tabs/tabs.component.mjs +0 -47
  63. package/esm2022/lib/controls/textbox/textbox.component.mjs +0 -155
  64. package/esm2022/lib/core/cache.service.mjs +0 -105
  65. package/esm2022/lib/core/custom-validators.mjs +0 -29
  66. package/esm2022/lib/core/date-time-helper.mjs +0 -228
  67. package/esm2022/lib/core/error.service.mjs +0 -61
  68. package/esm2022/lib/core/router-helper.service.mjs +0 -111
  69. package/esm2022/lib/core/scroll.service.mjs +0 -89
  70. package/esm2022/lib/core/telemetry-tracker.service.mjs +0 -16
  71. package/esm2022/lib/core/telemetry.service.mjs +0 -38
  72. package/esm2022/lib/core/validation-message.service.mjs +0 -185
  73. package/esm2022/lib/core/validation-patterns.mjs +0 -31
  74. package/esm2022/lib/core/window.service.mjs +0 -186
  75. package/esm2022/lib/display/app-bar/app-bar.component.mjs +0 -49
  76. package/esm2022/lib/display/avatar/avatar.component.mjs +0 -67
  77. package/esm2022/lib/display/avatar/avatar.service.mjs +0 -64
  78. package/esm2022/lib/display/confirm/confirm.component.mjs +0 -168
  79. package/esm2022/lib/display/dialog/dialog-content.mjs +0 -2
  80. package/esm2022/lib/display/dialog/dialog-group/dialog-group.component.mjs +0 -63
  81. package/esm2022/lib/display/dialog/dialog-types.mjs +0 -77
  82. package/esm2022/lib/display/dialog/dialog.component.mjs +0 -287
  83. package/esm2022/lib/display/dialog/dialog.service.mjs +0 -71
  84. package/esm2022/lib/display/help/help-types.mjs +0 -2
  85. package/esm2022/lib/display/hierarchy/hierarchy-base.mjs +0 -111
  86. package/esm2022/lib/display/hierarchy/hierarchy-mocks.spec.mjs +0 -54
  87. package/esm2022/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +0 -65
  88. package/esm2022/lib/display/item-display/item-display.component.mjs +0 -83
  89. package/esm2022/lib/display/json-display/json-display.component.mjs +0 -47
  90. package/esm2022/lib/display/resizable/resizable-base.mjs +0 -120
  91. package/esm2022/lib/display/resizable/resizable.component.mjs +0 -57
  92. package/esm2022/lib/display/spinner/spinner.component.mjs +0 -12
  93. package/esm2022/lib/display/splash/splash.component.mjs +0 -61
  94. package/esm2022/lib/display/splash/splash.service.mjs +0 -35
  95. package/esm2022/lib/display/table/resizable-column.component.mjs +0 -20
  96. package/esm2022/lib/display/table/resizable-table.directive.mjs +0 -227
  97. package/esm2022/lib/display/table/searchable-table.component.mjs +0 -344
  98. package/esm2022/lib/display/table/table-detail-row.component.mjs +0 -28
  99. package/esm2022/lib/display/table/table-locked-column.component.mjs +0 -58
  100. package/esm2022/lib/display/table/table-master-header-row.component.mjs +0 -14
  101. package/esm2022/lib/display/table/table-master-row.component.mjs +0 -163
  102. package/esm2022/lib/display/table/table-pagination.component.mjs +0 -155
  103. package/esm2022/lib/display/table/table-selectable-row.component.mjs +0 -235
  104. package/esm2022/lib/display/table/table.component.mjs +0 -257
  105. package/esm2022/lib/display/tags/tag.mjs +0 -18
  106. package/esm2022/lib/display/tags/tags.component.mjs +0 -82
  107. package/esm2022/lib/display/toast/toast/toast.component.mjs +0 -77
  108. package/esm2022/lib/display/toast/toast-types.mjs +0 -8
  109. package/esm2022/lib/display/toast/toast.service.mjs +0 -35
  110. package/esm2022/lib/display/toast/toaster/toaster.component.mjs +0 -114
  111. package/esm2022/lib/display/tooltip/tooltip.component.mjs +0 -28
  112. package/esm2022/lib/display/tooltip/tooltip.service.mjs +0 -78
  113. package/esm2022/lib/display/tooltip-directive/tooltip.directive.mjs +0 -173
  114. package/esm2022/lib/display/tree/tree.component.mjs +0 -139
  115. package/esm2022/lib/display/view-overlay/view-overlay.component.mjs +0 -58
  116. package/esm2022/lib/shared/directives/click-area-for/click-area-for.directive.mjs +0 -32
  117. package/esm2022/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +0 -111
  118. package/esm2022/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.mjs +0 -103
  119. package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +0 -166
  120. package/esm2022/lib/shared/display/pipes/date-display-2.pipe.mjs +0 -39
  121. package/esm2022/lib/shared/display/pipes/date-display.pipe.mjs +0 -51
  122. package/esm2022/lib/shared/display/pipes/highlight-text.pipe.mjs +0 -30
  123. package/esm2022/lib/shared/display/pipes/relative-date.pipe.mjs +0 -62
  124. package/esm2022/lib/shared/display/pipes/row-count.pipe.mjs +0 -48
  125. package/esm2022/lib/shared/display/pipes/time-display.pipe.mjs +0 -41
  126. package/esm2022/lib/shared/display.mjs +0 -6
  127. package/esm2022/lib/shared/form-group.helper.mjs +0 -67
  128. package/esm2022/lib/shared/json-helper.mjs +0 -19
  129. package/esm2022/lib/shared/lodash-helper.mjs +0 -52
  130. package/esm2022/lib/shared/page/page-base/page-base.component.mjs +0 -387
  131. package/esm2022/lib/shared/page/page-statuses.mjs +0 -23
  132. package/esm2022/lib/shared/page/page-title/page-title.component.mjs +0 -23
  133. package/esm2022/lib/shared/page/page-view/page-view.component.mjs +0 -147
  134. package/esm2022/lib/shared/testing/copy-button-base-test-injector-factory.spec.mjs +0 -17
  135. package/esm2022/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs +0 -17
  136. package/esm2022/lib/shared/testing/page-base-component-test-helper.spec.mjs +0 -38
  137. package/esm2022/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +0 -98
  138. package/esm2022/lib/shared/testing/public-mocks.spec.mjs +0 -148
  139. package/esm2022/lib/shared/testing/spy-factory.spec.mjs +0 -40
  140. package/esm2022/lib/shared/testing/translation-mocks.spec.mjs +0 -57
  141. package/esm2022/lib/shared/user-preference.service.mjs +0 -17
  142. package/esm2022/lib/shared/wizard/wizard-base/wizard-base.component.mjs +0 -246
  143. package/esm2022/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +0 -68
  144. package/esm2022/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +0 -18
  145. package/esm2022/public-api.mjs +0 -115
@@ -1,287 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild, ViewContainerRef, TemplateRef, Inject } from '@angular/core';
3
- import { timer, lastValueFrom } from 'rxjs';
4
- import { take, takeUntil, tap } from 'rxjs/operators';
5
- import { DialogOpenEndEvent, DialogCloseEvent, DialogResult } from './dialog-types';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../core/window.service";
8
- import * as i2 from "./dialog.service";
9
- import * as i3 from "@angular/cdk/a11y";
10
- /** These values need to be kept in sync with dialog-base.scss */
11
- export const DialogOpenDuration = 125;
12
- export const DialogCloseDuration = 100;
13
- export const PanelOpenDuration = 250;
14
- export const PanelCloseDuration = 225;
15
- export class DialogComponent {
16
- onOverlayClick(event) {
17
- if (event.target.tagName === 'EC-DIALOG' && this.displayAsPanel) {
18
- this.close(new DialogResult(false));
19
- }
20
- }
21
- /**
22
- * Defines the width of the dialog (height is auto). Can be a number that will be converted to pixels, or xsmall(320px), small(480px), medium(640px), or large(1024px)
23
- */
24
- set size(value) {
25
- this._size = value;
26
- // If the size is a string, set the dialog class. Otherwise, clear it.
27
- if (typeof value == 'string') {
28
- this.dialogSizeClass = `dialog-${value}`;
29
- }
30
- else {
31
- this.dialogSizeClass = undefined;
32
- }
33
- }
34
- ;
35
- get size() {
36
- return this._size;
37
- }
38
- constructor(componentFactoryResolver, windowService, dialogService, documentRef) {
39
- this.componentFactoryResolver = componentFactoryResolver;
40
- this.windowService = windowService;
41
- this.dialogService = dialogService;
42
- this.documentRef = documentRef;
43
- /**
44
- * Add/remove the is-open css class to the host element when the dialog is opened/closed.
45
- * Styles use the is-open class to show/hide the dialog.
46
- */
47
- this.isOpen = false;
48
- /**
49
- * Add the fade-in css class to the host element when the dialog is opening. Remove when transition is complete.
50
- * Styles use the fade-in class to apply a fade-in transition while the dialog is opening.
51
- */
52
- this.fadeIn = false;
53
- /**
54
- * Add the fade-out css class to the host element when the dialog is closing. Remove when transition is complete.
55
- * Styles use the fade-out class to apply a fade-out transition while the dialog is closing.
56
- */
57
- this.fadeOut = false;
58
- this.displayAsPanel = false;
59
- this.alignToTop = false;
60
- this.transparentMask = false;
61
- this.noMask = false;
62
- /**
63
- * Defines the width of the dialog (height is auto). Can be a number that will be converted to pixels, or xsmall(320px), small(480px), medium(640px), or large(1024px)
64
- */
65
- this._size = 'small';
66
- /**
67
- * Bound to the host. The classes set the --ec-dialog-width variable to our default 'small', 'medium', etc. sizes.
68
- * Undefined when the size is a number, which is used for custom sizes.
69
- */
70
- this.dialogSizeClass = `dialog-${this._size}`;
71
- /**
72
- * Emits an event when the dialog is opened
73
- */
74
- this.opened = new EventEmitter();
75
- /**
76
- * Emits an event when the dialog is closed
77
- */
78
- this.closed = new EventEmitter();
79
- /** Used to trigger the cdk trap focus auto capture to detect changes and find the first
80
- * available field to focus in a dialog.
81
- */
82
- this.updateCdkTrapFocusAutoCapture = false;
83
- this.previouslyFocusedElement = null;
84
- }
85
- ngOnInit() {
86
- if (this.content) {
87
- this.open(this.content, this.context, this.options);
88
- }
89
- }
90
- ngOnDestroy() {
91
- // Restore focus to the previously focused element when the dialog is destroyed.
92
- // Need to do this here and not in close() because cdkTrapFocusAutoCapture's re-focus happens in ngOnDestroy.
93
- // This doesn't work for dialog implementations outside of the dialog service because ngOnDestroy isn't called when
94
- // the dialog is closed in those cases.
95
- if (this.previouslyFocusedElement) {
96
- this.previouslyFocusedElement.focus();
97
- }
98
- }
99
- /**
100
- * Clear and previously loaded content
101
- * Load the component
102
- * Save a reference of the loaded component
103
- * Show the dialog and fade in
104
- */
105
- async open(component, context, options) {
106
- if (!this.isOpen) {
107
- this.updateCdkTrapFocusAutoCapture = false;
108
- // Capture the currently focused element, also looking in the shadow dom. Focus is restored to this element once the dialog is
109
- // destroyed. See ngOnDestroy(). We need to do this here in addition to the cdkTrapFocusAutoCapture because sometimes the dialog's
110
- // content is drawn and grabs focus before the cdkTrapFocusAutoCapture is able to read the previously focused element.
111
- const activeElement = this.documentRef?.activeElement;
112
- this.previouslyFocusedElement = activeElement?.shadowRoot?.activeElement || activeElement;
113
- if (options) {
114
- if (options.alignToTop) {
115
- this.alignToTop = true;
116
- }
117
- if (options.alignToTopMargin) {
118
- this.alignToTopMargin = options.alignToTopMargin;
119
- }
120
- ;
121
- if (options.displayAsPanel) {
122
- this.displayAsPanel = true;
123
- this.transparentMask = true;
124
- }
125
- if (options.transparentMask !== undefined) {
126
- this.transparentMask = options.transparentMask;
127
- }
128
- if (options.noMask !== undefined) {
129
- this.noMask = options.noMask;
130
- }
131
- if (options.canOpenDialog !== undefined) {
132
- const canOpen = await options.canOpenDialog();
133
- if (!canOpen) {
134
- this.close(new DialogResult(false));
135
- return;
136
- }
137
- }
138
- }
139
- // set the size before opening
140
- if (typeof this.size === 'number') {
141
- this.width = this.size;
142
- }
143
- else {
144
- // Reset the width if the size is not a number. This is to prevent the width property conflicting with the size.
145
- this.width = undefined;
146
- }
147
- this.minWidth = options?.minWidth;
148
- this.fadeIn = true;
149
- if (component instanceof TemplateRef) {
150
- this.contentContainer.createEmbeddedView(component);
151
- }
152
- else {
153
- let componentFactory = this.componentFactoryResolver.resolveComponentFactory(component);
154
- this.componentRef = this.contentContainer.createComponent(componentFactory);
155
- }
156
- this.isOpen = true;
157
- this.openDialogComponent(context);
158
- // Once the animation is complete we can remove the animation class and
159
- // emit the opened event, both to the hosting component and via DialogService
160
- await lastValueFrom(timer(this.displayAsPanel ? PanelOpenDuration : DialogOpenDuration).pipe(take(1), tap(() => {
161
- this.updateCdkTrapFocusAutoCapture = true;
162
- const dialogId = this.getDialogId();
163
- this.fadeIn = false;
164
- this.opened.emit(dialogId);
165
- this.dialogService.triggerEvent(new DialogOpenEndEvent(this.dialogOpenStartEventId, dialogId));
166
- })));
167
- this.handleCloseOnResize();
168
- }
169
- }
170
- /**
171
- * Fade the dialog out and hide
172
- */
173
- close(result) {
174
- this.fadeOut = true;
175
- const dialogId = this.getDialogId(); //call before wiping out the content
176
- // When the fade out animation is complete we will hide the dialog
177
- // and remove the animation class as well as let the world know that
178
- // we're closed so they can complete any other cleanup
179
- setTimeout(() => {
180
- this.isOpen = false;
181
- this.fadeOut = false;
182
- this.contentContainer?.clear();
183
- this.componentRef = undefined;
184
- this.closed.emit(result);
185
- this.dialogService.triggerEvent(new DialogCloseEvent(this.dialogOpenStartEventId, dialogId, result?.save, result?.context));
186
- this.resetOptions();
187
- }, this.displayAsPanel ? PanelCloseDuration : DialogCloseDuration);
188
- }
189
- /**Open the dialog and attach handlers to the cancel and save events to close it and notify the hosting page */
190
- openDialogComponent(context) {
191
- if (this.componentRef && this.componentRef.instance) {
192
- const dialogContent = this.componentRef.instance;
193
- // OnOpen is optional - create dialogs don't necessarily define it
194
- if (dialogContent.onOpen) {
195
- dialogContent.onOpen(context);
196
- }
197
- dialogContent.onDialogCancel.pipe(takeUntil(this.closed)).subscribe(() => {
198
- this.close(new DialogResult(false));
199
- });
200
- dialogContent.onDialogSave.pipe(takeUntil(this.closed)).subscribe(val => {
201
- this.close(new DialogResult(true, val));
202
- });
203
- }
204
- }
205
- /**
206
- * Reset options so they don't persist next time the
207
- * root dialog is opened
208
- * @deprecated
209
- */
210
- resetOptions() {
211
- this.alignToTop = false;
212
- this.displayAsPanel = false;
213
- }
214
- /** If they turned on closeOnResize, automatically close the dialog any time somebody resizes the window.
215
- * This is useful for responsive layouts to prevent having the dialogContent on the screen twice */
216
- handleCloseOnResize() {
217
- if (this.options && this.options.closeOnResize) {
218
- this.windowService.resized.pipe(takeUntil(this.closed), take(1)).subscribe(() => {
219
- this.close(new DialogResult(false));
220
- });
221
- }
222
- }
223
- /**Extract the dialogId from the dialog content, if it has one. Template-based dialogs generally don't.
224
- * We fall back to empty string to allow anybody listening for dialogEvents to still record the open/close even if
225
- * the dialog itself does not say what the name is.
226
- */
227
- getDialogId() {
228
- return this.componentRef?.instance.dialogId || '';
229
- }
230
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DialogComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i1.WindowService }, { token: i2.DialogService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
231
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DialogComponent, selector: "ec-dialog", inputs: { size: "size", content: "content", context: "context", options: "options", dialogOpenStartEventId: "dialogOpenStartEventId" }, outputs: { opened: "opened", closed: "closed" }, host: { listeners: { "click": "onOverlayClick($event)" }, properties: { "class": "dialogSizeClass", "style.--ec-dialog-width.px": "width", "class.is-open": "this.isOpen", "class.fade-in": "this.fadeIn", "class.fade-out": "this.fadeOut", "class.is-panel": "this.displayAsPanel", "class.is-top-aligned": "this.alignToTop", "style.--ec-dialog-margin-align-to-top": "this.alignToTopMargin", "class.is-transparent": "this.transparentMask", "class.no-mask": "this.noMask" } }, viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: '<article [style.min-width]="minWidth" cdkTrapFocus [cdkTrapFocusAutoCapture]="updateCdkTrapFocusAutoCapture"><ng-template #content></ng-template></article>', isInline: true, styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes panelMaskFadeIn{0%{background-color:transparent}to{background-color:var(--ec-dialog-background-color)}}:host{--ec-dialog-background-color: var(--ec-background-color-dialog);align-items:center;background-color:var(--ec-dialog-background-color);justify-content:center;position:fixed;z-index:var(--ec-z-index-dialog);inset:0;display:none}:host.is-open{display:flex}:host.fade-in{animation-name:fadeIn;animation-duration:125ms;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.fade-out{animation-name:fadeIn;animation-duration:.1s;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.is-panel article{position:absolute;top:0;bottom:0;right:0;max-height:none;border-right:0;border-top:0;border-bottom:0;border-radius:0;box-shadow:0 0 .5rem var(--ec-color-shadow)}:host.is-panel.fade-in{animation-name:panelMaskFadeIn;animation-duration:.25s;animation-fill-mode:forwards}:host.is-panel.fade-in article{animation-name:slideIn;animation-duration:.25s;animation-fill-mode:forwards;animation-timing-function:ease-out}:host.is-panel.fade-out{animation-name:panelMaskFadeIn;animation-direction:reverse;animation-fill-mode:forwards}:host.is-panel.fade-out article{animation-name:slideIn;animation-duration:225ms;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in}:host.is-panel.no-mask{left:auto;width:var(--ec-dialog-width)}:host.is-top-aligned{align-items:flex-start}:host.is-top-aligned article{min-height:auto;margin-top:var(--ec-dialog-margin-align-to-top, 20vh);max-height:calc(100vh - var(--ec-dialog-margin-align-to-top, 20vh) - 5vh)}:host.is-transparent{--ec-dialog-background-color: transparent}article{background-color:var(--ec-background-color-body);background-clip:padding-box;box-shadow:0 0 .625rem #1a1a2333;border-radius:var(--ec-border-radius-dialog);overflow:hidden;display:flex;flex:none;min-height:9rem;max-height:90vh;max-width:90vw;width:var(--ec-dialog-width)}:host.dialog-xsmall{--ec-dialog-width: 20rem}:host.dialog-small{--ec-dialog-width: 30rem}:host.dialog-medium{--ec-dialog-width: 40rem}:host.dialog-large{--ec-dialog-width: 50rem}:host.dialog-xlarge{--ec-dialog-width: 60rem}:host.dialog-full{--ec-dialog-width: 90vw}\n"], dependencies: [{ kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] }); }
232
- }
233
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DialogComponent, decorators: [{
234
- type: Component,
235
- args: [{ selector: 'ec-dialog', template: '<article [style.min-width]="minWidth" cdkTrapFocus [cdkTrapFocusAutoCapture]="updateCdkTrapFocusAutoCapture"><ng-template #content></ng-template></article>', host: {
236
- '[class]': 'dialogSizeClass',
237
- '[style.--ec-dialog-width.px]': 'width'
238
- }, styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes panelMaskFadeIn{0%{background-color:transparent}to{background-color:var(--ec-dialog-background-color)}}:host{--ec-dialog-background-color: var(--ec-background-color-dialog);align-items:center;background-color:var(--ec-dialog-background-color);justify-content:center;position:fixed;z-index:var(--ec-z-index-dialog);inset:0;display:none}:host.is-open{display:flex}:host.fade-in{animation-name:fadeIn;animation-duration:125ms;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.fade-out{animation-name:fadeIn;animation-duration:.1s;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in-out}:host.is-panel article{position:absolute;top:0;bottom:0;right:0;max-height:none;border-right:0;border-top:0;border-bottom:0;border-radius:0;box-shadow:0 0 .5rem var(--ec-color-shadow)}:host.is-panel.fade-in{animation-name:panelMaskFadeIn;animation-duration:.25s;animation-fill-mode:forwards}:host.is-panel.fade-in article{animation-name:slideIn;animation-duration:.25s;animation-fill-mode:forwards;animation-timing-function:ease-out}:host.is-panel.fade-out{animation-name:panelMaskFadeIn;animation-direction:reverse;animation-fill-mode:forwards}:host.is-panel.fade-out article{animation-name:slideIn;animation-duration:225ms;animation-direction:reverse;animation-fill-mode:forwards;animation-timing-function:ease-in}:host.is-panel.no-mask{left:auto;width:var(--ec-dialog-width)}:host.is-top-aligned{align-items:flex-start}:host.is-top-aligned article{min-height:auto;margin-top:var(--ec-dialog-margin-align-to-top, 20vh);max-height:calc(100vh - var(--ec-dialog-margin-align-to-top, 20vh) - 5vh)}:host.is-transparent{--ec-dialog-background-color: transparent}article{background-color:var(--ec-background-color-body);background-clip:padding-box;box-shadow:0 0 .625rem #1a1a2333;border-radius:var(--ec-border-radius-dialog);overflow:hidden;display:flex;flex:none;min-height:9rem;max-height:90vh;max-width:90vw;width:var(--ec-dialog-width)}:host.dialog-xsmall{--ec-dialog-width: 20rem}:host.dialog-small{--ec-dialog-width: 30rem}:host.dialog-medium{--ec-dialog-width: 40rem}:host.dialog-large{--ec-dialog-width: 50rem}:host.dialog-xlarge{--ec-dialog-width: 60rem}:host.dialog-full{--ec-dialog-width: 90vw}\n"] }]
239
- }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i1.WindowService }, { type: i2.DialogService }, { type: Document, decorators: [{
240
- type: Inject,
241
- args: [DOCUMENT]
242
- }] }], propDecorators: { isOpen: [{
243
- type: HostBinding,
244
- args: ['class.is-open']
245
- }], fadeIn: [{
246
- type: HostBinding,
247
- args: ['class.fade-in']
248
- }], fadeOut: [{
249
- type: HostBinding,
250
- args: ['class.fade-out']
251
- }], displayAsPanel: [{
252
- type: HostBinding,
253
- args: ['class.is-panel']
254
- }], alignToTop: [{
255
- type: HostBinding,
256
- args: ['class.is-top-aligned']
257
- }], alignToTopMargin: [{
258
- type: HostBinding,
259
- args: ['style.--ec-dialog-margin-align-to-top']
260
- }], transparentMask: [{
261
- type: HostBinding,
262
- args: ['class.is-transparent']
263
- }], noMask: [{
264
- type: HostBinding,
265
- args: ['class.no-mask']
266
- }], onOverlayClick: [{
267
- type: HostListener,
268
- args: ['click', ['$event']]
269
- }], size: [{
270
- type: Input
271
- }], content: [{
272
- type: Input
273
- }], context: [{
274
- type: Input
275
- }], options: [{
276
- type: Input
277
- }], dialogOpenStartEventId: [{
278
- type: Input
279
- }], opened: [{
280
- type: Output
281
- }], closed: [{
282
- type: Output
283
- }], contentContainer: [{
284
- type: ViewChild,
285
- args: ['content', { read: ViewContainerRef, static: true }]
286
- }] } });
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUEwQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFRLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xNLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBNkIsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBRy9HLGlFQUFpRTtBQUNqRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBVyxHQUFHLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQVcsR0FBRyxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFXLEdBQUcsQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBVyxHQUFHLENBQUM7QUFXOUMsTUFBTSxPQUFPLGVBQWU7SUE2QmdCLGNBQWMsQ0FBQyxLQUFpQjtRQUN4RSxJQUFrQixLQUFLLENBQUMsTUFBTyxDQUFDLE9BQU8sS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQy9FLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMs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LENBQUM7K0dBOVJVLGVBQWUsb0hBbUhoQixRQUFRO21HQW5IUCxlQUFlLHl4QkFxRkksZ0JBQWdCLDJDQTVGcEMsNkpBQTZKOzs0RkFPNUosZUFBZTtrQkFUM0IsU0FBUzsrQkFDRSxXQUFXLFlBQ1gsNkpBQTZKLFFBRWpLO3dCQUNKLFNBQVMsRUFBRSxpQkFBaUI7d0JBQzVCLDhCQUE4QixFQUFFLE9BQU87cUJBQ3hDOzswQkFxSEUsTUFBTTsyQkFBQyxRQUFRO3lDQTlHbUIsTUFBTTtzQkFBMUMsV0FBVzt1QkFBQyxlQUFlO2dCQU1TLE1BQU07c0JBQTFDLFdBQVc7dUJBQUMsZUFBZTtnQkFNVSxPQUFPO3NCQUE1QyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFFUyxjQUFjO3NCQUFuRCxXQUFXO3VCQUFDLGdCQUFnQjtnQkFFZSxVQUFVO3NCQUFyRCxXQUFXO3VCQUFDLHNCQUFzQjtnQkFFMEIsZ0JBQWdCO3NCQUE1RSxXQUFXO3VCQUFDLHVDQUF1QztnQkFFUixlQUFlO3NCQUExRCxXQUFXO3VCQUFDLHNCQUFzQjtnQkFFRSxNQUFNO3NCQUExQyxXQUFXO3VCQUFDLGVBQWU7Z0JBRWMsY0FBYztzQkFBdkQsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU2IsSUFBSTtzQkFBdkIsS0FBSztnQkF1QkcsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUtXLE1BQU07c0JBQXRCLE1BQU07Z0JBS1UsTUFBTTtzQkFBdEIsTUFBTTtnQkFLZ0UsZ0JBQWdCO3NCQUF0RixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBUeXBlLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIFRlbXBsYXRlUmVmLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRpbWVyLCBsYXN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFdpbmRvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3dpbmRvdy5zZXJ2aWNlJztcbmltcG9ydCB7IERpYWxvZ0NvbnRlbnQgfSBmcm9tICcuL2RpYWxvZy1jb250ZW50JztcbmltcG9ydCB7IERpYWxvZ09wZW5FbmRFdmVudCwgRGlhbG9nQ2xvc2VFdmVudCwgRGlhbG9nU2l6ZSwgRGlhbG9nT3B0aW9ucywgRGlhbG9nUmVzdWx0IH0gZnJvbSAnLi9kaWFsb2ctdHlwZXMnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4vZGlhbG9nLnNlcnZpY2UnO1xuXG4vKiogVGhlc2UgdmFsdWVzIG5lZWQgdG8gYmUga2VwdCBpbiBzeW5jIHdpdGggZGlhbG9nLWJhc2Uuc2NzcyAqL1xuZXhwb3J0IGNvbnN0IERpYWxvZ09wZW5EdXJhdGlvbjogbnVtYmVyID0gMTI1O1xuZXhwb3J0IGNvbnN0IERpYWxvZ0Nsb3NlRHVyYXRpb246IG51bWJlciA9IDEwMDtcbmV4cG9ydCBjb25zdCBQYW5lbE9wZW5EdXJhdGlvbjogbnVtYmVyID0gMjUwO1xuZXhwb3J0IGNvbnN0IFBhbmVsQ2xvc2VEdXJhdGlvbjogbnVtYmVyID0gMjI1O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlYy1kaWFsb2cnLFxuICB0ZW1wbGF0ZTogJzxhcnRpY2xlIFtzdHlsZS5taW4td2lkdGhdPVwibWluV2lkdGhcIiBjZGtUcmFwRm9jdXMgW2Nka1RyYXBGb2N1c0F1dG9DYXB0dXJlXT1cInVwZGF0ZUNka1RyYXBGb2N1c0F1dG9DYXB0dXJlXCI+PG5nLXRlbXBsYXRlICNjb250ZW50PjwvbmctdGVtcGxhdGU+PC9hcnRpY2xlPicsXG4gIHN0eWxlVXJsczogWycuL2RpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzc10nOiAnZGlhbG9nU2l6ZUNsYXNzJyxcbiAgICAnW3N0eWxlLi0tZWMtZGlhbG9nLXdpZHRoLnB4XSc6ICd3aWR0aCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dDb21wb25lbnQge1xuICAvKipcbiAgICogQWRkL3JlbW92ZSB0aGUgaXMtb3BlbiBjc3MgY2xhc3MgdG8gdGhlIGhvc3QgZWxlbWVudCB3aGVuIHRoZSBkaWFsb2cgaXMgb3BlbmVkL2Nsb3NlZC5cbiAgICogU3R5bGVzIHVzZSB0aGUgaXMtb3BlbiBjbGFzcyB0byBzaG93L2hpZGUgdGhlIGRpYWxvZy5cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtb3BlbicpIHB1YmxpYyBpc09wZW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQWRkIHRoZSBmYWRlLWluIGNzcyBjbGFzcyB0byB0aGUgaG9zdCBlbGVtZW50IHdoZW4gdGhlIGRpYWxvZyBpcyBvcGVuaW5nLiBSZW1vdmUgd2hlbiB0cmFuc2l0aW9uIGlzIGNvbXBsZXRlLlxuICAgKiBTdHlsZXMgdXNlIHRoZSBmYWRlLWluIGNsYXNzIHRvIGFwcGx5IGEgZmFkZS1pbiB0cmFuc2l0aW9uIHdoaWxlIHRoZSBkaWFsb2cgaXMgb3BlbmluZy5cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmFkZS1pbicpIHB1YmxpYyBmYWRlSW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQWRkIHRoZSBmYWRlLW91dCBjc3MgY2xhc3MgdG8gdGhlIGhvc3QgZWxlbWVudCB3aGVuIHRoZSBkaWFsb2cgaXMgY2xvc2luZy4gUmVtb3ZlIHdoZW4gdHJhbnNpdGlvbiBpcyBjb21wbGV0ZS5cbiAgICogU3R5bGVzIHVzZSB0aGUgZmFkZS1vdXQgY2xhc3MgdG8gYXBwbHkgYSBmYWRlLW91dCB0cmFuc2l0aW9uIHdoaWxlIHRoZSBkaWFsb2cgaXMgY2xvc2luZy5cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmFkZS1vdXQnKSBwdWJsaWMgZmFkZU91dCA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtcGFuZWwnKSBwdWJsaWMgZGlzcGxheUFzUGFuZWwgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLXRvcC1hbGlnbmVkJykgcHVibGljIGFsaWduVG9Ub3AgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tZWMtZGlhbG9nLW1hcmdpbi1hbGlnbi10by10b3AnKSBwdWJsaWMgYWxpZ25Ub1RvcE1hcmdpbj86IHN0cmluZztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLXRyYW5zcGFyZW50JykgcHVibGljIHRyYW5zcGFyZW50TWFzayA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mubm8tbWFzaycpIHB1YmxpYyBub01hc2sgPSBmYWxzZTtcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIHB1YmxpYyBvbk92ZXJsYXlDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICgoPEhUTUxFbGVtZW50PmV2ZW50LnRhcmdldCkudGFnTmFtZSA9PT0gJ0VDLURJQUxPRycgJiYgdGhpcy5kaXNwbGF5QXNQYW5lbCkge1xuICAgICAgdGhpcy5jbG9zZShuZXcgRGlhbG9nUmVzdWx0KGZhbHNlKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIHdpZHRoIG9mIHRoZSBkaWFsb2cgKGhlaWdodCBpcyBhdXRvKS4gQ2FuIGJlIGEgbnVtYmVyIHRoYXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gcGl4ZWxzLCBvciB4c21hbGwoMzIwcHgpLCBzbWFsbCg0ODBweCksIG1lZGl1bSg2NDBweCksIG9yIGxhcmdlKDEwMjRweClcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgc2l6ZSh2YWx1ZTogRGlhbG9nU2l6ZSkge1xuICAgIHRoaXMuX3NpemUgPSB2YWx1ZTtcbiAgICAvLyBJZiB0aGUgc2l6ZSBpcyBhIHN0cmluZywgc2V0IHRoZSBkaWFsb2cgY2xhc3MuIE90aGVyd2lzZSwgY2xlYXIgaXQuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5kaWFsb2dTaXplQ2xhc3MgPSBgZGlhbG9nLSR7dmFsdWV9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kaWFsb2dTaXplQ2xhc3MgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xuICBwdWJsaWMgZ2V0IHNpemUoKTogRGlhbG9nU2l6ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gIH1cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIHdpZHRoIG9mIHRoZSBkaWFsb2cgKGhlaWdodCBpcyBhdXRvKS4gQ2FuIGJlIGEgbnVtYmVyIHRoYXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gcGl4ZWxzLCBvciB4c21hbGwoMzIwcHgpLCBzbWFsbCg0ODBweCksIG1lZGl1bSg2NDBweCksIG9yIGxhcmdlKDEwMjRweClcbiAgICovXG4gIHByaXZhdGUgX3NpemU6IERpYWxvZ1NpemUgPSAnc21hbGwnO1xuXG4gIC8qKlxuICAgKiBCb3VuZCB0byB0aGUgaG9zdC4gVGhlIGNsYXNzZXMgc2V0IHRoZSAtLWVjLWRpYWxvZy13aWR0aCB2YXJpYWJsZSB0byBvdXIgZGVmYXVsdCAnc21hbGwnLCAnbWVkaXVtJywgZXRjLiBzaXplcy5cbiAgICogVW5kZWZpbmVkIHdoZW4gdGhlIHNpemUgaXMgYSBudW1iZXIsIHdoaWNoIGlzIHVzZWQgZm9yIGN1c3RvbSBzaXplcy5cbiAgICovXG4gIGRpYWxvZ1NpemVDbGFzcz86IHN0cmluZyA9IGBkaWFsb2ctJHt0aGlzLl9zaXplfWA7XG5cbiAgQElucHV0KCkgY29udGVudD86IFR5cGU8RGlhbG9nQ29udGVudDxhbnk+PiB8IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGNvbnRleHQ/OiBhbnk7XG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBEaWFsb2dPcHRpb25zO1xuXG4gIC8qKk9ubHkgc2V0IGlmIHRoaXMgcGFydGljdWxhciBpbnN0YW5jZSBvZiBhIGRpYWxvZyBzaG91bGQgYmUgaWRlbnRpZmllZCBzZXBhcmF0ZWx5IGZyb20gb3RoZXJzLlxuICAgKiBJZiBwcm92aWRlZCwgdGhpcyBpcyBlbWl0dGVkIHRvIHRoZSBkaWFsb2cgc2VydmljZSB3aXRoIE9wZW5FbmQgYW5kIENsb3NlIGV2ZW50cy4gRGlyZWN0IHVzYWdlXG4gICAqIG9mIHRoZSBEaWFsb2dDb21wb25lbnQgZnJvbSBvdXRzaWRlIGEgRGlhbG9nR3JvdXAgZG9lcyBub3QgdXN1YWxseSByZXF1aXJlIHVzaW5nIHRoaXMgcGFyYW1ldGVyIGFzXG4gICAqIHRoZSBkaWFsb2cgcmVmZXJlbmNlIGl0c2VsZiBmdW5jdGlvbnMgYXMgdGhlIGlkZW50aWZpZXJcbiAgICovXG4gIEBJbnB1dCgpIGRpYWxvZ09wZW5TdGFydEV2ZW50SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIGRpYWxvZyBpcyBvcGVuZWRcbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgb3BlbmVkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgZGlhbG9nIGlzIGNsb3NlZFxuICAgKi9cbiAgQE91dHB1dCgpIHB1YmxpYyBjbG9zZWQ6IEV2ZW50RW1pdHRlcjxEaWFsb2dSZXN1bHQ8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250YWluZXIgd2hlcmUgdGhlIGNvbXBvbmVudCB3aWxsIGJlIGxvYWRlZFxuICAgKi9cbiAgQFZpZXdDaGlsZCgnY29udGVudCcsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBjb250ZW50Q29udGFpbmVyITogVmlld0NvbnRhaW5lclJlZjtcblxuICAvKipcbiAgICogQ3VzdG9tIHdpZHRoIG9mIHRoZSBkaWFsb2cgaW4gcGl4ZWxzLiBTZXQgYnkgZGVmaW5pbmcgdGhlIHNpemUgcHJvcGVydHlcbiAgICogYXMgYSBudW1iZXIgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgd2lkdGg/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBtaW4td2lkdGggb2YgdGhlIGRpYWxvZy4gT25seSB0YWtlcyBlZmZlY3QgaWYgc2l6ZSBpcyBzZXQgdG8gZHluYW1pYy5cbiAgICogTXVzdCBpbmNsdWRlIHVuaXRzLCBpLmUuIFwiMzJyZW1cIiBvciBcIjY0MHB4XCJcbiAgICovXG4gIHB1YmxpYyBtaW5XaWR0aD86IHN0cmluZztcblxuICAvKipcbiAgICogQSByZWZlcmVuY2Ugb2YgdGhlIGNvbXBvbmVudCBvbmNlIGl0IGhhcyBiZWVuIGxvYWRlZFxuICAgKi9cbiAgcHVibGljIGNvbXBvbmVudFJlZj86IENvbXBvbmVudFJlZjxhbnk+O1xuXG4gIC8qKiBVc2VkIHRvIHRyaWdnZXIgdGhlIGNkayB0cmFwIGZvY3VzIGF1dG8gY2FwdHVyZSB0byBkZXRlY3QgY2hhbmdlcyBhbmQgZmluZCB0aGUgZmlyc3RcbiAgICogIGF2YWlsYWJsZSBmaWVsZCB0byBmb2N1cyBpbiBhIGRpYWxvZy5cbiAgICovXG4gIHB1YmxpYyB1cGRhdGVDZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcHJldmlvdXNseUZvY3VzZWRFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSB3aW5kb3dTZXJ2aWNlOiBXaW5kb3dTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50UmVmOiBEb2N1bWVudFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbnRlbnQpIHtcbiAgICAgIHRoaXMub3Blbih0aGlzLmNvbnRlbnQsIHRoaXMuY29udGV4dCwgdGhpcy5vcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBSZXN0b3JlIGZvY3VzIHRvIHRoZSBwcmV2aW91c2x5IGZvY3VzZWQgZWxlbWVudCB3aGVuIHRoZSBkaWFsb2cgaXMgZGVzdHJveWVkLlxuICAgIC8vIE5lZWQgdG8gZG8gdGhpcyBoZXJlIGFuZCBub3QgaW4gY2xvc2UoKSBiZWNhdXNlIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlJ3MgcmUtZm9jdXMgaGFwcGVucyBpbiBuZ09uRGVzdHJveS5cbiAgICAvLyBUaGlzIGRvZXNuJ3Qgd29yayBmb3IgZGlhbG9nIGltcGxlbWVudGF0aW9ucyBvdXRzaWRlIG9mIHRoZSBkaWFsb2cgc2VydmljZSBiZWNhdXNlIG5nT25EZXN0cm95IGlzbid0IGNhbGxlZCB3aGVuXG4gICAgLy8gdGhlIGRpYWxvZyBpcyBjbG9zZWQgaW4gdGhvc2UgY2FzZXMuXG4gICAgaWYgKHRoaXMucHJldmlvdXNseUZvY3VzZWRFbGVtZW50KSB7XG4gICAgICB0aGlzLnByZXZpb3VzbHlGb2N1c2VkRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBhbmQgcHJldmlvdXNseSBsb2FkZWQgY29udGVudFxuICAgKiBMb2FkIHRoZSBjb21wb25lbnRcbiAgICogU2F2ZSBhIHJlZmVyZW5jZSBvZiB0aGUgbG9hZGVkIGNvbXBvbmVudFxuICAgKiBTaG93IHRoZSBkaWFsb2cgYW5kIGZhZGUgaW5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBvcGVuPFQ+KGNvbXBvbmVudDogVHlwZTxEaWFsb2dDb250ZW50PFQ+PiB8IFRlbXBsYXRlUmVmPGFueT4sIGNvbnRleHQ/OiBULCBvcHRpb25zPzogRGlhbG9nT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMudXBkYXRlQ2RrVHJhcEZvY3VzQXV0b0NhcHR1cmUgPSBmYWxzZTtcblxuICAgICAgLy8gQ2FwdHVyZSB0aGUgY3VycmVudGx5IGZvY3VzZWQgZWxlbWVudCwgYWxzbyBsb29raW5nIGluIHRoZSBzaGFkb3cgZG9tLiBGb2N1cyBpcyByZXN0b3JlZCB0byB0aGlzIGVsZW1lbnQgb25jZSB0aGUgZGlhbG9nIGlzXG4gICAgICAvLyBkZXN0cm95ZWQuIFNlZSBuZ09uRGVzdHJveSgpLiBXZSBuZWVkIHRvIGRvIHRoaXMgaGVyZSBpbiBhZGRpdGlvbiB0byB0aGUgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmUgYmVjYXVzZSBzb21ldGltZXMgdGhlIGRpYWxvZydzXG4gICAgICAvLyBjb250ZW50IGlzIGRyYXduIGFuZCBncmFicyBmb2N1cyBiZWZvcmUgdGhlIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlIGlzIGFibGUgdG8gcmVhZCB0aGUgcHJldmlvdXNseSBmb2N1c2VkIGVsZW1lbnQuXG4gICAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gPEhUTUxFbGVtZW50IHwgbnVsbD50aGlzLmRvY3VtZW50UmVmPy5hY3RpdmVFbGVtZW50O1xuICAgICAgdGhpcy5wcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQgPSA8SFRNTEVsZW1lbnQ+YWN0aXZlRWxlbWVudD8uc2hhZG93Um9vdD8uYWN0aXZlRWxlbWVudCB8fCBhY3RpdmVFbGVtZW50O1xuXG4gICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICBpZiAob3B0aW9ucy5hbGlnblRvVG9wKSB7XG4gICAgICAgICAgdGhpcy5hbGlnblRvVG9wID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmFsaWduVG9Ub3BNYXJnaW4pIHtcbiAgICAgICAgICB0aGlzLmFsaWduVG9Ub3BNYXJnaW4gPSBvcHRpb25zLmFsaWduVG9Ub3BNYXJnaW47XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuZGlzcGxheUFzUGFuZWwpIHtcbiAgICAgICAgICB0aGlzLmRpc3BsYXlBc1BhbmVsID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnRyYW5zcGFyZW50TWFzayA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy50cmFuc3BhcmVudE1hc2sgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMudHJhbnNwYXJlbnRNYXNrID0gb3B0aW9ucy50cmFuc3BhcmVudE1hc2s7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5ub01hc2sgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMubm9NYXNrID0gb3B0aW9ucy5ub01hc2s7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5jYW5PcGVuRGlhbG9nICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb25zdCBjYW5PcGVuID0gYXdhaXQgb3B0aW9ucy5jYW5PcGVuRGlhbG9nKCk7XG4gICAgICAgICAgaWYgKCFjYW5PcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKG5ldyBEaWFsb2dSZXN1bHQoZmFsc2UpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gc2V0IHRoZSBzaXplIGJlZm9yZSBvcGVuaW5nXG4gICAgICBpZiAodHlwZW9mIHRoaXMuc2l6ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhpcy53aWR0aCA9IHRoaXMuc2l6ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFJlc2V0IHRoZSB3aWR0aCBpZiB0aGUgc2l6ZSBpcyBub3QgYSBudW1iZXIuIFRoaXMgaXMgdG8gcHJldmVudCB0aGUgd2lkdGggcHJvcGVydHkgY29uZmxpY3Rpbmcgd2l0aCB0aGUgc2l6ZS5cbiAgICAgICAgdGhpcy53aWR0aCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5taW5XaWR0aCA9IG9wdGlvbnM/Lm1pbldpZHRoO1xuXG4gICAgICB0aGlzLmZhZGVJbiA9IHRydWU7XG4gICAgICBpZiAoY29tcG9uZW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgdGhpcy5jb250ZW50Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyhjb21wb25lbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29udGVudENvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcblxuICAgICAgdGhpcy5vcGVuRGlhbG9nQ29tcG9uZW50PFQ+KGNvbnRleHQpO1xuXG4gICAgICAvLyBPbmNlIHRoZSBhbmltYXRpb24gaXMgY29tcGxldGUgd2UgY2FuIHJlbW92ZSB0aGUgYW5pbWF0aW9uIGNsYXNzIGFuZFxuICAgICAgLy8gZW1pdCB0aGUgb3BlbmVkIGV2ZW50LCBib3RoIHRvIHRoZSBob3N0aW5nIGNvbXBvbmVudCBhbmQgdmlhIERpYWxvZ1NlcnZpY2VcbiAgICAgIGF3YWl0IGxhc3RWYWx1ZUZyb20odGltZXIodGhpcy5kaXNwbGF5QXNQYW5lbCA/IFBhbmVsT3BlbkR1cmF0aW9uIDogRGlhbG9nT3BlbkR1cmF0aW9uKS5waXBlKHRha2UoMSksIHRhcCgoKSA9PiB7XG4gICAgICAgIFxuICAgICAgICB0aGlzLnVwZGF0ZUNka1RyYXBGb2N1c0F1dG9DYXB0dXJlID0gdHJ1ZTtcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IGRpYWxvZ0lkID0gdGhpcy5nZXREaWFsb2dJZCgpO1xuICAgICAgICB0aGlzLmZhZGVJbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9wZW5lZC5lbWl0KGRpYWxvZ0lkKTtcbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnRyaWdnZXJFdmVudChuZXcgRGlhbG9nT3BlbkVuZEV2ZW50KHRoaXMuZGlhbG9nT3BlblN0YXJ0RXZlbnRJZCwgZGlhbG9nSWQpKTtcbiAgICAgIH0pKSk7XG5cbiAgICAgIHRoaXMuaGFuZGxlQ2xvc2VPblJlc2l6ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGYWRlIHRoZSBkaWFsb2cgb3V0IGFuZCBoaWRlXG4gICAqL1xuICBwdWJsaWMgY2xvc2U8VD4ocmVzdWx0PzogRGlhbG9nUmVzdWx0PFQ+KTogdm9pZCB7XG4gICAgdGhpcy5mYWRlT3V0ID0gdHJ1ZTtcbiAgICBjb25zdCBkaWFsb2dJZCA9IHRoaXMuZ2V0RGlhbG9nSWQoKTsgIC8vY2FsbCBiZWZvcmUgd2lwaW5nIG91dCB0aGUgY29udGVudFxuXG4gICAgLy8gV2hlbiB0aGUgZmFkZSBvdXQgYW5pbWF0aW9uIGlzIGNvbXBsZXRlIHdlIHdpbGwgaGlkZSB0aGUgZGlhbG9nXG4gICAgLy8gYW5kIHJlbW92ZSB0aGUgYW5pbWF0aW9uIGNsYXNzIGFzIHdlbGwgYXMgbGV0IHRoZSB3b3JsZCBrbm93IHRoYXRcbiAgICAvLyB3ZSdyZSBjbG9zZWQgc28gdGhleSBjYW4gY29tcGxldGUgYW55IG90aGVyIGNsZWFudXBcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLmZhZGVPdXQgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29udGVudENvbnRhaW5lcj8uY2xlYXIoKTtcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5jbG9zZWQuZW1pdChyZXN1bHQpO1xuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnRyaWdnZXJFdmVudChuZXcgRGlhbG9nQ2xvc2VFdmVudCh0aGlzLmRpYWxvZ09wZW5TdGFydEV2ZW50SWQsIGRpYWxvZ0lkLCByZXN1bHQ/LnNhdmUsIHJlc3VsdD8uY29udGV4dCkpO1xuICAgICAgdGhpcy5yZXNldE9wdGlvbnMoKTtcbiAgICB9LCB0aGlzLmRpc3BsYXlBc1BhbmVsID8gUGFuZWxDbG9zZUR1cmF0aW9uIDogRGlhbG9nQ2xvc2VEdXJhdGlvbilcbiAgfVxuXG4gIC8qKk9wZW4gdGhlIGRpYWxvZyBhbmQgYXR0YWNoIGhhbmRsZXJzIHRvIHRoZSBjYW5jZWwgYW5kIHNhdmUgZXZlbnRzIHRvIGNsb3NlIGl0IGFuZCBub3RpZnkgdGhlIGhvc3RpbmcgcGFnZSAqL1xuICBwcml2YXRlIG9wZW5EaWFsb2dDb21wb25lbnQ8VD4oY29udGV4dD86IFQpIHtcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgJiYgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpIHtcbiAgICAgIGNvbnN0IGRpYWxvZ0NvbnRlbnQgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBEaWFsb2dDb250ZW50PFQ+O1xuXG4gICAgICAvLyBPbk9wZW4gaXMgb3B0aW9uYWwgLSBjcmVhdGUgZGlhbG9ncyBkb24ndCBuZWNlc3NhcmlseSBkZWZpbmUgaXRcbiAgICAgIGlmIChkaWFsb2dDb250ZW50Lm9uT3Blbikge1xuICAgICAgICBkaWFsb2dDb250ZW50Lm9uT3Blbihjb250ZXh0KTtcbiAgICAgIH1cblxuICAgICAgZGlhbG9nQ29udGVudC5vbkRpYWxvZ0NhbmNlbC5waXBlKHRha2VVbnRpbCh0aGlzLmNsb3NlZCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2U8VD4obmV3IERpYWxvZ1Jlc3VsdDxUPihmYWxzZSkpO1xuICAgICAgfSk7XG5cbiAgICAgIGRpYWxvZ0NvbnRlbnQub25EaWFsb2dTYXZlLnBpcGUodGFrZVVudGlsKHRoaXMuY2xvc2VkKSkuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2U8VD4obmV3IERpYWxvZ1Jlc3VsdDxUPih0cnVlLCB2YWwpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBvcHRpb25zIHNvIHRoZXkgZG9uJ3QgcGVyc2lzdCBuZXh0IHRpbWUgdGhlXG4gICAqIHJvb3QgZGlhbG9nIGlzIG9wZW5lZFxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHJpdmF0ZSByZXNldE9wdGlvbnMoKSB7XG4gICAgdGhpcy5hbGlnblRvVG9wID0gZmFsc2U7XG4gICAgdGhpcy5kaXNwbGF5QXNQYW5lbCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqIElmIHRoZXkgdHVybmVkIG9uIGNsb3NlT25SZXNpemUsIGF1dG9tYXRpY2FsbHkgY2xvc2UgdGhlIGRpYWxvZyBhbnkgdGltZSBzb21lYm9keSByZXNpemVzIHRoZSB3aW5kb3cuXG4gICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgcmVzcG9uc2l2ZSBsYXlvdXRzIHRvIHByZXZlbnQgaGF2aW5nIHRoZSBkaWFsb2dDb250ZW50IG9uIHRoZSBzY3JlZW4gdHdpY2UgKi9cbiAgcHJpdmF0ZSBoYW5kbGVDbG9zZU9uUmVzaXplKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmNsb3NlT25SZXNpemUpIHtcbiAgICAgIHRoaXMud2luZG93U2VydmljZS5yZXNpemVkIS5waXBlKHRha2VVbnRpbCh0aGlzLmNsb3NlZCksIHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2UobmV3IERpYWxvZ1Jlc3VsdChmYWxzZSkpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqRXh0cmFjdCB0aGUgZGlhbG9nSWQgZnJvbSB0aGUgZGlhbG9nIGNvbnRlbnQsIGlmIGl0IGhhcyBvbmUuIFRlbXBsYXRlLWJhc2VkIGRpYWxvZ3MgZ2VuZXJhbGx5IGRvbid0LlxuICAgKiBXZSBmYWxsIGJhY2sgdG8gZW1wdHkgc3RyaW5nIHRvIGFsbG93IGFueWJvZHkgbGlzdGVuaW5nIGZvciBkaWFsb2dFdmVudHMgdG8gc3RpbGwgcmVjb3JkIHRoZSBvcGVuL2Nsb3NlIGV2ZW4gaWZcbiAgICogdGhlIGRpYWxvZyBpdHNlbGYgZG9lcyBub3Qgc2F5IHdoYXQgdGhlIG5hbWUgaXMuIFxuICAgKi9cbiAgcHJpdmF0ZSBnZXREaWFsb2dJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlLmRpYWxvZ0lkIHx8ICcnO1xuICB9XG59XG4iXX0=
@@ -1,71 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { map, skipWhile, take } from 'rxjs/operators';
4
- import { ConfirmComponent } from '../confirm/confirm.component';
5
- import { DialogCloseEvent, DialogCloseLatestEvent, DialogOpenStartEvent } from './dialog-types';
6
- import * as i0 from "@angular/core";
7
- /**
8
- * Service used to communcate with ng5 dialogs from an ng1 view. Any dialogs that
9
- * have been added to ng1 views must be added to the DialogCatalog in order
10
- * to know which component to load inside the dialog. You can also optionally subscribe
11
- * to an onClose event to do some work after the dialog closes
12
- */
13
- export class DialogService {
14
- constructor() {
15
- /**
16
- * Emits DialogEvents when the dialog opens or closes.
17
- */
18
- this.events = new Subject();
19
- }
20
- /**
21
- * Open the root dialog.
22
- * @param content - The component class to load into the dialog
23
- * @param size - The size of the dialog
24
- * @param context - optional context to pass to the dialog content during initialization.
25
- * @param options - extra options to configure the dialog
26
- * @returns Observable of a typed DialogResult which specifies if the dialog was saved and an optional context.
27
- * @example
28
- // From typescript
29
- try {
30
- const result = await lastValueFrom(this.dialogService.openDialog(MyComponent, 'small', myContext, options));
31
- // do something with result
32
- } catch(error) {
33
- // do something with error
34
- }
35
- */
36
- openDialog(content, size, context, options) {
37
- options = options || {};
38
- options.size = size;
39
- const event = new DialogOpenStartEvent(content, context, options);
40
- const complete = this.events.pipe(skipWhile(e => !(e instanceof DialogCloseEvent) || e.eventId !== event.eventId), map(e => e.dialogResult), take(1) //mark the observable as complete as soon as any closeEvent happens for this particular dialogOpen event, allowing lastValueFrom to work
41
- );
42
- this.triggerEvent(event);
43
- return complete;
44
- }
45
- /**Close whatever dialog was most recently opened, with the provided result.
46
- * The result must be in a form the caller can expect (must match the dialog) so use this carefully
47
- * if you are returning any result other than cancel. It is most useful if you are opening
48
- * a dialog with a template reference instead of a true dialog child component
49
- */
50
- closeLatestDialog(result) {
51
- this.triggerEvent(new DialogCloseLatestEvent(result));
52
- }
53
- /**
54
- * Open a Confirmation Dialog with the given context
55
- */
56
- confirm(context) {
57
- return this.openDialog(ConfirmComponent, 'small', context);
58
- }
59
- triggerEvent(event) {
60
- this.events.next(event);
61
- }
62
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
63
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DialogService, providedIn: 'root' }); }
64
- }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DialogService, decorators: [{
66
- type: Injectable,
67
- args: [{
68
- providedIn: 'root'
69
- }]
70
- }] });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9kaWFsb2cvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQXdCLE1BQU0sOEJBQThCLENBQUM7QUFFdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFlLG9CQUFvQixFQUEyQyxNQUFNLGdCQUFnQixDQUFDOztBQUV0Sjs7Ozs7R0FLRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBSUU7O1dBRUc7UUFDSSxXQUFNLEdBQTRCLElBQUksT0FBTyxFQUFFLENBQUM7S0FxRHhEO0lBbkRDOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNJLFVBQVUsQ0FBSSxPQUFrRCxFQUFFLElBQWdCLEVBQUUsT0FBVyxFQUFFLE9BQXVCO1FBQzdILE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRXBCLE1BQU0sS0FBSyxHQUFHLElBQUksb0JBQW9CLENBQUksT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVyRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDL0IsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUMvRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBRSxDQUF5QixDQUFDLFlBQWEsQ0FBQyxFQUNsRCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsd0lBQXdJO1NBQ2pKLENBQUE7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUJBQWlCLENBQUksTUFBdUI7UUFDakQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLE9BQTZCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFrQjtRQUNuQyxJQUFJLENBQUMsTUFBK0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQzsrR0F4RFUsYUFBYTttSEFBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBza2lwV2hpbGUsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb25maXJtQ29tcG9uZW50LCBDb25maXJtRGlhbG9nQ29udGV4dCB9IGZyb20gJy4uL2NvbmZpcm0vY29uZmlybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlhbG9nQ29udGVudCB9IGZyb20gJy4vZGlhbG9nLWNvbnRlbnQnO1xuaW1wb3J0IHsgRGlhbG9nQ2xvc2VFdmVudCwgRGlhbG9nQ2xvc2VMYXRlc3RFdmVudCwgRGlhbG9nRXZlbnQsIERpYWxvZ09wZW5TdGFydEV2ZW50LCBEaWFsb2dPcHRpb25zLCBEaWFsb2dSZXN1bHQsIERpYWxvZ1NpemUgfSBmcm9tICcuL2RpYWxvZy10eXBlcyc7XG5cbi8qKlxuICogU2VydmljZSB1c2VkIHRvIGNvbW11bmNhdGUgd2l0aCBuZzUgZGlhbG9ncyBmcm9tIGFuIG5nMSB2aWV3LiBBbnkgZGlhbG9ncyB0aGF0XG4gKiBoYXZlIGJlZW4gYWRkZWQgdG8gbmcxIHZpZXdzIG11c3QgYmUgYWRkZWQgdG8gdGhlIERpYWxvZ0NhdGFsb2cgaW4gb3JkZXJcbiAqIHRvIGtub3cgd2hpY2ggY29tcG9uZW50IHRvIGxvYWQgaW5zaWRlIHRoZSBkaWFsb2cuIFlvdSBjYW4gYWxzbyBvcHRpb25hbGx5IHN1YnNjcmliZVxuICogdG8gYW4gb25DbG9zZSBldmVudCB0byBkbyBzb21lIHdvcmsgYWZ0ZXIgdGhlIGRpYWxvZyBjbG9zZXNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nU2VydmljZSB7XG4gIC8qKlxuICAgKiBFbWl0cyBEaWFsb2dFdmVudHMgd2hlbiB0aGUgZGlhbG9nIG9wZW5zIG9yIGNsb3Nlcy5cbiAgICovXG4gIHB1YmxpYyBldmVudHM6IE9ic2VydmFibGU8RGlhbG9nRXZlbnQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAvKipcbiAgICogT3BlbiB0aGUgcm9vdCBkaWFsb2cuXG4gICAqIEBwYXJhbSBjb250ZW50IC0gVGhlIGNvbXBvbmVudCBjbGFzcyB0byBsb2FkIGludG8gdGhlIGRpYWxvZ1xuICAgKiBAcGFyYW0gc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBkaWFsb2dcbiAgICogQHBhcmFtIGNvbnRleHQgLSBvcHRpb25hbCBjb250ZXh0IHRvIHBhc3MgdG8gdGhlIGRpYWxvZyBjb250ZW50IGR1cmluZyBpbml0aWFsaXphdGlvbi5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBleHRyYSBvcHRpb25zIHRvIGNvbmZpZ3VyZSB0aGUgZGlhbG9nXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgYSB0eXBlZCBEaWFsb2dSZXN1bHQgd2hpY2ggc3BlY2lmaWVzIGlmIHRoZSBkaWFsb2cgd2FzIHNhdmVkIGFuZCBhbiBvcHRpb25hbCBjb250ZXh0LlxuICAgKiBAZXhhbXBsZVxuICAgICAgLy8gRnJvbSB0eXBlc2NyaXB0XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKHRoaXMuZGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKE15Q29tcG9uZW50LCAnc21hbGwnLCBteUNvbnRleHQsIG9wdGlvbnMpKTtcbiAgICAgICAgLy8gZG8gc29tZXRoaW5nIHdpdGggcmVzdWx0XG4gICAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAgIC8vIGRvIHNvbWV0aGluZyB3aXRoIGVycm9yXG4gICAgICB9XG4gICAqL1xuICBwdWJsaWMgb3BlbkRpYWxvZzxUPihjb250ZW50OiBUeXBlPERpYWxvZ0NvbnRlbnQ8VD4+IHwgVGVtcGxhdGVSZWY8YW55Piwgc2l6ZTogRGlhbG9nU2l6ZSwgY29udGV4dD86IFQsIG9wdGlvbnM/OiBEaWFsb2dPcHRpb25zKTogT2JzZXJ2YWJsZTxEaWFsb2dSZXN1bHQ8VD4+IHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICBvcHRpb25zLnNpemUgPSBzaXplO1xuXG4gICAgY29uc3QgZXZlbnQgPSBuZXcgRGlhbG9nT3BlblN0YXJ0RXZlbnQ8VD4oY29udGVudCwgY29udGV4dCwgb3B0aW9ucyk7XG4gICAgXG4gICAgY29uc3QgY29tcGxldGUgPSB0aGlzLmV2ZW50cy5waXBlKFxuICAgICAgc2tpcFdoaWxlKGUgPT4gIShlIGluc3RhbmNlb2YgRGlhbG9nQ2xvc2VFdmVudCkgfHwgZS5ldmVudElkICE9PSBldmVudC5ldmVudElkKSxcbiAgICAgIG1hcChlID0+IChlIGFzIERpYWxvZ0Nsb3NlRXZlbnQ8VD4pLmRpYWxvZ1Jlc3VsdCEpLFxuICAgICAgdGFrZSgxKSAvL21hcmsgdGhlIG9ic2VydmFibGUgYXMgY29tcGxldGUgYXMgc29vbiBhcyBhbnkgY2xvc2VFdmVudCBoYXBwZW5zIGZvciB0aGlzIHBhcnRpY3VsYXIgZGlhbG9nT3BlbiBldmVudCwgYWxsb3dpbmcgbGFzdFZhbHVlRnJvbSB0byB3b3JrXG4gICAgKVxuICAgICAgXG4gICAgdGhpcy50cmlnZ2VyRXZlbnQoZXZlbnQpO1xuICAgIHJldHVybiBjb21wbGV0ZTtcbiAgfVxuXG4gIC8qKkNsb3NlIHdoYXRldmVyIGRpYWxvZyB3YXMgbW9zdCByZWNlbnRseSBvcGVuZWQsIHdpdGggdGhlIHByb3ZpZGVkIHJlc3VsdC5cbiAgICogVGhlIHJlc3VsdCBtdXN0IGJlIGluIGEgZm9ybSB0aGUgY2FsbGVyIGNhbiBleHBlY3QgKG11c3QgbWF0Y2ggdGhlIGRpYWxvZykgc28gdXNlIHRoaXMgY2FyZWZ1bGx5XG4gICAqIGlmIHlvdSBhcmUgcmV0dXJuaW5nIGFueSByZXN1bHQgb3RoZXIgdGhhbiBjYW5jZWwuIEl0IGlzIG1vc3QgdXNlZnVsIGlmIHlvdSBhcmUgb3BlbmluZ1xuICAgKiBhIGRpYWxvZyB3aXRoIGEgdGVtcGxhdGUgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSB0cnVlIGRpYWxvZyBjaGlsZCBjb21wb25lbnRcbiAgICovXG4gIHB1YmxpYyBjbG9zZUxhdGVzdERpYWxvZzxUPihyZXN1bHQ6IERpYWxvZ1Jlc3VsdDxUPil7XG4gICAgdGhpcy50cmlnZ2VyRXZlbnQobmV3IERpYWxvZ0Nsb3NlTGF0ZXN0RXZlbnQocmVzdWx0KSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbiBhIENvbmZpcm1hdGlvbiBEaWFsb2cgd2l0aCB0aGUgZ2l2ZW4gY29udGV4dFxuICAgKi9cbiAgcHVibGljIGNvbmZpcm0oY29udGV4dDogQ29uZmlybURpYWxvZ0NvbnRleHQpOiBPYnNlcnZhYmxlPERpYWxvZ1Jlc3VsdDxDb25maXJtRGlhbG9nQ29udGV4dD4+IHtcbiAgICByZXR1cm4gdGhpcy5vcGVuRGlhbG9nKENvbmZpcm1Db21wb25lbnQsICdzbWFsbCcsIGNvbnRleHQpO1xuICB9XG5cbiAgcHVibGljIHRyaWdnZXJFdmVudChldmVudDogRGlhbG9nRXZlbnQpIHtcbiAgICAodGhpcy5ldmVudHMgYXMgU3ViamVjdDxEaWFsb2dFdmVudD4pLm5leHQoZXZlbnQpO1xuICB9XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2hlbHAvaGVscC10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSGVscCA9IHtcbiAgY29udHJvbHM6IEhlbHBDb250cm9sW10sXG4gIG92ZXJ2aWV3Pzogc3RyaW5nLFxuICBhbHdheXNWaXNpYmxlPzogYm9vbGVhbixcbiAgaWdub3JlVXNlclNldHRpbmc/OiBib29sZWFuXG59O1xuXG4vKipcbiAqIEEgZm9ybSBjb250cm9sIGluIHRoZSBjdXJyZW50IHZpZXcgdG8gZGVmaW5lIGluIHRoZSBoZWxwIHBhbmVsXG4gKi9cbiBleHBvcnQgdHlwZSBIZWxwQ29udHJvbCA9IHtcbiAgLyoqXG4gICAqIFRoZSBjb250cm9scyBpZFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgaWQ6IHN0cmluZyxcblxuICAvKipcbiAgICogVGhlIGZvcm0gY29udHJvbCBpZHMgdG8gbWF0Y2ggdGhpcyBoZWxwIGNvbnRyb2xcbiAgICogSWYgdGhpcyBhcnJheSBpcyBkZWZpbmVkIHRoZSBpZCdzIHdpdGhpbiB0aGlzIHdpbGwgdGFrZSBwcmVjaWRlbmNlIG92ZXIgdGhlXG4gICAqIGlkIG9mIHRoZSBoZWxwIGNvbnRyb2wgd2hlbiB0cnlpbmcgdG8gbWF0Y2ggdXAgYSBjb250cm9sXG4gICAqIEB0eXBlIHtzdHJpbmdbXX1cbiAgICovXG4gIGlkR3JvdXA/OiBBcnJheTxzdHJpbmc+LFxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY29udHJvbFxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgbGFiZWw6IHN0cmluZyxcblxuICAvKipcbiAgICogVGhlIGRlZmluaXRpb24gZm9yIHRoZSBjb250cm9sXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBkZWZpbml0aW9uOiBzdHJpbmdcbn07XG4iXX0=
@@ -1,111 +0,0 @@
1
- import { Directive, EventEmitter, Input, Output } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { TelemetryService } from '../../core/telemetry.service';
4
- import * as i0 from "@angular/core";
5
- export class HierarchyItem {
6
- constructor() {
7
- this.id = '';
8
- /** Label to display for the item */
9
- this.label = '';
10
- /** Indicates how many levels deep the item is in the parent structure */
11
- this.level = 0;
12
- /** Display item as a link, a heading, or with a divider line below it */
13
- this.display = 'default';
14
- /** Set to hide toggle, even if item has children */
15
- this.hideToggle = false;
16
- /** Flag to indicate whether the item has children or not, mostly drives
17
- * whether you get the expand/collapse button
18
- */
19
- this.hasChildren = false;
20
- /** Array of children if any for the item */
21
- this.children = [];
22
- /** Flag to indicate if the item has been expanded */
23
- this.expanded = false;
24
- /** Flag to indicate if the item is selected */
25
- this.selected = false;
26
- /** Flag to indicate if the item can be selected */
27
- this.selectable = false;
28
- this.readonly = false;
29
- /** Status of each item to indicate whether children lookup is pending or
30
- * if an error occurred retrieving data
31
- */
32
- this.status = "hasData";
33
- /** Indicates if the item is a top level entity, e.g. Organization or Cost Center */
34
- this.topLevel = false;
35
- /**
36
- * When checking the url for activeness, the url must match exactly or partially
37
- * @see https://angular.io/guide/router#active-router-links
38
- */
39
- this.isActiveExactMatch = true;
40
- }
41
- }
42
- export class HierarchyBase {
43
- get destroyed() {
44
- return this._destroyed;
45
- }
46
- constructor(injector) {
47
- /** Event emitter to request children for a given item */
48
- this.getItemChildren = new EventEmitter();
49
- /** Event emitted when an item is toggled. */
50
- this.itemToggled = new EventEmitter();
51
- /**
52
- * Used to unsubscribe from observables
53
- */
54
- this._destroyed = new Subject();
55
- this.telemetryService = injector.get(TelemetryService);
56
- }
57
- ngOnChanges(changes) {
58
- if (changes && changes.rootNode && changes.rootNode.currentValue) {
59
- /** If the rootNode has children and we don't know about them yet we must be loading
60
- * the view without the new hierarchy api
61
- */
62
- if (this.rootNode.hasChildren && this.rootNode.children.length === 0) {
63
- this.getItemChildren.emit(this.rootNode);
64
- }
65
- }
66
- }
67
- /**
68
- * Function called when the component is destroyed
69
- */
70
- ngOnDestroy() {
71
- this.destroyed.next();
72
- this.destroyed.unsubscribe();
73
- }
74
- /** Handler for the toggle button */
75
- toggleItemClicked(item, expanded) {
76
- item.expanded = expanded;
77
- this.telemetryService.trackEvent('toggle-tree-node', {
78
- newExpandState: item.expanded ? 'expanded' : 'collapsed',
79
- itemDepth: `${item.level}`,
80
- });
81
- this.itemToggled.emit({ item, expanded });
82
- if (item.expanded && item.hasChildren && item.children.length === 0) {
83
- item.status = "pending";
84
- this.getItemChildren.emit(item);
85
- }
86
- }
87
- /** Method exposed to the parent component to set the items children once they are available
88
- */
89
- setItemChildren(parentItem, items) {
90
- parentItem.children = items;
91
- parentItem.status = "hasData";
92
- }
93
- /** Method exposed to the parent component to indicate that something happened on the
94
- * item that caused an error, could be retrieving children
95
- */
96
- setItemError(parentItem) {
97
- parentItem.status = "error";
98
- }
99
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HierarchyBase, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
100
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: HierarchyBase, inputs: { rootNode: "rootNode" }, outputs: { getItemChildren: "getItemChildren", itemToggled: "itemToggled" }, usesOnChanges: true, ngImport: i0 }); }
101
- }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HierarchyBase, decorators: [{
103
- type: Directive
104
- }], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { rootNode: [{
105
- type: Input
106
- }], getItemChildren: [{
107
- type: Output
108
- }], itemToggled: [{
109
- type: Output
110
- }] } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2h5LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9oaWVyYXJjaHkvaGllcmFyY2h5LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUF3QixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXRILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBR2hFLE1BQU0sT0FBTyxhQUFhO0lBQTFCO1FBQ0UsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUVoQixvQ0FBb0M7UUFDcEMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQVFuQix5RUFBeUU7UUFDekUsVUFBSyxHQUFXLENBQUMsQ0FBQztRQVVsQix5RUFBeUU7UUFDekUsWUFBTyxHQUF1QyxTQUFTLENBQUM7UUFFeEQsb0RBQW9EO1FBQ3BELGVBQVUsR0FBYSxLQUFLLENBQUM7UUFFN0I7O1dBRUc7UUFDSCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUU3Qiw0Q0FBNEM7UUFDNUMsYUFBUSxHQUF5QixFQUFFLENBQUM7UUFFcEMscURBQXFEO1FBQ3JELGFBQVEsR0FBYSxLQUFLLENBQUM7UUFFM0IsK0NBQStDO1FBQy9DLGFBQVEsR0FBYSxLQUFLLENBQUM7UUFFM0IsbURBQW1EO1FBQ25ELGVBQVUsR0FBYSxLQUFLLENBQUM7UUFFN0IsYUFBUSxHQUFhLEtBQUssQ0FBQztRQUUzQjs7V0FFRztRQUNILFdBQU0sR0FBZ0IsU0FBUyxDQUFDO1FBRWhDLG9GQUFvRjtRQUNwRixhQUFRLEdBQWEsS0FBSyxDQUFDO1FBRTNCOzs7V0FHRztRQUNILHVCQUFrQixHQUFhLElBQUksQ0FBQztJQVl0QyxDQUFDO0NBQUE7QUFXRCxNQUFNLE9BQWdCLGFBQWE7SUFlakMsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBSUQsWUFBWSxRQUFrQjtRQWhCOUIseURBQXlEO1FBQ3hDLG9CQUFlLEdBQWdDLElBQUksWUFBWSxFQUFpQixDQUFDO1FBRWxHLDZDQUE2QztRQUM1QixnQkFBVyxHQUF1QyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUU1Rzs7VUFFRTtRQUNNLGVBQVUsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVF0RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2pFOztjQUVFO1lBQ0YsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3JFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7TUFFRTtJQUNLLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxvQ0FBb0M7SUFDN0IsaUJBQWlCLENBQUMsSUFBbUIsRUFBRSxRQUFpQjtRQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFO1lBQ25ELGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVc7WUFDeEQsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtTQUMzQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTFDLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BFLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQ7T0FDRztJQUNJLGVBQWUsQ0FBQyxVQUF5QixFQUFFLEtBQTJCO1FBQzNFLFVBQVUsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzVCLFVBQVUsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7TUFFRTtJQUNLLFlBQVksQ0FBQyxVQUF5QjtRQUMzQyxVQUFVLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUM5QixDQUFDOytHQXhFbUIsYUFBYTttR0FBYixhQUFhOzs0RkFBYixhQUFhO2tCQURsQyxTQUFTOzZFQUlRLFFBQVE7c0JBQXZCLEtBQUs7Z0JBR1csZUFBZTtzQkFBL0IsTUFBTTtnQkFHVSxXQUFXO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFyYW1zLCBRdWVyeVBhcmFtc0hhbmRsaW5nIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExpbmtJdGVtIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvbmF2aWdhdGlvbi9saW5rLWl0ZW0nO1xuaW1wb3J0IHsgVGVsZW1ldHJ5U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdGVsZW1ldHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgVmlld1N0YXR1cyB9IGZyb20gJy4uLy4uL3NoYXJlZC9kaXNwbGF5JztcblxuZXhwb3J0IGNsYXNzIEhpZXJhcmNoeUl0ZW0gaW1wbGVtZW50cyBMaW5rSXRlbSB7XG4gIGlkOiBzdHJpbmcgPSAnJztcblxuICAvKiogTGFiZWwgdG8gZGlzcGxheSBmb3IgdGhlIGl0ZW0gKi9cbiAgbGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBUZXh0IHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgaXRlbSdzIHRvb2x0aXAuIFdoZW4gbm90IHByb3ZpZGVkLCB0aGUgbGFiZWwgd2lsbCBiZSBkaXNwbGF5ZWQuICovXG4gIHRvb2x0aXA/OiBzdHJpbmc7XG5cbiAgLyoqIFRleHQgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBpdGVtJ3MgaWNvbiB0b29sdGlwLiAqL1xuICBpY29uVG9vbHRpcD86IHN0cmluZztcblxuICAvKiogSW5kaWNhdGVzIGhvdyBtYW55IGxldmVscyBkZWVwIHRoZSBpdGVtIGlzIGluIHRoZSBwYXJlbnQgc3RydWN0dXJlICovXG4gIGxldmVsOiBudW1iZXIgPSAwO1xuXG4gIHVybD86IHN0cmluZztcblxuICBxdWVyeVBhcmFtcz86IFBhcmFtcyB8IG51bGw7XG5cbiAgcXVlcnlQYXJhbXNIYW5kbGluZz86IFF1ZXJ5UGFyYW1zSGFuZGxpbmc7XG5cbiAgaWNvbj86IHN0cmluZztcblxuICAvKiogRGlzcGxheSBpdGVtIGFzIGEgbGluaywgYSBoZWFkaW5nLCBvciB3aXRoIGEgZGl2aWRlciBsaW5lIGJlbG93IGl0ICovXG4gIGRpc3BsYXk/OiAnZGVmYXVsdCcgfCAnaGVhZGluZycgfCAnZGl2aWRlcicgPSAnZGVmYXVsdCc7XG5cbiAgLyoqIFNldCB0byBoaWRlIHRvZ2dsZSwgZXZlbiBpZiBpdGVtIGhhcyBjaGlsZHJlbiAqL1xuICBoaWRlVG9nZ2xlPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBGbGFnIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIGl0ZW0gaGFzIGNoaWxkcmVuIG9yIG5vdCwgbW9zdGx5IGRyaXZlc1xuICAgKiAgd2hldGhlciB5b3UgZ2V0IHRoZSBleHBhbmQvY29sbGFwc2UgYnV0dG9uXG4gICAqL1xuICBoYXNDaGlsZHJlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBBcnJheSBvZiBjaGlsZHJlbiBpZiBhbnkgZm9yIHRoZSBpdGVtICovXG4gIGNoaWxkcmVuOiBBcnJheTxIaWVyYXJjaHlJdGVtPiA9IFtdO1xuXG4gIC8qKiBGbGFnIHRvIGluZGljYXRlIGlmIHRoZSBpdGVtIGhhcyBiZWVuIGV4cGFuZGVkICovXG4gIGV4cGFuZGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBGbGFnIHRvIGluZGljYXRlIGlmIHRoZSBpdGVtIGlzIHNlbGVjdGVkICovXG4gIHNlbGVjdGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBGbGFnIHRvIGluZGljYXRlIGlmIHRoZSBpdGVtIGNhbiBiZSBzZWxlY3RlZCAqL1xuICBzZWxlY3RhYmxlPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5PzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBTdGF0dXMgb2YgZWFjaCBpdGVtIHRvIGluZGljYXRlIHdoZXRoZXIgY2hpbGRyZW4gbG9va3VwIGlzIHBlbmRpbmcgb3JcbiAgICogIGlmIGFuIGVycm9yIG9jY3VycmVkIHJldHJpZXZpbmcgZGF0YVxuICAgKi9cbiAgc3RhdHVzPzogVmlld1N0YXR1cyA9IFwiaGFzRGF0YVwiO1xuXG4gIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGl0ZW0gaXMgYSB0b3AgbGV2ZWwgZW50aXR5LCBlLmcuIE9yZ2FuaXphdGlvbiBvciBDb3N0IENlbnRlciAqL1xuICB0b3BMZXZlbD86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hlbiBjaGVja2luZyB0aGUgdXJsIGZvciBhY3RpdmVuZXNzLCB0aGUgdXJsIG11c3QgbWF0Y2ggZXhhY3RseSBvciBwYXJ0aWFsbHlcbiAgICogQHNlZSBodHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvcm91dGVyI2FjdGl2ZS1yb3V0ZXItbGlua3NcbiAgICovXG4gIGlzQWN0aXZlRXhhY3RNYXRjaD86IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIHBhcmVudCBpdGVtLiBVc2VmdWwgaWYgeW91IG5lZWQgdG8gd2FsayB0aGUgdHJlZSBpbiByZXZlcnNlLiBBbiBleGFtcGxlIHVzYWdlXG4gICAqIHdvdWxkIGJlIHRvIGV4cGFuZCBhbGwgcGFyZW50IGl0ZW1zIGFib3ZlIGEgbm9kZSB0aGF0IGlzIHRoZSBjdXJyZW50IHNlbGVjdGlvbi5cbiAgICovXG4gIHBhcmVudEl0ZW0/OiBIaWVyYXJjaHlJdGVtO1xuXG4gIC8qKlxuICAgKiBTZXQgdG8gaGF2ZSBubyBsZXZlbCBpbmRlbnRhdGlvbiBmb3IgdGhlIGl0ZW0uIFVzZWZ1bCBmb3IgdG9wIGxldmVsIGl0ZW1zIGluIGEgdHJlZSB0aGF0IGlzIG5vdCBoaWVyYXJjaGljYWxcbiAgICovXG4gIG5vSW5kZW50PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgSGllcmFyY2h5SXRlbSB0aGF0IGhhcyBiZWVuIGNsaWNrZWQgdG8gdG9nZ2xlIGl0cyBleHBhbnNpb24gc3RhdGUuXG4gKi9cbmV4cG9ydCB0eXBlIFRvZ2dsZWRIaWVyYXJjaHlJdGVtID0ge1xuICBpdGVtOiBIaWVyYXJjaHlJdGVtO1xuICBleHBhbmRlZDogYm9vbGVhbjtcbn07XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEhpZXJhcmNoeUJhc2UgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cbiAgLyoqIEZpcnN0IGl0ZW0gdG8gc3RhcnQgdGhlIGhpZXJhcmNoeSBzdHJ1Y3R1cmUgKi9cbiAgQElucHV0KCkgcHVibGljIHJvb3ROb2RlITogSGllcmFyY2h5SXRlbTtcblxuICAvKiogRXZlbnQgZW1pdHRlciB0byByZXF1ZXN0IGNoaWxkcmVuIGZvciBhIGdpdmVuIGl0ZW0gKi9cbiAgQE91dHB1dCgpIHB1YmxpYyBnZXRJdGVtQ2hpbGRyZW46IEV2ZW50RW1pdHRlcjxIaWVyYXJjaHlJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8SGllcmFyY2h5SXRlbT4oKTtcblxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGFuIGl0ZW0gaXMgdG9nZ2xlZC4gKi9cbiAgQE91dHB1dCgpIHB1YmxpYyBpdGVtVG9nZ2xlZDogRXZlbnRFbWl0dGVyPFRvZ2dsZWRIaWVyYXJjaHlJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8VG9nZ2xlZEhpZXJhcmNoeUl0ZW0+KCk7XG5cbiAgLyoqXG4gICogVXNlZCB0byB1bnN1YnNjcmliZSBmcm9tIG9ic2VydmFibGVzXG4gICovXG4gIHByaXZhdGUgX2Rlc3Ryb3llZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyBnZXQgZGVzdHJveWVkKCk6IFN1YmplY3Q8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9kZXN0cm95ZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgdGVsZW1ldHJ5U2VydmljZTogVGVsZW1ldHJ5U2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB0aGlzLnRlbGVtZXRyeVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoVGVsZW1ldHJ5U2VydmljZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzICYmIGNoYW5nZXMucm9vdE5vZGUgJiYgY2hhbmdlcy5yb290Tm9kZS5jdXJyZW50VmFsdWUpIHtcbiAgICAgIC8qKiBJZiB0aGUgcm9vdE5vZGUgaGFzIGNoaWxkcmVuIGFuZCB3ZSBkb24ndCBrbm93IGFib3V0IHRoZW0geWV0IHdlIG11c3QgYmUgbG9hZGluZ1xuICAgICAgKiAgdGhlIHZpZXcgd2l0aG91dCB0aGUgbmV3IGhpZXJhcmNoeSBhcGlcbiAgICAgICovXG4gICAgICBpZiAodGhpcy5yb290Tm9kZS5oYXNDaGlsZHJlbiAmJiB0aGlzLnJvb3ROb2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLmdldEl0ZW1DaGlsZHJlbi5lbWl0KHRoaXMucm9vdE5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAqIEZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkXG4gICovXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKiBIYW5kbGVyIGZvciB0aGUgdG9nZ2xlIGJ1dHRvbiAqL1xuICBwdWJsaWMgdG9nZ2xlSXRlbUNsaWNrZWQoaXRlbTogSGllcmFyY2h5SXRlbSwgZXhwYW5kZWQ6IGJvb2xlYW4pIHtcbiAgICBpdGVtLmV4cGFuZGVkID0gZXhwYW5kZWQ7XG4gICAgdGhpcy50ZWxlbWV0cnlTZXJ2aWNlLnRyYWNrRXZlbnQoJ3RvZ2dsZS10cmVlLW5vZGUnLCB7XG4gICAgICBuZXdFeHBhbmRTdGF0ZTogaXRlbS5leHBhbmRlZCA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJyxcbiAgICAgIGl0ZW1EZXB0aDogYCR7aXRlbS5sZXZlbH1gLFxuICAgIH0pO1xuXG4gICAgdGhpcy5pdGVtVG9nZ2xlZC5lbWl0KHsgaXRlbSwgZXhwYW5kZWQgfSk7XG5cbiAgICBpZiAoaXRlbS5leHBhbmRlZCAmJiBpdGVtLmhhc0NoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICBpdGVtLnN0YXR1cyA9IFwicGVuZGluZ1wiO1xuICAgICAgdGhpcy5nZXRJdGVtQ2hpbGRyZW4uZW1pdChpdGVtKTtcbiAgICB9XG4gIH1cblxuICAvKiogTWV0aG9kIGV4cG9zZWQgdG8gdGhlIHBhcmVudCBjb21wb25lbnQgdG8gc2V0IHRoZSBpdGVtcyBjaGlsZHJlbiBvbmNlIHRoZXkgYXJlIGF2YWlsYWJsZVxuICAgKi9cbiAgcHVibGljIHNldEl0ZW1DaGlsZHJlbihwYXJlbnRJdGVtOiBIaWVyYXJjaHlJdGVtLCBpdGVtczogQXJyYXk8SGllcmFyY2h5SXRlbT4pOiB2b2lkIHtcbiAgICBwYXJlbnRJdGVtLmNoaWxkcmVuID0gaXRlbXM7XG4gICAgcGFyZW50SXRlbS5zdGF0dXMgPSBcImhhc0RhdGFcIjtcbiAgfVxuXG4gIC8qKiBNZXRob2QgZXhwb3NlZCB0byB0aGUgcGFyZW50IGNvbXBvbmVudCB0byBpbmRpY2F0ZSB0aGF0IHNvbWV0aGluZyBoYXBwZW5lZCBvbiB0aGVcbiAgICogIGl0ZW0gdGhhdCBjYXVzZWQgYW4gZXJyb3IsIGNvdWxkIGJlIHJldHJpZXZpbmcgY2hpbGRyZW5cbiAgKi9cbiAgcHVibGljIHNldEl0ZW1FcnJvcihwYXJlbnRJdGVtOiBIaWVyYXJjaHlJdGVtKTogdm9pZCB7XG4gICAgcGFyZW50SXRlbS5zdGF0dXMgPSBcImVycm9yXCI7XG4gIH1cbn1cbiJdfQ==
@@ -1,54 +0,0 @@
1
- export var HierarchyMocks;
2
- (function (HierarchyMocks) {
3
- HierarchyMocks.mockRoot = () => ({
4
- id: "1",
5
- level: 0,
6
- hasChildren: true,
7
- children: [],
8
- label: ''
9
- });
10
- HierarchyMocks.bldgWithChildren = () => {
11
- return {
12
- placeId: 3, parentId: 0, placeTypeId: 2, placeCode: 'HASCHILDREN_BLDG', placeInfo: 'A Cool Bldg Has Children',
13
- hasChildren: true, placeChildren: [], meterChildren: [], hasActiveChildren: true
14
- };
15
- };
16
- HierarchyMocks.bldgWithChildrenHierarchyItem = () => ({
17
- id: HierarchyMocks.bldgWithChildren().placeId.toString(), icon: 'icon-building', label: `${HierarchyMocks.bldgWithChildren().placeInfo} [${HierarchyMocks.bldgWithChildren().placeCode}]`,
18
- children: [], hasChildren: true, level: 1, selectable: true, topLevel: false
19
- });
20
- HierarchyMocks.orgWithChildren = () => {
21
- return {
22
- placeId: 1, parentId: 0, placeTypeId: 1, placeCode: 'HASCHILDREN_ORG', placeInfo: 'A Org Has Children',
23
- hasChildren: true, placeChildren: [], meterChildren: [], hasActiveChildren: true
24
- };
25
- };
26
- HierarchyMocks.orgWithChildrenHierarchyItem = () => ({
27
- id: HierarchyMocks.orgWithChildren().placeId.toString(), icon: 'icon-organization', label: `${HierarchyMocks.orgWithChildren().placeInfo} [${HierarchyMocks.orgWithChildren().placeCode}]`,
28
- children: [], hasChildren: true, level: 1, selectable: true, topLevel: true
29
- });
30
- HierarchyMocks.orgWithoutChildren = () => {
31
- return {
32
- placeId: 2, parentId: 0, placeTypeId: 1, placeCode: 'NOCHILDREN_ORG', placeInfo: 'No Children Org',
33
- hasChildren: false, placeChildren: [], meterChildren: [], hasActiveChildren: false
34
- };
35
- };
36
- HierarchyMocks.orgWithoutChildrenHierarchyItem = () => ({
37
- id: HierarchyMocks.orgWithoutChildren().placeId.toString(), icon: 'icon-organization', label: `${HierarchyMocks.orgWithoutChildren().placeInfo} [${HierarchyMocks.orgWithoutChildren().placeCode}]`,
38
- children: [], hasChildren: false, level: 1, selectable: true, topLevel: true
39
- });
40
- HierarchyMocks.bldgWithoutChildren = () => {
41
- return {
42
- placeId: 4, parentId: 0, placeTypeId: 2, placeCode: 'NOCHILDREN_BLDG', placeInfo: 'Zzz No Children Bldg',
43
- hasChildren: false, placeChildren: [], meterChildren: [], hasActiveChildren: false
44
- };
45
- };
46
- HierarchyMocks.bldgWithoutChildrenHierarchyItem = () => ({
47
- id: HierarchyMocks.bldgWithoutChildren().placeId.toString(), icon: 'icon-building', label: `${HierarchyMocks.bldgWithoutChildren().placeInfo} [${HierarchyMocks.bldgWithoutChildren().placeCode}]`,
48
- children: [], hasChildren: false, level: 1, selectable: true, topLevel: false
49
- });
50
- HierarchyMocks.sortedHierarchyPlaces = () => [
51
- HierarchyMocks.bldgWithChildrenHierarchyItem(), HierarchyMocks.orgWithChildrenHierarchyItem(), HierarchyMocks.orgWithoutChildrenHierarchyItem(), HierarchyMocks.bldgWithoutChildrenHierarchyItem()
52
- ];
53
- })(HierarchyMocks || (HierarchyMocks = {}));
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2h5LW1vY2tzLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9oaWVyYXJjaHkvaGllcmFyY2h5LW1vY2tzLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxLQUFXLGNBQWMsQ0FvRDlCO0FBcERELFdBQWlCLGNBQWM7SUFDaEIsdUJBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFlO1FBQzNDLEVBQUUsRUFBRSxHQUFHO1FBQ1AsS0FBSyxFQUFFLENBQUM7UUFDUixXQUFXLEVBQUUsSUFBSTtRQUNqQixRQUFRLEVBQUUsRUFBRTtRQUNaLEtBQUssRUFBRSxFQUFFO0tBQ1YsQ0FBQSxDQUFDO0lBRVcsK0JBQWdCLEdBQUcsR0FBRyxFQUFFO1FBQUcsT0FBTztZQUM3QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLDBCQUEwQjtZQUM3RyxXQUFXLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJO1NBQ2pGLENBQUE7SUFBQSxDQUFDLENBQUM7SUFFVSw0Q0FBNkIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFlO1FBQ2hFLEVBQUUsRUFBRSxlQUFBLGdCQUFnQixFQUFFLENBQUMsT0FBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLEdBQUcsZUFBQSxnQkFBZ0IsRUFBRSxDQUFDLFNBQVMsS0FBSyxlQUFBLGdCQUFnQixFQUFFLENBQUMsU0FBUyxHQUFHO1FBQzdJLFFBQVEsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUs7S0FDN0UsQ0FBQSxDQUFDO0lBRVcsOEJBQWUsR0FBRyxHQUFHLEVBQUU7UUFBRyxPQUFPO1lBQzVDLE9BQU8sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsb0JBQW9CO1lBQ3RHLFdBQVcsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUk7U0FDakYsQ0FBQTtJQUFBLENBQUMsQ0FBQztJQUVVLDJDQUE0QixHQUFHLEdBQUcsRUFBRSxDQUFDLENBQWU7UUFDL0QsRUFBRSxFQUFFLGVBQUEsZUFBZSxFQUFFLENBQUMsT0FBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsR0FBRyxlQUFBLGVBQWUsRUFBRSxDQUFDLFNBQVMsS0FBSyxlQUFBLGVBQWUsRUFBRSxDQUFDLFNBQVMsR0FBRztRQUM5SSxRQUFRLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJO0tBQzVFLENBQUEsQ0FBQztJQUVXLGlDQUFrQixHQUFHLEdBQUcsRUFBRTtRQUFHLE9BQU87WUFDL0MsT0FBTyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxpQkFBaUI7WUFDbEcsV0FBVyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsS0FBSztTQUNuRixDQUFBO0lBQUEsQ0FBQyxDQUFDO0lBRVUsOENBQStCLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBZTtRQUNsRSxFQUFFLEVBQUUsZUFBQSxrQkFBa0IsRUFBRSxDQUFDLE9BQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLEdBQUcsZUFBQSxrQkFBa0IsRUFBRSxDQUFDLFNBQVMsS0FBSyxlQUFBLGtCQUFrQixFQUFFLENBQUMsU0FBUyxHQUFHO1FBQ3ZKLFFBQVEsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUk7S0FDN0UsQ0FBQSxDQUFDO0lBRVcsa0NBQW1CLEdBQUcsR0FBRyxFQUFFO1FBQUcsT0FBTztZQUNoRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLHNCQUFzQjtZQUN4RyxXQUFXLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxLQUFLO1NBQ25GLENBQUE7SUFBQSxDQUFDLENBQUM7SUFFVSwrQ0FBZ0MsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFlO1FBQ25FLEVBQUUsRUFBRSxlQUFBLG1CQUFtQixFQUFFLENBQUMsT0FBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLEdBQUcsZUFBQSxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsS0FBSyxlQUFBLG1CQUFtQixFQUFFLENBQUMsU0FBUyxHQUFHO1FBQ3RKLFFBQVEsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUs7S0FDOUUsQ0FBQSxDQUFDO0lBRVcsb0NBQXFCLEdBQUcsR0FBRyxFQUFFLENBQXVCO1FBQy9ELGVBQUEsNkJBQTZCLEVBQUUsRUFBRSxlQUFBLDRCQUE0QixFQUFFLEVBQUUsZUFBQSwrQkFBK0IsRUFBRSxFQUFFLGVBQUEsZ0NBQWdDLEVBQUU7S0FDdkksQ0FBQztBQUNKLENBQUMsRUFwRGdCLGNBQWMsS0FBZCxjQUFjLFFBb0Q5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhpZXJhcmNoeUl0ZW0gfSBmcm9tICcuL2hpZXJhcmNoeS1iYXNlJztcblxuZXhwb3J0IG5hbWVzcGFjZSBIaWVyYXJjaHlNb2NrcyB7XG4gIGV4cG9ydCBjb25zdCBtb2NrUm9vdCA9ICgpID0+IDxIaWVyYXJjaHlJdGVtPntcbiAgICBpZDogXCIxXCIsXG4gICAgbGV2ZWw6IDAsXG4gICAgaGFzQ2hpbGRyZW46IHRydWUsXG4gICAgY2hpbGRyZW46IFtdLFxuICAgIGxhYmVsOiAnJ1xuICB9O1xuXG4gIGV4cG9ydCBjb25zdCBibGRnV2l0aENoaWxkcmVuID0gKCkgPT4geyByZXR1cm4ge1xuICAgIHBsYWNlSWQ6IDMsIHBhcmVudElkOiAwLCBwbGFjZVR5cGVJZDogMiwgcGxhY2VDb2RlOiAnSEFTQ0hJTERSRU5fQkxERycsIHBsYWNlSW5mbzogJ0EgQ29vbCBCbGRnIEhhcyBDaGlsZHJlbicsXG4gICAgaGFzQ2hpbGRyZW46IHRydWUsIHBsYWNlQ2hpbGRyZW46IFtdLCBtZXRlckNoaWxkcmVuOiBbXSwgaGFzQWN0aXZlQ2hpbGRyZW46IHRydWVcbiAgfX07XG5cbiAgZXhwb3J0IGNvbnN0IGJsZGdXaXRoQ2hpbGRyZW5IaWVyYXJjaHlJdGVtID0gKCkgPT4gPEhpZXJhcmNoeUl0ZW0+e1xuICAgIGlkOiBibGRnV2l0aENoaWxkcmVuKCkucGxhY2VJZCEudG9TdHJpbmcoKSwgaWNvbjogJ2ljb24tYnVpbGRpbmcnLCBsYWJlbDogYCR7YmxkZ1dpdGhDaGlsZHJlbigpLnBsYWNlSW5mb30gWyR7YmxkZ1dpdGhDaGlsZHJlbigpLnBsYWNlQ29kZX1dYCxcbiAgICBjaGlsZHJlbjogW10sIGhhc0NoaWxkcmVuOiB0cnVlLCBsZXZlbDogMSwgc2VsZWN0YWJsZTogdHJ1ZSwgdG9wTGV2ZWw6IGZhbHNlXG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IG9yZ1dpdGhDaGlsZHJlbiA9ICgpID0+IHsgcmV0dXJuIHtcbiAgICBwbGFjZUlkOiAxLCBwYXJlbnRJZDogMCwgcGxhY2VUeXBlSWQ6IDEsIHBsYWNlQ29kZTogJ0hBU0NISUxEUkVOX09SRycsIHBsYWNlSW5mbzogJ0EgT3JnIEhhcyBDaGlsZHJlbicsXG4gICAgaGFzQ2hpbGRyZW46IHRydWUsIHBsYWNlQ2hpbGRyZW46IFtdLCBtZXRlckNoaWxkcmVuOiBbXSwgaGFzQWN0aXZlQ2hpbGRyZW46IHRydWVcbiAgfX07XG5cbiAgZXhwb3J0IGNvbnN0IG9yZ1dpdGhDaGlsZHJlbkhpZXJhcmNoeUl0ZW0gPSAoKSA9PiA8SGllcmFyY2h5SXRlbT57XG4gICAgaWQ6IG9yZ1dpdGhDaGlsZHJlbigpLnBsYWNlSWQhLnRvU3RyaW5nKCksIGljb246ICdpY29uLW9yZ2FuaXphdGlvbicsIGxhYmVsOiBgJHtvcmdXaXRoQ2hpbGRyZW4oKS5wbGFjZUluZm99IFske29yZ1dpdGhDaGlsZHJlbigpLnBsYWNlQ29kZX1dYCxcbiAgICBjaGlsZHJlbjogW10sIGhhc0NoaWxkcmVuOiB0cnVlLCBsZXZlbDogMSwgc2VsZWN0YWJsZTogdHJ1ZSwgdG9wTGV2ZWw6IHRydWVcbiAgfTtcblxuICBleHBvcnQgY29uc3Qgb3JnV2l0aG91dENoaWxkcmVuID0gKCkgPT4geyByZXR1cm4ge1xuICAgIHBsYWNlSWQ6IDIsIHBhcmVudElkOiAwLCBwbGFjZVR5cGVJZDogMSwgcGxhY2VDb2RlOiAnTk9DSElMRFJFTl9PUkcnLCBwbGFjZUluZm86ICdObyBDaGlsZHJlbiBPcmcnLFxuICAgIGhhc0NoaWxkcmVuOiBmYWxzZSwgcGxhY2VDaGlsZHJlbjogW10sIG1ldGVyQ2hpbGRyZW46IFtdLCBoYXNBY3RpdmVDaGlsZHJlbjogZmFsc2VcbiAgfX07XG5cbiAgZXhwb3J0IGNvbnN0IG9yZ1dpdGhvdXRDaGlsZHJlbkhpZXJhcmNoeUl0ZW0gPSAoKSA9PiA8SGllcmFyY2h5SXRlbT57XG4gICAgaWQ6IG9yZ1dpdGhvdXRDaGlsZHJlbigpLnBsYWNlSWQhLnRvU3RyaW5nKCksIGljb246ICdpY29uLW9yZ2FuaXphdGlvbicsIGxhYmVsOiBgJHtvcmdXaXRob3V0Q2hpbGRyZW4oKS5wbGFjZUluZm99IFske29yZ1dpdGhvdXRDaGlsZHJlbigpLnBsYWNlQ29kZX1dYCxcbiAgICBjaGlsZHJlbjogW10sIGhhc0NoaWxkcmVuOiBmYWxzZSwgbGV2ZWw6IDEsIHNlbGVjdGFibGU6IHRydWUsIHRvcExldmVsOiB0cnVlXG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IGJsZGdXaXRob3V0Q2hpbGRyZW4gPSAoKSA9PiB7IHJldHVybiB7XG4gICAgcGxhY2VJZDogNCwgcGFyZW50SWQ6IDAsIHBsYWNlVHlwZUlkOiAyLCBwbGFjZUNvZGU6ICdOT0NISUxEUkVOX0JMREcnLCBwbGFjZUluZm86ICdaenogTm8gQ2hpbGRyZW4gQmxkZycsXG4gICAgaGFzQ2hpbGRyZW46IGZhbHNlLCBwbGFjZUNoaWxkcmVuOiBbXSwgbWV0ZXJDaGlsZHJlbjogW10sIGhhc0FjdGl2ZUNoaWxkcmVuOiBmYWxzZVxuICB9fTtcblxuICBleHBvcnQgY29uc3QgYmxkZ1dpdGhvdXRDaGlsZHJlbkhpZXJhcmNoeUl0ZW0gPSAoKSA9PiA8SGllcmFyY2h5SXRlbT57XG4gICAgaWQ6IGJsZGdXaXRob3V0Q2hpbGRyZW4oKS5wbGFjZUlkIS50b1N0cmluZygpLCBpY29uOiAnaWNvbi1idWlsZGluZycsIGxhYmVsOiBgJHtibGRnV2l0aG91dENoaWxkcmVuKCkucGxhY2VJbmZvfSBbJHtibGRnV2l0aG91dENoaWxkcmVuKCkucGxhY2VDb2RlfV1gLFxuICAgIGNoaWxkcmVuOiBbXSwgaGFzQ2hpbGRyZW46IGZhbHNlLCBsZXZlbDogMSwgc2VsZWN0YWJsZTogdHJ1ZSwgdG9wTGV2ZWw6IGZhbHNlXG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IHNvcnRlZEhpZXJhcmNoeVBsYWNlcyA9ICgpID0+IDxBcnJheTxIaWVyYXJjaHlJdGVtPj5bXG4gICAgYmxkZ1dpdGhDaGlsZHJlbkhpZXJhcmNoeUl0ZW0oKSwgb3JnV2l0aENoaWxkcmVuSGllcmFyY2h5SXRlbSgpLCBvcmdXaXRob3V0Q2hpbGRyZW5IaWVyYXJjaHlJdGVtKCksIGJsZGdXaXRob3V0Q2hpbGRyZW5IaWVyYXJjaHlJdGVtKClcbiAgXTtcbn1cbiJdfQ==