@acorex/components 18.8.2 → 18.8.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. package/action-sheet/lib/action-sheet.component.d.ts +3 -12
  2. package/esm2022/action-sheet/lib/action-sheet.component.mjs +13 -22
  3. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +8 -9
  4. package/esm2022/color-palette/lib/color-palette.component.mjs +2 -2
  5. package/esm2022/common/lib/components/value-component.class.mjs +1 -1
  6. package/esm2022/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.mjs +1 -1
  7. package/esm2022/number-box/lib/number-box.component.mjs +47 -29
  8. package/esm2022/paint/lib/paint/paint-tools/paint-color-picker/paint-color-picker.component.mjs +3 -3
  9. package/esm2022/paint/lib/paint/paint-tools/paint-pen-cap/paint-pen-cap.component.mjs +3 -3
  10. package/esm2022/paint/lib/paint/paint-tools/paint-pen-mode-changer/paint-pen-mode-changer.component.mjs +1 -1
  11. package/esm2022/paint/lib/paint/paint-view/paint-view.component.mjs +4 -3
  12. package/esm2022/phone-box/lib/phone-box.component.mjs +3 -3
  13. package/esm2022/range-slider/lib/range-slider.class.mjs +1 -1
  14. package/esm2022/range-slider/lib/range-slider.component.mjs +156 -134
  15. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.mjs +7 -1
  16. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.mjs +29 -9
  17. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.mjs +3 -3
  18. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg.service.mjs +2 -1
  19. package/fesm2022/acorex-components-action-sheet.mjs +12 -21
  20. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  21. package/fesm2022/acorex-components-color-palette.mjs +7 -7
  22. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  23. package/fesm2022/acorex-components-common.mjs.map +1 -1
  24. package/fesm2022/acorex-components-conversation.mjs +1 -1
  25. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  26. package/fesm2022/acorex-components-number-box.mjs +46 -28
  27. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  28. package/fesm2022/acorex-components-paint.mjs +8 -7
  29. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  30. package/fesm2022/acorex-components-phone-box.mjs +2 -2
  31. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  32. package/fesm2022/acorex-components-range-slider.mjs +154 -132
  33. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  34. package/fesm2022/acorex-components-wysiwyg.mjs +36 -9
  35. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  36. package/number-box/lib/number-box.component.d.ts +30 -29
  37. package/package.json +64 -64
  38. package/range-slider/lib/range-slider.class.d.ts +1 -0
  39. package/range-slider/lib/range-slider.component.d.ts +43 -11
  40. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.d.ts +6 -2
  41. package/wysiwyg/lib/wysiwyg/wysiwyg.service.d.ts +1 -0
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, ViewEncapsulation, forwardRef, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, ElementRef, HostListener, Input, ViewChild, ViewEncapsulation, forwardRef, } from '@angular/core';
2
2
  import { IMaskDirective } from 'angular-imask';
3
3
  import { createMask } from 'imask';
4
4
  import { AXClearableComponent, AXComponent, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, MXLookComponent, } from '@acorex/components/common';
@@ -91,10 +91,10 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
91
91
  return this._minValue;
92
92
  }
93
93
  /**
94
- * Sets the number of decimal places to be used.
95
- * @param {number} v
96
- * @defaultvalue 0
97
- */
94
+ * Sets the number of decimal places to be used.
95
+ * @param {number} v
96
+ * @defaultvalue 0
97
+ */
98
98
  set minValue(v) {
99
99
  this.setOption({
100
100
  name: 'minValue',
@@ -122,22 +122,22 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
122
122
  this._updateMask();
123
123
  }
124
124
  /**
125
- * Handles internal option changes and updates the mask accordingly.
126
- */
125
+ * Handles internal option changes and updates the mask accordingly.
126
+ */
127
127
  internalOptionChanged() {
128
128
  this._updateMask();
129
129
  }
130
130
  /**
131
- * Resets the input element to its default state and calls the parent class reset method.
132
- */
131
+ * Resets the input element to its default state and calls the parent class reset method.
132
+ */
133
133
  reset() {
134
134
  this.input.nativeElement.value = null;
135
135
  super.reset(true);
136
136
  }
137
137
  /**
138
- * Ensures the value is within the min-max range, returning the default if null.
139
- * @param value
140
- */
138
+ * Ensures the value is within the min-max range, returning the default if null.
139
+ * @param value
140
+ */
141
141
  internalSetValue(value) {
142
142
  // || (value == 0 && !this._maskObj.value)
143
143
  if (value == null) {
@@ -224,8 +224,8 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
224
224
  v == 1 ? this.stepUp(true) : this.stepDown(true);
225
225
  }
226
226
  /**
227
- * Increases the value by the step amount, ensuring it's at least the minimum value.
228
- */
227
+ * Increases the value by the step amount, ensuring it's at least the minimum value.
228
+ */
229
229
  stepUp(u = false) {
230
230
  if (!this.value) {
231
231
  this.commitValue(Math.max(this.minValue, 0), u);
@@ -233,8 +233,8 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
233
233
  this.commitValue(this.value + toNumber(this.step), u);
234
234
  }
235
235
  /**
236
- * Decreases the value by the step amount, ensuring it's at least the minimum value.
237
- */
236
+ * Decreases the value by the step amount, ensuring it's at least the minimum value.
237
+ */
238
238
  stepDown(u = false) {
239
239
  if (!this.value) {
240
240
  this.commitValue(Math.max(this.minValue, 0), u);
@@ -242,8 +242,8 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
242
242
  this.commitValue(this.value - toNumber(this.step), u);
243
243
  }
244
244
  /**
245
- * Increases the value by the decimal step amount, using 'auto' or a custom step value.
246
- */
245
+ * Increases the value by the decimal step amount, using 'auto' or a custom step value.
246
+ */
247
247
  decimalStepUp(u = false) {
248
248
  if (!this.value) {
249
249
  this.commitValue(Math.max(this.minValue, 0), u);
@@ -251,16 +251,31 @@ export class AXNumberBoxComponent extends classes((MXInputBaseValueComponent), M
251
251
  this.commitValue(this.value + toNumber(this.decimalStep == 'auto' ? 1 / Math.pow(10, this.decimals) : this.decimalStep), u);
252
252
  }
253
253
  /**
254
- * Decreases the value by the decimal step amount, using 'auto' or a custom step value.
255
- */
254
+ * Decreases the value by the decimal step amount, using 'auto' or a custom step value.
255
+ */
256
256
  decimalStepDown(u = false) {
257
257
  if (!this.value) {
258
258
  this.commitValue(Math.max(this.minValue, 0), u);
259
259
  }
260
260
  this.commitValue(this.value - toNumber(this.decimalStep == 'auto' ? 1 / Math.pow(10, this.decimals) : this.decimalStep), u);
261
261
  }
262
+ // @HostBinding('class')
263
+ // get __hostClass(): string {
264
+ // return `ax-editor-container ax-look-${this.look} ${this.disabled ? 'ax-state-disabled' : ''}`;
265
+ // }
266
+ onWheel(event) {
267
+ event.preventDefault();
268
+ if (!this.disabled && !this.readonly) {
269
+ if (event.deltaY > 0) {
270
+ this.commitValue(this.value - this.step);
271
+ }
272
+ else {
273
+ this.commitValue(this.value + this.step);
274
+ }
275
+ }
276
+ }
262
277
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXNumberBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
263
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", look: "look", thousandsSeparator: "thousandsSeparator", padDecimalZeros: "padDecimalZeros", step: "step", decimals: "decimals", decimalStep: "decimalStep", showSpinButtons: "showSpinButtons", minValue: "minValue", maxValue: "maxValue", classNames: ["class", "classNames"] }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange", onKeyDown: "onKeyDown", onKeyUp: "onKeyUp", onKeyPress: "onKeyPress" }, providers: [
278
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", look: "look", thousandsSeparator: "thousandsSeparator", padDecimalZeros: "padDecimalZeros", step: "step", decimals: "decimals", decimalStep: "decimalStep", showSpinButtons: "showSpinButtons", minValue: "minValue", maxValue: "maxValue", classNames: ["class", "classNames"] }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange", onKeyDown: "onKeyDown", onKeyUp: "onKeyUp", onKeyPress: "onKeyPress" }, host: { listeners: { "wheel": "onWheel($event)" } }, providers: [
264
279
  { provide: AXComponent, useExisting: AXNumberBoxComponent },
265
280
  { provide: AXFocusableComponent, useExisting: AXNumberBoxComponent },
266
281
  { provide: AXClearableComponent, useExisting: AXNumberBoxComponent },
@@ -305,8 +320,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
305
320
  type: Input
306
321
  }],
307
322
  /**
308
- * Defines the increment step value.
309
- */
323
+ * Defines the increment step value.
324
+ */
310
325
  step: [{
311
326
  type: Input
312
327
  }], decimals: [{
@@ -320,9 +335,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
320
335
  type: Input
321
336
  }],
322
337
  /**
323
- * Indicates whether spin buttons are displayed.
324
- * @defaultvalue true
325
- */
338
+ * Indicates whether spin buttons are displayed.
339
+ * @defaultvalue true
340
+ */
326
341
  showSpinButtons: [{
327
342
  type: Input
328
343
  }], minValue: [{
@@ -331,13 +346,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
331
346
  type: Input
332
347
  }],
333
348
  /**
334
- * CSS classes to apply to the component.
335
- */
349
+ * CSS classes to apply to the component.
350
+ */
336
351
  classNames: [{
337
352
  type: Input,
338
353
  args: ['class']
339
354
  }], _maskDirective: [{
340
355
  type: ViewChild,
341
356
  args: [IMaskDirective]
357
+ }], onWheel: [{
358
+ type: HostListener,
359
+ args: ['wheel', ['$event']]
342
360
  }] } });
343
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbnVtYmVyLWJveC9zcmMvbGliL251bWJlci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL251bWJlci1ib3gvc3JjL2xpYi9udW1iZXItYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQWdCLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVqRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixlQUFlLEdBQ2hCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQzs7OztBQUVuQzs7OztHQUlHO0FBaUNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxPQUFPLENBQUMsQ0FBQSx5QkFBaUMsQ0FBQSxFQUFFLGVBQWUsQ0FBQztJQWhDckc7O1FBZ0VFLGNBQWM7UUFDTixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUF5QmpDOztXQUVHO1FBTUgsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUVULGNBQWM7UUFDTixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBdUJ0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dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYXNrRGlyZWN0aXZlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XG5pbXBvcnQgeyBNYXNrZWROdW1iZXIsIGNyZWF0ZU1hc2sgfSBmcm9tICdpbWFzayc7XG5cbmltcG9ydCB7XG4gIEFYQ2xlYXJhYmxlQ29tcG9uZW50LFxuICBBWENvbXBvbmVudCxcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXG4gIEFYVmFsdWFibGVDb21wb25lbnQsXG4gIE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQsXG4gIE1YTG9va0NvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlzRW1wdHksIHRvTnVtYmVyIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5cbi8qKlxuICogVGhlIE51bWJlckJveCBpcyBhIGNvbXBvbmVudCB3aGljaCBkZXRlY3RzIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHRyaWdnZXJzIGEgY29ycmVzcG9uZGluZyBldmVudFxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW51bWJlci1ib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLWJveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL251bWJlci1ib3guY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3JlYWRvbmx5JywgJ3RhYkluZGV4JywgJ3BsYWNlaG9sZGVyJywgJ3ZhbHVlJywgJ3N0YXRlJywgJ25hbWUnLCAnaWQnLCAnbG9vayddLFxuICBvdXRwdXRzOiBbXG4gICAgJ3ZhbHVlQ2hhbmdlJyxcbiAgICAnc3RhdGVDaGFuZ2UnLFxuICAgICdvblZhbHVlQ2hhbmdlZCcsXG4gICAgJ29uQmx1cicsXG4gICAgJ29uRm9jdXMnLFxuICAgICdyZWFkb25seUNoYW5nZScsXG4gICAgJ2Rpc2FibGVkQ2hhbmdlJyxcbiAgICAnb25LZXlEb3duJyxcbiAgICAnb25LZXlVcCcsXG4gICAgJ29uS2V5UHJlc3MnLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcblxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhOdW1iZXJCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhOdW1iZXJCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYQ2xlYXJhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhOdW1iZXJCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWE51bWJlckJveENvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhOdW1iZXJCb3hDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhOdW1iZXJCb3hDb21wb25lbnQgZXh0ZW5kcyBjbGFzc2VzKE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQ8bnVtYmVyPiwgTVhMb29rQ29tcG9uZW50KSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfdGhvdXNhbmRzU2VwYXJhdG9yOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBBIGNoYXJhY3RlciB2YWx1ZSB0aGF0IHNwZWNpZmllcyB0aGUgc2VwYXJhdG9yIGNoYXJhY3Rlci5cbiAgICovXG4gIEBJbnB1dCgpXG5cbi8qKlxuICogR2V0cyB0aGUgdGhvdXNhbmRzIHNlcGFyYXRvciB1c2VkIGluIHRoZSBmb3JtYXR0aW5nLlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKi9cbiAgcHVibGljIGdldCB0aG91c2FuZHNTZXBhcmF0b3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdGhvdXNhbmRzU2VwYXJhdG9yO1xuICB9XG5cbi8qKlxuICogU2V0cyB0aGUgdGhvdXNhbmRzIHNlcGFyYXRvciBmb3IgZm9ybWF0dGluZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSB2XG4gKi9cbiAgcHVibGljIHNldCB0aG91c2FuZHNTZXBhcmF0b3Iodjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3Rob3VzYW5kc1NlcGFyYXRvcicsXG4gICAgICB2YWx1ZTogdiA/PyAnJyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3BhZERlY2ltYWxaZXJvcyA9IGZhbHNlO1xuICAvKipcbiAgICogIEEgY2hhcmFjdGVyIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyLlxuICAgKi9cbiAgQElucHV0KClcblxuLyoqXG4gKiBHZXRzIHdoZXRoZXIgZGVjaW1hbCB6ZXJvcyBhcmUgcGFkZGVkLlxuICogQHBhcmFtIHtib29sZWFufSB2YWx1ZVxuICovXG4gIHB1YmxpYyBnZXQgcGFkRGVjaW1hbFplcm9zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wYWREZWNpbWFsWmVyb3M7XG4gIH1cblxuLyoqXG4gKiBTZXRzIHdoZXRoZXIgZGVjaW1hbCB6ZXJvcyBzaG91bGQgYmUgcGFkZGVkLlxuICogQHBhcmFtIHtib29sZWFufSB2XG4gKi9cbiAgcHVibGljIHNldCBwYWREZWNpbWFsWmVyb3ModjogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdwYWREZWNpbWFsWmVyb3MnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogIFNwZWNpZmllcyB0aGUgdmFsdWUgdGhhdCBpcyB1c2VkIHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQgdGhlICoqSW50ZWdlcioqIHBhcnQgb2YgbnVtYmVyXG4gICAqL1xuICBASW5wdXQoKVxuXG4gIC8qKlxuICogRGVmaW5lcyB0aGUgaW5jcmVtZW50IHN0ZXAgdmFsdWUuXG4gKi9cbiAgc3RlcCA9IDE7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZGVjaW1hbHMgPSAwO1xuICAvKipcbiAgICogIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGRlY2ltYWxzIHRoYXQgdGhlIHVzZXIgY2FuIGVudGVyXG4gICAqL1xuICBASW5wdXQoKVxuXG4vKipcbiAqIEdldHMgdGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyB0byBiZSB1c2VkLlxuICovXG4gIHB1YmxpYyBnZXQgZGVjaW1hbHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZGVjaW1hbHM7XG4gIH1cblxuLyoqXG4gKiBTZXRzIHRoZSBkZWNpbWFsIHBsYWNlczsgZGVmYXVsdHMgdG8gMCBpZiBub3QgcHJvdmlkZWQuXG4gKi9cbiAgcHVibGljIHNldCBkZWNpbWFscyh2OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnZGVjaW1hbHMnLFxuICAgICAgdmFsdWU6IHYgPz8gMCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgU3BlY2lmaWVzIHRoZSB2YWx1ZSB0aGF0IGlzIHVzZWQgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCB0aGUgKipEZWNpYW1sKiogcGFydCBvZiBudW1iZXJcbiAgICovXG4gIEBJbnB1dCgpXG5cbi8qKlxuICogRGVmaW5lcyB0aGUgc3RlcCBzaXplIGZvciBkZWNpbWFsIHZhbHVlcy5cbiAqIEBkZWZhdWx0dmFsdWUgJ2F1dG8nXG4gKi9cbiAgZGVjaW1hbFN0ZXA6IG51bWJlciB8ICdhdXRvJyA9ICdhdXRvJztcblxuICAvKipcbiAgICogIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBVcCBhbmQgRG93biBzcGluIGJ1dHRvbnMgd2lsbCBiZSByZW5kZXJlZCBvciBub3RcbiAgICovXG4gIEBJbnB1dCgpXG5cbiAvKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHNwaW4gYnV0dG9ucyBhcmUgZGlzcGxheWVkLlxuICogQGRlZmF1bHR2YWx1ZSB0cnVlXG4gKi9cbiAgc2hvd1NwaW5CdXR0b25zID0gdHJ1ZTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9taW5WYWx1ZTogbnVtYmVyID0gTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVI7XG4gIC8qKlxuICAgKiAgU3BlY2lmaWVzIHRoZSBzbWFsbGVzdCB2YWx1ZSB0aGF0IGlzIHZhbGlkXG4gICAqL1xuICBASW5wdXQoKVxuXG4gIC8qKlxuICogR2V0cyB0aGUgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIHVzZWQuXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqL1xuICBwdWJsaWMgZ2V0IG1pblZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21pblZhbHVlO1xuICB9XG5cbiAgLyoqXG4gKiBTZXRzIHRoZSBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgdG8gYmUgdXNlZC5cbiAqIEBwYXJhbSB7bnVtYmVyfSB2XG4gKiBAZGVmYXVsdHZhbHVlIDBcbiAqL1xuICBwdWJsaWMgc2V0IG1pblZhbHVlKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdtaW5WYWx1ZScsXG4gICAgICB2YWx1ZTogdiAhPSBudWxsID8gTnVtYmVyKHYpIDogTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIsXG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9tYXhWYWx1ZTogbnVtYmVyID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XG5cbiAgLyoqXG4gICAqICBTcGVjaWZpZXMgdGhlIGdyZWF0ZXN0IHZhbHVlIHRoYXQgaXMgdmFsaWRcbiAgICovXG4gIEBJbnB1dCgpXG5cbiAgLyoqXG4gKiBSZXR1cm5zIHRoZSBtYXhpbXVtIGFsbG93YWJsZSB2YWx1ZS5cbiAqL1xuICBwdWJsaWMgZ2V0IG1heFZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21heFZhbHVlO1xuICB9XG5cbi8qKlxuICogU2V0cyB0aGUgbWF4aW11bSBhbGxvd2FibGUgdmFsdWUsIGRlZmF1bHRpbmcgdG8gYE51bWJlci5NQVhfU0FGRV9JTlRFR0VSYCBpZiBudWxsLlxuICogQHBhcmFtIHZcbiAqL1xuICBwdWJsaWMgc2V0IG1heFZhbHVlKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICdtYXhWYWx1ZScsXG4gICAgICB2YWx1ZTogdiAhPSBudWxsID8gTnVtYmVyKHYpIDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAqIENTUyBjbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSBjb21wb25lbnQuXG4gKiBAcGFyYW0gY2xhc3NOYW1lc1xuICovXG4gIEBJbnB1dCgnY2xhc3MnKVxuXG4gIC8qKlxuICogQ1NTIGNsYXNzZXMgdG8gYXBwbHkgdG8gdGhlIGNvbXBvbmVudC5cbiAqL1xuICBjbGFzc05hbWVzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBfbWFza09iajogTWFza2VkTnVtYmVyO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBWaWV3Q2hpbGQoSU1hc2tEaXJlY3RpdmUpXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfbWFza0RpcmVjdGl2ZTogSU1hc2tEaXJlY3RpdmU8TWFza2VkTnVtYmVyPjtcblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fdXBkYXRlTWFzaygpO1xuICB9XG5cbiAgLyoqXG4gKiBIYW5kbGVzIGludGVybmFsIG9wdGlvbiBjaGFuZ2VzIGFuZCB1cGRhdGVzIHRoZSBtYXNrIGFjY29yZGluZ2x5LlxuICovXG4gIG92ZXJyaWRlIGludGVybmFsT3B0aW9uQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVNYXNrKCk7XG4gIH1cblxuICAvKipcbiAqIFJlc2V0cyB0aGUgaW5wdXQgZWxlbWVudCB0byBpdHMgZGVmYXVsdCBzdGF0ZSBhbmQgY2FsbHMgdGhlIHBhcmVudCBjbGFzcyByZXNldCBtZXRob2QuXG4gKi9cbiAgb3ZlcnJpZGUgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcbiAgICBzdXBlci5yZXNldCh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICogRW5zdXJlcyB0aGUgdmFsdWUgaXMgd2l0aGluIHRoZSBtaW4tbWF4IHJhbmdlLCByZXR1cm5pbmcgdGhlIGRlZmF1bHQgaWYgbnVsbC5cbiAqIEBwYXJhbSB2YWx1ZVxuICovXG4gIG92ZXJyaWRlIGludGVybmFsU2V0VmFsdWUodmFsdWU6IGFueSk6IG51bWJlciB7XG4gICAgLy8gfHwgKHZhbHVlID09IDAgJiYgIXRoaXMuX21hc2tPYmoudmFsdWUpXG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRWYWx1ZTtcbiAgICB9XG4gICAgY29uc3QgdiA9IHRvTnVtYmVyKHZhbHVlKTtcbiAgICBpZiAodiA8IHRoaXMubWluVmFsdWUpIHJldHVybiB0aGlzLm1pblZhbHVlO1xuICAgIGlmICh2ID4gdGhpcy5tYXhWYWx1ZSkgcmV0dXJuIHRoaXMubWF4VmFsdWU7XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF91cGRhdGVNYXNrKCkge1xuICAgIGlmICghdGhpcy5fbWFza09iaikge1xuICAgICAgdGhpcy5fbWFza09iaiA9IGNyZWF0ZU1hc2soe1xuICAgICAgICBtYXNrOiBOdW1iZXIsXG4gICAgICAgIG1pbjogdGhpcy5taW5WYWx1ZSxcbiAgICAgICAgbWF4OiB0aGlzLm1heFZhbHVlLFxuICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yIHx8ICcnLFxuICAgICAgICBzY2FsZTogdGhpcy5kZWNpbWFscyxcbiAgICAgICAgcmFkaXg6ICcuJyxcbiAgICAgICAgcGFkRnJhY3Rpb25hbFplcm9zOiB0aGlzLmRlY2ltYWxzID4gMCAmJiB0aGlzLnBhZERlY2ltYWxaZXJvcyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9tYXNrT2JqLmZvcm1hdCA9ICh2OiBudW1iZXIsIG0pID0+IHtcbiAgICAgICAgcmV0dXJuICFpc05hTih2KVxuICAgICAgICAgID8gdi50b0xvY2FsZVN0cmluZygnZW4tVVMnLCB7XG4gICAgICAgICAgICAgIHVzZUdyb3VwaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyMCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiAnJztcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX21hc2tPYmoudXBkYXRlT3B0aW9ucyh7XG4gICAgICAgIG1pbjogdGhpcy5taW5WYWx1ZSxcbiAgICAgICAgbWF4OiB0aGlzLm1heFZhbHVlLFxuICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3I6IHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yIHx8ICcnLFxuICAgICAgICBzY2FsZTogdGhpcy5kZWNpbWFscyxcbiAgICAgICAgcmFkaXg6ICcuJyxcbiAgICAgICAgcGFkRnJhY3Rpb25hbFplcm9zOiB0aGlzLmRlY2ltYWxzID4gMCAmJiB0aGlzLnBhZERlY2ltYWxaZXJvcyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLl9tYXNrRGlyZWN0aXZlPy5tYXNrUmVmPy51cGRhdGVWYWx1ZSgpO1xuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZUNvbnRyb2woKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIF9oYW5kbGVNb2RlbENoYW5nZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlID09IDAgJiYgaXNFbXB0eSh0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50Py52YWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLmNvbW1pdFZhbHVlKHZhbHVlLCB0cnVlKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIF9oYW5kbGVPbktleWRvd25FdmVudChlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkgcmV0dXJuO1xuICAgIGNvbnN0IGlnbm9yZSA9ICgpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfTtcbiAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgdmFsU3RyID0gaW5wdXQudmFsdWU7XG4gICAgY29uc3QgZGVjaW1hbFBvaW50SW5kZXggPSB2YWxTdHIuaW5kZXhPZignLicpO1xuICAgIGNvbnN0IF9jdXJzb3JQb3MgPSBpbnB1dC5zZWxlY3Rpb25TdGFydCE7XG5cbiAgICBpZiAoZS5rZXkgPT09ICdBcnJvd1VwJyB8fCBlLmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIGlmIChkZWNpbWFsUG9pbnRJbmRleCA+IDAgJiYgX2N1cnNvclBvcyA+IGRlY2ltYWxQb2ludEluZGV4ICYmIHRoaXMuZGVjaW1hbHMgPiAwKSB7XG4gICAgICAgIGUua2V5ID09PSAnQXJyb3dEb3duJyA/IHRoaXMuZGVjaW1hbFN0ZXBEb3duKHRydWUpIDogdGhpcy5kZWNpbWFsU3RlcFVwKHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZS5rZXkgPT09ICdBcnJvd0Rvd24nID8gdGhpcy5zdGVwRG93bih0cnVlKSA6IHRoaXMuc3RlcFVwKHRydWUpO1xuICAgICAgfVxuICAgICAgaWdub3JlKCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UoX2N1cnNvclBvcywgX2N1cnNvclBvcyk7XG4gICAgICB9LCA1KTtcbiAgICB9XG4gICAgc3VwZXIuZW1pdE9uS2V5ZG93bkV2ZW50KGUpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVVcERvd25DbGljayh2OiAtMSB8IDEpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSByZXR1cm47XG4gICAgdiA9PSAxID8gdGhpcy5zdGVwVXAodHJ1ZSkgOiB0aGlzLnN0ZXBEb3duKHRydWUpO1xuICB9XG5cbiAgLyoqXG4gKiBJbmNyZWFzZXMgdGhlIHZhbHVlIGJ5IHRoZSBzdGVwIGFtb3VudCwgZW5zdXJpbmcgaXQncyBhdCBsZWFzdCB0aGUgbWluaW11bSB2YWx1ZS5cbiAqL1xuICBzdGVwVXAodSA9IGZhbHNlKSB7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKE1hdGgubWF4KHRoaXMubWluVmFsdWUsIDApLCB1KTtcbiAgICB9XG4gICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLnZhbHVlICsgdG9OdW1iZXIodGhpcy5zdGVwKSwgdSk7XG4gIH1cblxuICAvKipcbiAqIERlY3JlYXNlcyB0aGUgdmFsdWUgYnkgdGhlIHN0ZXAgYW1vdW50LCBlbnN1cmluZyBpdCdzIGF0IGxlYXN0IHRoZSBtaW5pbXVtIHZhbHVlLlxuICovXG4gIHN0ZXBEb3duKHUgPSBmYWxzZSkge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShNYXRoLm1heCh0aGlzLm1pblZhbHVlLCAwKSwgdSk7XG4gICAgfVxuICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy52YWx1ZSAtIHRvTnVtYmVyKHRoaXMuc3RlcCksIHUpO1xuICB9XG5cbiAgLyoqXG4gKiBJbmNyZWFzZXMgdGhlIHZhbHVlIGJ5IHRoZSBkZWNpbWFsIHN0ZXAgYW1vdW50LCB1c2luZyAnYXV0bycgb3IgYSBjdXN0b20gc3RlcCB2YWx1ZS5cbiAqL1xuICBkZWNpbWFsU3RlcFVwKHUgPSBmYWxzZSkge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShNYXRoLm1heCh0aGlzLm1pblZhbHVlLCAwKSwgdSk7XG4gICAgfVxuICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy52YWx1ZSArIHRvTnVtYmVyKHRoaXMuZGVjaW1hbFN0ZXAgPT0gJ2F1dG8nID8gMSAvIE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxzKSA6IHRoaXMuZGVjaW1hbFN0ZXApLCB1KTtcbiAgfVxuXG4gIC8qKlxuICogRGVjcmVhc2VzIHRoZSB2YWx1ZSBieSB0aGUgZGVjaW1hbCBzdGVwIGFtb3VudCwgdXNpbmcgJ2F1dG8nIG9yIGEgY3VzdG9tIHN0ZXAgdmFsdWUuXG4gKi9cbiAgZGVjaW1hbFN0ZXBEb3duKHUgPSBmYWxzZSkge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5jb21taXRWYWx1ZShNYXRoLm1heCh0aGlzLm1pblZhbHVlLCAwKSwgdSk7XG4gICAgfVxuICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy52YWx1ZSAtIHRvTnVtYmVyKHRoaXMuZGVjaW1hbFN0ZXAgPT0gJ2F1dG8nID8gMSAvIE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxzKSA6IHRoaXMuZGVjaW1hbFN0ZXApLCB1KTtcbiAgfVxuXG4gIC8vIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAvLyBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgLy8gICByZXR1cm4gYGF4LWVkaXRvci1jb250YWluZXIgYXgtbG9vay0ke3RoaXMubG9va30gJHt0aGlzLmRpc2FibGVkID8gJ2F4LXN0YXRlLWRpc2FibGVkJyA6ICcnfWA7XG4gIC8vIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1lZGl0b3ItY29udGFpbmVyIGF4LWxvb2ste3tsb29rfX0ge3tjbGFzc05hbWVzfX1cIiBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+IDwvbmctY29udGVudD5cbiAgPGlucHV0ICNpbnB1dCBjbGFzcz1cImF4LWlucHV0XCIgdHlwZT1cInRleHRcIiBbaWRdPVwiaWRcIiBbbmFtZV09XCJuYW1lXCIgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCInb2ZmJ1wiIFtpbWFza109XCJfbWFza09ialwiIFt1bm1hc2tdPVwiJ3R5cGVkJ1wiIFthdHRyLm1pbl09XCJtaW5WYWx1ZVwiIFthdHRyLm1heF09XCJtYXhWYWx1ZVwiXG4gICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCIgW2NsYXNzLmF4LXN0YXRlLXJlYWRvbmx5XT1cInJlYWRvbmx5XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIiBbbmdNb2RlbF09XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIl9oYW5kbGVNb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICAoa2V5ZG93bik9XCJfaGFuZGxlT25LZXlkb3duRXZlbnQoJGV2ZW50KVwiIChrZXl1cCk9XCJlbWl0T25LZXl1cEV2ZW50KCRldmVudClcIlxuICAgIChrZXlwcmVzcyk9XCJlbWl0T25LZXlwcmVzc0V2ZW50KCRldmVudClcIiAoZm9jdXMpPVwiZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCIgKGJsdXIpPVwiZW1pdE9uQmx1ckV2ZW50KCRldmVudClcIiAvPlxuICBAaWYoaW5wdXQudmFsdWUgJiYgIWRpc2FibGVkICYmICFyZWFkb25seSl7XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWNsZWFyLWJ1dHRvblwiPjwvbmctY29udGVudD5cbiAgfVxuICBAaWYoc2hvd1NwaW5CdXR0b25zKXtcbiAgPGRpdiBjbGFzcz1cImF4LW51bWJlci1ib3gtY29udHJvbFwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLWljb25cIiBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgKGNsaWNrKT1cIl9oYW5kbGVVcERvd25DbGljaygxKVwiIHRhYmluZGV4PVwiLTFcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj48c3BhblxuICAgICAgICBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jaGV2cm9uLXVwIGF4LWFycm93LWJ1dHRvbiBcIj48L3NwYW4+PC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24taWNvblwiIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwiX2hhbmRsZVVwRG93bkNsaWNrKC0xKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPjxzcGFuXG4gICAgICAgIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNoZXZyb24tZG93biBheC1hcnJvdy1idXR0b24gXCI+PC9zcGFuPjwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICB9XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+IDwvbmctY29udGVudD5cbjwvZGl2PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+IDwvbmctY29udGVudD5cbjxkaXYgY2xhc3M9XCJheC1lcnJvci1jb250YWluZXJcIj48L2Rpdj4iXX0=
361
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbnVtYmVyLWJveC9zcmMvbGliL251bWJlci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL251bWJlci1ib3gvc3JjL2xpYi9udW1iZXItYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFnQixVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFakQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsZUFBZSxHQUNoQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7QUFFbkM7Ozs7R0FJRztBQWlDSCxNQUFNLE9BQU8sb0JBQ1gsU0FBUSxPQUFPLENBQUMsQ0FBQSx5QkFBaUMsQ0FBQSxFQUFFLGVBQWUsQ0FBQztJQWpDckU7O1FBa0VFLGNBQWM7UUFDTixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUF5QmpDOztXQUVHO1FBTUgsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUVULGNBQWM7UUFDTixjQUFTLEdBQUcsQ0FBQyxD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aUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBT21CLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFjUCxrQkFBa0I7c0JBTjVCLEtBQUs7Z0JBZ0NLLGVBQWU7c0JBTnpCLEtBQUs7O1FBMEJOOztXQUVHO1FBQ0gsSUFBSTtzQkFMSCxLQUFLO2dCQWlCSyxRQUFRO3NCQUxsQixLQUFLOztRQXdCTjs7O1dBR0c7UUFDSCxXQUFXO3NCQU5WLEtBQUs7O1FBYU47OztXQUdHO1FBQ0gsZUFBZTtzQkFOZCxLQUFLO2dCQW1CSyxRQUFRO3NCQU5sQixLQUFLO2dCQWlDSyxRQUFRO3NCQUxsQixLQUFLOztRQTBCTjs7V0FFRztRQUNILFVBQVU7c0JBTFQsS0FBSzt1QkFBQyxPQUFPO2dCQWdCTixjQUFjO3NCQUhyQixTQUFTO3VCQUFDLGNBQWM7Z0JBdUt6QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTWFza0RpcmVjdGl2ZSB9IGZyb20gJ2FuZ3VsYXItaW1hc2snO1xuaW1wb3J0IHsgTWFza2VkTnVtYmVyLCBjcmVhdGVNYXNrIH0gZnJvbSAnaW1hc2snO1xuXG5pbXBvcnQge1xuICBBWENsZWFyYWJsZUNvbXBvbmVudCxcbiAgQVhDb21wb25lbnQsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBNWElucHV0QmFzZVZhbHVlQ29tcG9uZW50LFxuICBNWExvb2tDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc0VtcHR5LCB0b051bWJlciB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xuXG4vKipcbiAqIFRoZSBOdW1iZXJCb3ggaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1udW1iZXItYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlci1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9udW1iZXItYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogWydkaXNhYmxlZCcsICdyZWFkb25seScsICd0YWJJbmRleCcsICdwbGFjZWhvbGRlcicsICd2YWx1ZScsICdzdGF0ZScsICduYW1lJywgJ2lkJywgJ2xvb2snXSxcbiAgb3V0cHV0czogW1xuICAgICd2YWx1ZUNoYW5nZScsXG4gICAgJ3N0YXRlQ2hhbmdlJyxcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxuICAgICdvbkJsdXInLFxuICAgICdvbkZvY3VzJyxcbiAgICAncmVhZG9ubHlDaGFuZ2UnLFxuICAgICdkaXNhYmxlZENoYW5nZScsXG4gICAgJ29uS2V5RG93bicsXG4gICAgJ29uS2V5VXAnLFxuICAgICdvbktleVByZXNzJyxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG5cbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYTnVtYmVyQm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYTnVtYmVyQm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWENsZWFyYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYTnVtYmVyQm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhOdW1iZXJCb3hDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYTnVtYmVyQm94Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTnVtYmVyQm94Q29tcG9uZW50XG4gIGV4dGVuZHMgY2xhc3NlcyhNWElucHV0QmFzZVZhbHVlQ29tcG9uZW50PG51bWJlcj4sIE1YTG9va0NvbXBvbmVudClcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0XG57XG4gIC8qKiBAaWdub3JlICovXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfdGhvdXNhbmRzU2VwYXJhdG9yOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBBIGNoYXJhY3RlciB2YWx1ZSB0aGF0IHNwZWNpZmllcyB0aGUgc2VwYXJhdG9yIGNoYXJhY3Rlci5cbiAgICovXG4gIEBJbnB1dCgpXG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHRob3VzYW5kcyBzZXBhcmF0b3IgdXNlZCBpbiB0aGUgZm9ybWF0dGluZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRob3VzYW5kc1NlcGFyYXRvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90aG91c2FuZHNTZXBhcmF0b3I7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdGhvdXNhbmRzIHNlcGFyYXRvciBmb3IgZm9ybWF0dGluZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHZcbiAgICovXG4gIHB1YmxpYyBzZXQgdGhvdXNhbmRzU2VwYXJhdG9yKHY6IHN0cmluZykge1xuICAgIHRoaXMuc2V0T3B0aW9uKHtcbiAgICAgIG5hbWU6ICd0aG91c2FuZHNTZXBhcmF0b3InLFxuICAgICAgdmFsdWU6IHYgPz8gJycsXG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9wYWREZWNpbWFsWmVyb3MgPSBmYWxzZTtcbiAgLyoqXG4gICAqICBBIGNoYXJhY3RlciB2YWx1ZSB0aGF0IHNwZWNpZmllcyB0aGUgc2VwYXJhdG9yIGNoYXJhY3Rlci5cbiAgICovXG4gIEBJbnB1dCgpXG5cbiAgLyoqXG4gICAqIEdldHMgd2hldGhlciBkZWNpbWFsIHplcm9zIGFyZSBwYWRkZWQuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gdmFsdWVcbiAgICovXG4gIHB1YmxpYyBnZXQgcGFkRGVjaW1hbFplcm9zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wYWREZWNpbWFsWmVyb3M7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB3aGV0aGVyIGRlY2ltYWwgemVyb3Mgc2hvdWxkIGJlIHBhZGRlZC5cbiAgICogQHBhcmFtIHtib29sZWFufSB2XG4gICAqL1xuICBwdWJsaWMgc2V0IHBhZERlY2ltYWxaZXJvcyh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3BhZERlY2ltYWxaZXJvcycsXG4gICAgICB2YWx1ZTogdixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgU3BlY2lmaWVzIHRoZSB2YWx1ZSB0aGF0IGlzIHVzZWQgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCB0aGUgKipJbnRlZ2VyKiogcGFydCBvZiBudW1iZXJcbiAgICovXG4gIEBJbnB1dCgpXG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGluY3JlbWVudCBzdGVwIHZhbHVlLlxuICAgKi9cbiAgc3RlcCA9IDE7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZGVjaW1hbHMgPSAwO1xuICAvKipcbiAgICogIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGRlY2ltYWxzIHRoYXQgdGhlIHVzZXIgY2FuIGVudGVyXG4gICAqL1xuICBASW5wdXQoKVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgdG8gYmUgdXNlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgZGVjaW1hbHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZGVjaW1hbHM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVjaW1hbCBwbGFjZXM7IGRlZmF1bHRzIHRvIDAgaWYgbm90IHByb3ZpZGVkLlxuICAgKi9cbiAgcHVibGljIHNldCBkZWNpbWFscyh2OiBudW1iZXIpIHtcbiAgICB0aGlzLnNldE9wdGlvbih7XG4gICAgICBuYW1lOiAnZGVjaW1hbHMnLFxuICAgICAgdmFsdWU6IHYgPz8gMCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgU3BlY2lmaWVzIHRoZSB2YWx1ZSB0aGF0IGlzIHVzZWQgdG8gaW5jcmVtZW50IG9yIGRlY3JlbWVudCB0aGUgKipEZWNpYW1sKiogcGFydCBvZiBudW1iZXJcbiAgICovXG4gIEBJbnB1dCgpXG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIHN0ZXAgc2l6ZSBmb3IgZGVjaW1hbCB2YWx1ZXMuXG4gICAqIEBkZWZhdWx0dmFsdWUgJ2F1dG8nXG4gICAqL1xuICBkZWNpbWFsU3RlcDogbnVtYmVyIHwgJ2F1dG8nID0gJ2F1dG8nO1xuXG4gIC8qKlxuICAgKiAgU3BlY2lmaWVzIHdoZXRoZXIgdGhlIFVwIGFuZCBEb3duIHNwaW4gYnV0dG9ucyB3aWxsIGJlIHJlbmRlcmVkIG9yIG5vdFxuICAgKi9cbiAgQElucHV0KClcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgc3BpbiBidXR0b25zIGFyZSBkaXNwbGF5ZWQuXG4gICAqIEBkZWZhdWx0dmFsdWUgdHJ1ZVxuICAgKi9cbiAgc2hvd1NwaW5CdXR0b25zID0gdHJ1ZTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9taW5WYWx1ZTogbnVtYmVyID0gTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVI7XG4gIC8qKlxuICAgKiAgU3BlY2lmaWVzIHRoZSBzbWFsbGVzdCB2YWx1ZSB0aGF0IGlzIHZhbGlkXG4gICAqL1xuICBASW5wdXQoKVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgdXNlZC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1pblZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21pblZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyB0byBiZSB1c2VkLlxuICAgKiBAcGFyYW0ge251bWJlcn0gdlxuICAgKiBAZGVmYXVsdHZhbHVlIDBcbiAgICovXG4gIHB1YmxpYyBzZXQgbWluVmFsdWUodjogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ21pblZhbHVlJyxcbiAgICAgIHZhbHVlOiB2ICE9IG51bGwgPyBOdW1iZXIodikgOiBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX21heFZhbHVlOiBudW1iZXIgPSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcblxuICAvKipcbiAgICogIFNwZWNpZmllcyB0aGUgZ3JlYXRlc3QgdmFsdWUgdGhhdCBpcyB2YWxpZFxuICAgKi9cbiAgQElucHV0KClcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbWF4aW11bSBhbGxvd2FibGUgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1heFZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21heFZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG1heGltdW0gYWxsb3dhYmxlIHZhbHVlLCBkZWZhdWx0aW5nIHRvIGBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUmAgaWYgbnVsbC5cbiAgICogQHBhcmFtIHZcbiAgICovXG4gIHB1YmxpYyBzZXQgbWF4VmFsdWUodjogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ21heFZhbHVlJyxcbiAgICAgIHZhbHVlOiB2ICE9IG51bGwgPyBOdW1iZXIodikgOiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDU1MgY2xhc3NlcyB0byBhcHBseSB0byB0aGUgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gY2xhc3NOYW1lc1xuICAgKi9cbiAgQElucHV0KCdjbGFzcycpXG5cbiAgLyoqXG4gICAqIENTUyBjbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBjbGFzc05hbWVzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBfbWFza09iajogTWFza2VkTnVtYmVyO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBWaWV3Q2hpbGQoSU1hc2tEaXJlY3RpdmUpXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfbWFza0RpcmVjdGl2ZTogSU1hc2tEaXJlY3RpdmU8TWFza2VkTnVtYmVyPjtcblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fdXBkYXRlTWFzaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgaW50ZXJuYWwgb3B0aW9uIGNoYW5nZXMgYW5kIHVwZGF0ZXMgdGhlIG1hc2sgYWNjb3JkaW5nbHkuXG4gICAqL1xuICBvdmVycmlkZSBpbnRlcm5hbE9wdGlvbkNoYW5nZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fdXBkYXRlTWFzaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgaW5wdXQgZWxlbWVudCB0byBpdHMgZGVmYXVsdCBzdGF0ZSBhbmQgY2FsbHMgdGhlIHBhcmVudCBjbGFzcyByZXNldCBtZXRob2QuXG4gICAqL1xuICBvdmVycmlkZSByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xuICAgIHN1cGVyLnJlc2V0KHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZXMgdGhlIHZhbHVlIGlzIHdpdGhpbiB0aGUgbWluLW1heCByYW5nZSwgcmV0dXJuaW5nIHRoZSBkZWZhdWx0IGlmIG51bGwuXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgb3ZlcnJpZGUgaW50ZXJuYWxTZXRWYWx1ZSh2YWx1ZTogYW55KTogbnVtYmVyIHtcbiAgICAvLyB8fCAodmFsdWUgPT0gMCAmJiAhdGhpcy5fbWFza09iai52YWx1ZSlcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgICBjb25zdCB2ID0gdG9OdW1iZXIodmFsdWUpO1xuICAgIGlmICh2IDwgdGhpcy5taW5WYWx1ZSkgcmV0dXJuIHRoaXMubWluVmFsdWU7XG4gICAgaWYgKHYgPiB0aGlzLm1heFZhbHVlKSByZXR1cm4gdGhpcy5tYXhWYWx1ZTtcbiAgICByZXR1cm4gdjtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3VwZGF0ZU1hc2soKSB7XG4gICAgaWYgKCF0aGlzLl9tYXNrT2JqKSB7XG4gICAgICB0aGlzLl9tYXNrT2JqID0gY3JlYXRlTWFzayh7XG4gICAgICAgIG1hc2s6IE51bWJlcixcbiAgICAgICAgbWluOiB0aGlzLm1pblZhbHVlLFxuICAgICAgICBtYXg6IHRoaXMubWF4VmFsdWUsXG4gICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy50aG91c2FuZHNTZXBhcmF0b3IgfHwgJycsXG4gICAgICAgIHNjYWxlOiB0aGlzLmRlY2ltYWxzLFxuICAgICAgICByYWRpeDogJy4nLFxuICAgICAgICBwYWRGcmFjdGlvbmFsWmVyb3M6IHRoaXMuZGVjaW1hbHMgPiAwICYmIHRoaXMucGFkRGVjaW1hbFplcm9zLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX21hc2tPYmouZm9ybWF0ID0gKHY6IG51bWJlciwgbSkgPT4ge1xuICAgICAgICByZXR1cm4gIWlzTmFOKHYpXG4gICAgICAgICAgPyB2LnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHtcbiAgICAgICAgICAgICAgdXNlR3JvdXBpbmc6IGZhbHNlLFxuICAgICAgICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIwLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6ICcnO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbWFza09iai51cGRhdGVPcHRpb25zKHtcbiAgICAgICAgbWluOiB0aGlzLm1pblZhbHVlLFxuICAgICAgICBtYXg6IHRoaXMubWF4VmFsdWUsXG4gICAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjogdGhpcy50aG91c2FuZHNTZXBhcmF0b3IgfHwgJycsXG4gICAgICAgIHNjYWxlOiB0aGlzLmRlY2ltYWxzLFxuICAgICAgICByYWRpeDogJy4nLFxuICAgICAgICBwYWRGcmFjdGlvbmFsWmVyb3M6IHRoaXMuZGVjaW1hbHMgPiAwICYmIHRoaXMucGFkRGVjaW1hbFplcm9zLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuX21hc2tEaXJlY3RpdmU/Lm1hc2tSZWY/LnVwZGF0ZVZhbHVlKCk7XG4gICAgdGhpcy5fbWFza0RpcmVjdGl2ZT8ubWFza1JlZj8udXBkYXRlQ29udHJvbCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2hhbmRsZU1vZGVsQ2hhbmdlKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUgPT0gMCAmJiBpc0VtcHR5KHRoaXMuaW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LnZhbHVlKSkge1xuICAgICAgdmFsdWUgPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuY29tbWl0VmFsdWUodmFsdWUsIHRydWUpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2hhbmRsZU9uS2V5ZG93bkV2ZW50KGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSByZXR1cm47XG4gICAgY29uc3QgaWdub3JlID0gKCkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9O1xuICAgIGNvbnN0IGlucHV0ID0gZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCB2YWxTdHIgPSBpbnB1dC52YWx1ZTtcbiAgICBjb25zdCBkZWNpbWFsUG9pbnRJbmRleCA9IHZhbFN0ci5pbmRleE9mKCcuJyk7XG4gICAgY29uc3QgX2N1cnNvclBvcyA9IGlucHV0LnNlbGVjdGlvblN0YXJ0ITtcblxuICAgIGlmIChlLmtleSA9PT0gJ0Fycm93VXAnIHx8IGUua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgaWYgKGRlY2ltYWxQb2ludEluZGV4ID4gMCAmJiBfY3Vyc29yUG9zID4gZGVjaW1hbFBvaW50SW5kZXggJiYgdGhpcy5kZWNpbWFscyA+IDApIHtcbiAgICAgICAgZS5rZXkgPT09ICdBcnJvd0Rvd24nID8gdGhpcy5kZWNpbWFsU3RlcERvd24odHJ1ZSkgOiB0aGlzLmRlY2ltYWxTdGVwVXAodHJ1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlLmtleSA9PT0gJ0Fycm93RG93bicgPyB0aGlzLnN0ZXBEb3duKHRydWUpIDogdGhpcy5zdGVwVXAodHJ1ZSk7XG4gICAgICB9XG4gICAgICBpZ25vcmUoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShfY3Vyc29yUG9zLCBfY3Vyc29yUG9zKTtcbiAgICAgIH0sIDUpO1xuICAgIH1cbiAgICBzdXBlci5lbWl0T25LZXlkb3duRXZlbnQoZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZVVwRG93bkNsaWNrKHY6IC0xIHwgMSkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpIHJldHVybjtcbiAgICB2ID09IDEgPyB0aGlzLnN0ZXBVcCh0cnVlKSA6IHRoaXMuc3RlcERvd24odHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogSW5jcmVhc2VzIHRoZSB2YWx1ZSBieSB0aGUgc3RlcCBhbW91bnQsIGVuc3VyaW5nIGl0J3MgYXQgbGVhc3QgdGhlIG1pbmltdW0gdmFsdWUuXG4gICAqL1xuICBzdGVwVXAodSA9IGZhbHNlKSB7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKE1hdGgubWF4KHRoaXMubWluVmFsdWUsIDApLCB1KTtcbiAgICB9XG4gICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLnZhbHVlICsgdG9OdW1iZXIodGhpcy5zdGVwKSwgdSk7XG4gIH1cblxuICAvKipcbiAgICogRGVjcmVhc2VzIHRoZSB2YWx1ZSBieSB0aGUgc3RlcCBhbW91bnQsIGVuc3VyaW5nIGl0J3MgYXQgbGVhc3QgdGhlIG1pbmltdW0gdmFsdWUuXG4gICAqL1xuICBzdGVwRG93bih1ID0gZmFsc2UpIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUoTWF0aC5tYXgodGhpcy5taW5WYWx1ZSwgMCksIHUpO1xuICAgIH1cbiAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMudmFsdWUgLSB0b051bWJlcih0aGlzLnN0ZXApLCB1KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmNyZWFzZXMgdGhlIHZhbHVlIGJ5IHRoZSBkZWNpbWFsIHN0ZXAgYW1vdW50LCB1c2luZyAnYXV0bycgb3IgYSBjdXN0b20gc3RlcCB2YWx1ZS5cbiAgICovXG4gIGRlY2ltYWxTdGVwVXAodSA9IGZhbHNlKSB7XG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKE1hdGgubWF4KHRoaXMubWluVmFsdWUsIDApLCB1KTtcbiAgICB9XG4gICAgdGhpcy5jb21taXRWYWx1ZShcbiAgICAgIHRoaXMudmFsdWUgKyB0b051bWJlcih0aGlzLmRlY2ltYWxTdGVwID09ICdhdXRvJyA/IDEgLyBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFscykgOiB0aGlzLmRlY2ltYWxTdGVwKSxcbiAgICAgIHUsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNyZWFzZXMgdGhlIHZhbHVlIGJ5IHRoZSBkZWNpbWFsIHN0ZXAgYW1vdW50LCB1c2luZyAnYXV0bycgb3IgYSBjdXN0b20gc3RlcCB2YWx1ZS5cbiAgICovXG4gIGRlY2ltYWxTdGVwRG93bih1ID0gZmFsc2UpIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUoTWF0aC5tYXgodGhpcy5taW5WYWx1ZSwgMCksIHUpO1xuICAgIH1cbiAgICB0aGlzLmNvbW1pdFZhbHVlKFxuICAgICAgdGhpcy52YWx1ZSAtIHRvTnVtYmVyKHRoaXMuZGVjaW1hbFN0ZXAgPT0gJ2F1dG8nID8gMSAvIE1hdGgucG93KDEwLCB0aGlzLmRlY2ltYWxzKSA6IHRoaXMuZGVjaW1hbFN0ZXApLFxuICAgICAgdSxcbiAgICApO1xuICB9XG5cbiAgLy8gQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIC8vIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmcge1xuICAvLyAgIHJldHVybiBgYXgtZWRpdG9yLWNvbnRhaW5lciBheC1sb29rLSR7dGhpcy5sb29rfSAke3RoaXMuZGlzYWJsZWQgPyAnYXgtc3RhdGUtZGlzYWJsZWQnIDogJyd9YDtcbiAgLy8gfVxuICBASG9zdExpc3RlbmVyKCd3aGVlbCcsIFsnJGV2ZW50J10pXG4gIG9uV2hlZWwoZXZlbnQ6IFdoZWVsRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkb25seSkge1xuICAgICAgaWYgKGV2ZW50LmRlbHRhWSA+IDApIHtcbiAgICAgICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLnZhbHVlIC0gdGhpcy5zdGVwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy52YWx1ZSArIHRoaXMuc3RlcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtZWRpdG9yLWNvbnRhaW5lciBheC1sb29rLXt7bG9va319IHt7Y2xhc3NOYW1lc319XCIgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXByZWZpeFwiPiA8L25nLWNvbnRlbnQ+XG4gIDxpbnB1dCAjaW5wdXQgY2xhc3M9XCJheC1pbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgW2lkXT1cImlkXCIgW25hbWVdPVwibmFtZVwiIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwiJ29mZidcIiBbaW1hc2tdPVwiX21hc2tPYmpcIiBbdW5tYXNrXT1cIid0eXBlZCdcIiBbYXR0ci5taW5dPVwibWluVmFsdWVcIiBbYXR0ci5tYXhdPVwibWF4VmFsdWVcIlxuICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtjbGFzcy5heC1zdGF0ZS1yZWFkb25seV09XCJyZWFkb25seVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgW3RhYmluZGV4XT1cInRhYkluZGV4XCIgW25nTW9kZWxdPVwidmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJfaGFuZGxlTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGtleWRvd24pPVwiX2hhbmRsZU9uS2V5ZG93bkV2ZW50KCRldmVudClcIiAoa2V5dXApPVwiZW1pdE9uS2V5dXBFdmVudCgkZXZlbnQpXCJcbiAgICAoa2V5cHJlc3MpPVwiZW1pdE9uS2V5cHJlc3NFdmVudCgkZXZlbnQpXCIgKGZvY3VzKT1cImVtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiIChibHVyKT1cImVtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCIgLz5cbiAgQGlmKGlucHV0LnZhbHVlICYmICFkaXNhYmxlZCAmJiAhcmVhZG9ubHkpe1xuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1jbGVhci1idXR0b25cIj48L25nLWNvbnRlbnQ+XG4gIH1cbiAgQGlmKHNob3dTcGluQnV0dG9ucyl7XG4gIDxkaXYgY2xhc3M9XCJheC1udW1iZXItYm94LWNvbnRyb2xcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImF4LWdlbmVyYWwtYnV0dG9uIGF4LWJ1dHRvbi1pY29uXCIgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChjbGljayk9XCJfaGFuZGxlVXBEb3duQ2xpY2soMSlcIiB0YWJpbmRleD1cIi0xXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+PHNwYW5cbiAgICAgICAgY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hldnJvbi11cCBheC1hcnJvdy1idXR0b24gXCI+PC9zcGFuPjwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLWljb25cIiBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgKGNsaWNrKT1cIl9oYW5kbGVVcERvd25DbGljaygtMSlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj48c3BhblxuICAgICAgICBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jaGV2cm9uLWRvd24gYXgtYXJyb3ctYnV0dG9uIFwiPjwvc3Bhbj48L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgfVxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPiA8L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXZhbGlkYXRpb24tcnVsZVwiPiA8L25nLWNvbnRlbnQ+XG48ZGl2IGNsYXNzPVwiYXgtZXJyb3ItY29udGFpbmVyXCI+PC9kaXY+Il19
@@ -34,13 +34,13 @@ export class AXPaintColorPickerComponent {
34
34
  return `.5rem`;
35
35
  }
36
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPaintColorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPaintColorPickerComponent, selector: "ax-paint-color-picker", host: { properties: { "style.marginInline": "this.__hostClass" } }, ngImport: i0, template: "<ax-button #colorBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-color-palette\"></ax-icon>\n</ax-button>\n<ax-popover [openOn]=\"popoverOption.openOn\" [closeOn]=\"popoverOption.closeOn\" [target]=\"colorBtn\" [placement]=\"popoverOption.placement\">\n <div class=\"ax-overlay-pane\">\n <ax-color-palette (ngModelChange)=\"changeColorHandler($event)\" [ngModel]=\"selectedColor()\">\n <ax-color-palette-preview></ax-color-palette-preview>\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </div>\n</ax-popover>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i3.AXColorPalleteComponent, selector: "ax-color-palette", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "checked"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "component", type: i3.AXColorPalettePreviewComponent, selector: "ax-color-palette-preview" }, { kind: "component", type: i3.AXColorPaletteInputComponent, selector: "ax-color-palette-input" }, { kind: "component", type: i3.AXColorPalettePickerComponent, selector: "ax-color-palette-picker" }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], encapsulation: i0.ViewEncapsulation.None }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPaintColorPickerComponent, selector: "ax-paint-color-picker", host: { properties: { "style.marginInline": "this.__hostClass" } }, ngImport: i0, template: "<ax-button #colorBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-color-palette\"></ax-icon>\n</ax-button>\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"colorBtn\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-color-palette (ngModelChange)=\"changeColorHandler($event)\" [ngModel]=\"selectedColor()\">\n <ax-color-palette-preview></ax-color-palette-preview>\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </div>\n</ax-popover>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i3.AXColorPalleteComponent, selector: "ax-color-palette", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "checked"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "component", type: i3.AXColorPalettePreviewComponent, selector: "ax-color-palette-preview" }, { kind: "component", type: i3.AXColorPaletteInputComponent, selector: "ax-color-palette-input" }, { kind: "component", type: i3.AXColorPalettePickerComponent, selector: "ax-color-palette-picker" }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], encapsulation: i0.ViewEncapsulation.None }); }
38
38
  }
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPaintColorPickerComponent, decorators: [{
40
40
  type: Component,
41
- args: [{ selector: 'ax-paint-color-picker', encapsulation: ViewEncapsulation.None, template: "<ax-button #colorBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-color-palette\"></ax-icon>\n</ax-button>\n<ax-popover [openOn]=\"popoverOption.openOn\" [closeOn]=\"popoverOption.closeOn\" [target]=\"colorBtn\" [placement]=\"popoverOption.placement\">\n <div class=\"ax-overlay-pane\">\n <ax-color-palette (ngModelChange)=\"changeColorHandler($event)\" [ngModel]=\"selectedColor()\">\n <ax-color-palette-preview></ax-color-palette-preview>\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </div>\n</ax-popover>\n" }]
41
+ args: [{ selector: 'ax-paint-color-picker', encapsulation: ViewEncapsulation.None, template: "<ax-button #colorBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-color-palette\"></ax-icon>\n</ax-button>\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"colorBtn\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-color-palette (ngModelChange)=\"changeColorHandler($event)\" [ngModel]=\"selectedColor()\">\n <ax-color-palette-preview></ax-color-palette-preview>\n <ax-color-palette-picker></ax-color-palette-picker>\n <ax-color-palette-input></ax-color-palette-input>\n </ax-color-palette>\n </div>\n</ax-popover>\n" }]
42
42
  }], propDecorators: { __hostClass: [{
43
43
  type: HostBinding,
44
44
  args: ['style.marginInline']
45
45
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnQtY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wYWludC9zcmMvbGliL3BhaW50L3BhaW50LXRvb2xzL3BhaW50LWNvbG9yLXBpY2tlci9wYWludC1jb2xvci1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BhaW50L3NyYy9saWIvcGFpbnQvcGFpbnQtdG9vbHMvcGFpbnQtY29sb3ItcGlja2VyL3BhaW50LWNvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQUVyRDs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sMkJBQTJCO0lBTnhDO1FBT0UsY0FBYztRQUNKLFlBQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFM0MsY0FBYztRQUNKLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFcEQsY0FBYztRQUNKLGtCQUFhLEdBTW5CO1lBQ0YsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsVUFBVTtZQUNuQixTQUFTLEVBQUUsS0FBSztZQUNoQixPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxDQUFDO1NBQ1gsQ0FBQztLQVlIO0lBVkMsY0FBYztJQUNKLGtCQUFrQixDQUFDLENBQVM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUNJLFdBQVc7UUFDYixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzhHQS9CVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixpSUNmeEMsa25CQVlBOzsyRkRHYSwyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0UsdUJBQXVCLGlCQUdsQixpQkFBaUIsQ0FBQyxJQUFJOzhCQStCakMsV0FBVztzQkFEZCxXQUFXO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUGxhY2VtZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBvcG92ZXJDbG9zZVRyaWdnZXIsIEFYUG9wb3Zlck9wZW5UcmlnZ2VyIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgVmlld0VuY2Fwc3VsYXRpb24sIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBhaW50U2VydmljZSB9IGZyb20gJy4uLy4uL3BhaW50LnNlcnZpY2UnO1xuXG4vKipcbiAqIHBhaW50IGNvbG9yIHBpY2tlci5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXBhaW50LWNvbG9yLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWludC1jb2xvci1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcGFpbnQtY29sb3ItcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQYWludENvbG9yUGlja2VyQ29tcG9uZW50IHtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhQYWludFNlcnZpY2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzZWxlY3RlZENvbG9yID0gc2lnbmFsKCdyZ2IoMTIsIDEyLCAxMiknKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgcG9wb3Zlck9wdGlvbjoge1xuICAgIG9wZW5PbjogQVhQb3BvdmVyT3BlblRyaWdnZXI7XG4gICAgY2xvc2VPbjogQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyO1xuICAgIHBsYWNlbWVudDogQVhQbGFjZW1lbnQ7XG4gICAgb2Zmc2V0WDogbnVtYmVyO1xuICAgIG9mZnNldFk6IG51bWJlcjtcbiAgfSA9IHtcbiAgICBvcGVuT246ICdjbGljaycsXG4gICAgY2xvc2VPbjogJ2NsaWNrT3V0JyxcbiAgICBwbGFjZW1lbnQ6ICd0b3AnLFxuICAgIG9mZnNldFg6IDAsXG4gICAgb2Zmc2V0WTogMCxcbiAgfTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgY2hhbmdlQ29sb3JIYW5kbGVyKGU6IHN0cmluZykge1xuICAgIHRoaXMuc2VydmljZS5wZW5Db2xvci5zZXQoZSk7XG4gICAgdGhpcy5zZWxlY3RlZENvbG9yLnNldChlKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUubWFyZ2luSW5saW5lJylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAuNXJlbWA7XG4gIH1cbn1cbiIsIjxheC1idXR0b24gI2NvbG9yQnRuIGxvb2s9XCJibGFua1wiPlxuICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jb2xvci1wYWxldHRlXCI+PC9heC1pY29uPlxuPC9heC1idXR0b24+XG48YXgtcG9wb3ZlciBbb3Blbk9uXT1cInBvcG92ZXJPcHRpb24ub3Blbk9uXCIgW2Nsb3NlT25dPVwicG9wb3Zlck9wdGlvbi5jbG9zZU9uXCIgW3RhcmdldF09XCJjb2xvckJ0blwiIFtwbGFjZW1lbnRdPVwicG9wb3Zlck9wdGlvbi5wbGFjZW1lbnRcIj5cbiAgPGRpdiBjbGFzcz1cImF4LW92ZXJsYXktcGFuZVwiPlxuICAgIDxheC1jb2xvci1wYWxldHRlIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUNvbG9ySGFuZGxlcigkZXZlbnQpXCIgW25nTW9kZWxdPVwic2VsZWN0ZWRDb2xvcigpXCI+XG4gICAgICA8YXgtY29sb3ItcGFsZXR0ZS1wcmV2aWV3PjwvYXgtY29sb3ItcGFsZXR0ZS1wcmV2aWV3PlxuICAgICAgPGF4LWNvbG9yLXBhbGV0dGUtcGlja2VyPjwvYXgtY29sb3ItcGFsZXR0ZS1waWNrZXI+XG4gICAgICA8YXgtY29sb3ItcGFsZXR0ZS1pbnB1dD48L2F4LWNvbG9yLXBhbGV0dGUtaW5wdXQ+XG4gICAgPC9heC1jb2xvci1wYWxldHRlPlxuICA8L2Rpdj5cbjwvYXgtcG9wb3Zlcj5cbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnQtY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wYWludC9zcmMvbGliL3BhaW50L3BhaW50LXRvb2xzL3BhaW50LWNvbG9yLXBpY2tlci9wYWludC1jb2xvci1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BhaW50L3NyYy9saWIvcGFpbnQvcGFpbnQtdG9vbHMvcGFpbnQtY29sb3ItcGlja2VyL3BhaW50LWNvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQUVyRDs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sMkJBQTJCO0lBTnhDO1FBT0UsY0FBYztRQUNKLFlBQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFM0MsY0FBYztRQUNKLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFcEQsY0FBYztRQUNKLGtCQUFhLEdBTW5CO1lBQ0YsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsVUFBVTtZQUNuQixTQUFTLEVBQUUsS0FBSztZQUNoQixPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxDQUFDO1NBQ1gsQ0FBQztLQVlIO0lBVkMsY0FBYztJQUNKLGtCQUFrQixDQUFDLENBQVM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUNJLFdBQVc7UUFDYixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzhHQS9CVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixpSUNmeEMsZ29CQWlCQTs7MkZERmEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNFLHVCQUF1QixpQkFHbEIsaUJBQWlCLENBQUMsSUFBSTs4QkErQmpDLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBsYWNlbWVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyLCBBWFBvcG92ZXJPcGVuVHJpZ2dlciB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQYWludFNlcnZpY2UgfSBmcm9tICcuLi8uLi9wYWludC5zZXJ2aWNlJztcblxuLyoqXG4gKiBwYWludCBjb2xvciBwaWNrZXIuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1wYWludC1jb2xvci1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFpbnQtY29sb3ItcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3BhaW50LWNvbG9yLXBpY2tlci5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYUGFpbnRDb2xvclBpY2tlckNvbXBvbmVudCB7XG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYUGFpbnRTZXJ2aWNlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRDb2xvciA9IHNpZ25hbCgncmdiKDEyLCAxMiwgMTIpJyk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHBvcG92ZXJPcHRpb246IHtcbiAgICBvcGVuT246IEFYUG9wb3Zlck9wZW5UcmlnZ2VyO1xuICAgIGNsb3NlT246IEFYUG9wb3ZlckNsb3NlVHJpZ2dlcjtcbiAgICBwbGFjZW1lbnQ6IEFYUGxhY2VtZW50O1xuICAgIG9mZnNldFg6IG51bWJlcjtcbiAgICBvZmZzZXRZOiBudW1iZXI7XG4gIH0gPSB7XG4gICAgb3Blbk9uOiAnY2xpY2snLFxuICAgIGNsb3NlT246ICdjbGlja091dCcsXG4gICAgcGxhY2VtZW50OiAndG9wJyxcbiAgICBvZmZzZXRYOiAwLFxuICAgIG9mZnNldFk6IDAsXG4gIH07XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGNoYW5nZUNvbG9ySGFuZGxlcihlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlcnZpY2UucGVuQ29sb3Iuc2V0KGUpO1xuICAgIHRoaXMuc2VsZWN0ZWRDb2xvci5zZXQoZSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1hcmdpbklubGluZScpXG4gIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgLjVyZW1gO1xuICB9XG59XG4iLCI8YXgtYnV0dG9uICNjb2xvckJ0biBsb29rPVwiYmxhbmtcIj5cbiAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24tY29sb3ItcGFsZXR0ZVwiPjwvYXgtaWNvbj5cbjwvYXgtYnV0dG9uPlxuPGF4LXBvcG92ZXJcbiAgW29wZW5Pbl09XCJwb3BvdmVyT3B0aW9uLm9wZW5PblwiXG4gIFtjbG9zZU9uXT1cInBvcG92ZXJPcHRpb24uY2xvc2VPblwiXG4gIFt0YXJnZXRdPVwiY29sb3JCdG5cIlxuICBbcGxhY2VtZW50XT1cInBvcG92ZXJPcHRpb24ucGxhY2VtZW50XCJcbj5cbiAgPGRpdiBjbGFzcz1cImF4LW92ZXJsYXktcGFuZVwiPlxuICAgIDxheC1jb2xvci1wYWxldHRlIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUNvbG9ySGFuZGxlcigkZXZlbnQpXCIgW25nTW9kZWxdPVwic2VsZWN0ZWRDb2xvcigpXCI+XG4gICAgICA8YXgtY29sb3ItcGFsZXR0ZS1wcmV2aWV3PjwvYXgtY29sb3ItcGFsZXR0ZS1wcmV2aWV3PlxuICAgICAgPGF4LWNvbG9yLXBhbGV0dGUtcGlja2VyPjwvYXgtY29sb3ItcGFsZXR0ZS1waWNrZXI+XG4gICAgICA8YXgtY29sb3ItcGFsZXR0ZS1pbnB1dD48L2F4LWNvbG9yLXBhbGV0dGUtaW5wdXQ+XG4gICAgPC9heC1jb2xvci1wYWxldHRlPlxuICA8L2Rpdj5cbjwvYXgtcG9wb3Zlcj5cbiJdfQ==
@@ -25,13 +25,13 @@ export class AXPaintPenCapComponent {
25
25
  return `.5rem`;
26
26
  }
27
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPaintPenCapComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPaintPenCapComponent, selector: "ax-paint-pen-cap", host: { properties: { "style.marginInline": "this.__hostClass" } }, ngImport: i0, template: "<ax-select-box\n [look]=\"this.parent.look\"\n (ngModelChange)=\"lineCapHandler($event)\"\n [ngModel]=\"selectedLineCap()\"\n [dataSource]=\"['round', 'butt', 'square']\"\n placeholder=\"Choose...\"\n>\n</ax-select-box>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "textTemplate", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }], encapsulation: i0.ViewEncapsulation.None }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPaintPenCapComponent, selector: "ax-paint-pen-cap", host: { properties: { "style.marginInline": "this.__hostClass" } }, ngImport: i0, template: "<ax-select-box\n [look]=\"this.parent.look\"\n (ngModelChange)=\"lineCapHandler($event)\"\n [ngModel]=\"selectedLineCap()\"\n [dataSource]=\"['round', 'square']\"\n placeholder=\"Choose...\"\n>\n</ax-select-box>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "textTemplate", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }], encapsulation: i0.ViewEncapsulation.None }); }
29
29
  }
30
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPaintPenCapComponent, decorators: [{
31
31
  type: Component,
32
- args: [{ selector: 'ax-paint-pen-cap', encapsulation: ViewEncapsulation.None, template: "<ax-select-box\n [look]=\"this.parent.look\"\n (ngModelChange)=\"lineCapHandler($event)\"\n [ngModel]=\"selectedLineCap()\"\n [dataSource]=\"['round', 'butt', 'square']\"\n placeholder=\"Choose...\"\n>\n</ax-select-box>\n" }]
32
+ args: [{ selector: 'ax-paint-pen-cap', encapsulation: ViewEncapsulation.None, template: "<ax-select-box\n [look]=\"this.parent.look\"\n (ngModelChange)=\"lineCapHandler($event)\"\n [ngModel]=\"selectedLineCap()\"\n [dataSource]=\"['round', 'square']\"\n placeholder=\"Choose...\"\n>\n</ax-select-box>\n" }]
33
33
  }], propDecorators: { __hostClass: [{
34
34
  type: HostBinding,
35
35
  args: ['style.marginInline']
36
36
  }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnQtcGVuLWNhcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcGFpbnQvc3JjL2xpYi9wYWludC9wYWludC10b29scy9wYWludC1wZW4tY2FwL3BhaW50LXBlbi1jYXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BhaW50L3NyYy9saWIvcGFpbnQvcGFpbnQtdG9vbHMvcGFpbnQtcGVuLWNhcC9wYWludC1wZW4tY2FwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBRXJEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxzQkFBc0I7SUFObkM7UUFPRSxjQUFjO1FBQ0osV0FBTSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRXJELGNBQWM7UUFDSixZQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTNDLGNBQWM7UUFDSixvQkFBZSxHQUFHLE1BQU0sQ0FBZ0IsT0FBTyxDQUFDLENBQUM7S0FXNUQ7SUFUQyxjQUFjO0lBQ0osY0FBYyxDQUFDLENBQWdCO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs4R0FsQlUsc0JBQXNCO2tHQUF0QixzQkFBc0IsNEhDZG5DLG9PQVFBOzsyRkRNYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0Usa0JBQWtCLGlCQUdiLGlCQUFpQixDQUFDLElBQUk7OEJBa0JqQyxXQUFXO3NCQURkLFdBQVc7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgaW5qZWN0LCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBhaW50Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGFpbnQtY29udGFpbmVyL3BhaW50LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQYWludFNlcnZpY2UgfSBmcm9tICcuLi8uLi9wYWludC5zZXJ2aWNlJztcblxuLyoqXG4gKiBwYWludCBwZW4gY2FwLlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtcGFpbnQtcGVuLWNhcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWludC1wZW4tY2FwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3BhaW50LXBlbi1jYXAuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBhaW50UGVuQ2FwQ29tcG9uZW50IHtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHBhcmVudCA9IGluamVjdChBWFBhaW50Q29udGFpbmVyQ29tcG9uZW50KTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWFBhaW50U2VydmljZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHNlbGVjdGVkTGluZUNhcCA9IHNpZ25hbDxDYW52YXNMaW5lQ2FwPigncm91bmQnKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgbGluZUNhcEhhbmRsZXIoZTogQ2FudmFzTGluZUNhcCkge1xuICAgIHRoaXMuc2VydmljZS5saW5lQ2FwLnNldChlKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUubWFyZ2luSW5saW5lJylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAuNXJlbWA7XG4gIH1cbn1cbiIsIjxheC1zZWxlY3QtYm94XG4gIFtsb29rXT1cInRoaXMucGFyZW50Lmxvb2tcIlxuICAobmdNb2RlbENoYW5nZSk9XCJsaW5lQ2FwSGFuZGxlcigkZXZlbnQpXCJcbiAgW25nTW9kZWxdPVwic2VsZWN0ZWRMaW5lQ2FwKClcIlxuICBbZGF0YVNvdXJjZV09XCJbJ3JvdW5kJywgJ2J1dHQnLCAnc3F1YXJlJ11cIlxuICBwbGFjZWhvbGRlcj1cIkNob29zZS4uLlwiXG4+XG48L2F4LXNlbGVjdC1ib3g+XG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnQtcGVuLWNhcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcGFpbnQvc3JjL2xpYi9wYWludC9wYWludC10b29scy9wYWludC1wZW4tY2FwL3BhaW50LXBlbi1jYXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BhaW50L3NyYy9saWIvcGFpbnQvcGFpbnQtdG9vbHMvcGFpbnQtcGVuLWNhcC9wYWludC1wZW4tY2FwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBRXJEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxzQkFBc0I7SUFObkM7UUFPRSxjQUFjO1FBQ0osV0FBTSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRXJELGNBQWM7UUFDSixZQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTNDLGNBQWM7UUFDSixvQkFBZSxHQUFHLE1BQU0sQ0FBZ0IsT0FBTyxDQUFDLENBQUM7S0FXNUQ7SUFUQyxjQUFjO0lBQ0osY0FBYyxDQUFDLENBQWdCO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs4R0FsQlUsc0JBQXNCO2tHQUF0QixzQkFBc0IsNEhDZG5DLDROQVFBOzsyRkRNYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0Usa0JBQWtCLGlCQUdiLGlCQUFpQixDQUFDLElBQUk7OEJBa0JqQyxXQUFXO3NCQURkLFdBQVc7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgaW5qZWN0LCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBhaW50Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGFpbnQtY29udGFpbmVyL3BhaW50LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQYWludFNlcnZpY2UgfSBmcm9tICcuLi8uLi9wYWludC5zZXJ2aWNlJztcblxuLyoqXG4gKiBwYWludCBwZW4gY2FwLlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtcGFpbnQtcGVuLWNhcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWludC1wZW4tY2FwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3BhaW50LXBlbi1jYXAuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBhaW50UGVuQ2FwQ29tcG9uZW50IHtcbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHBhcmVudCA9IGluamVjdChBWFBhaW50Q29udGFpbmVyQ29tcG9uZW50KTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWFBhaW50U2VydmljZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHNlbGVjdGVkTGluZUNhcCA9IHNpZ25hbDxDYW52YXNMaW5lQ2FwPigncm91bmQnKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgbGluZUNhcEhhbmRsZXIoZTogQ2FudmFzTGluZUNhcCkge1xuICAgIHRoaXMuc2VydmljZS5saW5lQ2FwLnNldChlKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUubWFyZ2luSW5saW5lJylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAuNXJlbWA7XG4gIH1cbn1cbiIsIjxheC1zZWxlY3QtYm94XG4gIFtsb29rXT1cInRoaXMucGFyZW50Lmxvb2tcIlxuICAobmdNb2RlbENoYW5nZSk9XCJsaW5lQ2FwSGFuZGxlcigkZXZlbnQpXCJcbiAgW25nTW9kZWxdPVwic2VsZWN0ZWRMaW5lQ2FwKClcIlxuICBbZGF0YVNvdXJjZV09XCJbJ3JvdW5kJywgJ3NxdWFyZSddXCJcbiAgcGxhY2Vob2xkZXI9XCJDaG9vc2UuLi5cIlxuPlxuPC9heC1zZWxlY3QtYm94PlxuIl19
@@ -43,7 +43,7 @@ export class AXPaintPenModeChangerComponent {
43
43
  this.service.lineWidth.set(e);
44
44
  }
45
45
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPaintPenModeChangerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPaintPenModeChangerComponent, selector: "ax-paint-pen-mode-changer", host: { properties: { "style.marginInline": "this.__hostClass" } }, ngImport: i0, template: "<div class=\"ax-paint-pen-mode-changer-container\">\n <div class=\"ax-pen-type-container\">\n <ax-button look=\"blank\" #alignPop>\n <ax-icon class=\"ax-icon ax-icon-pen-ruler\"></ax-icon>\n </ax-button>\n </div>\n\n <ax-button (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>\n </ax-button>\n\n <ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"alignPop\"\n [placement]=\"popoverOption.placement\"\n >\n <div class=\"ax-overlay-pane\">\n <ax-button\n (click)=\"penTypeHandler('pen')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'pen' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('highlight')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'highlight' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('eraser')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'eraser' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n </ax-button>\n\n <div class=\"ax-paint-width-slider\">\n <ax-range-slider\n [min]=\"2\"\n [max]=\"20\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"valueHandler($event)\"\n ></ax-range-slider>\n </div>\n </div>\n </ax-popover>\n</div>\n", styles: ["ax-range-slider{padding:.5rem .75rem}ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}.ax-paint-pen-mode-changer-container{display:flex;align-items:center}.ax-paint-pen-mode-changer-container .ax-pen-type-container{margin-inline-end:.5rem}.ax-overlay-pane{padding:.5rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasSnap", "hasLable", "hasTooltip"], outputs: ["onStart", "valuesChange"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], encapsulation: i0.ViewEncapsulation.None }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXPaintPenModeChangerComponent, selector: "ax-paint-pen-mode-changer", host: { properties: { "style.marginInline": "this.__hostClass" } }, ngImport: i0, template: "<div class=\"ax-paint-pen-mode-changer-container\">\n <div class=\"ax-pen-type-container\">\n <ax-button look=\"blank\" #alignPop>\n <ax-icon class=\"ax-icon ax-icon-pen-ruler\"></ax-icon>\n </ax-button>\n </div>\n\n <ax-button (click)=\"clear()\" look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-undo\"></ax-icon>\n </ax-button>\n\n <ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"alignPop\"\n [placement]=\"popoverOption.placement\"\n >\n <div class=\"ax-overlay-pane\">\n <ax-button\n (click)=\"penTypeHandler('pen')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'pen' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-pen\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('highlight')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'highlight' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n\n <ax-button\n (click)=\"penTypeHandler('eraser')\"\n look=\"blank\"\n [selected]=\"this.service.penType() === 'eraser' ? true : false\"\n >\n <ax-icon class=\"ax-icon ax-icon-eraser\"></ax-icon>\n </ax-button>\n\n <div class=\"ax-paint-width-slider\">\n <ax-range-slider\n [min]=\"2\"\n [max]=\"20\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"valueHandler($event)\"\n ></ax-range-slider>\n </div>\n </div>\n </ax-popover>\n</div>\n", styles: ["ax-range-slider{padding:.5rem .75rem}ax-range-slider .ax-range-slider .ax-range-slider-handler{width:1rem!important;height:1rem!important}.ax-paint-pen-mode-changer-container{display:flex;align-items:center}.ax-paint-pen-mode-changer-container .ax-pen-type-container{margin-inline-end:.5rem}.ax-overlay-pane{padding:.5rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["onStart", "valuesChange"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], encapsulation: i0.ViewEncapsulation.None }); }
47
47
  }
48
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPaintPenModeChangerComponent, decorators: [{
49
49
  type: Component,
@@ -114,6 +114,7 @@ export class AXPaintViewComponent {
114
114
  }
115
115
  /** @ignore */
116
116
  touchMoveHandler(e) {
117
+ e.preventDefault(); // prevent page from scroll
117
118
  if (this.isPainting()) {
118
119
  const offsetX = e.touches[0].clientX - this.getBoundingCanvasHandler().left;
119
120
  const offsetY = e.touches[0].clientY - this.getBoundingCanvasHandler().top;
@@ -142,13 +143,13 @@ export class AXPaintViewComponent {
142
143
  return `${this.customClass()}`;
143
144
  }
144
145
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPaintViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
145
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: AXPaintViewComponent, selector: "ax-paint-view", inputs: { customClass: { classPropertyName: "customClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, viewQueries: [{ propertyName: "canvasElem", first: true, predicate: ["c"], descendants: true, isSignal: true }], ngImport: i0, template: "<canvas\n #c\n (mousedown)=\"mouseDownHandler($event)\"\n (mouseup)=\"mouseUpHandler()\"\n (mousemove)=\"mouseMoveHandler($event)\"\n (touchstart)=\"touchStartHandler($event)\"\n (touchend)=\"touchEndHandler()\"\n (touchmove)=\"touchMoveHandler($event)\"\n class=\"ax-canvas-element\"\n>\n</canvas>\n", styles: ["ax-paint-view{display:block}ax-paint-view .ax-canvas-element{height:100%;border-bottom:1px solid rgb(var(--ax-color-border-default));width:100%;cursor:crosshair}\n"], encapsulation: i0.ViewEncapsulation.None }); }
146
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: AXPaintViewComponent, selector: "ax-paint-view", inputs: { customClass: { classPropertyName: "customClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, viewQueries: [{ propertyName: "canvasElem", first: true, predicate: ["c"], descendants: true, isSignal: true }], ngImport: i0, template: "<canvas\n #c\n tabindex=\"1\"\n (mousedown)=\"mouseDownHandler($event)\"\n (mouseup)=\"mouseUpHandler()\"\n (mousemove)=\"mouseMoveHandler($event)\"\n (touchstart)=\"touchStartHandler($event)\"\n (touchend)=\"touchEndHandler()\"\n (touchmove)=\"touchMoveHandler($event)\"\n class=\"ax-canvas-element\"\n>\n</canvas>\n", styles: ["ax-paint-view{display:block}ax-paint-view .ax-canvas-element{height:100%;border-bottom:1px solid rgb(var(--ax-color-border-default));width:100%;cursor:crosshair}\n"], encapsulation: i0.ViewEncapsulation.None }); }
146
147
  }
147
148
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPaintViewComponent, decorators: [{
148
149
  type: Component,
149
- args: [{ selector: 'ax-paint-view', encapsulation: ViewEncapsulation.None, template: "<canvas\n #c\n (mousedown)=\"mouseDownHandler($event)\"\n (mouseup)=\"mouseUpHandler()\"\n (mousemove)=\"mouseMoveHandler($event)\"\n (touchstart)=\"touchStartHandler($event)\"\n (touchend)=\"touchEndHandler()\"\n (touchmove)=\"touchMoveHandler($event)\"\n class=\"ax-canvas-element\"\n>\n</canvas>\n", styles: ["ax-paint-view{display:block}ax-paint-view .ax-canvas-element{height:100%;border-bottom:1px solid rgb(var(--ax-color-border-default));width:100%;cursor:crosshair}\n"] }]
150
+ args: [{ selector: 'ax-paint-view', encapsulation: ViewEncapsulation.None, template: "<canvas\n #c\n tabindex=\"1\"\n (mousedown)=\"mouseDownHandler($event)\"\n (mouseup)=\"mouseUpHandler()\"\n (mousemove)=\"mouseMoveHandler($event)\"\n (touchstart)=\"touchStartHandler($event)\"\n (touchend)=\"touchEndHandler()\"\n (touchmove)=\"touchMoveHandler($event)\"\n class=\"ax-canvas-element\"\n>\n</canvas>\n", styles: ["ax-paint-view{display:block}ax-paint-view .ax-canvas-element{height:100%;border-bottom:1px solid rgb(var(--ax-color-border-default));width:100%;cursor:crosshair}\n"] }]
150
151
  }], ctorParameters: () => [], propDecorators: { __hostClass: [{
151
152
  type: HostBinding,
152
153
  args: ['class']
153
154
  }] } });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcGFpbnQvc3JjL2xpYi9wYWludC9wYWludC12aWV3L3BhaW50LXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BhaW50L3NyYy9saWIvcGFpbnQvcGFpbnQtdmlldy9wYWludC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFFTixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRWxEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxvQkFBb0I7SUF5Qi9CLGNBQWM7SUFDZDtRQXpCQSxjQUFjO1FBQ2QsV0FBTSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRTNDLGNBQWM7UUFDSixZQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTNDOzs7V0FHRztRQUNILGdCQUFXLEdBQUcsS0FBSyxDQUFTLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRXBELGNBQWM7UUFDSixlQUFVLEdBQUcsU0FBUyxDQUFnQyxHQUFHLENBQUMsQ0FBQztRQUVyRSxjQUFjO1FBQ0osUUFBRyxHQUFHLE1BQU0sQ0FBMkIsSUFBSSxDQUFDLENBQUM7UUFFdkQsY0FBYztRQUNKLGVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7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LENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqRSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUNJLFdBQVc7UUFDYixPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7SUFDakMsQ0FBQzs4R0FyS1Usb0JBQW9CO2tHQUFwQixvQkFBb0IsNldDMUJqQyxzVEFXQTs7MkZEZWEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGVBQWUsaUJBR1YsaUJBQWlCLENBQUMsSUFBSTt3REFxS2pDLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUGFpbnRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9wYWludC1jb250YWluZXIvcGFpbnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBhaW50U2VydmljZSB9IGZyb20gJy4uL3BhaW50LnNlcnZpY2UnO1xuXG4vKipcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKiBwYWludCB2aWV3XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXBhaW50LXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFpbnQtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wYWludC12aWV3LmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQYWludFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKiogQGlnbm9yZSAqL1xuICBwYXJlbnQgPSBpbmplY3QoQVhQYWludENvbnRhaW5lckNvbXBvbmVudCk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhQYWludFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGNsYXNzIHRoYXQgcGFzcyB0byBjb21wb25lbnQuXG4gICAqXG4gICAqL1xuICBjdXN0b21DbGFzcyA9IGlucHV0PHN0cmluZz4oJycsIHsgYWxpYXM6ICdjbGFzcycgfSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGNhbnZhc0VsZW0gPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MQ2FudmFzRWxlbWVudD4+KCdjJyk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGN0eCA9IHNpZ25hbDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KG51bGwpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpc1BhaW50aW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgaXNVc2VySW50ZXJhY3QgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICB0aGlzLmN0eC5zZXQodGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5nZXRDb250ZXh0KCcyZCcpKTtcbiAgICAgIHRoaXMuY3R4KCkuY2FudmFzLndpZHRoID0gdGhpcy5nZXRCb3VuZGluZ0NhbnZhc0hhbmRsZXIoKS53aWR0aDtcbiAgICAgIHRoaXMuY3R4KCkuY2FudmFzLmhlaWdodCA9IHRoaXMuZ2V0Qm91bmRpbmdDYW52YXNIYW5kbGVyKCkuaGVpZ2h0O1xuICAgICAgdGhpcy5jdHgoKS5saW5lSm9pbiA9ICdyb3VuZCc7XG4gICAgICB0aGlzLmN0eCgpLmxpbmVDYXAgPSB0aGlzLnNlcnZpY2UubGluZUNhcCgpO1xuICAgICAgdGhpcy5jdHgoKS5zdHJva2VTdHlsZSA9IHRoaXMuc2VydmljZS5wZW5Db2xvcigpO1xuICAgICAgdGhpcy5jdHgoKS5saW5lV2lkdGggPSB0aGlzLnNlcnZpY2UubGluZVdpZHRoKCk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNVc2VySW50ZXJhY3Quc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnRvZ2dsZUNsZWFyKCk7XG4gICAgICAgIHRoaXMuY3R4KCk/LmNsZWFyUmVjdCgwLCAwLCB0aGlzLmdldEJvdW5kaW5nQ2FudmFzSGFuZGxlcigpPy53aWR0aCwgdGhpcy5nZXRCb3VuZGluZ0NhbnZhc0hhbmRsZXIoKT8uaGVpZ2h0KTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICAgKTtcblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZUV2ZW50SGFuZGxlci5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVzaXplRXZlbnRIYW5kbGVyKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCByZXNpemVFdmVudEhhbmRsZXIoKSB7XG4gICAgdGhpcy5jdHgoKS5jYW52YXMud2lkdGggPSB0aGlzLmdldEJvdW5kaW5nQ2FudmFzSGFuZGxlcigpPy53aWR0aDtcbiAgICB0aGlzLmN0eCgpLmNhbnZhcy5oZWlnaHQgPSB0aGlzLmdldEJvdW5kaW5nQ2FudmFzSGFuZGxlcigpPy5oZWlnaHQ7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgcGVuQ29uZmlnSGFuZGxlcihwZW5UeXBlOiAnZXJhc2VyJyB8ICdwZW4nIHwgJ2hpZ2hsaWdodCcpIHtcbiAgICBzd2l0Y2ggKHBlblR5cGUpIHtcbiAgICAgIGNhc2UgJ3Blbic6XG4gICAgICAgIHRoaXMuY3R4KCkuZ2xvYmFsQWxwaGEgPSAxO1xuICAgICAgICB0aGlzLmN0eCgpLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9ICdzb3VyY2Utb3Zlcic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZXJhc2VyJzpcbiAgICAgICAgdGhpcy5jdHgoKS5nbG9iYWxBbHBoYSA9IDE7XG4gICAgICAgIHRoaXMuY3R4KCkuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gJ2Rlc3RpbmF0aW9uLW91dCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaGlnaGxpZ2h0JzpcbiAgICAgICAgdGhpcy5jdHgoKS5nbG9iYWxBbHBoYSA9IDAuMDA4O1xuICAgICAgICB0aGlzLmN0eCgpLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9ICdzb3VyY2Utb3Zlcic7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBnZXRCb3VuZGluZ0NhbnZhc0hhbmRsZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgbW91c2VEb3duSGFuZGxlcihlOiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5pc1BhaW50aW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmlzVXNlckludGVyYWN0LnNldCh0cnVlKTtcblxuICAgIHRoaXMucGVuQ29uZmlnSGFuZGxlcih0aGlzLnNlcnZpY2UucGVuVHlwZSgpKTtcblxuICAgIHRoaXMuY3R4KCkuc3Ryb2tlU3R5bGUgPSB0aGlzLnNlcnZpY2UucGVuQ29sb3IoKTtcbiAgICB0aGlzLmN0eCgpLmxpbmVDYXAgPSB0aGlzLnNlcnZpY2UubGluZUNhcCgpO1xuICAgIHRoaXMuY3R4KCkubGluZVdpZHRoID0gdGhpcy5zZXJ2aWNlLmxpbmVXaWR0aCgpO1xuXG4gICAgdGhpcy5jdHgoKS5iZWdpblBhdGgoKTtcbiAgICB0aGlzLmN0eCgpLm1vdmVUbyhlLm9mZnNldFgsIGUub2Zmc2V0WSk7XG4gICAgdGhpcy5jdHgoKS5saW5lVG8oZS5vZmZzZXRYLCBlLm9mZnNldFkpO1xuICAgIHRoaXMuY3R4KCkuc3Ryb2tlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgbW91c2VNb3ZlSGFuZGxlcihlOiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNQYWludGluZygpKSB7XG4gICAgICB0aGlzLmN0eCgpLmxpbmVUbyhlLm9mZnNldFgsIGUub2Zmc2V0WSk7XG4gICAgICB0aGlzLmN0eCgpLnN0cm9rZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBtb3VzZVVwSGFuZGxlcigpIHtcbiAgICB0aGlzLmN0eCgpLmNsb3NlUGF0aCgpO1xuICAgIHRoaXMuaXNQYWludGluZy5zZXQoZmFsc2UpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHRvdWNoU3RhcnRIYW5kbGVyKGU6IFRvdWNoRXZlbnQpIHtcbiAgICBjb25zdCBvZmZzZXRYID0gZS50b3VjaGVzWzBdLmNsaWVudFggLSB0aGlzLmdldEJvdW5kaW5nQ2FudmFzSGFuZGxlcigpLmxlZnQ7XG4gICAgY29uc3Qgb2Zmc2V0WSA9IGUudG91Y2hlc1swXS5jbGllbnRZIC0gdGhpcy5nZXRCb3VuZGluZ0NhbnZhc0hhbmRsZXIoKS50b3A7XG5cbiAgICB0aGlzLmlzUGFpbnRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMuaXNVc2VySW50ZXJhY3Quc2V0KHRydWUpO1xuXG4gICAgdGhpcy5wZW5Db25maWdIYW5kbGVyKHRoaXMuc2VydmljZS5wZW5UeXBlKCkpO1xuXG4gICAgdGhpcy5jdHgoKS5zdHJva2VTdHlsZSA9IHRoaXMuc2VydmljZS5wZW5Db2xvcigpO1xuICAgIHRoaXMuY3R4KCkubGluZUNhcCA9IHRoaXMuc2VydmljZS5saW5lQ2FwKCk7XG4gICAgdGhpcy5jdHgoKS5saW5lV2lkdGggPSB0aGlzLnNlcnZpY2UubGluZVdpZHRoKCk7XG5cbiAgICB0aGlzLmN0eCgpLmJlZ2luUGF0aCgpO1xuICAgIHRoaXMuY3R4KCkubW92ZVRvKG9mZnNldFgsIG9mZnNldFkpO1xuICAgIHRoaXMuY3R4KCkubGluZVRvKG9mZnNldFgsIG9mZnNldFkpO1xuICAgIHRoaXMuY3R4KCkuc3Ryb2tlKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgdG91Y2hNb3ZlSGFuZGxlcihlOiBUb3VjaEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNQYWludGluZygpKSB7XG4gICAgICBjb25zdCBvZmZzZXRYID0gZS50b3VjaGVzWzBdLmNsaWVudFggLSB0aGlzLmdldEJvdW5kaW5nQ2FudmFzSGFuZGxlcigpLmxlZnQ7XG4gICAgICBjb25zdCBvZmZzZXRZID0gZS50b3VjaGVzWzBdLmNsaWVudFkgLSB0aGlzLmdldEJvdW5kaW5nQ2FudmFzSGFuZGxlcigpLnRvcDtcbiAgICAgIHRoaXMuY3R4KCkubGluZVRvKG9mZnNldFgsIG9mZnNldFkpO1xuICAgICAgdGhpcy5jdHgoKS5zdHJva2UoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgdG91Y2hFbmRIYW5kbGVyKCkge1xuICAgIHRoaXMuY3R4KCkuY2xvc2VQYXRoKCk7XG4gICAgdGhpcy5pc1BhaW50aW5nLnNldChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGUgLSBvdXRwdXQgZmlsZSB0eXBlXG4gICAqL1xuICBnZXRPdXRQdXQoZTogJ2ltYWdlL3dlYnAnIHwgJ2ltYWdlL3BuZycgfCAnaW1hZ2UvanBlZycpIHtcbiAgICBjb25zdCBiYXNlNjQgPSB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LnRvRGF0YVVSTChlLCAwLjEpO1xuICAgIGlmICh0aGlzLmlzVXNlckludGVyYWN0KCkpIHtcbiAgICAgIHRoaXMucGFyZW50LmNvbW1pdFZhbHVlKGJhc2U2NCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGFyZW50LmNvbW1pdFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5jdXN0b21DbGFzcygpfWA7XG4gIH1cbn1cbiIsIjxjYW52YXNcbiAgI2NcbiAgKG1vdXNlZG93bik9XCJtb3VzZURvd25IYW5kbGVyKCRldmVudClcIlxuICAobW91c2V1cCk9XCJtb3VzZVVwSGFuZGxlcigpXCJcbiAgKG1vdXNlbW92ZSk9XCJtb3VzZU1vdmVIYW5kbGVyKCRldmVudClcIlxuICAodG91Y2hzdGFydCk9XCJ0b3VjaFN0YXJ0SGFuZGxlcigkZXZlbnQpXCJcbiAgKHRvdWNoZW5kKT1cInRvdWNoRW5kSGFuZGxlcigpXCJcbiAgKHRvdWNobW92ZSk9XCJ0b3VjaE1vdmVIYW5kbGVyKCRldmVudClcIlxuICBjbGFzcz1cImF4LWNhbnZhcy1lbGVtZW50XCJcbj5cbjwvY2FudmFzPlxuIl19
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcGFpbnQvc3JjL2xpYi9wYWludC9wYWludC12aWV3L3BhaW50LXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BhaW50L3NyYy9saWIvcGFpbnQvcGFpbnQtdmlldy9wYWludC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFFTixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRWxEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxvQkFBb0I7SUF5Qi9CLGNBQWM7SUFDZDtRQXpCQSxjQUFjO1FBQ2QsV0FBTSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRTNDLGNBQWM7UUFDSixZQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTNDOzs7V0FHRztRQUNILGdCQUFXLEdBQUcsS0FBSyxDQUFTLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRXBELGNBQWM7UUFDSixlQUFVLEdBQUcsU0FBUyxDQUFnQyxHQUFHLENBQUMsQ0FBQztRQUVyRSxjQUFjO1FBQ0osUUFBRyxHQUFHLE1BQU0sQ0FBMkIsSUFBSSxDQUFDLENBQUM7UUFFdkQsY0FBYztRQUNKLGVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7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LElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqRSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUNJLFdBQVc7UUFDYixPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7SUFDakMsQ0FBQzs4R0EzS1Usb0JBQW9CO2tHQUFwQixvQkFBb0IsNldDMUJqQyx3VUFZQTs7MkZEY2Esb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGVBQWUsaUJBR1YsaUJBQWlCLENBQUMsSUFBSTt3REEyS2pDLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUGFpbnRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9wYWludC1jb250YWluZXIvcGFpbnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBhaW50U2VydmljZSB9IGZyb20gJy4uL3BhaW50LnNlcnZpY2UnO1xuXG4vKipcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKiBwYWludCB2aWV3XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXBhaW50LXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFpbnQtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wYWludC12aWV3LmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQYWludFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKiogQGlnbm9yZSAqL1xuICBwYXJlbnQgPSBpbmplY3QoQVhQYWludENvbnRhaW5lckNvbXBvbmVudCk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhQYWludFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGNsYXNzIHRoYXQgcGFzcyB0byBjb21wb25lbnQuXG4gICAqXG4gICAqL1xuICBjdXN0b21DbGFzcyA9IGlucHV0PHN0cmluZz4oJycsIHsgYWxpYXM6ICdjbGFzcycgfSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGNhbnZhc0VsZW0gPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MQ2FudmFzRWxlbWVudD4+KCdjJyk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGN0eCA9IHNpZ25hbDxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KG51bGwpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpc1BhaW50aW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgaXNVc2VySW50ZXJhY3QgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICB0aGlzLmN0eC5zZXQodGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5nZXRDb250ZXh0KCcyZCcpKTtcbiAgICAgIHRoaXMuY3R4KCkuY2FudmFzLndpZHRoID0gdGhpcy5nZXRCb3VuZGluZ0NhbnZhc0hhbmRsZXIoKS53aWR0aDtcbiAgICAgIHRoaXMuY3R4KCkuY2FudmFzLmhlaWdodCA9IHRoaXMuZ2V0Qm91bmRpbmdDYW52YXNIYW5kbGVyKCkuaGVpZ2h0O1xuICAgICAgdGhpcy5jdHgoKS5saW5lSm9pbiA9ICdyb3VuZCc7XG4gICAgICB0aGlzLmN0eCgpLmxpbmVDYXAgPSB0aGlzLnNlcnZpY2UubGluZUNhcCgpO1xuICAgICAgdGhpcy5jdHgoKS5zdHJva2VTdHlsZSA9IHRoaXMuc2VydmljZS5wZW5Db2xvcigpO1xuICAgICAgdGhpcy5jdHgoKS5saW5lV2lkdGggPSB0aGlzLnNlcnZpY2UubGluZVdpZHRoKCk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNVc2VySW50ZXJhY3Quc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnRvZ2dsZUNsZWFyKCk7XG4gICAgICAgIHRoaXMuY3R4KCk/LmNsZWFyUmVjdChcbiAgICAgICAgICAwLFxuICAgICAgICAgIDAsXG4gICAgICAgICAgdGhpcy5nZXRCb3VuZGluZ0NhbnZhc0hhbmRsZXIoKT8ud2lkdGgsXG4gICAgICAgICAgdGhpcy5nZXRCb3VuZGluZ0NhbnZhc0hhbmRsZXIoKT8uaGVpZ2h0LFxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgICApO1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMucmVzaXplRXZlbnRIYW5kbGVyLmJpbmQodGhpcykpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVFdmVudEhhbmRsZXIpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHJlc2l6ZUV2ZW50SGFuZGxlcigpIHtcbiAgICB0aGlzLmN0eCgpLmNhbnZhcy53aWR0aCA9IHRoaXMuZ2V0Qm91bmRpbmdDYW52YXNIYW5kbGVyKCk/LndpZHRoO1xuICAgIHRoaXMuY3R4KCkuY2FudmFzLmhlaWdodCA9IHRoaXMuZ2V0Qm91bmRpbmdDYW52YXNIYW5kbGVyKCk/LmhlaWdodDtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBwZW5Db25maWdIYW5kbGVyKHBlblR5cGU6ICdlcmFzZXInIHwgJ3BlbicgfCAnaGlnaGxpZ2h0Jykge1xuICAgIHN3aXRjaCAocGVuVHlwZSkge1xuICAgICAgY2FzZSAncGVuJzpcbiAgICAgICAgdGhpcy5jdHgoKS5nbG9iYWxBbHBoYSA9IDE7XG4gICAgICAgIHRoaXMuY3R4KCkuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gJ3NvdXJjZS1vdmVyJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdlcmFzZXInOlxuICAgICAgICB0aGlzLmN0eCgpLmdsb2JhbEFscGhhID0gMTtcbiAgICAgICAgdGhpcy5jdHgoKS5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSAnZGVzdGluYXRpb24tb3V0JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdoaWdobGlnaHQnOlxuICAgICAgICB0aGlzLmN0eCgpLmdsb2JhbEFscGhhID0gMC4wMDg7XG4gICAgICAgIHRoaXMuY3R4KCkuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gJ3NvdXJjZS1vdmVyJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGdldEJvdW5kaW5nQ2FudmFzSGFuZGxlcigpIHtcbiAgICByZXR1cm4gdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBtb3VzZURvd25IYW5kbGVyKGU6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmlzUGFpbnRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMuaXNVc2VySW50ZXJhY3Quc2V0KHRydWUpO1xuXG4gICAgdGhpcy5wZW5Db25maWdIYW5kbGVyKHRoaXMuc2VydmljZS5wZW5UeXBlKCkpO1xuXG4gICAgdGhpcy5jdHgoKS5zdHJva2VTdHlsZSA9IHRoaXMuc2VydmljZS5wZW5Db2xvcigpO1xuICAgIHRoaXMuY3R4KCkubGluZUNhcCA9IHRoaXMuc2VydmljZS5saW5lQ2FwKCk7XG4gICAgdGhpcy5jdHgoKS5saW5lV2lkdGggPSB0aGlzLnNlcnZpY2UubGluZVdpZHRoKCk7XG5cbiAgICB0aGlzLmN0eCgpLmJlZ2luUGF0aCgpO1xuICAgIHRoaXMuY3R4KCkubW92ZVRvKGUub2Zmc2V0WCwgZS5vZmZzZXRZKTtcbiAgICB0aGlzLmN0eCgpLmxpbmVUbyhlLm9mZnNldFgsIGUub2Zmc2V0WSk7XG4gICAgdGhpcy5jdHgoKS5zdHJva2UoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBtb3VzZU1vdmVIYW5kbGVyKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc1BhaW50aW5nKCkpIHtcbiAgICAgIHRoaXMuY3R4KCkubGluZVRvKGUub2Zmc2V0WCwgZS5vZmZzZXRZKTtcbiAgICAgIHRoaXMuY3R4KCkuc3Ryb2tlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIG1vdXNlVXBIYW5kbGVyKCkge1xuICAgIHRoaXMuY3R4KCkuY2xvc2VQYXRoKCk7XG4gICAgdGhpcy5pc1BhaW50aW5nLnNldChmYWxzZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgdG91Y2hTdGFydEhhbmRsZXIoZTogVG91Y2hFdmVudCkge1xuICAgIGNvbnN0IG9mZnNldFggPSBlLnRvdWNoZXNbMF0uY2xpZW50WCAtIHRoaXMuZ2V0Qm91bmRpbmdDYW52YXNIYW5kbGVyKCkubGVmdDtcbiAgICBjb25zdCBvZmZzZXRZID0gZS50b3VjaGVzWzBdLmNsaWVudFkgLSB0aGlzLmdldEJvdW5kaW5nQ2FudmFzSGFuZGxlcigpLnRvcDtcblxuICAgIHRoaXMuaXNQYWludGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5pc1VzZXJJbnRlcmFjdC5zZXQodHJ1ZSk7XG5cbiAgICB0aGlzLnBlbkNvbmZpZ0hhbmRsZXIodGhpcy5zZXJ2aWNlLnBlblR5cGUoKSk7XG5cbiAgICB0aGlzLmN0eCgpLnN0cm9rZVN0eWxlID0gdGhpcy5zZXJ2aWNlLnBlbkNvbG9yKCk7XG4gICAgdGhpcy5jdHgoKS5saW5lQ2FwID0gdGhpcy5zZXJ2aWNlLmxpbmVDYXAoKTtcbiAgICB0aGlzLmN0eCgpLmxpbmVXaWR0aCA9IHRoaXMuc2VydmljZS5saW5lV2lkdGgoKTtcblxuICAgIHRoaXMuY3R4KCkuYmVnaW5QYXRoKCk7XG4gICAgdGhpcy5jdHgoKS5tb3ZlVG8ob2Zmc2V0WCwgb2Zmc2V0WSk7XG4gICAgdGhpcy5jdHgoKS5saW5lVG8ob2Zmc2V0WCwgb2Zmc2V0WSk7XG4gICAgdGhpcy5jdHgoKS5zdHJva2UoKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCB0b3VjaE1vdmVIYW5kbGVyKGU6IFRvdWNoRXZlbnQpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7IC8vIHByZXZlbnQgcGFnZSBmcm9tIHNjcm9sbFxuICAgIGlmICh0aGlzLmlzUGFpbnRpbmcoKSkge1xuICAgICAgY29uc3Qgb2Zmc2V0WCA9IGUudG91Y2hlc1swXS5jbGllbnRYIC0gdGhpcy5nZXRCb3VuZGluZ0NhbnZhc0hhbmRsZXIoKS5sZWZ0O1xuICAgICAgY29uc3Qgb2Zmc2V0WSA9IGUudG91Y2hlc1swXS5jbGllbnRZIC0gdGhpcy5nZXRCb3VuZGluZ0NhbnZhc0hhbmRsZXIoKS50b3A7XG4gICAgICB0aGlzLmN0eCgpLmxpbmVUbyhvZmZzZXRYLCBvZmZzZXRZKTtcbiAgICAgIHRoaXMuY3R4KCkuc3Ryb2tlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHRvdWNoRW5kSGFuZGxlcigpIHtcbiAgICB0aGlzLmN0eCgpLmNsb3NlUGF0aCgpO1xuICAgIHRoaXMuaXNQYWludGluZy5zZXQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBlIC0gb3V0cHV0IGZpbGUgdHlwZVxuICAgKi9cbiAgZ2V0T3V0UHV0KGU6ICdpbWFnZS93ZWJwJyB8ICdpbWFnZS9wbmcnIHwgJ2ltYWdlL2pwZWcnKSB7XG4gICAgY29uc3QgYmFzZTY0ID0gdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC50b0RhdGFVUkwoZSwgMC4xKTtcbiAgICBpZiAodGhpcy5pc1VzZXJJbnRlcmFjdCgpKSB7XG4gICAgICB0aGlzLnBhcmVudC5jb21taXRWYWx1ZShiYXNlNjQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhcmVudC5jb21taXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuY3VzdG9tQ2xhc3MoKX1gO1xuICB9XG59XG4iLCI8Y2FudmFzXG4gICNjXG4gIHRhYmluZGV4PVwiMVwiXG4gIChtb3VzZWRvd24pPVwibW91c2VEb3duSGFuZGxlcigkZXZlbnQpXCJcbiAgKG1vdXNldXApPVwibW91c2VVcEhhbmRsZXIoKVwiXG4gIChtb3VzZW1vdmUpPVwibW91c2VNb3ZlSGFuZGxlcigkZXZlbnQpXCJcbiAgKHRvdWNoc3RhcnQpPVwidG91Y2hTdGFydEhhbmRsZXIoJGV2ZW50KVwiXG4gICh0b3VjaGVuZCk9XCJ0b3VjaEVuZEhhbmRsZXIoKVwiXG4gICh0b3VjaG1vdmUpPVwidG91Y2hNb3ZlSGFuZGxlcigkZXZlbnQpXCJcbiAgY2xhc3M9XCJheC1jYW52YXMtZWxlbWVudFwiXG4+XG48L2NhbnZhcz5cbiJdfQ==