@mediusinc/mng-commons 6.0.0-rc.2 → 6.0.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/core/helpers/notification.d.ts +17 -1
  2. package/core/i18n/i18n-error.d.ts +2 -3
  3. package/core/router/route-builder.d.ts +1 -1
  4. package/esm2022/core/helpers/notification.mjs +19 -4
  5. package/esm2022/core/i18n/i18n-error.mjs +10 -8
  6. package/esm2022/core/router/route-builder.mjs +2 -2
  7. package/esm2022/form/api/descriptors/action-button.descriptor.mjs +5 -17
  8. package/esm2022/form/api/descriptors/button-style.builder.mjs +80 -101
  9. package/esm2022/form/api/index.mjs +2 -1
  10. package/esm2022/form/api/models/button.model.mjs +2 -0
  11. package/esm2022/model/helpers/i18n.mjs +14 -9
  12. package/esm2022/table/components/column-value/column-value.component.mjs +4 -3
  13. package/esm2022/table/components/table/table.component.mjs +12 -11
  14. package/esm2022/table/helpers/notification.mjs +19 -13
  15. package/esm2022/tableview/action/components/action/action.component.mjs +41 -37
  16. package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +13 -8
  17. package/esm2022/tableview/action/helpers/i18n.mjs +50 -30
  18. package/esm2022/tableview/action/helpers/notification.mjs +73 -12
  19. package/esm2022/tableview/action/helpers/styles.mjs +2 -2
  20. package/esm2022/tableview/action/services/action-executor.service.mjs +83 -66
  21. package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +34 -21
  22. package/esm2022/tableview/api/action/descriptors/action-link-descriptor.factory.mjs +4 -4
  23. package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +49 -67
  24. package/esm2022/tableview/api/action/models/action-confirmation.model.mjs +2 -0
  25. package/esm2022/tableview/api/action/models/action-descriptor.types.mjs +1 -1
  26. package/esm2022/tableview/api/editor/descriptors/field-action.descriptor.mjs +14 -8
  27. package/esm2022/tableview/api/editor/models/formly-custom-field.model.mjs +1 -1
  28. package/esm2022/tableview/api/index.mjs +2 -2
  29. package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +67 -37
  30. package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +5 -8
  31. package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +7 -5
  32. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +29 -18
  33. package/esm2022/tableview/provide.mjs +44 -1
  34. package/fesm2022/mediusinc-mng-commons-core.mjs +29 -12
  35. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  36. package/fesm2022/mediusinc-mng-commons-form-api.mjs +137 -169
  37. package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
  38. package/fesm2022/mediusinc-mng-commons-model.mjs +13 -8
  39. package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
  40. package/fesm2022/mediusinc-mng-commons-table.mjs +32 -24
  41. package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
  42. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +165 -215
  43. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  44. package/fesm2022/mediusinc-mng-commons-tableview.mjs +358 -197
  45. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  46. package/form/api/descriptors/action-button.descriptor.d.ts +11 -13
  47. package/form/api/descriptors/button-style.builder.d.ts +30 -44
  48. package/form/api/index.d.ts +1 -0
  49. package/form/api/models/button.model.d.ts +19 -0
  50. package/i18n/sl.json +56 -6
  51. package/model/helpers/i18n.d.ts +8 -3
  52. package/package.json +13 -13
  53. package/table/components/column-value/column-value.component.d.ts +1 -0
  54. package/table/components/table/table.component.d.ts +0 -1
  55. package/table/helpers/notification.d.ts +10 -1
  56. package/tableview/action/components/action/action.component.d.ts +8 -11
  57. package/tableview/action/helpers/i18n.d.ts +36 -11
  58. package/tableview/action/helpers/notification.d.ts +37 -3
  59. package/tableview/api/action/descriptors/action-editor.descriptor.d.ts +18 -8
  60. package/tableview/api/action/descriptors/action.descriptor.d.ts +22 -31
  61. package/tableview/api/action/models/action-confirmation.model.d.ts +14 -0
  62. package/tableview/api/action/models/action-descriptor.types.d.ts +4 -0
  63. package/tableview/api/editor/descriptors/field-action.descriptor.d.ts +5 -5
  64. package/tableview/api/index.d.ts +1 -1
  65. package/tableview/api/tableview/helpers/tableview-default-actions.d.ts +1 -1
  66. package/tableview/provide.d.ts +7 -0
  67. package/version-info.json +6 -6
  68. package/esm2022/tableview/api/action/descriptors/action-confirmation.descriptor.mjs +0 -88
  69. package/tableview/api/action/descriptors/action-confirmation.descriptor.d.ts +0 -37
@@ -1,59 +1,43 @@
1
1
  import { StyleLevelEnum, StyleSizeEnum } from '@mediusinc/mng-commons/core';
2
2
  export class ButtonStyleBuilder {
3
- constructor(level = StyleLevelEnum.Default, customClass) {
4
- this._size = StyleSizeEnum.Normal;
5
- this._textButton = false;
6
- this._outlineButton = false;
7
- this._raisedButton = false;
8
- this._roundedStyle = ButtonStyleRoundedEnum.DEFAULT;
9
- this._actionLevel = level;
10
- this._customClass = customClass;
3
+ static from(opts) {
4
+ const builder = new ButtonStyleBuilder();
5
+ builder._level = opts?.level;
6
+ builder._size = opts?.size;
7
+ builder._textButton = opts?.textButton;
8
+ builder._outlined = opts?.outlined;
9
+ builder._raised = opts?.raised;
10
+ builder._rounded = opts?.rounded;
11
+ builder._class = opts?.class;
12
+ return builder;
11
13
  }
12
- build(hasNoTitle = false) {
13
- const styles = [this.convertActionLevelToStyleClass(), this.convertSizeToStyleClass(), this._customClass];
14
- if (hasNoTitle && this._roundedStyle === ButtonStyleRoundedEnum.DEFAULT) {
15
- styles.push(`p-button-rounded mng-action-button-icon`);
16
- }
17
- if (this._textButton) {
18
- styles.push(`p-button-text`);
19
- }
20
- if (this._outlineButton) {
21
- styles.push(`p-button-outlined`);
22
- }
23
- if (this._raisedButton) {
24
- styles.push(`p-button-raised`);
25
- }
26
- if (this._roundedStyle === ButtonStyleRoundedEnum.ROUNDED) {
27
- styles.push('p-button-rounded');
28
- }
29
- return styles.join(' ');
14
+ get level() {
15
+ return this._level;
30
16
  }
31
- /**
32
- * creates instance of style builder with custom properties
33
- * @param actionLevel ActionLevelEnum
34
- * @param size ActionSizeEnum
35
- * @param textButton if true, text button will be applied
36
- * @param outlineButton if true, outlined button will be applied
37
- * @param raisedButton if true, raised button will be applied
38
- * @param customClass additional custom classes (will be added at generating)
39
- */
40
- static create(actionLevel, size, textButton, outlineButton, raisedButton, roundedButton, customClass) {
41
- const descriptor = new ButtonStyleBuilder(actionLevel, customClass);
42
- descriptor._actionLevel = actionLevel ?? descriptor._actionLevel;
43
- descriptor._size = size ?? descriptor._size;
44
- descriptor._textButton = textButton ?? descriptor._textButton;
45
- descriptor._outlineButton = outlineButton ?? descriptor._outlineButton;
46
- descriptor._raisedButton = raisedButton ?? descriptor._raisedButton;
47
- descriptor._roundedStyle = roundedButton ?? descriptor._roundedStyle;
48
- descriptor._customClass = customClass;
49
- return descriptor;
17
+ get size() {
18
+ return this._size;
19
+ }
20
+ get textButton() {
21
+ return this._textButton;
22
+ }
23
+ get outlined() {
24
+ return this._outlined;
25
+ }
26
+ get raised() {
27
+ return this._raised;
28
+ }
29
+ get rounded() {
30
+ return this._rounded;
31
+ }
32
+ get class() {
33
+ return this._class;
50
34
  }
51
35
  /**
52
36
  * sets custom action level and returns this object
53
- * @param actionLevel
37
+ * @param level
54
38
  */
55
- withActionLevel(actionLevel) {
56
- this._actionLevel = actionLevel;
39
+ withLevel(level) {
40
+ this._level = level;
57
41
  return this;
58
42
  }
59
43
  /**
@@ -66,42 +50,73 @@ export class ButtonStyleBuilder {
66
50
  }
67
51
  /**
68
52
  * sets text button property
69
- * @param withText default true
53
+ * @param text default true
70
54
  */
71
- withTextButton(withText = true) {
72
- this._textButton = withText;
55
+ withTextButton(text = true) {
56
+ this._textButton = text;
73
57
  return this;
74
58
  }
75
59
  /**
76
60
  * sets outline button property
77
- * @param withOutline default true
61
+ * @param outlined default true
78
62
  */
79
- withOutlineButton(withOutline = true) {
80
- this._outlineButton = withOutline;
63
+ withOutlined(outlined = true) {
64
+ this._outlined = outlined;
81
65
  return this;
82
66
  }
83
67
  /**
84
68
  * sets raised button property
85
- * @param withRaised default true
69
+ * @param raised default true
86
70
  */
87
- withRaisedButton(withRaised = true) {
88
- this._raisedButton = withRaised;
71
+ withRaised(raised = true) {
72
+ this._raised = raised;
89
73
  return this;
90
74
  }
91
- withRoundedButton(roundedStyle = ButtonStyleRoundedEnum.ROUNDED) {
92
- this._roundedStyle = roundedStyle;
75
+ withRounded(rounded = true) {
76
+ this._rounded = rounded;
93
77
  return this;
94
78
  }
95
79
  /**
96
80
  * sets custom style class
97
81
  * @param customClass
98
82
  */
99
- withCustomClass(customClass) {
100
- this._customClass = customClass;
83
+ withClass(customClass) {
84
+ this._class = customClass;
101
85
  return this;
102
86
  }
103
- convertActionLevelToStyleClass() {
104
- switch (this._actionLevel) {
87
+ build(hasNoTitle = false) {
88
+ const styles = [this.levelToStyleClass(), this.sizeToStyleClass(), this._class];
89
+ if (hasNoTitle && this._rounded == null) {
90
+ styles.push(`p-button-rounded mng-action-button-icon`);
91
+ }
92
+ if (this._textButton) {
93
+ styles.push(`p-button-text`);
94
+ }
95
+ if (this._outlined) {
96
+ styles.push(`p-button-outlined`);
97
+ }
98
+ if (this._raised) {
99
+ styles.push(`p-button-raised`);
100
+ }
101
+ if (this._rounded) {
102
+ styles.push('p-button-rounded');
103
+ }
104
+ return styles.join(' ');
105
+ }
106
+ copy() {
107
+ const builder = new ButtonStyleBuilder();
108
+ builder._level = this._level;
109
+ builder._size = this._size;
110
+ builder._textButton = this._textButton;
111
+ builder._outlined = this._outlined;
112
+ builder._raised = this._raised;
113
+ builder._rounded = this._rounded;
114
+ builder._class = this._class;
115
+ return builder;
116
+ }
117
+ levelToStyleClass() {
118
+ switch (this._level) {
119
+ case undefined:
105
120
  case StyleLevelEnum.Default:
106
121
  case StyleLevelEnum.Primary:
107
122
  return 'p-button-primary';
@@ -119,7 +134,7 @@ export class ButtonStyleBuilder {
119
134
  return 'p-button-danger';
120
135
  }
121
136
  }
122
- convertSizeToStyleClass() {
137
+ sizeToStyleClass() {
123
138
  switch (this._size) {
124
139
  case StyleSizeEnum.ExtraSmall:
125
140
  return 'p-button-sm mng-button-xs';
@@ -134,41 +149,5 @@ export class ButtonStyleBuilder {
134
149
  return '';
135
150
  }
136
151
  }
137
- copy() {
138
- const builder = new ButtonStyleBuilder(this._actionLevel, this._customClass);
139
- builder._size = this._size;
140
- builder._textButton = this._textButton;
141
- builder._outlineButton = this._outlineButton;
142
- builder._raisedButton = this._raisedButton;
143
- builder._roundedStyle = this._roundedStyle;
144
- return builder;
145
- }
146
- get actionLevel() {
147
- return this._actionLevel;
148
- }
149
- get size() {
150
- return this._size;
151
- }
152
- get textButton() {
153
- return this._textButton;
154
- }
155
- get outlineButton() {
156
- return this._outlineButton;
157
- }
158
- get raisedButton() {
159
- return this._raisedButton;
160
- }
161
- get roundedStyle() {
162
- return this._roundedStyle;
163
- }
164
- get customClass() {
165
- return this._customClass;
166
- }
167
152
  }
168
- export var ButtonStyleRoundedEnum;
169
- (function (ButtonStyleRoundedEnum) {
170
- ButtonStyleRoundedEnum[ButtonStyleRoundedEnum["DEFAULT"] = 0] = "DEFAULT";
171
- ButtonStyleRoundedEnum[ButtonStyleRoundedEnum["ROUNDED"] = 1] = "ROUNDED";
172
- ButtonStyleRoundedEnum[ButtonStyleRoundedEnum["SQUARE"] = 2] = "SQUARE";
173
- })(ButtonStyleRoundedEnum || (ButtonStyleRoundedEnum = {}));
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXN0eWxlLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9mb3JtL2FwaS9zcmMvZGVzY3JpcHRvcnMvYnV0dG9uLXN0eWxlLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRSxNQUFNLE9BQU8sa0JBQWtCO0lBVTNCLFlBQVksS0FBSyxHQUFHLGNBQWMsQ0FBQyxPQUFPLEVBQUUsV0FBb0I7UUFUeEQsVUFBSyxHQUFrQixhQUFhLENBQUMsTUFBTSxDQUFDO1FBRzVDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGtCQUFhLEdBQUcsc0JBQXNCLENBQUMsT0FBTyxDQUFDO1FBSW5ELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxHQUFHLEtBQUs7UUFDM0IsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUUsRUFBRSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFMUcsSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0RSxNQUFNLENBQUMsSUFBSSxDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxD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UUFDM0MsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRTNDLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztDQUNKO0FBRUQsTUFBTSxDQUFOLElBQVksc0JBSVg7QUFKRCxXQUFZLHNCQUFzQjtJQUM5Qix5RUFBTyxDQUFBO0lBQ1AseUVBQU8sQ0FBQTtJQUNQLHVFQUFNLENBQUE7QUFDVixDQUFDLEVBSlcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQUlqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3R5bGVMZXZlbEVudW0sIFN0eWxlU2l6ZUVudW19IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBCdXR0b25TdHlsZUJ1aWxkZXIge1xuICAgIHByaXZhdGUgX3NpemU6IFN0eWxlU2l6ZUVudW0gPSBTdHlsZVNpemVFbnVtLk5vcm1hbDtcbiAgICBwcml2YXRlIF9hY3Rpb25MZXZlbDogU3R5bGVMZXZlbEVudW07XG5cbiAgICBwcml2YXRlIF90ZXh0QnV0dG9uID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfb3V0bGluZUJ1dHRvbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3JhaXNlZEJ1dHRvbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgX3JvdW5kZWRTdHlsZSA9IEJ1dHRvblN0eWxlUm91bmRlZEVudW0uREVGQVVMVDtcbiAgICBwcml2YXRlIF9jdXN0b21DbGFzcz86IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGxldmVsID0gU3R5bGVMZXZlbEVudW0uRGVmYXVsdCwgY3VzdG9tQ2xhc3M/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fYWN0aW9uTGV2ZWwgPSBsZXZlbDtcbiAgICAgICAgdGhpcy5fY3VzdG9tQ2xhc3MgPSBjdXN0b21DbGFzcztcbiAgICB9XG5cbiAgICBwdWJsaWMgYnVpbGQoaGFzTm9UaXRsZSA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgc3R5bGVzID0gW3RoaXMuY29udmVydEFjdGlvbkxldmVsVG9TdHlsZUNsYXNzKCksIHRoaXMuY29udmVydFNpemVUb1N0eWxlQ2xhc3MoKSwgdGhpcy5fY3VzdG9tQ2xhc3NdO1xuXG4gICAgICAgIGlmIChoYXNOb1RpdGxlICYmIHRoaXMuX3JvdW5kZWRTdHlsZSA9PT0gQnV0dG9uU3R5bGVSb3VuZGVkRW51bS5ERUZBVUxUKSB7XG4gICAgICAgICAgICBzdHlsZXMucHVzaChgcC1idXR0b24tcm91bmRlZCBtbmctYWN0aW9uLWJ1dHRvbi1pY29uYCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fdGV4dEJ1dHRvbikge1xuICAgICAgICAgICAgc3R5bGVzLnB1c2goYHAtYnV0dG9uLXRleHRgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9vdXRsaW5lQnV0dG9uKSB7XG4gICAgICAgICAgICBzdHlsZXMucHVzaChgcC1idXR0b24tb3V0bGluZWRgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9yYWlzZWRCdXR0b24pIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKGBwLWJ1dHRvbi1yYWlzZWRgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9yb3VuZGVkU3R5bGUgPT09IEJ1dHRvblN0eWxlUm91bmRlZEVudW0uUk9VTkRFRCkge1xuICAgICAgICAgICAgc3R5bGVzLnB1c2goJ3AtYnV0dG9uLXJvdW5kZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdHlsZXMuam9pbignICcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgaW5zdGFuY2Ugb2Ygc3R5bGUgYnVpbGRlciB3aXRoIGN1c3RvbSBwcm9wZXJ0aWVzXG4gICAgICogQHBhcmFtIGFjdGlvbkxldmVsIEFjdGlvbkxldmVsRW51bVxuICAgICAqIEBwYXJhbSBzaXplIEFjdGlvblNpemVFbnVtXG4gICAgICogQHBhcmFtIHRleHRCdXR0b24gaWYgdHJ1ZSwgdGV4dCBidXR0b24gd2lsbCBiZSBhcHBsaWVkXG4gICAgICogQHBhcmFtIG91dGxpbmVCdXR0b24gaWYgdHJ1ZSwgb3V0bGluZWQgYnV0dG9uIHdpbGwgYmUgYXBwbGllZFxuICAgICAqIEBwYXJhbSByYWlzZWRCdXR0b24gaWYgdHJ1ZSwgcmFpc2VkIGJ1dHRvbiB3aWxsIGJlIGFwcGxpZWRcbiAgICAgKiBAcGFyYW0gY3VzdG9tQ2xhc3MgYWRkaXRpb25hbCBjdXN0b20gY2xhc3NlcyAod2lsbCBiZSBhZGRlZCBhdCBnZW5lcmF0aW5nKVxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlKFxuICAgICAgICBhY3Rpb25MZXZlbD86IFN0eWxlTGV2ZWxFbnVtLFxuICAgICAgICBzaXplPzogU3R5bGVTaXplRW51bSxcbiAgICAgICAgdGV4dEJ1dHRvbj86IGJvb2xlYW4sXG4gICAgICAgIG91dGxpbmVCdXR0b24/OiBib29sZWFuLFxuICAgICAgICByYWlzZWRCdXR0b24/OiBib29sZWFuLFxuICAgICAgICByb3VuZGVkQnV0dG9uPzogQnV0dG9uU3R5bGVSb3VuZGVkRW51bSxcbiAgICAgICAgY3VzdG9tQ2xhc3M/OiBzdHJpbmdcbiAgICApOiBCdXR0b25TdHlsZUJ1aWxkZXIge1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gbmV3IEJ1dHRvblN0eWxlQnVpbGRlcihhY3Rpb25MZXZlbCwgY3VzdG9tQ2xhc3MpO1xuICAgICAgICBkZXNjcmlwdG9yLl9hY3Rpb25MZXZlbCA9IGFjdGlvbkxldmVsID8/IGRlc2NyaXB0b3IuX2FjdGlvbkxldmVsO1xuICAgICAgICBkZXNjcmlwdG9yLl9zaXplID0gc2l6ZSA/PyBkZXNjcmlwdG9yLl9zaXplO1xuICAgICAgICBkZXNjcmlwdG9yLl90ZXh0QnV0dG9uID0gdGV4dEJ1dHRvbiA/PyBkZXNjcmlwdG9yLl90ZXh0QnV0dG9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9vdXRsaW5lQnV0dG9uID0gb3V0bGluZUJ1dHRvbiA/PyBkZXNjcmlwdG9yLl9vdXRsaW5lQnV0dG9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9yYWlzZWRCdXR0b24gPSByYWlzZWRCdXR0b24gPz8gZGVzY3JpcHRvci5fcmFpc2VkQnV0dG9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9yb3VuZGVkU3R5bGUgPSByb3VuZGVkQnV0dG9uID8/IGRlc2NyaXB0b3IuX3JvdW5kZWRTdHlsZTtcbiAgICAgICAgZGVzY3JpcHRvci5fY3VzdG9tQ2xhc3MgPSBjdXN0b21DbGFzcztcblxuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIGN1c3RvbSBhY3Rpb24gbGV2ZWwgYW5kIHJldHVybnMgdGhpcyBvYmplY3RcbiAgICAgKiBAcGFyYW0gYWN0aW9uTGV2ZWxcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aEFjdGlvbkxldmVsKGFjdGlvbkxldmVsOiBTdHlsZUxldmVsRW51bSk6IEJ1dHRvblN0eWxlQnVpbGRlciB7XG4gICAgICAgIHRoaXMuX2FjdGlvbkxldmVsID0gYWN0aW9uTGV2ZWw7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNldHMgY3VzdG9tIHNpemUgYW5kIHJldHVybiB0aGlzIG9iamVjdFxuICAgICAqIEBwYXJhbSBzaXplXG4gICAgICovXG4gICAgcHVibGljIHdpdGhTaXplKHNpemU6IFN0eWxlU2l6ZUVudW0pOiBCdXR0b25TdHlsZUJ1aWxkZXIge1xuICAgICAgICB0aGlzLl9zaXplID0gc2l6ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0cyB0ZXh0IGJ1dHRvbiBwcm9wZXJ0eVxuICAgICAqIEBwYXJhbSB3aXRoVGV4dCBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aFRleHRCdXR0b24od2l0aFRleHQgPSB0cnVlKTogQnV0dG9uU3R5bGVCdWlsZGVyIHtcbiAgICAgICAgdGhpcy5fdGV4dEJ1dHRvbiA9IHdpdGhUZXh0O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIG91dGxpbmUgYnV0dG9uIHByb3BlcnR5XG4gICAgICogQHBhcmFtIHdpdGhPdXRsaW5lIGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoT3V0bGluZUJ1dHRvbih3aXRoT3V0bGluZSA9IHRydWUpOiBCdXR0b25TdHlsZUJ1aWxkZXIge1xuICAgICAgICB0aGlzLl9vdXRsaW5lQnV0dG9uID0gd2l0aE91dGxpbmU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNldHMgcmFpc2VkIGJ1dHRvbiBwcm9wZXJ0eVxuICAgICAqIEBwYXJhbSB3aXRoUmFpc2VkIGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoUmFpc2VkQnV0dG9uKHdpdGhSYWlzZWQgPSB0cnVlKTogQnV0dG9uU3R5bGVCdWlsZGVyIHtcbiAgICAgICAgdGhpcy5fcmFpc2VkQnV0dG9uID0gd2l0aFJhaXNlZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSb3VuZGVkQnV0dG9uKHJvdW5kZWRTdHlsZSA9IEJ1dHRvblN0eWxlUm91bmRlZEVudW0uUk9VTkRFRCk6IEJ1dHRvblN0eWxlQnVpbGRlciB7XG4gICAgICAgIHRoaXMuX3JvdW5kZWRTdHlsZSA9IHJvdW5kZWRTdHlsZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0cyBjdXN0b20gc3R5bGUgY2xhc3NcbiAgICAgKiBAcGFyYW0gY3VzdG9tQ2xhc3NcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aEN1c3RvbUNsYXNzKGN1c3RvbUNsYXNzOiBzdHJpbmcpOiBCdXR0b25TdHlsZUJ1aWxkZXIge1xuICAgICAgICB0aGlzLl9jdXN0b21DbGFzcyA9IGN1c3RvbUNsYXNzO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnZlcnRBY3Rpb25MZXZlbFRvU3R5bGVDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuX2FjdGlvbkxldmVsKSB7XG4gICAgICAgICAgICBjYXNlIFN0eWxlTGV2ZWxFbnVtLkRlZmF1bHQ6XG4gICAgICAgICAgICBjYXNlIFN0eWxlTGV2ZWxFbnVtLlByaW1hcnk6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwLWJ1dHRvbi1wcmltYXJ5JztcbiAgICAgICAgICAgIGNhc2UgU3R5bGVMZXZlbEVudW0uU2Vjb25kYXJ5OlxuICAgICAgICAgICAgICAgIHJldHVybiAncC1idXR0b24tc2Vjb25kYXJ5JztcbiAgICAgICAgICAgIGNhc2UgU3R5bGVMZXZlbEVudW0uSW5mbzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3AtYnV0dG9uLWluZm8nO1xuICAgICAgICAgICAgY2FzZSBTdHlsZUxldmVsRW51bS5IZWxwOlxuICAgICAgICAgICAgICAgIHJldHVybiAncC1idXR0b24taGVscCc7XG4gICAgICAgICAgICBjYXNlIFN0eWxlTGV2ZWxFbnVtLlN1Y2Nlc3M6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwLWJ1dHRvbi1zdWNjZXNzJztcbiAgICAgICAgICAgIGNhc2UgU3R5bGVMZXZlbEVudW0uV2FybmluZzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3AtYnV0dG9uLXdhcm5pbmcnO1xuICAgICAgICAgICAgY2FzZSBTdHlsZUxldmVsRW51bS5EYW5nZXI6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwLWJ1dHRvbi1kYW5nZXInO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb252ZXJ0U2l6ZVRvU3R5bGVDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuX3NpemUpIHtcbiAgICAgICAgICAgIGNhc2UgU3R5bGVTaXplRW51bS5FeHRyYVNtYWxsOlxuICAgICAgICAgICAgICAgIHJldHVybiAncC1idXR0b24tc20gbW5nLWJ1dHRvbi14cyc7XG4gICAgICAgICAgICBjYXNlIFN0eWxlU2l6ZUVudW0uU21hbGw6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwLWJ1dHRvbi1zbSBtbmctYnV0dG9uLXNtJztcbiAgICAgICAgICAgIGNhc2UgU3R5bGVTaXplRW51bS5MYXJnZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3AtYnV0dG9uLWxnIG1uZy1idXR0b24tbGcnO1xuICAgICAgICAgICAgY2FzZSBTdHlsZVNpemVFbnVtLkV4dHJhTGFyZ2U6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwLWJ1dHRvbi1sZyBtbmctYnV0dG9uLXhsJztcbiAgICAgICAgICAgIGNhc2UgU3R5bGVTaXplRW51bS5Ob3JtYWw6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5KCk6IEJ1dHRvblN0eWxlQnVpbGRlciB7XG4gICAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgQnV0dG9uU3R5bGVCdWlsZGVyKHRoaXMuX2FjdGlvbkxldmVsLCB0aGlzLl9jdXN0b21DbGFzcyk7XG5cbiAgICAgICAgYnVpbGRlci5fc2l6ZSA9IHRoaXMuX3NpemU7XG4gICAgICAgIGJ1aWxkZXIuX3RleHRCdXR0b24gPSB0aGlzLl90ZXh0QnV0dG9uO1xuICAgICAgICBidWlsZGVyLl9vdXRsaW5lQnV0dG9uID0gdGhpcy5fb3V0bGluZUJ1dHRvbjtcbiAgICAgICAgYnVpbGRlci5fcmFpc2VkQnV0dG9uID0gdGhpcy5fcmFpc2VkQnV0dG9uO1xuICAgICAgICBidWlsZGVyLl9yb3VuZGVkU3R5bGUgPSB0aGlzLl9yb3VuZGVkU3R5bGU7XG5cbiAgICAgICAgcmV0dXJuIGJ1aWxkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhY3Rpb25MZXZlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGlvbkxldmVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0ZXh0QnV0dG9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGV4dEJ1dHRvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG91dGxpbmVCdXR0b24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vdXRsaW5lQnV0dG9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmFpc2VkQnV0dG9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmFpc2VkQnV0dG9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcm91bmRlZFN0eWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm91bmRlZFN0eWxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY3VzdG9tQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXN0b21DbGFzcztcbiAgICB9XG59XG5cbmV4cG9ydCBlbnVtIEJ1dHRvblN0eWxlUm91bmRlZEVudW0ge1xuICAgIERFRkFVTFQsXG4gICAgUk9VTkRFRCxcbiAgICBTUVVBUkVcbn1cbiJdfQ==
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXN0eWxlLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9mb3JtL2FwaS9zcmMvZGVzY3JpcHRvcnMvYnV0dG9uLXN0eWxlLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUkxRSxNQUFNLE9BQU8sa0JBQWtCO0lBU3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBNkI7UUFDNUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQztRQUM3QixPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxJQUFJLENBQUM7UUFDM0IsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLEVBQUUsVUFBVSxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxFQUFFLFFBQVEsQ0FBQztRQUNuQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxNQUFNLENBQUM7UUFDL0IsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLEVBQUUsT0FBTyxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQztRQUM3QixPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFB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QjtnQkFDSSxPQUFPLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTdHlsZUxldmVsRW51bSwgU3R5bGVTaXplRW51bX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtJQnV0dG9uU3R5bGVEZXNjcmlwdG9yfSBmcm9tICcuLi9tb2RlbHMvYnV0dG9uLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEJ1dHRvblN0eWxlQnVpbGRlciBpbXBsZW1lbnRzIElCdXR0b25TdHlsZURlc2NyaXB0b3Ige1xuICAgIHByaXZhdGUgX2xldmVsPzogU3R5bGVMZXZlbEVudW07XG4gICAgcHJpdmF0ZSBfc2l6ZT86IFN0eWxlU2l6ZUVudW07XG4gICAgcHJpdmF0ZSBfdGV4dEJ1dHRvbj86IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfb3V0bGluZWQ/OiBib29sZWFuO1xuICAgIHByaXZhdGUgX3JhaXNlZD86IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfcm91bmRlZD86IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfY2xhc3M/OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb20ob3B0cz86IElCdXR0b25TdHlsZURlc2NyaXB0b3IpOiBCdXR0b25TdHlsZUJ1aWxkZXIge1xuICAgICAgICBjb25zdCBidWlsZGVyID0gbmV3IEJ1dHRvblN0eWxlQnVpbGRlcigpO1xuICAgICAgICBidWlsZGVyLl9sZXZlbCA9IG9wdHM/LmxldmVsO1xuICAgICAgICBidWlsZGVyLl9zaXplID0gb3B0cz8uc2l6ZTtcbiAgICAgICAgYnVpbGRlci5fdGV4dEJ1dHRvbiA9IG9wdHM/LnRleHRCdXR0b247XG4gICAgICAgIGJ1aWxkZXIuX291dGxpbmVkID0gb3B0cz8ub3V0bGluZWQ7XG4gICAgICAgIGJ1aWxkZXIuX3JhaXNlZCA9IG9wdHM/LnJhaXNlZDtcbiAgICAgICAgYnVpbGRlci5fcm91bmRlZCA9IG9wdHM/LnJvdW5kZWQ7XG4gICAgICAgIGJ1aWxkZXIuX2NsYXNzID0gb3B0cz8uY2xhc3M7XG4gICAgICAgIHJldHVybiBidWlsZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbGV2ZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sZXZlbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaXplO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGV4dEJ1dHRvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RleHRCdXR0b247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBvdXRsaW5lZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX291dGxpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmFpc2VkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmFpc2VkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcm91bmRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvdW5kZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NsYXNzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNldHMgY3VzdG9tIGFjdGlvbiBsZXZlbCBhbmQgcmV0dXJucyB0aGlzIG9iamVjdFxuICAgICAqIEBwYXJhbSBsZXZlbFxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoTGV2ZWwobGV2ZWw6IFN0eWxlTGV2ZWxFbnVtKTogQnV0dG9uU3R5bGVCdWlsZGVyIHtcbiAgICAgICAgdGhpcy5fbGV2ZWwgPSBsZXZlbDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogc2V0cyBjdXN0b20gc2l6ZSBhbmQgcmV0dXJuIHRoaXMgb2JqZWN0XG4gICAgICogQHBhcmFtIHNpemVcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aFNpemUoc2l6ZTogU3R5bGVTaXplRW51bSk6IEJ1dHRvblN0eWxlQnVpbGRlciB7XG4gICAgICAgIHRoaXMuX3NpemUgPSBzaXplO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIHRleHQgYnV0dG9uIHByb3BlcnR5XG4gICAgICogQHBhcmFtIHRleHQgZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHdpdGhUZXh0QnV0dG9uKHRleHQgPSB0cnVlKTogQnV0dG9uU3R5bGVCdWlsZGVyIHtcbiAgICAgICAgdGhpcy5fdGV4dEJ1dHRvbiA9IHRleHQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNldHMgb3V0bGluZSBidXR0b24gcHJvcGVydHlcbiAgICAgKiBAcGFyYW0gb3V0bGluZWQgZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHdpdGhPdXRsaW5lZChvdXRsaW5lZCA9IHRydWUpOiBCdXR0b25TdHlsZUJ1aWxkZXIge1xuICAgICAgICB0aGlzLl9vdXRsaW5lZCA9IG91dGxpbmVkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIHJhaXNlZCBidXR0b24gcHJvcGVydHlcbiAgICAgKiBAcGFyYW0gcmFpc2VkIGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoUmFpc2VkKHJhaXNlZCA9IHRydWUpOiBCdXR0b25TdHlsZUJ1aWxkZXIge1xuICAgICAgICB0aGlzLl9yYWlzZWQgPSByYWlzZWQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUm91bmRlZChyb3VuZGVkID0gdHJ1ZSk6IEJ1dHRvblN0eWxlQnVpbGRlciB7XG4gICAgICAgIHRoaXMuX3JvdW5kZWQgPSByb3VuZGVkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIGN1c3RvbSBzdHlsZSBjbGFzc1xuICAgICAqIEBwYXJhbSBjdXN0b21DbGFzc1xuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoQ2xhc3MoY3VzdG9tQ2xhc3M6IHN0cmluZyk6IEJ1dHRvblN0eWxlQnVpbGRlciB7XG4gICAgICAgIHRoaXMuX2NsYXNzID0gY3VzdG9tQ2xhc3M7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBidWlsZChoYXNOb1RpdGxlID0gZmFsc2UpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBzdHlsZXMgPSBbdGhpcy5sZXZlbFRvU3R5bGVDbGFzcygpLCB0aGlzLnNpemVUb1N0eWxlQ2xhc3MoKSwgdGhpcy5fY2xhc3NdO1xuXG4gICAgICAgIGlmIChoYXNOb1RpdGxlICYmIHRoaXMuX3JvdW5kZWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgc3R5bGVzLnB1c2goYHAtYnV0dG9uLXJvdW5kZWQgbW5nLWFjdGlvbi1idXR0b24taWNvbmApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3RleHRCdXR0b24pIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKGBwLWJ1dHRvbi10ZXh0YCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fb3V0bGluZWQpIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKGBwLWJ1dHRvbi1vdXRsaW5lZGApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3JhaXNlZCkge1xuICAgICAgICAgICAgc3R5bGVzLnB1c2goYHAtYnV0dG9uLXJhaXNlZGApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3JvdW5kZWQpIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKCdwLWJ1dHRvbi1yb3VuZGVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3R5bGVzLmpvaW4oJyAnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weSgpOiBCdXR0b25TdHlsZUJ1aWxkZXIge1xuICAgICAgICBjb25zdCBidWlsZGVyID0gbmV3IEJ1dHRvblN0eWxlQnVpbGRlcigpO1xuICAgICAgICBidWlsZGVyLl9sZXZlbCA9IHRoaXMuX2xldmVsO1xuICAgICAgICBidWlsZGVyLl9zaXplID0gdGhpcy5fc2l6ZTtcbiAgICAgICAgYnVpbGRlci5fdGV4dEJ1dHRvbiA9IHRoaXMuX3RleHRCdXR0b247XG4gICAgICAgIGJ1aWxkZXIuX291dGxpbmVkID0gdGhpcy5fb3V0bGluZWQ7XG4gICAgICAgIGJ1aWxkZXIuX3JhaXNlZCA9IHRoaXMuX3JhaXNlZDtcbiAgICAgICAgYnVpbGRlci5fcm91bmRlZCA9IHRoaXMuX3JvdW5kZWQ7XG4gICAgICAgIGJ1aWxkZXIuX2NsYXNzID0gdGhpcy5fY2xhc3M7XG4gICAgICAgIHJldHVybiBidWlsZGVyO1xuICAgIH1cblxuICAgIHByaXZhdGUgbGV2ZWxUb1N0eWxlQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9sZXZlbCkge1xuICAgICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICBjYXNlIFN0eWxlTGV2ZWxFbnVtLkRlZmF1bHQ6XG4gICAgICAgICAgICBjYXNlIFN0eWxlTGV2ZWxFbnVtLlByaW1hcnk6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwLWJ1dHRvbi1wcmltYXJ5JztcbiAgICAgICAgICAgIGNhc2UgU3R5bGVMZXZlbEVudW0uU2Vjb25kYXJ5OlxuICAgICAgICAgICAgICAgIHJldHVybiAncC1idXR0b24tc2Vjb25kYXJ5JztcbiAgICAgICAgICAgIGNhc2UgU3R5bGVMZXZlbEVudW0uSW5mbzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3AtYnV0dG9uLWluZm8nO1xuICAgICAgICAgICAgY2FzZSBTdHlsZUxldmVsRW51bS5IZWxwOlxuICAgICAgICAgICAgICAgIHJldHVybiAncC1idXR0b24taGVscCc7XG4gICAgICAgICAgICBjYXNlIFN0eWxlTGV2ZWxFbnVtLlN1Y2Nlc3M6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwLWJ1dHRvbi1zdWNjZXNzJztcbiAgICAgICAgICAgIGNhc2UgU3R5bGVMZXZlbEVudW0uV2FybmluZzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3AtYnV0dG9uLXdhcm5pbmcnO1xuICAgICAgICAgICAgY2FzZSBTdHlsZUxldmVsRW51bS5EYW5nZXI6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwLWJ1dHRvbi1kYW5nZXInO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaXplVG9TdHlsZUNsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5fc2l6ZSkge1xuICAgICAgICAgICAgY2FzZSBTdHlsZVNpemVFbnVtLkV4dHJhU21hbGw6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwLWJ1dHRvbi1zbSBtbmctYnV0dG9uLXhzJztcbiAgICAgICAgICAgIGNhc2UgU3R5bGVTaXplRW51bS5TbWFsbDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3AtYnV0dG9uLXNtIG1uZy1idXR0b24tc20nO1xuICAgICAgICAgICAgY2FzZSBTdHlsZVNpemVFbnVtLkxhcmdlOlxuICAgICAgICAgICAgICAgIHJldHVybiAncC1idXR0b24tbGcgbW5nLWJ1dHRvbi1sZyc7XG4gICAgICAgICAgICBjYXNlIFN0eWxlU2l6ZUVudW0uRXh0cmFMYXJnZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3AtYnV0dG9uLWxnIG1uZy1idXR0b24teGwnO1xuICAgICAgICAgICAgY2FzZSBTdHlsZVNpemVFbnVtLk5vcm1hbDpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -5,5 +5,6 @@ export * from './data-providers/lookup-data-provider.factory';
5
5
  export * from './descriptors/action-button.descriptor';
6
6
  export * from './descriptors/button-style.builder';
7
7
  // models
8
+ export * from './models/button.model';
8
9
  export * from './models/trim.model';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9mb3JtL2FwaS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywrQ0FBK0MsQ0FBQztBQUU5RCxjQUFjO0FBQ2QsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLG9DQUFvQyxDQUFDO0FBRW5ELFNBQVM7QUFDVCxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZGF0YSBwcm92aWRlcnNcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1wcm92aWRlcnMvbG9va3VwLmRhdGEtcHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXByb3ZpZGVycy9sb29rdXAtZGF0YS1wcm92aWRlci5mYWN0b3J5JztcblxuLy8gZGVzY3JpcHRvcnNcbmV4cG9ydCAqIGZyb20gJy4vZGVzY3JpcHRvcnMvYWN0aW9uLWJ1dHRvbi5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGVzY3JpcHRvcnMvYnV0dG9uLXN0eWxlLmJ1aWxkZXInO1xuXG4vLyBtb2RlbHNcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3RyaW0ubW9kZWwnO1xuIl19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9mb3JtL2FwaS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywrQ0FBK0MsQ0FBQztBQUU5RCxjQUFjO0FBQ2QsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLG9DQUFvQyxDQUFDO0FBRW5ELFNBQVM7QUFDVCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBkYXRhIHByb3ZpZGVyc1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXByb3ZpZGVycy9sb29rdXAuZGF0YS1wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtcHJvdmlkZXJzL2xvb2t1cC1kYXRhLXByb3ZpZGVyLmZhY3RvcnknO1xuXG4vLyBkZXNjcmlwdG9yc1xuZXhwb3J0ICogZnJvbSAnLi9kZXNjcmlwdG9ycy9hY3Rpb24tYnV0dG9uLmRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZXNjcmlwdG9ycy9idXR0b24tc3R5bGUuYnVpbGRlcic7XG5cbi8vIG1vZGVsc1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvYnV0dG9uLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3RyaW0ubW9kZWwnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZm9ybS9hcGkvc3JjL21vZGVscy9idXR0b24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3R5bGVMZXZlbEVudW0sIFN0eWxlU2l6ZUVudW19IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFjdGlvbkJ1dHRvbkRlc2NyaXB0b3Ige1xuICAgIGxhYmVsPzogc3RyaW5nIHwgbnVsbDtcbiAgICBpY29uPzogc3RyaW5nIHwgbnVsbDtcbiAgICBpY29uUG9zaXRpb24/OiAnbGVmdCcgfCAncmlnaHQnO1xuICAgIHN0eWxlPzogSUJ1dHRvblN0eWxlRGVzY3JpcHRvcjtcbiAgICBiYWRnZT86IHN0cmluZztcbiAgICB0b29sdGlwPzogc3RyaW5nIHwgbnVsbDtcbiAgICB0b29sdGlwUG9zaXRpb24/OiAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQnV0dG9uU3R5bGVEZXNjcmlwdG9yIHtcbiAgICBzaXplPzogU3R5bGVTaXplRW51bTtcbiAgICBsZXZlbD86IFN0eWxlTGV2ZWxFbnVtO1xuICAgIHRleHRCdXR0b24/OiBib29sZWFuO1xuICAgIG91dGxpbmVkPzogYm9vbGVhbjtcbiAgICByYWlzZWQ/OiBib29sZWFuO1xuICAgIHJvdW5kZWQ/OiBib29sZWFuO1xuICAgIGNsYXNzPzogc3RyaW5nO1xufVxuIl19
@@ -1,8 +1,8 @@
1
1
  import { map } from 'rxjs/operators';
2
2
  import { getI18n, getI18nTypeKeyBasePath, getI18nTypeParams, getI18nTypeParamsAsync } from '@mediusinc/mng-commons/core';
3
- export function getI18nForModel(translate, model, keyPath, customKey, item, fallbackKey, params) {
4
- const keys = getKeysByPriority(model, keyPath, customKey, fallbackKey);
5
- const i18nParams = getI18nModelParams(translate, model, item, params);
3
+ export function getI18nForModel(translate, model, keyPath, opts) {
4
+ const keys = getKeysByPriority(model, keyPath, opts?.customKey, opts?.fallbackKey);
5
+ const i18nParams = getI18nModelParams(translate, model, opts?.item, opts?.params);
6
6
  return getI18n(translate, i18nParams, ...keys);
7
7
  }
8
8
  export function getI18nModelParams(translate, model, item, params = {}) {
@@ -12,7 +12,7 @@ export function getI18nModelParams(translate, model, item, params = {}) {
12
12
  export function getI18nModelParamsAsync(translate, model, item, params = {}) {
13
13
  return getI18nTypeParamsAsync(translate, model?.i18nBaseKey, item, params).pipe(map(i18nParams => populateI18nModelParams(model?.idProperty, model?.titleProperty, item, i18nParams)));
14
14
  }
15
- export function populateI18nModelParams(idProperty, titleProperty, item, params = {}) {
15
+ function populateI18nModelParams(idProperty, titleProperty, item, params = {}) {
16
16
  const paramsRes = { ...params, itemId: '', itemTitle: '' };
17
17
  if (item) {
18
18
  if (idProperty && item[idProperty]) {
@@ -32,11 +32,16 @@ function getKeysByPriority(model, keyPath, customKey, fallbackKey) {
32
32
  if (customKey) {
33
33
  keys.push(customKey);
34
34
  }
35
- const modelActionKey = getI18nTypeKeyBasePath(model.i18nBaseKey, ...keyPath);
36
- keys.push(modelActionKey);
37
- if (fallbackKey) {
38
- keys.push(fallbackKey);
35
+ else {
36
+ const modelActionKey = getI18nTypeKeyBasePath(model.i18nBaseKey, keyPath);
37
+ keys.push(modelActionKey);
38
+ if (keyPath !== modelActionKey) {
39
+ keys.push(keyPath);
40
+ }
41
+ if (fallbackKey) {
42
+ keys.push(fallbackKey);
43
+ }
39
44
  }
40
45
  return keys;
41
46
  }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21vZGVsL3NyYy9oZWxwZXJzL2kxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBWSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUlsSSxNQUFNLFVBQVUsZUFBZSxDQUMzQixTQUEyQixFQUMzQixLQUEyQixFQUMzQixPQUFlLEVBQ2YsU0FBa0IsRUFDbEIsSUFBVSxFQUNWLFdBQW9CLEVBQ3BCLE1BQVk7SUFFWixNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2RSxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0RSxPQUFPLE9BQU8sQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUEyQixFQUFFLEtBQTRCLEVBQUUsSUFBVSxFQUFFLFNBQWMsRUFBRTtJQUN0SCxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEYsT0FBTyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzlGLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsU0FBMkIsRUFBRSxLQUE0QixFQUFFLElBQVUsRUFBRSxTQUFjLEVBQUU7SUFDM0gsT0FBTyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUMzRSxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQ3hHLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLFVBQXNCLEVBQUUsYUFBbUQsRUFBRSxJQUFVLEVBQUUsU0FBYyxFQUFFO0lBQzdJLE1BQU0sU0FBUyxHQUFHLEVBQUMsR0FBRyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDekQsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNQLElBQUksVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLE9BQU8sYUFBYSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3RDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLENBQUM7YUFBTSxJQUFJLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUM5QyxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQTJCLEVBQUUsT0FBZSxFQUFFLFNBQWtCLEVBQUUsV0FBb0I7SUFDN0csTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLElBQUksU0FBUyxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxNQUFNLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDN0UsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtLZXlPZlR5cGUsIGdldEkxOG4sIGdldEkxOG5UeXBlS2V5QmFzZVBhdGgsIGdldEkxOG5UeXBlUGFyYW1zLCBnZXRJMThuVHlwZVBhcmFtc0FzeW5jfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5pbXBvcnQge01vZGVsRGVzY3JpcHRvcn0gZnJvbSAnLi4vZGVzY3JpcHRvcnMvbW9kZWwuZGVzY3JpcHRvcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJMThuRm9yTW9kZWwoXG4gICAgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8YW55PixcbiAgICBrZXlQYXRoOiBzdHJpbmcsXG4gICAgY3VzdG9tS2V5Pzogc3RyaW5nLFxuICAgIGl0ZW0/OiBhbnksXG4gICAgZmFsbGJhY2tLZXk/OiBzdHJpbmcsXG4gICAgcGFyYW1zPzogYW55XG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBrZXlzID0gZ2V0S2V5c0J5UHJpb3JpdHkobW9kZWwsIGtleVBhdGgsIGN1c3RvbUtleSwgZmFsbGJhY2tLZXkpO1xuICAgIGNvbnN0IGkxOG5QYXJhbXMgPSBnZXRJMThuTW9kZWxQYXJhbXModHJhbnNsYXRlLCBtb2RlbCwgaXRlbSwgcGFyYW1zKTtcbiAgICByZXR1cm4gZ2V0STE4bih0cmFuc2xhdGUsIGkxOG5QYXJhbXMsIC4uLmtleXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4bk1vZGVsUGFyYW1zKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgbW9kZWw/OiBNb2RlbERlc2NyaXB0b3I8YW55PiwgaXRlbT86IGFueSwgcGFyYW1zOiBhbnkgPSB7fSk6IGFueSB7XG4gICAgY29uc3QgaTE4blBhcmFtcyA9IGdldEkxOG5UeXBlUGFyYW1zKHRyYW5zbGF0ZSwgbW9kZWw/LmkxOG5CYXNlS2V5LCBpdGVtLCBwYXJhbXMpO1xuICAgIHJldHVybiBwb3B1bGF0ZUkxOG5Nb2RlbFBhcmFtcyhtb2RlbD8uaWRQcm9wZXJ0eSwgbW9kZWw/LnRpdGxlUHJvcGVydHksIGl0ZW0sIGkxOG5QYXJhbXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4bk1vZGVsUGFyYW1zQXN5bmModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBtb2RlbD86IE1vZGVsRGVzY3JpcHRvcjxhbnk+LCBpdGVtPzogYW55LCBwYXJhbXM6IGFueSA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gZ2V0STE4blR5cGVQYXJhbXNBc3luYyh0cmFuc2xhdGUsIG1vZGVsPy5pMThuQmFzZUtleSwgaXRlbSwgcGFyYW1zKS5waXBlKFxuICAgICAgICBtYXAoaTE4blBhcmFtcyA9PiBwb3B1bGF0ZUkxOG5Nb2RlbFBhcmFtcyhtb2RlbD8uaWRQcm9wZXJ0eSwgbW9kZWw/LnRpdGxlUHJvcGVydHksIGl0ZW0sIGkxOG5QYXJhbXMpKVxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3B1bGF0ZUkxOG5Nb2RlbFBhcmFtcyhpZFByb3BlcnR5PzogS2V5T2ZUeXBlLCB0aXRsZVByb3BlcnR5PzogS2V5T2ZUeXBlIHwgKChpdGVtOiBhbnkpID0+IHN0cmluZyksIGl0ZW0/OiBhbnksIHBhcmFtczogYW55ID0ge30pOiBhbnkge1xuICAgIGNvbnN0IHBhcmFtc1JlcyA9IHsuLi5wYXJhbXMsIGl0ZW1JZDogJycsIGl0ZW1UaXRsZTogJyd9O1xuICAgIGlmIChpdGVtKSB7XG4gICAgICAgIGlmIChpZFByb3BlcnR5ICYmIGl0ZW1baWRQcm9wZXJ0eV0pIHtcbiAgICAgICAgICAgIHBhcmFtc1Jlcy5pdGVtSWQgPSBpdGVtW2lkUHJvcGVydHldO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGl0bGVQcm9wZXJ0eSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcGFyYW1zUmVzLml0ZW1UaXRsZSA9IHRpdGxlUHJvcGVydHkoaXRlbSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGl0bGVQcm9wZXJ0eSAmJiBpdGVtW3RpdGxlUHJvcGVydHldKSB7XG4gICAgICAgICAgICBwYXJhbXNSZXMuaXRlbVRpdGxlID0gaXRlbVt0aXRsZVByb3BlcnR5XTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGFyYW1zUmVzO1xufVxuXG5mdW5jdGlvbiBnZXRLZXlzQnlQcmlvcml0eShtb2RlbDogTW9kZWxEZXNjcmlwdG9yPGFueT4sIGtleVBhdGg6IHN0cmluZywgY3VzdG9tS2V5Pzogc3RyaW5nLCBmYWxsYmFja0tleT86IHN0cmluZykge1xuICAgIGNvbnN0IGtleXMgPSBbXTtcbiAgICBpZiAoY3VzdG9tS2V5KSB7XG4gICAgICAgIGtleXMucHVzaChjdXN0b21LZXkpO1xuICAgIH1cbiAgICBjb25zdCBtb2RlbEFjdGlvbktleSA9IGdldEkxOG5UeXBlS2V5QmFzZVBhdGgobW9kZWwuaTE4bkJhc2VLZXksIC4uLmtleVBhdGgpO1xuICAgIGtleXMucHVzaChtb2RlbEFjdGlvbktleSk7XG4gICAgaWYgKGZhbGxiYWNrS2V5KSB7XG4gICAgICAgIGtleXMucHVzaChmYWxsYmFja0tleSk7XG4gICAgfVxuICAgIHJldHVybiBrZXlzO1xufVxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21vZGVsL3NyYy9oZWxwZXJzL2kxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBWSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQVdsSSxNQUFNLFVBQVUsZUFBZSxDQUFDLFNBQTJCLEVBQUUsS0FBMkIsRUFBRSxPQUFlLEVBQUUsSUFBd0I7SUFDL0gsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNuRixNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xGLE9BQU8sT0FBTyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFNBQTJCLEVBQUUsS0FBNEIsRUFBRSxJQUFVLEVBQUUsU0FBYyxFQUFFO0lBQ3RILE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRixPQUFPLHVCQUF1QixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDOUYsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxTQUEyQixFQUFFLEtBQTRCLEVBQUUsSUFBVSxFQUFFLFNBQWMsRUFBRTtJQUMzSCxPQUFPLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQzNFLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FDeEcsQ0FBQztBQUNOLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLFVBQXNCLEVBQUUsYUFBbUQsRUFBRSxJQUFVLEVBQUUsU0FBYyxFQUFFO0lBQ3RJLE1BQU0sU0FBUyxHQUFHLEVBQUMsR0FBRyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDekQsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNQLElBQUksVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLE9BQU8sYUFBYSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3RDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLENBQUM7YUFBTSxJQUFJLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUM5QyxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQTJCLEVBQUUsT0FBZSxFQUFFLFNBQWtCLEVBQUUsV0FBb0I7SUFDN0csTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLElBQUksU0FBUyxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7U0FBTSxDQUFDO1FBQ0osTUFBTSxjQUFjLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFCLElBQUksT0FBTyxLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksV0FBVyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtLZXlPZlR5cGUsIGdldEkxOG4sIGdldEkxOG5UeXBlS2V5QmFzZVBhdGgsIGdldEkxOG5UeXBlUGFyYW1zLCBnZXRJMThuVHlwZVBhcmFtc0FzeW5jfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5pbXBvcnQge01vZGVsRGVzY3JpcHRvcn0gZnJvbSAnLi4vZGVzY3JpcHRvcnMvbW9kZWwuZGVzY3JpcHRvcic7XG5cbnR5cGUgTW9kZWxJMThuT3B0c1R5cGUgPSB7XG4gICAgY3VzdG9tS2V5Pzogc3RyaW5nO1xuICAgIGZhbGxiYWNrS2V5Pzogc3RyaW5nO1xuICAgIGl0ZW0/OiBhbnk7XG4gICAgcGFyYW1zPzogYW55O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEkxOG5Gb3JNb2RlbCh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8YW55Piwga2V5UGF0aDogc3RyaW5nLCBvcHRzPzogTW9kZWxJMThuT3B0c1R5cGUpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBrZXlzID0gZ2V0S2V5c0J5UHJpb3JpdHkobW9kZWwsIGtleVBhdGgsIG9wdHM/LmN1c3RvbUtleSwgb3B0cz8uZmFsbGJhY2tLZXkpO1xuICAgIGNvbnN0IGkxOG5QYXJhbXMgPSBnZXRJMThuTW9kZWxQYXJhbXModHJhbnNsYXRlLCBtb2RlbCwgb3B0cz8uaXRlbSwgb3B0cz8ucGFyYW1zKTtcbiAgICByZXR1cm4gZ2V0STE4bih0cmFuc2xhdGUsIGkxOG5QYXJhbXMsIC4uLmtleXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4bk1vZGVsUGFyYW1zKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgbW9kZWw/OiBNb2RlbERlc2NyaXB0b3I8YW55PiwgaXRlbT86IGFueSwgcGFyYW1zOiBhbnkgPSB7fSk6IGFueSB7XG4gICAgY29uc3QgaTE4blBhcmFtcyA9IGdldEkxOG5UeXBlUGFyYW1zKHRyYW5zbGF0ZSwgbW9kZWw/LmkxOG5CYXNlS2V5LCBpdGVtLCBwYXJhbXMpO1xuICAgIHJldHVybiBwb3B1bGF0ZUkxOG5Nb2RlbFBhcmFtcyhtb2RlbD8uaWRQcm9wZXJ0eSwgbW9kZWw/LnRpdGxlUHJvcGVydHksIGl0ZW0sIGkxOG5QYXJhbXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0STE4bk1vZGVsUGFyYW1zQXN5bmModHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBtb2RlbD86IE1vZGVsRGVzY3JpcHRvcjxhbnk+LCBpdGVtPzogYW55LCBwYXJhbXM6IGFueSA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gZ2V0STE4blR5cGVQYXJhbXNBc3luYyh0cmFuc2xhdGUsIG1vZGVsPy5pMThuQmFzZUtleSwgaXRlbSwgcGFyYW1zKS5waXBlKFxuICAgICAgICBtYXAoaTE4blBhcmFtcyA9PiBwb3B1bGF0ZUkxOG5Nb2RlbFBhcmFtcyhtb2RlbD8uaWRQcm9wZXJ0eSwgbW9kZWw/LnRpdGxlUHJvcGVydHksIGl0ZW0sIGkxOG5QYXJhbXMpKVxuICAgICk7XG59XG5cbmZ1bmN0aW9uIHBvcHVsYXRlSTE4bk1vZGVsUGFyYW1zKGlkUHJvcGVydHk/OiBLZXlPZlR5cGUsIHRpdGxlUHJvcGVydHk/OiBLZXlPZlR5cGUgfCAoKGl0ZW06IGFueSkgPT4gc3RyaW5nKSwgaXRlbT86IGFueSwgcGFyYW1zOiBhbnkgPSB7fSk6IGFueSB7XG4gICAgY29uc3QgcGFyYW1zUmVzID0gey4uLnBhcmFtcywgaXRlbUlkOiAnJywgaXRlbVRpdGxlOiAnJ307XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgaWYgKGlkUHJvcGVydHkgJiYgaXRlbVtpZFByb3BlcnR5XSkge1xuICAgICAgICAgICAgcGFyYW1zUmVzLml0ZW1JZCA9IGl0ZW1baWRQcm9wZXJ0eV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0aXRsZVByb3BlcnR5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBwYXJhbXNSZXMuaXRlbVRpdGxlID0gdGl0bGVQcm9wZXJ0eShpdGVtKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aXRsZVByb3BlcnR5ICYmIGl0ZW1bdGl0bGVQcm9wZXJ0eV0pIHtcbiAgICAgICAgICAgIHBhcmFtc1Jlcy5pdGVtVGl0bGUgPSBpdGVtW3RpdGxlUHJvcGVydHldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXNSZXM7XG59XG5cbmZ1bmN0aW9uIGdldEtleXNCeVByaW9yaXR5KG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8YW55Piwga2V5UGF0aDogc3RyaW5nLCBjdXN0b21LZXk/OiBzdHJpbmcsIGZhbGxiYWNrS2V5Pzogc3RyaW5nKSB7XG4gICAgY29uc3Qga2V5cyA9IFtdO1xuICAgIGlmIChjdXN0b21LZXkpIHtcbiAgICAgICAga2V5cy5wdXNoKGN1c3RvbUtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbW9kZWxBY3Rpb25LZXkgPSBnZXRJMThuVHlwZUtleUJhc2VQYXRoKG1vZGVsLmkxOG5CYXNlS2V5LCBrZXlQYXRoKTtcbiAgICAgICAga2V5cy5wdXNoKG1vZGVsQWN0aW9uS2V5KTtcbiAgICAgICAgaWYgKGtleVBhdGggIT09IG1vZGVsQWN0aW9uS2V5KSB7XG4gICAgICAgICAgICBrZXlzLnB1c2goa2V5UGF0aCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZhbGxiYWNrS2V5KSB7XG4gICAgICAgICAgICBrZXlzLnB1c2goZmFsbGJhY2tLZXkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBrZXlzO1xufVxuIl19
@@ -54,6 +54,7 @@ export class TableColumnValueComponent {
54
54
  }
55
55
  return;
56
56
  });
57
+ this.hasCopyToClipboard = computed(() => this.descriptor().hasCopyToClipboard && this.value() != null);
57
58
  }
58
59
  copyToClipboard(event) {
59
60
  event.stopPropagation();
@@ -68,10 +69,10 @@ export class TableColumnValueComponent {
68
69
  this.messageService.add({ severity: 'info', summary: title, detail: message });
69
70
  }
70
71
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TableColumnValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: TableColumnValueComponent, isStandalone: true, selector: "mng-table-column-value", inputs: { descriptor: { classPropertyName: "descriptor", publicName: "descriptor", isSignal: true, isRequired: true, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class": "className()", "style.max-width.px": "styleMaxWidth()" } }, ngImport: i0, template: "@if (descriptor().localizationExistsProperty && !item()[descriptor().localizationExistsProperty!]) {\n <i class=\"pi pi-exclamation-circle\" [pTooltip]=\"'mngTable.translationMissing' | translate\"></i>\n}\n@switch (descriptor().columnDisplayType) {\n @case (columnDisplayTypeString) {\n @if (descriptor().hasValueAsTooltip) {\n <span [pTooltip]=\"value()\" tooltipPosition=\"left\">{{ value() }}</span>\n } @else {\n {{ value() }}\n }\n }\n @case (columnDisplayTypeHtml) {\n <span [innerHTML]=\"value()\"></span>\n }\n @case (columnDisplayTypeNumber) {\n {{ value() | number: descriptor().displayFormat : descriptor().locale }}\n }\n @case (columnDisplayTypeCurrency) {\n {{ value() | currency: currency() : descriptor().currencyDisplay : descriptor().displayFormat : descriptor().locale }}\n }\n @case (columnDisplayTypeDate) {\n {{ value() | date: descriptor().displayFormat }}\n }\n @case (columnDisplayTypeBoolean) {\n @if (descriptor().booleanAsIcon) {\n <i [class]=\"value() | mngBoolean: descriptor().booleanYes : descriptor().booleanNo : true\"></i>\n } @else {\n {{ value() | mngBoolean: descriptor().booleanYes : descriptor().booleanNo | translate }}\n }\n }\n @case (columnDisplayTypeEnum) {\n {{ value() | mngEnum: descriptor().enum | translate }}\n }\n @case (columnDisplayTypeComponent) {\n <ng-container\n [mngComponent]=\"descriptor().customComponentType!\"\n [inputs]=\"{\n value: value(),\n item: item(),\n descriptor: descriptor()\n }\"></ng-container>\n }\n}\n@if (descriptor().hasCopyToClipboard) {\n <div class=\"help-buttons\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-copy\" class=\"p-button-rounded p-button-info p-button-sm\" (click)=\"copyToClipboard($event)\"></button>\n </div>\n}\n", styles: [":host{display:inline-block;overflow:hidden}:host.nowrap{white-space:nowrap;text-overflow:ellipsis}:host.multiline{white-space:pre-wrap;word-wrap:break-word}.help-buttons{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}.help-buttons .p-button{height:1.9rem;width:1.9rem;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i1.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: BooleanPipe, name: "mngBoolean" }, { kind: "pipe", type: EnumPipe, name: "mngEnum" }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i4.Ripple, selector: "[pRipple]" }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: TableColumnValueComponent, isStandalone: true, selector: "mng-table-column-value", inputs: { descriptor: { classPropertyName: "descriptor", publicName: "descriptor", isSignal: true, isRequired: true, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class": "className()", "style.max-width.px": "styleMaxWidth()" } }, ngImport: i0, template: "@if (descriptor().localizationExistsProperty && !item()[descriptor().localizationExistsProperty!]) {\n <i class=\"pi pi-exclamation-circle\" [pTooltip]=\"'mngTable.translationMissing' | translate\"></i>\n}\n@switch (descriptor().columnDisplayType) {\n @case (columnDisplayTypeString) {\n @if (descriptor().hasValueAsTooltip) {\n <span [pTooltip]=\"value()\" tooltipPosition=\"left\">{{ value() }}</span>\n } @else {\n {{ value() }}\n }\n }\n @case (columnDisplayTypeHtml) {\n <span [innerHTML]=\"value()\"></span>\n }\n @case (columnDisplayTypeNumber) {\n {{ value() | number: descriptor().displayFormat : descriptor().locale }}\n }\n @case (columnDisplayTypeCurrency) {\n {{ value() | currency: currency() : descriptor().currencyDisplay : descriptor().displayFormat : descriptor().locale }}\n }\n @case (columnDisplayTypeDate) {\n {{ value() | date: descriptor().displayFormat }}\n }\n @case (columnDisplayTypeBoolean) {\n @if (descriptor().booleanAsIcon) {\n <i [class]=\"value() | mngBoolean: descriptor().booleanYes : descriptor().booleanNo : true\"></i>\n } @else {\n {{ value() | mngBoolean: descriptor().booleanYes : descriptor().booleanNo | translate }}\n }\n }\n @case (columnDisplayTypeEnum) {\n {{ value() | mngEnum: descriptor().enum | translate }}\n }\n @case (columnDisplayTypeComponent) {\n <ng-container\n [mngComponent]=\"descriptor().customComponentType!\"\n [inputs]=\"{\n value: value(),\n item: item(),\n descriptor: descriptor()\n }\"></ng-container>\n }\n}\n@if (hasCopyToClipboard()) {\n <div class=\"help-buttons\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-copy\" class=\"p-button-rounded p-button-info p-button-sm\" (click)=\"copyToClipboard($event)\"></button>\n </div>\n}\n", styles: [":host{display:inline-block;overflow:hidden}:host.nowrap{white-space:nowrap;text-overflow:ellipsis}:host.multiline{white-space:pre-wrap;word-wrap:break-word}.help-buttons{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}.help-buttons .p-button{height:1.9rem;width:1.9rem;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i1.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: BooleanPipe, name: "mngBoolean" }, { kind: "pipe", type: EnumPipe, name: "mngEnum" }, { kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i4.Ripple, selector: "[pRipple]" }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
72
73
  }
73
74
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: TableColumnValueComponent, decorators: [{
74
75
  type: Component,
75
- args: [{ standalone: true, selector: 'mng-table-column-value', imports: [TooltipModule, TranslateModule, BooleanPipe, EnumPipe, ComponentDirective, ButtonModule, RippleModule, DecimalPipe, CurrencyPipe, DatePipe], changeDetection: ChangeDetectionStrategy.OnPush, host: { '[class]': 'className()', '[style.max-width.px]': 'styleMaxWidth()' }, template: "@if (descriptor().localizationExistsProperty && !item()[descriptor().localizationExistsProperty!]) {\n <i class=\"pi pi-exclamation-circle\" [pTooltip]=\"'mngTable.translationMissing' | translate\"></i>\n}\n@switch (descriptor().columnDisplayType) {\n @case (columnDisplayTypeString) {\n @if (descriptor().hasValueAsTooltip) {\n <span [pTooltip]=\"value()\" tooltipPosition=\"left\">{{ value() }}</span>\n } @else {\n {{ value() }}\n }\n }\n @case (columnDisplayTypeHtml) {\n <span [innerHTML]=\"value()\"></span>\n }\n @case (columnDisplayTypeNumber) {\n {{ value() | number: descriptor().displayFormat : descriptor().locale }}\n }\n @case (columnDisplayTypeCurrency) {\n {{ value() | currency: currency() : descriptor().currencyDisplay : descriptor().displayFormat : descriptor().locale }}\n }\n @case (columnDisplayTypeDate) {\n {{ value() | date: descriptor().displayFormat }}\n }\n @case (columnDisplayTypeBoolean) {\n @if (descriptor().booleanAsIcon) {\n <i [class]=\"value() | mngBoolean: descriptor().booleanYes : descriptor().booleanNo : true\"></i>\n } @else {\n {{ value() | mngBoolean: descriptor().booleanYes : descriptor().booleanNo | translate }}\n }\n }\n @case (columnDisplayTypeEnum) {\n {{ value() | mngEnum: descriptor().enum | translate }}\n }\n @case (columnDisplayTypeComponent) {\n <ng-container\n [mngComponent]=\"descriptor().customComponentType!\"\n [inputs]=\"{\n value: value(),\n item: item(),\n descriptor: descriptor()\n }\"></ng-container>\n }\n}\n@if (descriptor().hasCopyToClipboard) {\n <div class=\"help-buttons\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-copy\" class=\"p-button-rounded p-button-info p-button-sm\" (click)=\"copyToClipboard($event)\"></button>\n </div>\n}\n", styles: [":host{display:inline-block;overflow:hidden}:host.nowrap{white-space:nowrap;text-overflow:ellipsis}:host.multiline{white-space:pre-wrap;word-wrap:break-word}.help-buttons{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}.help-buttons .p-button{height:1.9rem;width:1.9rem;padding:0}\n"] }]
76
+ args: [{ standalone: true, selector: 'mng-table-column-value', imports: [TooltipModule, TranslateModule, BooleanPipe, EnumPipe, ComponentDirective, ButtonModule, RippleModule, DecimalPipe, CurrencyPipe, DatePipe], changeDetection: ChangeDetectionStrategy.OnPush, host: { '[class]': 'className()', '[style.max-width.px]': 'styleMaxWidth()' }, template: "@if (descriptor().localizationExistsProperty && !item()[descriptor().localizationExistsProperty!]) {\n <i class=\"pi pi-exclamation-circle\" [pTooltip]=\"'mngTable.translationMissing' | translate\"></i>\n}\n@switch (descriptor().columnDisplayType) {\n @case (columnDisplayTypeString) {\n @if (descriptor().hasValueAsTooltip) {\n <span [pTooltip]=\"value()\" tooltipPosition=\"left\">{{ value() }}</span>\n } @else {\n {{ value() }}\n }\n }\n @case (columnDisplayTypeHtml) {\n <span [innerHTML]=\"value()\"></span>\n }\n @case (columnDisplayTypeNumber) {\n {{ value() | number: descriptor().displayFormat : descriptor().locale }}\n }\n @case (columnDisplayTypeCurrency) {\n {{ value() | currency: currency() : descriptor().currencyDisplay : descriptor().displayFormat : descriptor().locale }}\n }\n @case (columnDisplayTypeDate) {\n {{ value() | date: descriptor().displayFormat }}\n }\n @case (columnDisplayTypeBoolean) {\n @if (descriptor().booleanAsIcon) {\n <i [class]=\"value() | mngBoolean: descriptor().booleanYes : descriptor().booleanNo : true\"></i>\n } @else {\n {{ value() | mngBoolean: descriptor().booleanYes : descriptor().booleanNo | translate }}\n }\n }\n @case (columnDisplayTypeEnum) {\n {{ value() | mngEnum: descriptor().enum | translate }}\n }\n @case (columnDisplayTypeComponent) {\n <ng-container\n [mngComponent]=\"descriptor().customComponentType!\"\n [inputs]=\"{\n value: value(),\n item: item(),\n descriptor: descriptor()\n }\"></ng-container>\n }\n}\n@if (hasCopyToClipboard()) {\n <div class=\"help-buttons\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-copy\" class=\"p-button-rounded p-button-info p-button-sm\" (click)=\"copyToClipboard($event)\"></button>\n </div>\n}\n", styles: [":host{display:inline-block;overflow:hidden}:host.nowrap{white-space:nowrap;text-overflow:ellipsis}:host.multiline{white-space:pre-wrap;word-wrap:break-word}.help-buttons{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}.help-buttons .p-button{height:1.9rem;width:1.9rem;padding:0}\n"] }]
76
77
  }] });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXZhbHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RhYmxlL3NyYy9jb21wb25lbnRzL2NvbHVtbi12YWx1ZS9jb2x1bW4tdmFsdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vdGFibGUvc3JjL2NvbXBvbmVudHMvY29sdW1uLXZhbHVlL2NvbHVtbi12YWx1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RyxPQUFPLEVBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxPQUFPLEVBQUMsV0FBVyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzlILE9BQU8sRUFBbUIscUJBQXFCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7O0FBWXpGLE1BQU0sT0FBTyx5QkFBeUI7SUFWdEM7UUFXb0IsNEJBQXVCLEdBQTBCLHFCQUFxQixDQUFDLE1BQU0sQ0FBQztRQUM5RSw0QkFBdUIsR0FBMEIscUJBQXFCLENBQUMsTUFBTSxDQUFDO1FBQzlFLDhC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USxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsbUJBQ3BJLHVCQUF1QixDQUFDLE1BQU0sUUFFekMsRUFBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixFQUFFLGlCQUFpQixFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDdXJyZW5jeVBpcGUsIERhdGVQaXBlLCBEZWNpbWFsUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge01lc3NhZ2VTZXJ2aWNlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge0J1dHRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHtSaXBwbGVNb2R1bGV9IGZyb20gJ3ByaW1lbmcvcmlwcGxlJztcbmltcG9ydCB7VG9vbHRpcE1vZHVsZX0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcblxuaW1wb3J0IHtCb29sZWFuUGlwZSwgQ29tcG9uZW50RGlyZWN0aXZlLCBFbnVtUGlwZSwgR2V0dGVyUGlwZSwgSnNvblBhdGhQaXBlLCBUZW1wbGF0ZVBpcGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge0NvbHVtbkRlc2NyaXB0b3IsIENvbHVtbkRpc3BsYXlUeXBlRW51bX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZS9hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLXRhYmxlLWNvbHVtbi12YWx1ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi12YWx1ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLXZhbHVlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1Rvb2x0aXBNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgQm9vbGVhblBpcGUsIEVudW1QaXBlLCBDb21wb25lbnREaXJlY3RpdmUsIEJ1dHRvbk1vZHVsZSwgUmlwcGxlTW9kdWxlLCBEZWNpbWFsUGlwZSwgQ3VycmVuY3lQaXBlLCBEYXRlUGlwZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1ob3N0LW1ldGFkYXRhLXByb3BlcnR5XG4gICAgaG9zdDogeydbY2xhc3NdJzogJ2NsYXNzTmFtZSgpJywgJ1tzdHlsZS5tYXgtd2lkdGgucHhdJzogJ3N0eWxlTWF4V2lkdGgoKSd9XG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sdW1uVmFsdWVDb21wb25lbnQ8VCwgVFQ+IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sdW1uRGlzcGxheVR5cGVTdHJpbmc6IENvbHVtbkRpc3BsYXlUeXBlRW51bSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5TdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlTnVtYmVyOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uTnVtYmVyO1xuICAgIHB1YmxpYyByZWFkb25seSBjb2x1bW5EaXNwbGF5VHlwZUN1cnJlbmN5OiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQ3VycmVuY3k7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlQm9vbGVhbjogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkJvb2xlYW47XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlRGF0ZTogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkRhdGU7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlRW51bTogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkVudW07XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlQ29tcG9uZW50OiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQ29tcG9uZW50O1xuICAgIHB1YmxpYyByZWFkb25seSBjb2x1bW5EaXNwbGF5VHlwZUh0bWw6IENvbHVtbkRpc3BsYXlUeXBlRW51bSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5IdG1sO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2UgPSBpbmplY3QoTWVzc2FnZVNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBnZXR0ZXJQaXBlID0gbmV3IEdldHRlclBpcGUoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlUGlwZSA9IG5ldyBUZW1wbGF0ZVBpcGUoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGpzb25QYXRoUGlwZSA9IG5ldyBKc29uUGF0aFBpcGUoKTtcblxuICAgIHB1YmxpYyBkZXNjcmlwdG9yID0gaW5wdXQucmVxdWlyZWQ8Q29sdW1uRGVzY3JpcHRvcjxULCBUVD4+KCk7XG4gICAgcHVibGljIGl0ZW0gPSBpbnB1dC5yZXF1aXJlZDxhbnk+KCk7XG5cbiAgICBwdWJsaWMgc3R5bGVNYXhXaWR0aCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGVzY3JpcHRvcigpLm1heFdpZHRoID8/IG51bGwpO1xuICAgIHB1YmxpYyBjbGFzc05hbWUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGxldCBjbGFzc05hbWUgPSAnbm93cmFwJztcbiAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRvcigpLmNvbHVtbkRpc3BsYXlUeXBlID09PSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uU3RyaW5nICYmIHRoaXMuZGVzY3JpcHRvcigpLmlzTXVsdGlsaW5lKSB7XG4gICAgICAgICAgICBjbGFzc05hbWUgKz0gJyBtdWx0aWxpbmUnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGFzc05hbWU7XG4gICAgfSk7XG5cbiAgICBwdWJsaWMgdmFsdWUgPSBjb21wdXRlZDxhbnk+KCgpID0+IHtcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5qc29uUGF0aFBpcGUudHJhbnNmb3JtKHRoaXMuaXRlbSgpLCBgJC4ke3RoaXMuZGVzY3JpcHRvcigpLnByb3BlcnR5fWApO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVzY3JpcHRvcigpLmdldHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmdldHRlclBpcGUudHJhbnNmb3JtKHZhbHVlLCB0aGlzLmRlc2NyaXB0b3IoKS5nZXR0ZXIsIHRoaXMuaXRlbSgpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yKCkudGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy50ZW1wbGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCB0aGlzLmRlc2NyaXB0b3IoKS50ZW1wbGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pO1xuXG4gICAgcHVibGljIGN1cnJlbmN5ID0gY29tcHV0ZWQ8c3RyaW5nIHwgdW5kZWZpbmVkPigoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IoKS5jb2x1bW5EaXNwbGF5VHlwZSA9PT0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkN1cnJlbmN5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yKCkuY3VycmVuY3lQcm9wZXJ0eSA/IHRoaXMuaXRlbSgpW3RoaXMuZGVzY3JpcHRvcigpLmN1cnJlbmN5UHJvcGVydHkhXSA6ICh0aGlzLmRlc2NyaXB0b3IoKS5jdXJyZW5jeUNvZGUgPz8gJ0VVUicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9KTtcblxuICAgIHB1YmxpYyBjb3B5VG9DbGlwYm9hcmQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pbm5lclRleHQudHJpbSgpO1xuICAgICAgICBjb25zdCBjbGlwYm9hcmRWYWx1ZUdldHRlciA9IHRoaXMuZGVzY3JpcHRvcigpLmNsaXBib2FyZFZhbHVlR2V0dGVyO1xuICAgICAgICBpZiAoY2xpcGJvYXJkVmFsdWVHZXR0ZXIpIHtcbiAgICAgICAgICAgIHZhbHVlID0gY2xpcGJvYXJkVmFsdWVHZXR0ZXIodGhpcy52YWx1ZSgpLCB0aGlzLml0ZW0oKSk7XG4gICAgICAgIH1cbiAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodmFsdWUpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ21uZ1RhYmxlLmNvcHlOb3RpZmljYXRpb25UaXRsZScpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnbW5nVGFibGUuY29weU5vdGlmaWNhdGlvbk1lc3NhZ2UnLCB7dmFsdWV9KTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe3NldmVyaXR5OiAnaW5mbycsIHN1bW1hcnk6IHRpdGxlLCBkZXRhaWw6IG1lc3NhZ2V9KTtcbiAgICB9XG59XG4iLCJAaWYgKGRlc2NyaXB0b3IoKS5sb2NhbGl6YXRpb25FeGlzdHNQcm9wZXJ0eSAmJiAhaXRlbSgpW2Rlc2NyaXB0b3IoKS5sb2NhbGl6YXRpb25FeGlzdHNQcm9wZXJ0eSFdKSB7XG4gICAgPGkgY2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGVcIiBbcFRvb2x0aXBdPVwiJ21uZ1RhYmxlLnRyYW5zbGF0aW9uTWlzc2luZycgfCB0cmFuc2xhdGVcIj48L2k+XG59XG5Ac3dpdGNoIChkZXNjcmlwdG9yKCkuY29sdW1uRGlzcGxheVR5cGUpIHtcbiAgICBAY2FzZSAoY29sdW1uRGlzcGxheVR5cGVTdHJpbmcpIHtcbiAgICAgICAgQGlmIChkZXNjcmlwdG9yKCkuaGFzVmFsdWVBc1Rvb2x0aXApIHtcbiAgICAgICAgICAgIDxzcGFuIFtwVG9vbHRpcF09XCJ2YWx1ZSgpXCIgdG9vbHRpcFBvc2l0aW9uPVwibGVmdFwiPnt7IHZhbHVlKCkgfX08L3NwYW4+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAge3sgdmFsdWUoKSB9fVxuICAgICAgICB9XG4gICAgfVxuICAgIEBjYXNlIChjb2x1bW5EaXNwbGF5VHlwZUh0bWwpIHtcbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJ2YWx1ZSgpXCI+PC9zcGFuPlxuICAgIH1cbiAgICBAY2FzZSAoY29sdW1uRGlzcGxheVR5cGVOdW1iZXIpIHtcbiAgICAgICAge3sgdmFsdWUoKSB8IG51bWJlcjogZGVzY3JpcHRvcigpLmRpc3BsYXlGb3JtYXQgOiBkZXNjcmlwdG9yKCkubG9jYWxlIH19XG4gICAgfVxuICAgIEBjYXNlIChjb2x1bW5EaXNwbGF5VHlwZUN1cnJlbmN5KSB7XG4gICAgICAgIHt7IHZhbHVlKCkgfCBjdXJyZW5jeTogY3VycmVuY3koKSA6IGRlc2NyaXB0b3IoKS5jdXJyZW5jeURpc3BsYXkgOiBkZXNjcmlwdG9yKCkuZGlzcGxheUZvcm1hdCA6IGRlc2NyaXB0b3IoKS5sb2NhbGUgfX1cbiAgICB9XG4gICAgQGNhc2UgKGNvbHVtbkRpc3BsYXlUeXBlRGF0ZSkge1xuICAgICAgICB7eyB2YWx1ZSgpIHwgZGF0ZTogZGVzY3JpcHRvcigpLmRpc3BsYXlGb3JtYXQgfX1cbiAgICB9XG4gICAgQGNhc2UgKGNvbHVtbkRpc3BsYXlUeXBlQm9vbGVhbikge1xuICAgICAgICBAaWYgKGRlc2NyaXB0b3IoKS5ib29sZWFuQXNJY29uKSB7XG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwidmFsdWUoKSB8IG1uZ0Jvb2xlYW46IGRlc2NyaXB0b3IoKS5ib29sZWFuWWVzIDogZGVzY3JpcHRvcigpLmJvb2xlYW5ObyA6IHRydWVcIj48L2k+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAge3sgdmFsdWUoKSB8IG1uZ0Jvb2xlYW46IGRlc2NyaXB0b3IoKS5ib29sZWFuWWVzIDogZGVzY3JpcHRvcigpLmJvb2xlYW5ObyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICB9XG4gICAgfVxuICAgIEBjYXNlIChjb2x1bW5EaXNwbGF5VHlwZUVudW0pIHtcbiAgICAgICAge3sgdmFsdWUoKSB8IG1uZ0VudW06IGRlc2NyaXB0b3IoKS5lbnVtIHwgdHJhbnNsYXRlIH19XG4gICAgfVxuICAgIEBjYXNlIChjb2x1bW5EaXNwbGF5VHlwZUNvbXBvbmVudCkge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbW5nQ29tcG9uZW50XT1cImRlc2NyaXB0b3IoKS5jdXN0b21Db21wb25lbnRUeXBlIVwiXG4gICAgICAgICAgICBbaW5wdXRzXT1cIntcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUoKSxcbiAgICAgICAgICAgICAgICBpdGVtOiBpdGVtKCksXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvcjogZGVzY3JpcHRvcigpXG4gICAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxufVxuQGlmIChkZXNjcmlwdG9yKCkuaGFzQ29weVRvQ2xpcGJvYXJkKSB7XG4gICAgPGRpdiBjbGFzcz1cImhlbHAtYnV0dG9uc1wiPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLWNvcHlcIiBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24taW5mbyBwLWJ1dHRvbi1zbVwiIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoJGV2ZW50KVwiPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxufVxuIl19
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXZhbHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RhYmxlL3NyYy9jb21wb25lbnRzL2NvbHVtbi12YWx1ZS9jb2x1bW4tdmFsdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vdGFibGUvc3JjL2NvbXBvbmVudHMvY29sdW1uLXZhbHVlL2NvbHVtbi12YWx1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RyxPQUFPLEVBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxPQUFPLEVBQUMsV0FBVyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzlILE9BQU8sRUFBbUIscUJBQXFCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7O0FBWXpGLE1BQU0sT0FBTyx5QkFBeUI7SUFWdEM7UUFXb0IsNEJBQXVCLEdBQTBCLHFCQUFxQixDQUFDLE1BQU0sQ0FBQztRQUM5RSw0QkFBdUIsR0FBMEIscUJBQXFCLENBQUMsTUFBTSxDQUFDO1FBQzlFLDhC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QUFXLDBDQUFFLFlBQVksNENBQUUsUUFBUTs7NEZBSzNJLHlCQUF5QjtrQkFWckMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sd0JBQXdCLFdBR3pCLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsbUJBQ3BJLHVCQUF1QixDQUFDLE1BQU0sUUFFekMsRUFBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixFQUFFLGlCQUFpQixFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDdXJyZW5jeVBpcGUsIERhdGVQaXBlLCBEZWNpbWFsUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge01lc3NhZ2VTZXJ2aWNlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge0J1dHRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHtSaXBwbGVNb2R1bGV9IGZyb20gJ3ByaW1lbmcvcmlwcGxlJztcbmltcG9ydCB7VG9vbHRpcE1vZHVsZX0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcblxuaW1wb3J0IHtCb29sZWFuUGlwZSwgQ29tcG9uZW50RGlyZWN0aXZlLCBFbnVtUGlwZSwgR2V0dGVyUGlwZSwgSnNvblBhdGhQaXBlLCBUZW1wbGF0ZVBpcGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge0NvbHVtbkRlc2NyaXB0b3IsIENvbHVtbkRpc3BsYXlUeXBlRW51bX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZS9hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLXRhYmxlLWNvbHVtbi12YWx1ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi12YWx1ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLXZhbHVlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1Rvb2x0aXBNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgQm9vbGVhblBpcGUsIEVudW1QaXBlLCBDb21wb25lbnREaXJlY3RpdmUsIEJ1dHRvbk1vZHVsZSwgUmlwcGxlTW9kdWxlLCBEZWNpbWFsUGlwZSwgQ3VycmVuY3lQaXBlLCBEYXRlUGlwZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1ob3N0LW1ldGFkYXRhLXByb3BlcnR5XG4gICAgaG9zdDogeydbY2xhc3NdJzogJ2NsYXNzTmFtZSgpJywgJ1tzdHlsZS5tYXgtd2lkdGgucHhdJzogJ3N0eWxlTWF4V2lkdGgoKSd9XG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sdW1uVmFsdWVDb21wb25lbnQ8VCwgVFQ+IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sdW1uRGlzcGxheVR5cGVTdHJpbmc6IENvbHVtbkRpc3BsYXlUeXBlRW51bSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5TdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlTnVtYmVyOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uTnVtYmVyO1xuICAgIHB1YmxpYyByZWFkb25seSBjb2x1bW5EaXNwbGF5VHlwZUN1cnJlbmN5OiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQ3VycmVuY3k7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlQm9vbGVhbjogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkJvb2xlYW47XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlRGF0ZTogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkRhdGU7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlRW51bTogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkVudW07XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlQ29tcG9uZW50OiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQ29tcG9uZW50O1xuICAgIHB1YmxpYyByZWFkb25seSBjb2x1bW5EaXNwbGF5VHlwZUh0bWw6IENvbHVtbkRpc3BsYXlUeXBlRW51bSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5IdG1sO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2UgPSBpbmplY3QoTWVzc2FnZVNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBnZXR0ZXJQaXBlID0gbmV3IEdldHRlclBpcGUoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlUGlwZSA9IG5ldyBUZW1wbGF0ZVBpcGUoKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGpzb25QYXRoUGlwZSA9IG5ldyBKc29uUGF0aFBpcGUoKTtcblxuICAgIHB1YmxpYyBkZXNjcmlwdG9yID0gaW5wdXQucmVxdWlyZWQ8Q29sdW1uRGVzY3JpcHRvcjxULCBUVD4+KCk7XG4gICAgcHVibGljIGl0ZW0gPSBpbnB1dC5yZXF1aXJlZDxhbnk+KCk7XG5cbiAgICBwdWJsaWMgc3R5bGVNYXhXaWR0aCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGVzY3JpcHRvcigpLm1heFdpZHRoID8/IG51bGwpO1xuICAgIHB1YmxpYyBjbGFzc05hbWUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGxldCBjbGFzc05hbWUgPSAnbm93cmFwJztcbiAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRvcigpLmNvbHVtbkRpc3BsYXlUeXBlID09PSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uU3RyaW5nICYmIHRoaXMuZGVzY3JpcHRvcigpLmlzTXVsdGlsaW5lKSB7XG4gICAgICAgICAgICBjbGFzc05hbWUgKz0gJyBtdWx0aWxpbmUnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGFzc05hbWU7XG4gICAgfSk7XG5cbiAgICBwdWJsaWMgdmFsdWUgPSBjb21wdXRlZDxhbnk+KCgpID0+IHtcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5qc29uUGF0aFBpcGUudHJhbnNmb3JtKHRoaXMuaXRlbSgpLCBgJC4ke3RoaXMuZGVzY3JpcHRvcigpLnByb3BlcnR5fWApO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVzY3JpcHRvcigpLmdldHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLmdldHRlclBpcGUudHJhbnNmb3JtKHZhbHVlLCB0aGlzLmRlc2NyaXB0b3IoKS5nZXR0ZXIsIHRoaXMuaXRlbSgpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yKCkudGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy50ZW1wbGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCB0aGlzLmRlc2NyaXB0b3IoKS50ZW1wbGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pO1xuXG4gICAgcHVibGljIGN1cnJlbmN5ID0gY29tcHV0ZWQ8c3RyaW5nIHwgdW5kZWZpbmVkPigoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IoKS5jb2x1bW5EaXNwbGF5VHlwZSA9PT0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkN1cnJlbmN5KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yKCkuY3VycmVuY3lQcm9wZXJ0eSA/IHRoaXMuaXRlbSgpW3RoaXMuZGVzY3JpcHRvcigpLmN1cnJlbmN5UHJvcGVydHkhXSA6ICh0aGlzLmRlc2NyaXB0b3IoKS5jdXJyZW5jeUNvZGUgPz8gJ0VVUicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9KTtcblxuICAgIHB1YmxpYyBoYXNDb3B5VG9DbGlwYm9hcmQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRlc2NyaXB0b3IoKS5oYXNDb3B5VG9DbGlwYm9hcmQgJiYgdGhpcy52YWx1ZSgpICE9IG51bGwpO1xuXG4gICAgcHVibGljIGNvcHlUb0NsaXBib2FyZChldmVudDogRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlubmVyVGV4dC50cmltKCk7XG4gICAgICAgIGNvbnN0IGNsaXBib2FyZFZhbHVlR2V0dGVyID0gdGhpcy5kZXNjcmlwdG9yKCkuY2xpcGJvYXJkVmFsdWVHZXR0ZXI7XG4gICAgICAgIGlmIChjbGlwYm9hcmRWYWx1ZUdldHRlcikge1xuICAgICAgICAgICAgdmFsdWUgPSBjbGlwYm9hcmRWYWx1ZUdldHRlcih0aGlzLnZhbHVlKCksIHRoaXMuaXRlbSgpKTtcbiAgICAgICAgfVxuICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnbW5nVGFibGUuY29weU5vdGlmaWNhdGlvblRpdGxlJyk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdtbmdUYWJsZS5jb3B5Tm90aWZpY2F0aW9uTWVzc2FnZScsIHt2YWx1ZX0pO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7c2V2ZXJpdHk6ICdpbmZvJywgc3VtbWFyeTogdGl0bGUsIGRldGFpbDogbWVzc2FnZX0pO1xuICAgIH1cbn1cbiIsIkBpZiAoZGVzY3JpcHRvcigpLmxvY2FsaXphdGlvbkV4aXN0c1Byb3BlcnR5ICYmICFpdGVtKClbZGVzY3JpcHRvcigpLmxvY2FsaXphdGlvbkV4aXN0c1Byb3BlcnR5IV0pIHtcbiAgICA8aSBjbGFzcz1cInBpIHBpLWV4Y2xhbWF0aW9uLWNpcmNsZVwiIFtwVG9vbHRpcF09XCInbW5nVGFibGUudHJhbnNsYXRpb25NaXNzaW5nJyB8IHRyYW5zbGF0ZVwiPjwvaT5cbn1cbkBzd2l0Y2ggKGRlc2NyaXB0b3IoKS5jb2x1bW5EaXNwbGF5VHlwZSkge1xuICAgIEBjYXNlIChjb2x1bW5EaXNwbGF5VHlwZVN0cmluZykge1xuICAgICAgICBAaWYgKGRlc2NyaXB0b3IoKS5oYXNWYWx1ZUFzVG9vbHRpcCkge1xuICAgICAgICAgICAgPHNwYW4gW3BUb29sdGlwXT1cInZhbHVlKClcIiB0b29sdGlwUG9zaXRpb249XCJsZWZ0XCI+e3sgdmFsdWUoKSB9fTwvc3Bhbj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICB7eyB2YWx1ZSgpIH19XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGNhc2UgKGNvbHVtbkRpc3BsYXlUeXBlSHRtbCkge1xuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cInZhbHVlKClcIj48L3NwYW4+XG4gICAgfVxuICAgIEBjYXNlIChjb2x1bW5EaXNwbGF5VHlwZU51bWJlcikge1xuICAgICAgICB7eyB2YWx1ZSgpIHwgbnVtYmVyOiBkZXNjcmlwdG9yKCkuZGlzcGxheUZvcm1hdCA6IGRlc2NyaXB0b3IoKS5sb2NhbGUgfX1cbiAgICB9XG4gICAgQGNhc2UgKGNvbHVtbkRpc3BsYXlUeXBlQ3VycmVuY3kpIHtcbiAgICAgICAge3sgdmFsdWUoKSB8IGN1cnJlbmN5OiBjdXJyZW5jeSgpIDogZGVzY3JpcHRvcigpLmN1cnJlbmN5RGlzcGxheSA6IGRlc2NyaXB0b3IoKS5kaXNwbGF5Rm9ybWF0IDogZGVzY3JpcHRvcigpLmxvY2FsZSB9fVxuICAgIH1cbiAgICBAY2FzZSAoY29sdW1uRGlzcGxheVR5cGVEYXRlKSB7XG4gICAgICAgIHt7IHZhbHVlKCkgfCBkYXRlOiBkZXNjcmlwdG9yKCkuZGlzcGxheUZvcm1hdCB9fVxuICAgIH1cbiAgICBAY2FzZSAoY29sdW1uRGlzcGxheVR5cGVCb29sZWFuKSB7XG4gICAgICAgIEBpZiAoZGVzY3JpcHRvcigpLmJvb2xlYW5Bc0ljb24pIHtcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJ2YWx1ZSgpIHwgbW5nQm9vbGVhbjogZGVzY3JpcHRvcigpLmJvb2xlYW5ZZXMgOiBkZXNjcmlwdG9yKCkuYm9vbGVhbk5vIDogdHJ1ZVwiPjwvaT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICB7eyB2YWx1ZSgpIHwgbW5nQm9vbGVhbjogZGVzY3JpcHRvcigpLmJvb2xlYW5ZZXMgOiBkZXNjcmlwdG9yKCkuYm9vbGVhbk5vIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGNhc2UgKGNvbHVtbkRpc3BsYXlUeXBlRW51bSkge1xuICAgICAgICB7eyB2YWx1ZSgpIHwgbW5nRW51bTogZGVzY3JpcHRvcigpLmVudW0gfCB0cmFuc2xhdGUgfX1cbiAgICB9XG4gICAgQGNhc2UgKGNvbHVtbkRpc3BsYXlUeXBlQ29tcG9uZW50KSB7XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIFttbmdDb21wb25lbnRdPVwiZGVzY3JpcHRvcigpLmN1c3RvbUNvbXBvbmVudFR5cGUhXCJcbiAgICAgICAgICAgIFtpbnB1dHNdPVwie1xuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSgpLFxuICAgICAgICAgICAgICAgIGl0ZW06IGl0ZW0oKSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yKClcbiAgICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG59XG5AaWYgKGhhc0NvcHlUb0NsaXBib2FyZCgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImhlbHAtYnV0dG9uc1wiPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLWNvcHlcIiBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24taW5mbyBwLWJ1dHRvbi1zbVwiIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoJGV2ZW50KVwiPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxufVxuIl19