@metadev/lux 0.26.0 → 0.28.0

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 (113) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/esm2022/lib/autocomplete/autocomplete.component.mjs +488 -0
  4. package/esm2022/lib/autocomplete-list/autocomplete-list.component.mjs +259 -0
  5. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +78 -0
  6. package/esm2022/lib/checkbox/checkbox.component.mjs +156 -0
  7. package/{esm2020 → esm2022}/lib/datasource.mjs +1 -1
  8. package/esm2022/lib/datetime/datetime.component.mjs +312 -0
  9. package/esm2022/lib/filter/filter.component.mjs +158 -0
  10. package/esm2022/lib/geolocation/geolocation.component.mjs +423 -0
  11. package/esm2022/lib/geolocation/geolocation.service.mjs +123 -0
  12. package/{esm2020 → esm2022}/lib/geolocation/openlayer-loader.service.mjs +62 -62
  13. package/esm2022/lib/helperFns.mjs +118 -0
  14. package/esm2022/lib/input/input.component.mjs +469 -0
  15. package/{esm2020 → esm2022}/lib/input/regexp.service.mjs +195 -195
  16. package/{esm2020 → esm2022}/lib/lang.mjs +8 -8
  17. package/esm2022/lib/lux.module.mjs +119 -0
  18. package/{esm2020 → esm2022}/lib/map/geopoint.mjs +1 -1
  19. package/esm2022/lib/map/map.component.mjs +275 -0
  20. package/esm2022/lib/modal/modal-backdrop.mjs +25 -0
  21. package/esm2022/lib/modal/modal-config.mjs +12 -0
  22. package/{esm2020 → esm2022}/lib/modal/modal-dismiss-reasons.mjs +5 -5
  23. package/esm2022/lib/modal/modal-ref.mjs +101 -0
  24. package/esm2022/lib/modal/modal-stack.mjs +182 -0
  25. package/esm2022/lib/modal/modal-window.mjs +125 -0
  26. package/esm2022/lib/modal/modal.service.mjs +28 -0
  27. package/esm2022/lib/modal/util.mjs +82 -0
  28. package/esm2022/lib/pagination/pagination.component.mjs +144 -0
  29. package/{esm2020 → esm2022}/lib/pagination/pagination.mjs +1 -1
  30. package/esm2022/lib/radiogroup/radiogroup.component.mjs +129 -0
  31. package/esm2022/lib/select/select.component.mjs +148 -0
  32. package/{esm2020 → esm2022}/lib/tooltip/placement.mjs +7 -7
  33. package/{esm2020 → esm2022}/lib/tooltip/tooltip-context.mjs +1 -1
  34. package/esm2022/lib/tooltip/tooltip.component.mjs +24 -0
  35. package/esm2022/lib/tooltip/tooltip.directive.mjs +69 -0
  36. package/esm2022/lib/tooltip/tooltip.service.mjs +137 -0
  37. package/esm2022/lib/tooltip/tooltop-content.mjs +9 -0
  38. package/esm2022/lib/voice-recognition/voice-recognition.directive.mjs +79 -0
  39. package/{esm2020 → esm2022}/lib/window/window.service.mjs +45 -45
  40. package/{esm2020 → esm2022}/metadev-lux.mjs +4 -4
  41. package/{esm2020 → esm2022}/public-api.mjs +20 -20
  42. package/{fesm2020 → fesm2022}/metadev-lux.mjs +4377 -4260
  43. package/fesm2022/metadev-lux.mjs.map +1 -0
  44. package/index.d.ts +5 -5
  45. package/lib/autocomplete/autocomplete.component.d.ts +81 -81
  46. package/lib/autocomplete-list/autocomplete-list.component.d.ts +65 -65
  47. package/lib/breadcrumb/breadcrumb.component.d.ts +22 -22
  48. package/lib/checkbox/checkbox.component.d.ts +47 -47
  49. package/lib/datasource.d.ts +13 -13
  50. package/lib/datetime/datetime.component.d.ts +69 -69
  51. package/lib/filter/filter.component.d.ts +51 -51
  52. package/lib/geolocation/geolocation.component.d.ts +123 -123
  53. package/lib/geolocation/geolocation.service.d.ts +32 -32
  54. package/lib/geolocation/openlayer-loader.service.d.ts +7 -7
  55. package/lib/helperFns.d.ts +15 -15
  56. package/lib/input/input.component.d.ts +108 -108
  57. package/lib/input/regexp.service.d.ts +15 -15
  58. package/lib/lang.d.ts +2 -2
  59. package/lib/lux.module.d.ts +27 -27
  60. package/lib/map/geopoint.d.ts +7 -7
  61. package/lib/map/map.component.d.ts +39 -39
  62. package/lib/modal/modal-backdrop.d.ts +8 -8
  63. package/lib/modal/modal-config.d.ts +14 -14
  64. package/lib/modal/modal-dismiss-reasons.d.ts +4 -4
  65. package/lib/modal/modal-ref.d.ts +41 -41
  66. package/lib/modal/modal-stack.d.ts +31 -31
  67. package/lib/modal/modal-window.d.ts +28 -28
  68. package/lib/modal/modal.service.d.ts +19 -19
  69. package/lib/modal/util.d.ts +40 -40
  70. package/lib/pagination/pagination.component.d.ts +52 -52
  71. package/lib/pagination/pagination.d.ts +10 -10
  72. package/lib/radiogroup/radiogroup.component.d.ts +37 -37
  73. package/lib/select/select.component.d.ts +38 -38
  74. package/lib/tooltip/placement.d.ts +7 -7
  75. package/lib/tooltip/tooltip-context.d.ts +3 -3
  76. package/lib/tooltip/tooltip.component.d.ts +11 -11
  77. package/lib/tooltip/tooltip.directive.d.ts +27 -27
  78. package/lib/tooltip/tooltip.service.d.ts +20 -20
  79. package/lib/tooltip/tooltop-content.d.ts +6 -6
  80. package/lib/voice-recognition/voice-recognition.directive.d.ts +16 -16
  81. package/lib/window/window.service.d.ts +11 -11
  82. package/package.json +7 -14
  83. package/public-api.d.ts +18 -18
  84. package/esm2020/lib/autocomplete/autocomplete.component.mjs +0 -479
  85. package/esm2020/lib/autocomplete-list/autocomplete-list.component.mjs +0 -254
  86. package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +0 -75
  87. package/esm2020/lib/checkbox/checkbox.component.mjs +0 -154
  88. package/esm2020/lib/datetime/datetime.component.mjs +0 -306
  89. package/esm2020/lib/filter/filter.component.mjs +0 -152
  90. package/esm2020/lib/geolocation/geolocation.component.mjs +0 -407
  91. package/esm2020/lib/geolocation/geolocation.service.mjs +0 -120
  92. package/esm2020/lib/helperFns.mjs +0 -117
  93. package/esm2020/lib/input/input.component.mjs +0 -452
  94. package/esm2020/lib/lux.module.mjs +0 -124
  95. package/esm2020/lib/map/map.component.mjs +0 -264
  96. package/esm2020/lib/modal/modal-backdrop.mjs +0 -26
  97. package/esm2020/lib/modal/modal-config.mjs +0 -14
  98. package/esm2020/lib/modal/modal-ref.mjs +0 -91
  99. package/esm2020/lib/modal/modal-stack.mjs +0 -179
  100. package/esm2020/lib/modal/modal-window.mjs +0 -119
  101. package/esm2020/lib/modal/modal.service.mjs +0 -26
  102. package/esm2020/lib/modal/util.mjs +0 -83
  103. package/esm2020/lib/pagination/pagination.component.mjs +0 -137
  104. package/esm2020/lib/radiogroup/radiogroup.component.mjs +0 -130
  105. package/esm2020/lib/select/select.component.mjs +0 -149
  106. package/esm2020/lib/tooltip/tooltip.component.mjs +0 -23
  107. package/esm2020/lib/tooltip/tooltip.directive.mjs +0 -60
  108. package/esm2020/lib/tooltip/tooltip.service.mjs +0 -134
  109. package/esm2020/lib/tooltip/tooltop-content.mjs +0 -7
  110. package/esm2020/lib/voice-recognition/voice-recognition.directive.mjs +0 -73
  111. package/fesm2015/metadev-lux.mjs +0 -4347
  112. package/fesm2015/metadev-lux.mjs.map +0 -1
  113. package/fesm2020/metadev-lux.mjs.map +0 -1
@@ -1,254 +0,0 @@
1
- import { Component, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
2
- import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { first } from 'rxjs/operators';
4
- import { isInitialAndEmpty } from '../helperFns';
5
- import { languageDetector } from '../lang';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "../autocomplete/autocomplete.component";
9
- export class AutocompleteListComponent {
10
- constructor() {
11
- this.literals = {
12
- en: {
13
- placeholder: 'new item',
14
- deleteLabelTemplate: 'Delete <<label>>',
15
- addMessage: 'Add'
16
- },
17
- es: {
18
- placeholder: 'nuevo elemento',
19
- deleteLabelTemplate: 'Eliminar <<label>>',
20
- addMessage: 'Añadir'
21
- }
22
- };
23
- this.internalDataSource = [];
24
- this.autoPopulate = false;
25
- this._value = [];
26
- this.labels = [];
27
- this.canAdd = false;
28
- this.touched = false;
29
- this._lang = languageDetector();
30
- this.dataSource = [];
31
- this.disabled = false;
32
- this.required = false;
33
- this.resolveLabelsFunction = undefined;
34
- this.populateFunction = undefined;
35
- this.valueChange = new EventEmitter();
36
- // ControlValueAccessor Interface
37
- this.onChange = (value) => { };
38
- this.onTouched = () => { };
39
- }
40
- set value(val) {
41
- if (val === this._value) {
42
- return;
43
- }
44
- const initialAndEmpty = isInitialAndEmpty(this._value, val);
45
- this._value = val;
46
- this.ensureLabelsForIds();
47
- this.populateWith('');
48
- this.onChange(this._value);
49
- if (!initialAndEmpty) {
50
- this.valueChange.emit(this._value);
51
- }
52
- }
53
- get value() {
54
- return this._value;
55
- }
56
- get lang() {
57
- return this._lang;
58
- }
59
- set lang(l) {
60
- if (l === this._lang) {
61
- return;
62
- }
63
- if (Object.keys(this.literals).includes(l)) {
64
- this._lang = l;
65
- }
66
- else {
67
- this._lang = 'en';
68
- }
69
- }
70
- writeValue(value) {
71
- this.value = value;
72
- }
73
- registerOnChange(onChange) {
74
- this.onChange = onChange;
75
- }
76
- registerOnTouched(onTouched) {
77
- this.onTouched = onTouched;
78
- }
79
- markAsTouched() {
80
- if (!this.touched && !this.disabled) {
81
- this.onTouched();
82
- this.touched = true;
83
- }
84
- }
85
- setDisabledState(disabled) {
86
- this.disabled = disabled;
87
- }
88
- // End ControlValueAccessor Interface
89
- // Validator interface
90
- registerOnValidatorChange() { }
91
- validate(control) {
92
- const value = control.value;
93
- if (this.required &&
94
- (value === '' || value === null || value === undefined)) {
95
- return { required: { value, reason: 'Required field.' } };
96
- }
97
- return null;
98
- }
99
- // End of Validator interface
100
- ngOnInit() {
101
- this.inputId = this.inputId
102
- ? this.inputId
103
- : `autocompletelist${AutocompleteListComponent.idCounter++}`;
104
- this.autoPopulate =
105
- !!this.resolveLabelsFunction && !!this.populateFunction && this.instance;
106
- this.ensureLabelsForIds();
107
- }
108
- ensureLabelsForIds() {
109
- if (this.autoPopulate && this.resolveLabelsFunction) {
110
- this.resolveLabelsFunction(this.instance, this._value)
111
- .pipe(first())
112
- .subscribe((data) => {
113
- const res = [];
114
- (this._value || []).map((id) => {
115
- const found = data.find((it) => it.key === id);
116
- if (found) {
117
- res.push(found.label);
118
- }
119
- else {
120
- res.push('(unset)');
121
- }
122
- });
123
- this.labels = res;
124
- });
125
- }
126
- else if (this.dataSource) {
127
- const res = [];
128
- (this._value || []).map((id) => {
129
- const found = this.dataSource.find((it) => it.key === id);
130
- if (found) {
131
- res.push(found.label);
132
- }
133
- else {
134
- res.push('(unset)');
135
- }
136
- });
137
- this.labels = res;
138
- }
139
- else {
140
- this.labels = this._value.map((it) => (it ? it.toString() : '(unset)'));
141
- }
142
- }
143
- removeAt(index) {
144
- if (this._value.length > index) {
145
- const key = this._value.splice(index, 1)[0];
146
- const label = this.labels.splice(index, 1)[0];
147
- this.internalDataSource.push({ key, label });
148
- }
149
- this.markAsTouched();
150
- }
151
- onValueChange() {
152
- this.updateCanAdd();
153
- }
154
- onNewEntryChange(event, auto) {
155
- if (event.key === 'Enter' && !!auto.value) {
156
- this.addNew(auto);
157
- }
158
- else if (event.key === 'Delete' || event.key === 'Backspace') {
159
- // todo
160
- }
161
- else {
162
- this.populateWith(auto.label + event.key);
163
- }
164
- this.updateCanAdd();
165
- }
166
- populateWith(searchText) {
167
- if (this.autoPopulate && this.populateFunction && this.instance) {
168
- this.populateFunction(this.instance, searchText)
169
- .pipe(first())
170
- .subscribe((data) => {
171
- this.internalDataSource = data.filter((it) => !(this._value || []).includes(it.key));
172
- });
173
- }
174
- else if (this.dataSource) {
175
- this.internalDataSource = this.dataSource.filter((it) => !(this._value || []).includes(it.key));
176
- }
177
- }
178
- updateCanAdd() {
179
- this.canAdd =
180
- !this.disabled &&
181
- this.auto &&
182
- !!this.auto.value && // has value
183
- !this.value.find((it) => it === this.auto.value); // not already in
184
- }
185
- addNew(auto) {
186
- this.value.push(auto.value);
187
- this.ensureLabelsForIds();
188
- this.newEntry = '';
189
- this.internalDataSource = this.internalDataSource.filter((it) => !this._value.includes(it.key));
190
- this.markAsTouched();
191
- }
192
- getDeleteMessage(label) {
193
- return (this.deleteLabelTemplate ?? this.literals[this.lang].deleteLabelTemplate).replace('<<label>>', label);
194
- }
195
- }
196
- AutocompleteListComponent.idCounter = 0;
197
- AutocompleteListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AutocompleteListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
198
- AutocompleteListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: AutocompleteListComponent, selector: "lux-autocomplete-list", inputs: { value: "value", lang: "lang", inputId: "inputId", dataSource: "dataSource", placeholder: "placeholder", disabled: "disabled", deleteLabelTemplate: "deleteLabelTemplate", addMessage: "addMessage", required: "required", resolveLabelsFunction: "resolveLabelsFunction", populateFunction: "populateFunction", instance: "instance" }, outputs: { valueChange: "valueChange" }, providers: [
199
- {
200
- provide: NG_VALUE_ACCESSOR,
201
- multi: true,
202
- useExisting: forwardRef(() => AutocompleteListComponent)
203
- },
204
- {
205
- provide: NG_VALIDATORS,
206
- multi: true,
207
- useExisting: forwardRef(() => AutocompleteListComponent)
208
- }
209
- ], viewQueries: [{ propertyName: "auto", first: true, predicate: ["auto"], descendants: true }], ngImport: i0, template: "<div [id]=\"inputId\">\n <ul>\n <li *ngFor=\"let label of labels; let index = index\">\n <span>{{ label }}</span>\n <button\n *ngIf=\"!disabled\"\n class=\"remove-item\"\n (click)=\"removeAt(index)\"\n attr.aria-label=\"{{ getDeleteMessage(label) }}\"\n ></button>\n </li>\n </ul>\n <div *ngIf=\"!disabled\" class=\"new-entry\">\n <lux-autocomplete\n #auto\n [dataSource]=\"internalDataSource\"\n [placeholder]=\"placeholder ?? literals[lang].placeholder\"\n [(value)]=\"newEntry\"\n (valueChange)=\"onValueChange()\"\n (keypress)=\"onNewEntryChange($event, auto)\"\n >\n </lux-autocomplete>\n <button\n *ngIf=\"canAdd\"\n type=\"button\"\n class=\"add-item\"\n aria-label=\"addMessage ?? literals[lang].addMessage\"\n (click)=\"addNew(auto)\"\n ></button>\n </div>\n</div>\n", styles: [".new-entry{margin-left:1.5rem;display:grid;grid-template-columns:max-content max-content}.new-entry lux-autocomplete{grid-column:1;grid-row:1}.new-entry .add-item{grid-column:2;grid-row:1;border:none;background:var(--lux-autocomplete-list-add-icon, url(/assets/img/create.png) no-repeat .2rem .2rem);background-size:var(--lux-autocomplete-list-add-icon-size, 1.1rem);height:var(--lux-autocomplete-list-add-icon-height, 1.4rem);width:var(--lux-autocomplete-list-add-icon-width, 1.4rem)}.remove-item{margin-left:.5rem;border:none;background:var(--lux-autocomplete-list-remove-icon, url(/assets/img/delete.svg) no-repeat .2rem .1rem);height:var(--lux-autocomplete-list-remove-icon-height, 1.2rem);width:var(--lux-autocomplete-list-remove-icon-width, 1.3rem);position:relative;top:var(--lux-autocomplete-list-remove-icon-top, .2rem);background-size:var(--lux-autocomplete-list-remove-icon-size, 1rem 1rem)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.AutocompleteComponent, selector: "lux-autocomplete", inputs: ["inputId", "disabled", "readonly", "label", "canAddNewValues", "keepOpenAfterDelete", "value", "dataSource", "required", "placeholder", "resolveLabelsFunction", "populateFunction", "instance"], outputs: ["valueChange", "dataSourceChange"] }] });
210
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AutocompleteListComponent, decorators: [{
211
- type: Component,
212
- args: [{ selector: 'lux-autocomplete-list', providers: [
213
- {
214
- provide: NG_VALUE_ACCESSOR,
215
- multi: true,
216
- useExisting: forwardRef(() => AutocompleteListComponent)
217
- },
218
- {
219
- provide: NG_VALIDATORS,
220
- multi: true,
221
- useExisting: forwardRef(() => AutocompleteListComponent)
222
- }
223
- ], template: "<div [id]=\"inputId\">\n <ul>\n <li *ngFor=\"let label of labels; let index = index\">\n <span>{{ label }}</span>\n <button\n *ngIf=\"!disabled\"\n class=\"remove-item\"\n (click)=\"removeAt(index)\"\n attr.aria-label=\"{{ getDeleteMessage(label) }}\"\n ></button>\n </li>\n </ul>\n <div *ngIf=\"!disabled\" class=\"new-entry\">\n <lux-autocomplete\n #auto\n [dataSource]=\"internalDataSource\"\n [placeholder]=\"placeholder ?? literals[lang].placeholder\"\n [(value)]=\"newEntry\"\n (valueChange)=\"onValueChange()\"\n (keypress)=\"onNewEntryChange($event, auto)\"\n >\n </lux-autocomplete>\n <button\n *ngIf=\"canAdd\"\n type=\"button\"\n class=\"add-item\"\n aria-label=\"addMessage ?? literals[lang].addMessage\"\n (click)=\"addNew(auto)\"\n ></button>\n </div>\n</div>\n", styles: [".new-entry{margin-left:1.5rem;display:grid;grid-template-columns:max-content max-content}.new-entry lux-autocomplete{grid-column:1;grid-row:1}.new-entry .add-item{grid-column:2;grid-row:1;border:none;background:var(--lux-autocomplete-list-add-icon, url(/assets/img/create.png) no-repeat .2rem .2rem);background-size:var(--lux-autocomplete-list-add-icon-size, 1.1rem);height:var(--lux-autocomplete-list-add-icon-height, 1.4rem);width:var(--lux-autocomplete-list-add-icon-width, 1.4rem)}.remove-item{margin-left:.5rem;border:none;background:var(--lux-autocomplete-list-remove-icon, url(/assets/img/delete.svg) no-repeat .2rem .1rem);height:var(--lux-autocomplete-list-remove-icon-height, 1.2rem);width:var(--lux-autocomplete-list-remove-icon-width, 1.3rem);position:relative;top:var(--lux-autocomplete-list-remove-icon-top, .2rem);background-size:var(--lux-autocomplete-list-remove-icon-size, 1rem 1rem)}\n"] }]
224
- }], propDecorators: { auto: [{
225
- type: ViewChild,
226
- args: ['auto']
227
- }], value: [{
228
- type: Input
229
- }], lang: [{
230
- type: Input
231
- }], inputId: [{
232
- type: Input
233
- }], dataSource: [{
234
- type: Input
235
- }], placeholder: [{
236
- type: Input
237
- }], disabled: [{
238
- type: Input
239
- }], deleteLabelTemplate: [{
240
- type: Input
241
- }], addMessage: [{
242
- type: Input
243
- }], required: [{
244
- type: Input
245
- }], resolveLabelsFunction: [{
246
- type: Input
247
- }], populateFunction: [{
248
- type: Input
249
- }], instance: [{
250
- type: Input
251
- }], valueChange: [{
252
- type: Output
253
- }] } });
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvYXV0b2NvbXBsZXRlLWxpc3QvYXV0b2NvbXBsZXRlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvYXV0b2NvbXBsZXRlLWxpc3QvYXV0b2NvbXBsZXRlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxhQUFhLEVBQ2IsaUJBQWlCLEVBR2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7Ozs7QUFtQjNDLE1BQU0sT0FBTyx5QkFBeUI7SUFqQnRDO1FBd0JFLGFBQVEsR0FBRztZQUNULEVBQUUsRUFBRTtnQkFDRixXQUFXLEVBQUUsVUFBVTtnQkFDdkIsbUJBQW1CLEVBQUUsa0JBQWtCO2dCQUN2QyxVQUFVLEVBQUUsS0FBSzthQUNsQjtZQUNELEVBQUUsRUFBRTtnQkFDRixXQUFXLEVBQUUsZ0JBQWdCO2dCQUM3QixtQkFBbUIsRUFBRSxvQkFBb0I7Z0JBQ3pDLFVBQVUsRUFBRSxRQUFRO2FBQ3JCO1NBQ0YsQ0FBQztRQUVLLHVCQUFrQixHQUE0QixFQUFFLENBQUM7UUFDaEQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFckIsV0FBTSxHQUFVLEVBQUUsQ0FBQztRQWtCM0IsV0FBTSxHQUFhLEVBQUUs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SztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFJRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuLi9kYXRhc291cmNlJztcbmltcG9ydCB7IGlzSW5pdGlhbEFuZEVtcHR5IH0gZnJvbSAnLi4vaGVscGVyRm5zJztcbmltcG9ydCB7IGxhbmd1YWdlRGV0ZWN0b3IgfSBmcm9tICcuLi9sYW5nJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHV4LWF1dG9jb21wbGV0ZS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEF1dG9jb21wbGV0ZUxpc3RDb21wb25lbnQpXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBdXRvY29tcGxldGVMaXN0Q29tcG9uZW50KVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVMaXN0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0XG57XG4gIHN0YXRpYyBpZENvdW50ZXIgPSAwO1xuXG4gIEBWaWV3Q2hpbGQoJ2F1dG8nKSBhdXRvITogQXV0b2NvbXBsZXRlTGlzdENvbXBvbmVudDtcblxuICBsaXRlcmFscyA9IHtcbiAgICBlbjoge1xuICAgICAgcGxhY2Vob2xkZXI6ICduZXcgaXRlbScsXG4gICAgICBkZWxldGVMYWJlbFRlbXBsYXRlOiAnRGVsZXRlIDw8bGFiZWw+PicsXG4gICAgICBhZGRNZXNzYWdlOiAnQWRkJ1xuICAgIH0sXG4gICAgZXM6IHtcbiAgICAgIHBsYWNlaG9sZGVyOiAnbnVldm8gZWxlbWVudG8nLFxuICAgICAgZGVsZXRlTGFiZWxUZW1wbGF0ZTogJ0VsaW1pbmFyIDw8bGFiZWw+PicsXG4gICAgICBhZGRNZXNzYWdlOiAnQcOxYWRpcidcbiAgICB9XG4gIH07XG5cbiAgcHVibGljIGludGVybmFsRGF0YVNvdXJjZTogRGF0YVNvdXJjZTxhbnksIHN0cmluZz4gPSBbXTtcbiAgcHJpdmF0ZSBhdXRvUG9wdWxhdGUgPSBmYWxzZTtcblxuICBwcml2YXRlIF92YWx1ZTogYW55W10gPSBbXTtcbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHZhbDogYW55W10pIHtcbiAgICBpZiAodmFsID09PSB0aGlzLl92YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpbml0aWFsQW5kRW1wdHkgPSBpc0luaXRpYWxBbmRFbXB0eSh0aGlzLl92YWx1ZSwgdmFsKTtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbDtcbiAgICB0aGlzLmVuc3VyZUxhYmVsc0ZvcklkcygpO1xuICAgIHRoaXMucG9wdWxhdGVXaXRoKCcnKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICBpZiAoIWluaXRpYWxBbmRFbXB0eSkge1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlKTtcbiAgICB9XG4gIH1cbiAgZ2V0IHZhbHVlKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cbiAgbGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xuICBuZXdFbnRyeTogYW55O1xuICBjYW5BZGQgPSBmYWxzZTtcbiAgdG91Y2hlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2xhbmcgPSBsYW5ndWFnZURldGVjdG9yKCk7XG4gIEBJbnB1dCgpXG4gIGdldCBsYW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2xhbmc7XG4gIH1cbiAgc2V0IGxhbmcobDogc3RyaW5nKSB7XG4gICAgaWYgKGwgPT09IHRoaXMuX2xhbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKE9iamVjdC5rZXlzKHRoaXMubGl0ZXJhbHMpLmluY2x1ZGVzKGwpKSB7XG4gICAgICB0aGlzLl9sYW5nID0gbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbGFuZyA9ICdlbic7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgaW5wdXRJZDogc3RyaW5nO1xuICBASW5wdXQoKSBkYXRhU291cmNlOiBEYXRhU291cmNlPGFueSwgYW55PiA9IFtdO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZGVsZXRlTGFiZWxUZW1wbGF0ZT86IHN0cmluZztcbiAgQElucHV0KCkgYWRkTWVzc2FnZT86IHN0cmluZztcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKSByZXNvbHZlTGFiZWxzRnVuY3Rpb24/OiAoXG4gICAgaW5zdGFuY2U6IGFueSxcbiAgICBpZHM6IGFueVtdXG4gICkgPT4gT2JzZXJ2YWJsZTxEYXRhU291cmNlPGFueSwgc3RyaW5nPj4gPSB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHBvcHVsYXRlRnVuY3Rpb24/OiAoXG4gICAgaW5zdGFuY2U6IGFueSxcbiAgICBzZWFyY2g6IHN0cmluZ1xuICApID0+IE9ic2VydmFibGU8RGF0YVNvdXJjZTxhbnksIHN0cmluZz4+ID0gdW5kZWZpbmVkO1xuICBASW5wdXQoKSBpbnN0YW5jZTogYW55O1xuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgSW50ZXJmYWNlXG4gIG9uQ2hhbmdlID0gKHZhbHVlKTogdm9pZCA9PiB7fTtcbiAgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IG9uQ2hhbmdlO1xuICB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gIH1cbiAgbWFya0FzVG91Y2hlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudG91Y2hlZCAmJiAhdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgfVxuICB9XG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gIH1cbiAgLy8gRW5kIENvbnRyb2xWYWx1ZUFjY2Vzc29yIEludGVyZmFjZVxuXG4gIC8vIFZhbGlkYXRvciBpbnRlcmZhY2VcbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZSgpOiB2b2lkIHt9XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcbiAgICBpZiAoXG4gICAgICB0aGlzLnJlcXVpcmVkICYmXG4gICAgICAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgKSB7XG4gICAgICByZXR1cm4geyByZXF1aXJlZDogeyB2YWx1ZSwgcmVhc29uOiAnUmVxdWlyZWQgZmllbGQuJyB9IH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIC8vIEVuZCBvZiBWYWxpZGF0b3IgaW50ZXJmYWNlXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dElkID0gdGhpcy5pbnB1dElkXG4gICAgICA/IHRoaXMuaW5wdXRJZFxuICAgICAgOiBgYXV0b2NvbXBsZXRlbGlzdCR7QXV0b2NvbXBsZXRlTGlzdENvbXBvbmVudC5pZENvdW50ZXIrK31gO1xuICAgIHRoaXMuYXV0b1BvcHVsYXRlID1cbiAgICAgICEhdGhpcy5yZXNvbHZlTGFiZWxzRnVuY3Rpb24gJiYgISF0aGlzLnBvcHVsYXRlRnVuY3Rpb24gJiYgdGhpcy5pbnN0YW5jZTtcbiAgICB0aGlzLmVuc3VyZUxhYmVsc0ZvcklkcygpO1xuICB9XG4gIGVuc3VyZUxhYmVsc0ZvcklkcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvUG9wdWxhdGUgJiYgdGhpcy5yZXNvbHZlTGFiZWxzRnVuY3Rpb24pIHtcbiAgICAgIHRoaXMucmVzb2x2ZUxhYmVsc0Z1bmN0aW9uKHRoaXMuaW5zdGFuY2UsIHRoaXMuX3ZhbHVlKVxuICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICAgICh0aGlzLl92YWx1ZSB8fCBbXSkubWFwKChpZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm91bmQgPSBkYXRhLmZpbmQoKGl0KSA9PiBpdC5rZXkgPT09IGlkKTtcbiAgICAgICAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICAgICAgICByZXMucHVzaChmb3VuZC5sYWJlbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXMucHVzaCgnKHVuc2V0KScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMubGFiZWxzID0gcmVzO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xuICAgICAgY29uc3QgcmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgKHRoaXMuX3ZhbHVlIHx8IFtdKS5tYXAoKGlkKSA9PiB7XG4gICAgICAgIGNvbnN0IGZvdW5kID0gdGhpcy5kYXRhU291cmNlLmZpbmQoKGl0KSA9PiBpdC5rZXkgPT09IGlkKTtcbiAgICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgcmVzLnB1c2goZm91bmQubGFiZWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlcy5wdXNoKCcodW5zZXQpJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5sYWJlbHMgPSByZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGFiZWxzID0gdGhpcy5fdmFsdWUubWFwKChpdCkgPT4gKGl0ID8gaXQudG9TdHJpbmcoKSA6ICcodW5zZXQpJykpO1xuICAgIH1cbiAgfVxuICByZW1vdmVBdChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3ZhbHVlLmxlbmd0aCA+IGluZGV4KSB7XG4gICAgICBjb25zdCBrZXkgPSB0aGlzLl92YWx1ZS5zcGxpY2UoaW5kZXgsIDEpWzBdO1xuICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmxhYmVscy5zcGxpY2UoaW5kZXgsIDEpWzBdO1xuICAgICAgdGhpcy5pbnRlcm5hbERhdGFTb3VyY2UucHVzaCh7IGtleSwgbGFiZWwgfSk7XG4gICAgfVxuICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xuICB9XG4gIG9uVmFsdWVDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVDYW5BZGQoKTtcbiAgfVxuICBvbk5ld0VudHJ5Q2hhbmdlKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBhdXRvOiBBdXRvY29tcGxldGVDb21wb25lbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInICYmICEhYXV0by52YWx1ZSkge1xuICAgICAgdGhpcy5hZGROZXcoYXV0byk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnIHx8IGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgIC8vIHRvZG9cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wb3B1bGF0ZVdpdGgoYXV0by5sYWJlbCArIGV2ZW50LmtleSk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlQ2FuQWRkKCk7XG4gIH1cbiAgcG9wdWxhdGVXaXRoKHNlYXJjaFRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmF1dG9Qb3B1bGF0ZSAmJiB0aGlzLnBvcHVsYXRlRnVuY3Rpb24gJiYgdGhpcy5pbnN0YW5jZSkge1xuICAgICAgdGhpcy5wb3B1bGF0ZUZ1bmN0aW9uKHRoaXMuaW5zdGFuY2UsIHNlYXJjaFRleHQpXG4gICAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICB0aGlzLmludGVybmFsRGF0YVNvdXJjZSA9IGRhdGEuZmlsdGVyKFxuICAgICAgICAgICAgKGl0KSA9PiAhKHRoaXMuX3ZhbHVlIHx8IFtdKS5pbmNsdWRlcyhpdC5rZXkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRhdGFTb3VyY2UpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxEYXRhU291cmNlID0gdGhpcy5kYXRhU291cmNlLmZpbHRlcihcbiAgICAgICAgKGl0KSA9PiAhKHRoaXMuX3ZhbHVlIHx8IFtdKS5pbmNsdWRlcyhpdC5rZXkpXG4gICAgICApO1xuICAgIH1cbiAgfVxuICB1cGRhdGVDYW5BZGQoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5BZGQgPVxuICAgICAgIXRoaXMuZGlzYWJsZWQgJiZcbiAgICAgIHRoaXMuYXV0byAmJlxuICAgICAgISF0aGlzLmF1dG8udmFsdWUgJiYgLy8gaGFzIHZhbHVlXG4gICAgICAhdGhpcy52YWx1ZS5maW5kKChpdCkgPT4gaXQgPT09IHRoaXMuYXV0by52YWx1ZSk7IC8vIG5vdCBhbHJlYWR5IGluXG4gIH1cblxuICBhZGROZXcoYXV0bzogQXV0b2NvbXBsZXRlQ29tcG9uZW50KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZS5wdXNoKGF1dG8udmFsdWUpO1xuICAgIHRoaXMuZW5zdXJlTGFiZWxzRm9ySWRzKCk7XG4gICAgdGhpcy5uZXdFbnRyeSA9ICcnO1xuICAgIHRoaXMuaW50ZXJuYWxEYXRhU291cmNlID0gdGhpcy5pbnRlcm5hbERhdGFTb3VyY2UuZmlsdGVyKFxuICAgICAgKGl0KSA9PiAhdGhpcy5fdmFsdWUuaW5jbHVkZXMoaXQua2V5KVxuICAgICk7XG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cblxuICBnZXREZWxldGVNZXNzYWdlKGxhYmVsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmRlbGV0ZUxhYmVsVGVtcGxhdGUgPz8gdGhpcy5saXRlcmFsc1t0aGlzLmxhbmddLmRlbGV0ZUxhYmVsVGVtcGxhdGVcbiAgICApLnJlcGxhY2UoJzw8bGFiZWw+PicsIGxhYmVsKTtcbiAgfVxufVxuIiwiPGRpdiBbaWRdPVwiaW5wdXRJZFwiPlxuICA8dWw+XG4gICAgPGxpICpuZ0Zvcj1cImxldCBsYWJlbCBvZiBsYWJlbHM7IGxldCBpbmRleCA9IGluZGV4XCI+XG4gICAgICA8c3Bhbj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCIhZGlzYWJsZWRcIlxuICAgICAgICBjbGFzcz1cInJlbW92ZS1pdGVtXCJcbiAgICAgICAgKGNsaWNrKT1cInJlbW92ZUF0KGluZGV4KVwiXG4gICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7IGdldERlbGV0ZU1lc3NhZ2UobGFiZWwpIH19XCJcbiAgICAgID48L2J1dHRvbj5cbiAgICA8L2xpPlxuICA8L3VsPlxuICA8ZGl2ICpuZ0lmPVwiIWRpc2FibGVkXCIgY2xhc3M9XCJuZXctZW50cnlcIj5cbiAgICA8bHV4LWF1dG9jb21wbGV0ZVxuICAgICAgI2F1dG9cbiAgICAgIFtkYXRhU291cmNlXT1cImludGVybmFsRGF0YVNvdXJjZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgPz8gbGl0ZXJhbHNbbGFuZ10ucGxhY2Vob2xkZXJcIlxuICAgICAgWyh2YWx1ZSldPVwibmV3RW50cnlcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoKVwiXG4gICAgICAoa2V5cHJlc3MpPVwib25OZXdFbnRyeUNoYW5nZSgkZXZlbnQsIGF1dG8pXCJcbiAgICA+XG4gICAgPC9sdXgtYXV0b2NvbXBsZXRlPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwiY2FuQWRkXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJhZGQtaXRlbVwiXG4gICAgICBhcmlhLWxhYmVsPVwiYWRkTWVzc2FnZSA/PyBsaXRlcmFsc1tsYW5nXS5hZGRNZXNzYWdlXCJcbiAgICAgIChjbGljayk9XCJhZGROZXcoYXV0bylcIlxuICAgID48L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,75 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { Router, NavigationEnd, ActivatedRoute } from '@angular/router';
3
- import { filter } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/router";
6
- import * as i2 from "@angular/common";
7
- export class LuxBreadcrumbComponent {
8
- constructor(route, activedRoute) {
9
- this.route = route;
10
- this.activedRoute = activedRoute;
11
- this.subs = [];
12
- this.imagePath = '../assets/img/arrow-forward.svg';
13
- }
14
- ngOnInit() {
15
- this.subs.push(this.route.events
16
- .pipe(filter((event) => event instanceof NavigationEnd))
17
- .subscribe((_) => {
18
- this.breadcrumbs = [];
19
- this.addBreadcrumbs(this.activedRoute.snapshot.root, true, null);
20
- }));
21
- }
22
- ngOnDestroy() {
23
- this.subs.forEach((s) => s.unsubscribe());
24
- this.subs = [];
25
- }
26
- addBreadcrumbs(activedRouteSnapshot, isRoot, urlPrefix) {
27
- const routeConfig = activedRouteSnapshot.routeConfig;
28
- let url = urlPrefix || '';
29
- url += routeConfig ? '/' + this.getUrl(activedRouteSnapshot) : '';
30
- const label = routeConfig
31
- ? this.getLabel(activedRouteSnapshot)
32
- : isRoot
33
- ? 'Home'
34
- : '';
35
- if (label && url !== '/') {
36
- const breadcrumb = { label, url };
37
- this.breadcrumbs.push(breadcrumb);
38
- }
39
- if (activedRouteSnapshot.children.length) {
40
- this.addBreadcrumbs(activedRouteSnapshot.children[0], false, url);
41
- }
42
- }
43
- getUrl(activedRouteSnapshot) {
44
- if (!activedRouteSnapshot.url[0]) {
45
- return '';
46
- }
47
- const id = activedRouteSnapshot.params.id;
48
- return id
49
- ? `${activedRouteSnapshot.url[0]}/${id}`
50
- : activedRouteSnapshot.routeConfig.path || '';
51
- }
52
- getLabel(activedRouteSnapshot) {
53
- const routeConfig = activedRouteSnapshot.routeConfig;
54
- if (!routeConfig) {
55
- return null;
56
- }
57
- if (activedRouteSnapshot.data && activedRouteSnapshot.data.title) {
58
- const data = activedRouteSnapshot.data;
59
- if (data.objectTitle) {
60
- return `${data.title} ${data.objectTitle}`;
61
- }
62
- else {
63
- return data.title;
64
- }
65
- }
66
- return activedRouteSnapshot.params.id || routeConfig.path;
67
- }
68
- }
69
- LuxBreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LuxBreadcrumbComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
70
- LuxBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: LuxBreadcrumbComponent, selector: "lux-breadcrumb", ngImport: i0, template: "<ul class=\"lux-breadcrumb\">\n <li *ngFor=\"let breadcrumb of breadcrumbs; last as isLast; first as isFirst\"\n class=\"lux-breadcrumb-item\">\n <a [class.first]=\"isFirst\" routerLink=\"{{ breadcrumb.url }}\">{{ breadcrumb.label }}</a>\n <div *ngIf=\"!isLast\" class=\"lux-breadcrumb-separator\"></div>\n </li>\n</ul>\n", styles: [".lux-breadcrumb{padding:10px 12px;list-style:none;list-style-type:none}.lux-breadcrumb li{display:inline;font-size:.8em}.lux-breadcrumb li a.first{font-weight:700}.lux-breadcrumb li+li:before{padding:8px;color:#000}.lux-breadcrumb li a,ol.lux-breadcrumb li a:hover{text-decoration:underline}.lux-breadcrumb a{cursor:hand}.lux-breadcrumb-separator{color:red;position:relative;top:5px;height:16px;padding:0 8px;background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 512 512%22%3E %3Cpath d%3D%22M294.1 256L167 129c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.3 34 0L345 239c9.1 9.1 9.3 23.7.7 33.1L201.1 417c-4.7 4.7-10.9 7-17 7s-12.3-2.3-17-7c-9.4-9.4-9.4-24.6 0-33.9l127-127.1z%22%2F%3E%3C%2Fsvg%3E\");background-repeat:no-repeat;display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: LuxBreadcrumbComponent, decorators: [{
72
- type: Component,
73
- args: [{ selector: 'lux-breadcrumb', template: "<ul class=\"lux-breadcrumb\">\n <li *ngFor=\"let breadcrumb of breadcrumbs; last as isLast; first as isFirst\"\n class=\"lux-breadcrumb-item\">\n <a [class.first]=\"isFirst\" routerLink=\"{{ breadcrumb.url }}\">{{ breadcrumb.label }}</a>\n <div *ngIf=\"!isLast\" class=\"lux-breadcrumb-separator\"></div>\n </li>\n</ul>\n", styles: [".lux-breadcrumb{padding:10px 12px;list-style:none;list-style-type:none}.lux-breadcrumb li{display:inline;font-size:.8em}.lux-breadcrumb li a.first{font-weight:700}.lux-breadcrumb li+li:before{padding:8px;color:#000}.lux-breadcrumb li a,ol.lux-breadcrumb li a:hover{text-decoration:underline}.lux-breadcrumb a{cursor:hand}.lux-breadcrumb-separator{color:red;position:relative;top:5px;height:16px;padding:0 8px;background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 512 512%22%3E %3Cpath d%3D%22M294.1 256L167 129c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.3 34 0L345 239c9.1 9.1 9.3 23.7.7 33.1L201.1 417c-4.7 4.7-10.9 7-17 7s-12.3-2.3-17-7c-9.4-9.4-9.4-24.6 0-33.9l127-127.1z%22%2F%3E%3C%2Fsvg%3E\");background-repeat:no-repeat;display:inline-block}\n"] }]
74
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }]; } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sdXgvc3JjL2xpYi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTZCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFDTCxNQUFNLEVBQ04sYUFBYSxFQUNiLGNBQWMsRUFFZixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVl4QyxNQUFNLE9BQU8sc0JBQXNCO0lBS2pDLFlBQW9CLEtBQWEsRUFBVSxZQUE0QjtRQUFuRCxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBSC9ELFNBQUksR0FBbUIsRUFBRSxDQUFDO1FBQzNCLGNBQVMsR0FBRyxpQ0FBaUMsQ0FBQztJQUVxQixDQUFDO0lBRTNFLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDWixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07YUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLENBQUM7YUFDdkQsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTyxjQUFjLENBQ3BCLG9CQUE0QyxFQUM1QyxNQUFlLEVBQ2YsU0FBaUI7UUFFakIsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsV0FBVyxDQUFDO1FBQ3JELElBQUksR0FBRyxHQUFHLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDMUIsR0FBRyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2xFLE1BQU0sS0FBSyxHQUFHLFdBQVc7WUFDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUM7WUFDckMsQ0FBQyxDQUFDLE1BQU07Z0JBQ1IsQ0FBQyxDQUFDLE1BQU07Z0JBQ1IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLElBQUksS0FBSyxJQUFJLEdBQUcsS0FBSyxHQUFHLEVBQUU7WUFDeEIsTUFBTSxVQUFVLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbkM7UUFDRCxJQUFJLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ25FO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxvQkFBNEM7UUFDekQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoQyxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsTUFBTSxFQUFFLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMxQyxPQUFPLEVBQUU7WUFDUCxDQUFDLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3hDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRU8sUUFBUSxDQUFDLG9CQUE0QztRQUMzRCxNQUFNLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLENBQUM7UUFDckQsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNoRSxNQUFNLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7WUFDdkMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNwQixPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDNUM7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ25CO1NBQ0Y7UUFDRCxPQUFPLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQztJQUM1RCxDQUFDOzttSEFyRVUsc0JBQXNCO3VHQUF0QixzQkFBc0Isc0RDbkJuQyxnVkFPQTsyRkRZYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBSb3V0ZXIsXG4gIE5hdmlnYXRpb25FbmQsXG4gIEFjdGl2YXRlZFJvdXRlLFxuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90XG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBCcmVhZGNydW1iSXRlbSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xufVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHV4LWJyZWFkY3J1bWInLFxuICB0ZW1wbGF0ZVVybDogJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JyZWFkY3J1bWIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMdXhCcmVhZGNydW1iQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgYnJlYWRjcnVtYnM6IEJyZWFkY3J1bWJJdGVtW107XG4gIHByaXZhdGUgc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHVibGljIGltYWdlUGF0aCA9ICcuLi9hc3NldHMvaW1nL2Fycm93LWZvcndhcmQuc3ZnJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBSb3V0ZXIsIHByaXZhdGUgYWN0aXZlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnMucHVzaChcbiAgICAgIHRoaXMucm91dGUuZXZlbnRzXG4gICAgICAgIC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgICB0aGlzLmJyZWFkY3J1bWJzID0gW107XG4gICAgICAgICAgdGhpcy5hZGRCcmVhZGNydW1icyh0aGlzLmFjdGl2ZWRSb3V0ZS5zbmFwc2hvdC5yb290LCB0cnVlLCBudWxsKTtcbiAgICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzLmZvckVhY2goKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgdGhpcy5zdWJzID0gW107XG4gIH1cblxuICBwcml2YXRlIGFkZEJyZWFkY3J1bWJzKFxuICAgIGFjdGl2ZWRSb3V0ZVNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICAgIGlzUm9vdDogYm9vbGVhbixcbiAgICB1cmxQcmVmaXg6IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICBjb25zdCByb3V0ZUNvbmZpZyA9IGFjdGl2ZWRSb3V0ZVNuYXBzaG90LnJvdXRlQ29uZmlnO1xuICAgIGxldCB1cmwgPSB1cmxQcmVmaXggfHwgJyc7XG4gICAgdXJsICs9IHJvdXRlQ29uZmlnID8gJy8nICsgdGhpcy5nZXRVcmwoYWN0aXZlZFJvdXRlU25hcHNob3QpIDogJyc7XG4gICAgY29uc3QgbGFiZWwgPSByb3V0ZUNvbmZpZ1xuICAgICAgPyB0aGlzLmdldExhYmVsKGFjdGl2ZWRSb3V0ZVNuYXBzaG90KVxuICAgICAgOiBpc1Jvb3RcbiAgICAgID8gJ0hvbWUnXG4gICAgICA6ICcnO1xuICAgIGlmIChsYWJlbCAmJiB1cmwgIT09ICcvJykge1xuICAgICAgY29uc3QgYnJlYWRjcnVtYiA9IHsgbGFiZWwsIHVybCB9O1xuICAgICAgdGhpcy5icmVhZGNydW1icy5wdXNoKGJyZWFkY3J1bWIpO1xuICAgIH1cbiAgICBpZiAoYWN0aXZlZFJvdXRlU25hcHNob3QuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmFkZEJyZWFkY3J1bWJzKGFjdGl2ZWRSb3V0ZVNuYXBzaG90LmNoaWxkcmVuWzBdLCBmYWxzZSwgdXJsKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFVybChhY3RpdmVkUm91dGVTbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IHN0cmluZyB7XG4gICAgaWYgKCFhY3RpdmVkUm91dGVTbmFwc2hvdC51cmxbMF0pIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3QgaWQgPSBhY3RpdmVkUm91dGVTbmFwc2hvdC5wYXJhbXMuaWQ7XG4gICAgcmV0dXJuIGlkXG4gICAgICA/IGAke2FjdGl2ZWRSb3V0ZVNuYXBzaG90LnVybFswXX0vJHtpZH1gXG4gICAgICA6IGFjdGl2ZWRSb3V0ZVNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGggfHwgJyc7XG4gIH1cblxuICBwcml2YXRlIGdldExhYmVsKGFjdGl2ZWRSb3V0ZVNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogc3RyaW5nIHtcbiAgICBjb25zdCByb3V0ZUNvbmZpZyA9IGFjdGl2ZWRSb3V0ZVNuYXBzaG90LnJvdXRlQ29uZmlnO1xuICAgIGlmICghcm91dGVDb25maWcpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoYWN0aXZlZFJvdXRlU25hcHNob3QuZGF0YSAmJiBhY3RpdmVkUm91dGVTbmFwc2hvdC5kYXRhLnRpdGxlKSB7XG4gICAgICBjb25zdCBkYXRhID0gYWN0aXZlZFJvdXRlU25hcHNob3QuZGF0YTtcbiAgICAgIGlmIChkYXRhLm9iamVjdFRpdGxlKSB7XG4gICAgICAgIHJldHVybiBgJHtkYXRhLnRpdGxlfSAke2RhdGEub2JqZWN0VGl0bGV9YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkYXRhLnRpdGxlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYWN0aXZlZFJvdXRlU25hcHNob3QucGFyYW1zLmlkIHx8IHJvdXRlQ29uZmlnLnBhdGg7XG4gIH1cbn1cbiIsIjx1bCBjbGFzcz1cImx1eC1icmVhZGNydW1iXCI+XG4gIDxsaSAqbmdGb3I9XCJsZXQgYnJlYWRjcnVtYiBvZiBicmVhZGNydW1iczsgbGFzdCBhcyBpc0xhc3Q7IGZpcnN0IGFzIGlzRmlyc3RcIlxuICAgICAgY2xhc3M9XCJsdXgtYnJlYWRjcnVtYi1pdGVtXCI+XG4gICAgPGEgW2NsYXNzLmZpcnN0XT1cImlzRmlyc3RcIiByb3V0ZXJMaW5rPVwie3sgYnJlYWRjcnVtYi51cmwgfX1cIj57eyBicmVhZGNydW1iLmxhYmVsIH19PC9hPlxuICAgIDxkaXYgKm5nSWY9XCIhaXNMYXN0XCIgY2xhc3M9XCJsdXgtYnJlYWRjcnVtYi1zZXBhcmF0b3JcIj48L2Rpdj5cbiAgPC9saT5cbjwvdWw+XG4iXX0=
@@ -1,154 +0,0 @@
1
- import { Component, Input, EventEmitter, Output, forwardRef, ViewChild, ElementRef } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { isInitialAndEmpty } from '../helperFns';
4
- import { languageDetector } from '../lang';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- const KEY_SPACE = ' ';
8
- export class CheckboxComponent {
9
- set lang(l) {
10
- if (l === this._lang) {
11
- return;
12
- }
13
- if (Object.keys(this.literals).includes(l)) {
14
- this._lang = l;
15
- }
16
- else {
17
- this._lang = 'en';
18
- }
19
- }
20
- get lang() {
21
- return this._lang;
22
- }
23
- get value() {
24
- return this.internalValue;
25
- }
26
- set value(v) {
27
- if (this.internalValue === v) {
28
- return;
29
- }
30
- const initialAndEmpty = isInitialAndEmpty(this.internalValue, v);
31
- this.internalValue = v;
32
- this.syncModel();
33
- this.onChange(v);
34
- if (!initialAndEmpty) {
35
- this.valueChange.emit(v);
36
- }
37
- }
38
- get tabindexValue() {
39
- return this.disabled ? null : '0';
40
- }
41
- get disabled() {
42
- return this._disabled;
43
- }
44
- set disabled(v) {
45
- if (v === this._disabled) {
46
- return;
47
- }
48
- this._disabled = v;
49
- this.syncModel();
50
- }
51
- constructor() {
52
- this._lang = languageDetector();
53
- this.label = null;
54
- this.name = null;
55
- this._disabled = false;
56
- this.literals = {
57
- en: {
58
- yesLabel: 'Yes',
59
- noLabel: 'No'
60
- },
61
- es: {
62
- yesLabel: 'Sí',
63
- noLabel: 'No'
64
- }
65
- };
66
- this.touched = false;
67
- this.valueChange = new EventEmitter();
68
- // ControlValueAccessor Interface
69
- this.onChange = (value) => { };
70
- this.onTouched = () => { };
71
- }
72
- writeValue(value) {
73
- this.value = !!value;
74
- }
75
- registerOnChange(onChange) {
76
- this.onChange = onChange;
77
- }
78
- registerOnTouched(onTouched) {
79
- this.onTouched = onTouched;
80
- }
81
- markAsTouched() {
82
- if (!this.touched) {
83
- this.onTouched();
84
- this.touched = true;
85
- }
86
- }
87
- setDisabledState(disabled) {
88
- this.disabled = disabled;
89
- }
90
- // End ControlValueAccessor Interface
91
- ngOnInit() {
92
- this.inputId = this.inputId
93
- ? this.inputId
94
- : `${this.name || 'checkbox'}$${CheckboxComponent.idCounter++}`;
95
- }
96
- ngAfterViewInit() {
97
- this.syncModel();
98
- }
99
- clicked() {
100
- if (!this.disabled) {
101
- this.value = !this.internalValue;
102
- this.markAsTouched();
103
- }
104
- }
105
- onKey(event) {
106
- if (event.key === KEY_SPACE && !this.disabled) {
107
- this.value = !this.internalValue;
108
- this.markAsTouched();
109
- event.preventDefault();
110
- }
111
- }
112
- syncModel() {
113
- if (this.ck) {
114
- this.ck.nativeElement.checked = this.internalValue;
115
- }
116
- }
117
- }
118
- CheckboxComponent.idCounter = 0;
119
- CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
120
- CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: CheckboxComponent, selector: "lux-checkbox", inputs: { lang: "lang", value: "value", label: "label", name: "name", disabled: "disabled", inputId: "inputId" }, outputs: { valueChange: "valueChange" }, providers: [
121
- {
122
- provide: NG_VALUE_ACCESSOR,
123
- multi: true,
124
- useExisting: forwardRef(() => CheckboxComponent)
125
- }
126
- ], viewQueries: [{ propertyName: "ck", first: true, predicate: ["ck"], descendants: true }], ngImport: i0, template: "<div class=\"switch\">\n <div>\n <label *ngIf=\"label\" [for]=\"inputId\">{{ label }}</label>\n </div>\n <div *ngIf=\"!disabled\" class=\"switch-item\" (click)=\"clicked()\">\n <input #ck [name]=\"name\" type=\"checkbox\" [id]=\"inputId\" />\n <div\n class=\"slider round\"\n [class.on]=\"value\"\n [class.disabled]=\"disabled\"\n [tabindex]=\"tabindexValue\"\n (keyup)=\"onKey($event)\"\n ></div>\n </div>\n <div>\n <span class=\"checkbox-label\" *ngIf=\"value\">{{\n literals[lang].yesLabel\n }}</span>\n <span class=\"checkbox-label\" *ngIf=\"!value\">{{\n literals[lang].noLabel\n }}</span>\n </div>\n</div>\n", styles: [".switch{display:flex;flex-flow:row wrap;align-items:center}label{padding-right:1.1rem}.switch-item{padding-right:.5em}.slider.round{border-radius:.7rem;width:3.1rem;height:1.4rem}.slider.round:before{border-radius:50%}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;position:relative;top:-.7rem;background-color:#ccc;transition:.4s}.slider.on{background-color:#2196f3}.slider:before{position:absolute;content:\"\";height:1rem;width:1rem;left:.2rem;bottom:.2rem;background-color:#fff;transition:.4s}.slider.on:before{transform:translate(26px)}input:focus+.slider{box-shadow:0 0 1px #2196f3}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: CheckboxComponent, decorators: [{
128
- type: Component,
129
- args: [{ selector: 'lux-checkbox', providers: [
130
- {
131
- provide: NG_VALUE_ACCESSOR,
132
- multi: true,
133
- useExisting: forwardRef(() => CheckboxComponent)
134
- }
135
- ], template: "<div class=\"switch\">\n <div>\n <label *ngIf=\"label\" [for]=\"inputId\">{{ label }}</label>\n </div>\n <div *ngIf=\"!disabled\" class=\"switch-item\" (click)=\"clicked()\">\n <input #ck [name]=\"name\" type=\"checkbox\" [id]=\"inputId\" />\n <div\n class=\"slider round\"\n [class.on]=\"value\"\n [class.disabled]=\"disabled\"\n [tabindex]=\"tabindexValue\"\n (keyup)=\"onKey($event)\"\n ></div>\n </div>\n <div>\n <span class=\"checkbox-label\" *ngIf=\"value\">{{\n literals[lang].yesLabel\n }}</span>\n <span class=\"checkbox-label\" *ngIf=\"!value\">{{\n literals[lang].noLabel\n }}</span>\n </div>\n</div>\n", styles: [".switch{display:flex;flex-flow:row wrap;align-items:center}label{padding-right:1.1rem}.switch-item{padding-right:.5em}.slider.round{border-radius:.7rem;width:3.1rem;height:1.4rem}.slider.round:before{border-radius:50%}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;position:relative;top:-.7rem;background-color:#ccc;transition:.4s}.slider.on{background-color:#2196f3}.slider:before{position:absolute;content:\"\";height:1rem;width:1rem;left:.2rem;bottom:.2rem;background-color:#fff;transition:.4s}.slider.on:before{transform:translate(26px)}input:focus+.slider{box-shadow:0 0 1px #2196f3}\n"] }]
136
- }], ctorParameters: function () { return []; }, propDecorators: { ck: [{
137
- type: ViewChild,
138
- args: ['ck', { static: false }]
139
- }], lang: [{
140
- type: Input
141
- }], value: [{
142
- type: Input
143
- }], label: [{
144
- type: Input
145
- }], name: [{
146
- type: Input
147
- }], disabled: [{
148
- type: Input
149
- }], inputId: [{
150
- type: Input
151
- }], valueChange: [{
152
- type: Output
153
- }] } });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sRUFFTixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFFWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7O0FBRTNDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztBQWN0QixNQUFNLE9BQU8saUJBQWlCO0lBUTVCLElBQ0ksSUFBSSxDQUFDLENBQVM7UUFDaEIsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNwQixPQUFPO1NBQ1I7UUFDRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztTQUNoQjthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBQ0QsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUNE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QWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBR0YsUUFBUTtzQkFEWCxLQUFLO2dCQVdHLE9BQU87c0JBQWYsS0FBSztnQkFjSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsXG4gIE9uSW5pdCxcbiAgZm9yd2FyZFJlZixcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBBZnRlclZpZXdJbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgaXNJbml0aWFsQW5kRW1wdHkgfSBmcm9tICcuLi9oZWxwZXJGbnMnO1xuaW1wb3J0IHsgbGFuZ3VhZ2VEZXRlY3RvciB9IGZyb20gJy4uL2xhbmcnO1xuXG5jb25zdCBLRVlfU1BBQ0UgPSAnICc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x1eC1jaGVja2JveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaGVja2JveENvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnRcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBBZnRlclZpZXdJbml0XG57XG4gIHN0YXRpYyBpZENvdW50ZXIgPSAwO1xuXG4gIEBWaWV3Q2hpbGQoJ2NrJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNrOiBFbGVtZW50UmVmO1xuXG4gIHByaXZhdGUgX2xhbmcgPSBsYW5ndWFnZURldGVjdG9yKCk7XG4gIEBJbnB1dCgpXG4gIHNldCBsYW5nKGw6IHN0cmluZykge1xuICAgIGlmIChsID09PSB0aGlzLl9sYW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLmxpdGVyYWxzKS5pbmNsdWRlcyhsKSkge1xuICAgICAgdGhpcy5fbGFuZyA9IGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2xhbmcgPSAnZW4nO1xuICAgIH1cbiAgfVxuICBnZXQgbGFuZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9sYW5nO1xuICB9XG4gIHByaXZhdGUgaW50ZXJuYWxWYWx1ZTogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgZ2V0IHZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmludGVybmFsVmFsdWU7XG4gIH1cbiAgc2V0IHZhbHVlKHY6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5pbnRlcm5hbFZhbHVlID09PSB2KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGluaXRpYWxBbmRFbXB0eSA9IGlzSW5pdGlhbEFuZEVtcHR5KHRoaXMuaW50ZXJuYWxWYWx1ZSwgdik7XG4gICAgdGhpcy5pbnRlcm5hbFZhbHVlID0gdjtcbiAgICB0aGlzLnN5bmNNb2RlbCgpO1xuICAgIHRoaXMub25DaGFuZ2Uodik7XG4gICAgaWYgKCFpbml0aWFsQW5kRW1wdHkpIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcbiAgICB9XG4gIH1cblxuICBnZXQgdGFiaW5kZXhWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkID8gbnVsbCA6ICcwJztcbiAgfVxuXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSBudWxsO1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSBudWxsO1xuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2OiBib29sZWFuKSB7XG4gICAgaWYgKHYgPT09IHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2Rpc2FibGVkID0gdjtcbiAgICB0aGlzLnN5bmNNb2RlbCgpO1xuICB9XG4gIEBJbnB1dCgpIGlucHV0SWQ6IHN0cmluZztcblxuICBsaXRlcmFscyA9IHtcbiAgICBlbjoge1xuICAgICAgeWVzTGFiZWw6ICdZZXMnLFxuICAgICAgbm9MYWJlbDogJ05vJ1xuICAgIH0sXG4gICAgZXM6IHtcbiAgICAgIHllc0xhYmVsOiAnU8OtJyxcbiAgICAgIG5vTGFiZWw6ICdObydcbiAgICB9XG4gIH07XG4gIHRvdWNoZWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIEludGVyZmFjZVxuICBvbkNoYW5nZSA9ICh2YWx1ZSk6IHZvaWQgPT4ge307XG4gIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHt9O1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gISF2YWx1ZTtcbiAgfVxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gb25DaGFuZ2U7XG4gIH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgfVxuICBtYXJrQXNUb3VjaGVkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50b3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxuICAvLyBFbmQgQ29udHJvbFZhbHVlQWNjZXNzb3IgSW50ZXJmYWNlXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dElkID0gdGhpcy5pbnB1dElkXG4gICAgICA/IHRoaXMuaW5wdXRJZFxuICAgICAgOiBgJHt0aGlzLm5hbWUgfHwgJ2NoZWNrYm94J30kJHtDaGVja2JveENvbXBvbmVudC5pZENvdW50ZXIrK31gO1xuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNNb2RlbCgpO1xuICB9XG5cbiAgY2xpY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSAhdGhpcy5pbnRlcm5hbFZhbHVlO1xuICAgICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfVxuICB9XG4gIG9uS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZX1NQQUNFICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnZhbHVlID0gIXRoaXMuaW50ZXJuYWxWYWx1ZTtcbiAgICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN5bmNNb2RlbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jaykge1xuICAgICAgdGhpcy5jay5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSB0aGlzLmludGVybmFsVmFsdWU7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic3dpdGNoXCI+XG4gIDxkaXY+XG4gICAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBbZm9yXT1cImlucHV0SWRcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWRpc2FibGVkXCIgY2xhc3M9XCJzd2l0Y2gtaXRlbVwiIChjbGljayk9XCJjbGlja2VkKClcIj5cbiAgICA8aW5wdXQgI2NrIFtuYW1lXT1cIm5hbWVcIiB0eXBlPVwiY2hlY2tib3hcIiBbaWRdPVwiaW5wdXRJZFwiIC8+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzbGlkZXIgcm91bmRcIlxuICAgICAgW2NsYXNzLm9uXT1cInZhbHVlXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhWYWx1ZVwiXG4gICAgICAoa2V5dXApPVwib25LZXkoJGV2ZW50KVwiXG4gICAgPjwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICA8c3BhbiBjbGFzcz1cImNoZWNrYm94LWxhYmVsXCIgKm5nSWY9XCJ2YWx1ZVwiPnt7XG4gICAgICBsaXRlcmFsc1tsYW5nXS55ZXNMYWJlbFxuICAgIH19PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiY2hlY2tib3gtbGFiZWxcIiAqbmdJZj1cIiF2YWx1ZVwiPnt7XG4gICAgICBsaXRlcmFsc1tsYW5nXS5ub0xhYmVsXG4gICAgfX08L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=