@acorex/components 18.12.1 → 18.12.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (19) hide show
  1. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.mjs +42 -34
  2. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.mjs +11 -5
  3. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.mjs +7 -12
  4. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.mjs +6 -11
  5. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.mjs +23 -28
  6. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.mjs +5 -11
  7. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.mjs +4 -10
  8. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.mjs +10 -15
  9. package/fesm2022/acorex-components-wysiwyg.mjs +92 -110
  10. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  11. package/package.json +30 -30
  12. package/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.d.ts +3 -8
  13. package/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.d.ts +1 -0
  14. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-alignment/wysiwyg-alignment.component.d.ts +0 -3
  15. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-colors/wysiwyg-colors.component.d.ts +0 -3
  16. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-font-style/wysiwyg-font-style.component.d.ts +0 -3
  17. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-history/wysiwyg-history.component.d.ts +0 -5
  18. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-insert/wysiwyg-insert.component.d.ts +0 -5
  19. package/wysiwyg/lib/wysiwyg/wysiwyg-tools/wysiwyg-list/wysiwyg-list.component.d.ts +0 -3
@@ -1,6 +1,7 @@
1
1
  import { AXWysiwyg } from '@acorex/cdk/wysiwyg';
2
2
  import { AXClearableComponent, AXComponent, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, MXLookComponent, } from '@acorex/components/common';
3
- import { ChangeDetectionStrategy, Component, NgZone, ViewEncapsulation, afterNextRender, effect, forwardRef, inject, input, signal, } from '@angular/core';
3
+ import { isBrowser } from '@acorex/core/platform';
4
+ import { ChangeDetectionStrategy, Component, NgZone, ViewEncapsulation, afterNextRender, effect, forwardRef, inject, input, } from '@angular/core';
4
5
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
6
  import { classes } from 'polytype';
6
7
  import { QuillDeltaToHtmlConverter } from 'quill-delta-to-html';
@@ -11,51 +12,58 @@ import * as i0 from "@angular/core";
11
12
  * @category Components
12
13
  */
13
14
  export class AXWysiwygContainerComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {
14
- /** @ignore */
15
15
  constructor() {
16
- super();
17
- /** @ignore */
18
- this.zone = inject(NgZone);
19
- this.wysiwyg = signal(null);
20
- /** @ignore */
21
- this.view = signal(null);
16
+ super(...arguments);
22
17
  /** @ignore */
23
18
  this.service = inject(AXWysiwygService);
19
+ /** @ignore */
20
+ this.zone = inject(NgZone);
24
21
  /**
25
22
  * Specifies the placeholder text.
26
23
  *
27
24
  */
28
25
  this.placeHolder = input();
29
- afterNextRender(() => {
30
- this.view.set(this.getHostElement().querySelector('ax-wysiwyg-view'));
31
- this.zone.runOutsideAngular(() => {
32
- this.wysiwyg.set(new AXWysiwyg(this.view(), {
33
- readOnly: true,
34
- }));
35
- this.wysiwyg().wysiwygObj.on('text-change', this.changeHandler.bind(this));
26
+ this.#init = afterNextRender(() => {
27
+ const view = this.getHostElement().querySelector('ax-wysiwyg-view');
28
+ this.zone.runOutsideAngular(async () => {
29
+ if (isBrowser()) {
30
+ const newWysiwyg = new AXWysiwyg();
31
+ await newWysiwyg.init(view, {
32
+ readOnly: true,
33
+ });
34
+ this.service.wysiwyg.set(newWysiwyg);
35
+ }
36
36
  });
37
- this.service.wysiwyg.set(this.wysiwyg());
38
- this.setTimeOut = setTimeout(() => {
39
- this.wysiwyg().wysiwygObj.enable();
40
- }, 1000);
41
37
  });
42
- effect(() => {
43
- if (this.placeHolder() && this.wysiwyg()) {
44
- this.wysiwyg().wysiwygObj.root.setAttribute('data-placeholder', this.placeHolder());
38
+ this.#effect1 = effect(() => {
39
+ if (this.placeHolder() && this.service.wysiwyg()?.quillObj()) {
40
+ this.service.wysiwyg().quillObj().root.setAttribute('data-placeholder', this.placeHolder());
41
+ }
42
+ else if (this.service.wysiwyg()?.quillObj()) {
43
+ this.service.wysiwyg().quillObj().root.setAttribute('data-placeholder', 'Write Your Message ...');
45
44
  }
46
- else {
47
- this.wysiwyg().wysiwygObj.root.setAttribute('data-placeholder', 'Write Your Message ...');
45
+ });
46
+ this.#effect2 = effect(() => {
47
+ if (this.value && this.service.wysiwyg()?.quillObj()) {
48
+ this.service.wysiwyg().quillObj().root.innerHTML = this.value;
48
49
  }
49
50
  });
50
- effect(() => {
51
- if (this.value) {
52
- this.wysiwyg().wysiwygObj.root.innerHTML = this.value;
51
+ this.#effect3 = effect(() => {
52
+ if (this.service.wysiwyg()?.quillObj()) {
53
+ this.service.wysiwyg().quillObj().on('text-change', this.changeHandler.bind(this));
54
+ this.setTimeOut = setTimeout(() => {
55
+ this.service.wysiwyg()?.quillObj().enable();
56
+ }, 1000);
53
57
  }
54
- }, { allowSignalWrites: true });
58
+ });
55
59
  }
60
+ #init;
61
+ #effect1;
62
+ #effect2;
63
+ #effect3;
56
64
  /** @ignore */
57
65
  changeHandler() {
58
- const value = this.wysiwyg().wysiwygObj.root.innerHTML;
66
+ const value = this.service.wysiwyg()?.quillObj().root.innerHTML;
59
67
  if (value === '<p><br></p>' || !value) {
60
68
  this.commitValue(null);
61
69
  if (this.service.isEditorClean())
@@ -63,7 +71,7 @@ export class AXWysiwygContainerComponent extends classes((MXInputBaseValueCompon
63
71
  this.service.isEditorClean.set(true);
64
72
  }
65
73
  else {
66
- const delta = this.wysiwyg().wysiwygObj.editor.delta.ops;
74
+ const delta = this.service.wysiwyg()?.quillObj().editor.delta.ops;
67
75
  const cfg = { inlineStyles: true };
68
76
  const converter = new QuillDeltaToHtmlConverter(delta, cfg);
69
77
  const html = converter.convert();
@@ -75,10 +83,10 @@ export class AXWysiwygContainerComponent extends classes((MXInputBaseValueCompon
75
83
  }
76
84
  /** @ignore */
77
85
  ngOnDestroy() {
78
- this.wysiwyg().wysiwygObj.off('text-change', this.changeHandler);
86
+ this.service.wysiwyg()?.quillObj().off('text-change', this.changeHandler);
79
87
  clearTimeout(this.setTimeOut);
80
88
  }
81
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXWysiwygContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
89
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXWysiwygContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
82
90
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: { look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, placeHolder: { classPropertyName: "placeHolder", publicName: "placeHolder", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onValueChanged: "onValueChanged" }, providers: [
83
91
  { provide: AXComponent, useExisting: AXWysiwygContainerComponent },
84
92
  { provide: AXFocusableComponent, useExisting: AXWysiwygContainerComponent },
@@ -104,5 +112,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
104
112
  multi: true,
105
113
  },
106
114
  ], template: "<div class=\"ax-editor-container ax-look-{{ look }}\">\n <ng-content></ng-content>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n</div>\n<div class=\"ax-error-container\"></div>\n", styles: [".ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container:not(.ql-disabled) li[data-list=checked]>.ql-ui,.ql-container:not(.ql-disabled) li[data-list=unchecked]>.ql-ui{cursor:pointer}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0}@supports (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-set:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor table{border-collapse:collapse}.ql-editor td{border:1px solid #000;padding:2px 5px}.ql-editor ol{padding-left:1.5em}.ql-editor li{list-style-type:none;padding-left:1.5em;position:relative}.ql-editor li>.ql-ui:before{display:inline-block;margin-left:-1.5em;margin-right:.3em;text-align:right;white-space:nowrap;width:1.2em}.ql-editor li[data-list=checked]>.ql-ui,.ql-editor li[data-list=unchecked]>.ql-ui{color:#777}.ql-editor li[data-list=bullet]>.ql-ui:before{content:\"\\2022\"}.ql-editor li[data-list=checked]>.ql-ui:before{content:\"\\2611\"}.ql-editor li[data-list=unchecked]>.ql-ui:before{content:\"\\2610\"}@supports (counter-set:none){.ql-editor li[data-list]{counter-set:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list]{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered]{counter-increment:list-0}.ql-editor li[data-list=ordered]>.ql-ui:before{content:counter(list-0,decimal) \". \"}.ql-editor li[data-list=ordered].ql-indent-1{counter-increment:list-1}.ql-editor li[data-list=ordered].ql-indent-1>.ql-ui:before{content:counter(list-1,lower-alpha) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-set:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-2{counter-increment:list-2}.ql-editor li[data-list=ordered].ql-indent-2>.ql-ui:before{content:counter(list-2,lower-roman) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-set:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-3{counter-increment:list-3}.ql-editor li[data-list=ordered].ql-indent-3>.ql-ui:before{content:counter(list-3,decimal) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-set:list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-4{counter-increment:list-4}.ql-editor li[data-list=ordered].ql-indent-4>.ql-ui:before{content:counter(list-4,lower-alpha) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-set:list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-5{counter-increment:list-5}.ql-editor li[data-list=ordered].ql-indent-5>.ql-ui:before{content:counter(list-5,lower-roman) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-set:list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-6{counter-increment:list-6}.ql-editor li[data-list=ordered].ql-indent-6>.ql-ui:before{content:counter(list-6,decimal) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-set:list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-reset:list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-7{counter-increment:list-7}.ql-editor li[data-list=ordered].ql-indent-7>.ql-ui:before{content:counter(list-7,lower-alpha) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-set:list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-reset:list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-8{counter-increment:list-8}.ql-editor li[data-list=ordered].ql-indent-8>.ql-ui:before{content:counter(list-8,lower-roman) \". \"}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-set:list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-reset:list-9}}.ql-editor li[data-list=ordered].ql-indent-9{counter-increment:list-9}.ql-editor li[data-list=ordered].ql-indent-9>.ql-ui:before{content:counter(list-9,decimal) \". \"}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor li.ql-direction-rtl{padding-right:1.5em}.ql-editor li.ql-direction-rtl>.ql-ui:before{margin-left:.3em;margin-right:-1.5em;text-align:left}.ql-editor table{table-layout:fixed;width:100%}.ql-editor table td{outline:none}.ql-editor .ql-code-block-container{font-family:monospace}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor .ql-ui{position:absolute}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}ax-wysiwyg-container{width:100%;display:block}ax-wysiwyg-container>.ax-editor-container{display:block;height:auto!important}\n/*! Bundled license information:\n\nquill/dist/quill.core.css:\n (*!\n * Quill Editor v2.0.2\n * https://quilljs.com\n * Copyright (c) 2017-2024, Slab\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n *)\n*/\n"] }]
107
- }], ctorParameters: () => [] });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3lzaXd5Zy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3d5c2l3eWcvc3JjL2xpYi93eXNpd3lnL3d5c2l3eWctY29udGFpbmVyL3d5c2l3eWctY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy93eXNpd3lnL3NyYy9saWIvd3lzaXd5Zy93eXNpd3lnLWNvbnRhaW5lci93eXNpd3lnLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsZUFBZSxHQUNoQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFFTixpQkFBaUIsRUFDakIsZUFBZSxFQUNmLE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFdEQ7OztHQUdHO0FBcUJILE1BQU0sT0FBTywyQkFDWCxTQUFRLE9BQU8sQ0FBQyxDQUFBLHlCQUFpQyxDQUFBLEVBQUUsZUFBZSxDQUFDO0lBdUJuRSxjQUFjO0lBQ2Q7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQXRCVixjQUFjO1FBQ04sU0FBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5QixZQUFPLEdBQUcsTUFBTSxDQUFZLElBQUksQ0FBQyxDQUFDO1FBRWxDLGNBQWM7UUFDSixTQUFJLEdBQUcsTUFBTSxDQUFxQixJQUFJLENBQUMsQ0FBQztRQUVsRCxjQUFjO1FBQ0osWUFBTyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBSzdDOzs7V0FHRztRQUNILGdCQUFXLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFLNUIsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFnQixDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUNkLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDekIsUUFBUSxFQUFFLElBQUk7aUJBQ2YsQ0FBQyxDQUNILENBQUM7Z0JBQ0YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDN0UsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFFekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3JDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDdEYsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1lBQzVGLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FDSixHQUFHLEVBQUU7WUFDSCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN4RCxDQUFDO1FBQ0gsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYztJQUNKLGFBQWE7UUFDckIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3ZELElBQUksS0FBSyxLQUFLLGFBQWEsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtnQkFBRSxPQUFPO1lBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDekQsTUFBTSxHQUFHLEdBQUcsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDbkMsTUFBTSxTQUFTLEdBQUcsSUFBSSx5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDNUQsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO2dCQUFFLE9BQU87WUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYztJQUNMLFdBQVc7UUFDbEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRSxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OEdBcEZVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLDBXQVozQjtZQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUU7WUFDbEUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLDJCQUEyQixFQUFFO1lBQzNFLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSwyQkFBMkIsRUFBRTtZQUMzRSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUU7WUFDMUU7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztnQkFDMUQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGlEQ2pESCxxTUFLQTs7MkZEOENhLDJCQUEyQjtrQkFwQnZDLFNBQVM7K0JBQ0Usc0JBQXNCLFVBR3hCLENBQUMsTUFBTSxDQUFDLFdBQ1AsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFDVix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLDZCQUE2QixFQUFFO3dCQUNsRSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLDZCQUE2QixFQUFFO3dCQUMzRSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLDZCQUE2QixFQUFFO3dCQUMzRSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLDZCQUE2QixFQUFFO3dCQUMxRTs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQzs0QkFDMUQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFd5c2l3eWcgfSBmcm9tICdAYWNvcmV4L2Nkay93eXNpd3lnJztcclxuaW1wb3J0IHtcclxuICBBWENsZWFyYWJsZUNvbXBvbmVudCxcclxuICBBWENvbXBvbmVudCxcclxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcclxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxyXG4gIE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQsXHJcbiAgTVhMb29rQ29tcG9uZW50LFxyXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBOZ1pvbmUsXHJcbiAgT25EZXN0cm95LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGFmdGVyTmV4dFJlbmRlcixcclxuICBlZmZlY3QsXHJcbiAgZm9yd2FyZFJlZixcclxuICBpbmplY3QsXHJcbiAgaW5wdXQsXHJcbiAgc2lnbmFsLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcclxuaW1wb3J0IHsgUXVpbGxEZWx0YVRvSHRtbENvbnZlcnRlciB9IGZyb20gJ3F1aWxsLWRlbHRhLXRvLWh0bWwnO1xyXG5pbXBvcnQgeyBBWFd5c2l3eWdTZXJ2aWNlIH0gZnJvbSAnLi4vd3lzaXd5Zy5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBBIGNvbnRhaW5lciBjb21wb25lbnQgZm9yIFdZU0lXWUcgKFdoYXQgWW91IFNlZSBJcyBXaGF0IFlvdSBHZXQpIGVkaXRvciBmdW5jdGlvbmFsaXR5LlxyXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC13eXNpd3lnLWNvbnRhaW5lcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3d5c2l3eWctY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vd3lzaXd5Zy1jb250YWluZXIuY29tcG9uZW50LnNjc3MnLFxyXG4gIGlucHV0czogWydsb29rJ10sXHJcbiAgb3V0cHV0czogWydvblZhbHVlQ2hhbmdlZCddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhXeXNpd3lnQ29udGFpbmVyQ29tcG9uZW50IH0sXHJcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhXeXNpd3lnQ29udGFpbmVyQ29tcG9uZW50IH0sXHJcbiAgICB7IHByb3ZpZGU6IEFYQ2xlYXJhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhXeXNpd3lnQ29udGFpbmVyQ29tcG9uZW50IH0sXHJcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFd5c2l3eWdDb250YWluZXJDb21wb25lbnQgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYV3lzaXd5Z0NvbnRhaW5lckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhXeXNpd3lnQ29udGFpbmVyQ29tcG9uZW50XHJcbiAgZXh0ZW5kcyBjbGFzc2VzKE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQ8c3RyaW5nPiwgTVhMb29rQ29tcG9uZW50KVxyXG4gIGltcGxlbWVudHMgT25EZXN0cm95XHJcbntcclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByaXZhdGUgem9uZSA9IGluamVjdChOZ1pvbmUpO1xyXG5cclxuICB3eXNpd3lnID0gc2lnbmFsPEFYV3lzaXd5Zz4obnVsbCk7XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIHZpZXcgPSBzaWduYWw8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWFd5c2l3eWdTZXJ2aWNlKTtcclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgc2V0VGltZU91dDtcclxuXHJcbiAgLyoqXHJcbiAgICogU3BlY2lmaWVzIHRoZSBwbGFjZWhvbGRlciB0ZXh0LlxyXG4gICAqXHJcbiAgICovXHJcbiAgcGxhY2VIb2xkZXIgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcclxuICAgICAgdGhpcy52aWV3LnNldCh0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcignYXgtd3lzaXd5Zy12aWV3JykgYXMgSFRNTEVsZW1lbnQpO1xyXG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMud3lzaXd5Zy5zZXQoXHJcbiAgICAgICAgICBuZXcgQVhXeXNpd3lnKHRoaXMudmlldygpLCB7XHJcbiAgICAgICAgICAgIHJlYWRPbmx5OiB0cnVlLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnd5c2l3eWcoKS53eXNpd3lnT2JqLm9uKCd0ZXh0LWNoYW5nZScsIHRoaXMuY2hhbmdlSGFuZGxlci5iaW5kKHRoaXMpKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2VydmljZS53eXNpd3lnLnNldCh0aGlzLnd5c2l3eWcoKSk7XHJcblxyXG4gICAgICB0aGlzLnNldFRpbWVPdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnd5c2l3eWcoKS53eXNpd3lnT2JqLmVuYWJsZSgpO1xyXG4gICAgICB9LCAxMDAwKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnBsYWNlSG9sZGVyKCkgJiYgdGhpcy53eXNpd3lnKCkpIHtcclxuICAgICAgICB0aGlzLnd5c2l3eWcoKS53eXNpd3lnT2JqLnJvb3Quc2V0QXR0cmlidXRlKCdkYXRhLXBsYWNlaG9sZGVyJywgdGhpcy5wbGFjZUhvbGRlcigpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnd5c2l3eWcoKS53eXNpd3lnT2JqLnJvb3Quc2V0QXR0cmlidXRlKCdkYXRhLXBsYWNlaG9sZGVyJywgJ1dyaXRlIFlvdXIgTWVzc2FnZSAuLi4nKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgZWZmZWN0KFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgICAgIHRoaXMud3lzaXd5ZygpLnd5c2l3eWdPYmoucm9vdC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIGNoYW5nZUhhbmRsZXIoKSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMud3lzaXd5ZygpLnd5c2l3eWdPYmoucm9vdC5pbm5lckhUTUw7XHJcbiAgICBpZiAodmFsdWUgPT09ICc8cD48YnI+PC9wPicgfHwgIXZhbHVlKSB7XHJcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUobnVsbCk7XHJcbiAgICAgIGlmICh0aGlzLnNlcnZpY2UuaXNFZGl0b3JDbGVhbigpKSByZXR1cm47XHJcbiAgICAgIHRoaXMuc2VydmljZS5pc0VkaXRvckNsZWFuLnNldCh0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGRlbHRhID0gdGhpcy53eXNpd3lnKCkud3lzaXd5Z09iai5lZGl0b3IuZGVsdGEub3BzO1xyXG4gICAgICBjb25zdCBjZmcgPSB7IGlubGluZVN0eWxlczogdHJ1ZSB9O1xyXG4gICAgICBjb25zdCBjb252ZXJ0ZXIgPSBuZXcgUXVpbGxEZWx0YVRvSHRtbENvbnZlcnRlcihkZWx0YSwgY2ZnKTtcclxuICAgICAgY29uc3QgaHRtbCA9IGNvbnZlcnRlci5jb252ZXJ0KCk7XHJcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUoaHRtbCk7XHJcbiAgICAgIGlmICghdGhpcy5zZXJ2aWNlLmlzRWRpdG9yQ2xlYW4oKSkgcmV0dXJuO1xyXG4gICAgICB0aGlzLnNlcnZpY2UuaXNFZGl0b3JDbGVhbi5zZXQoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMud3lzaXd5ZygpLnd5c2l3eWdPYmoub2ZmKCd0ZXh0LWNoYW5nZScsIHRoaXMuY2hhbmdlSGFuZGxlcik7XHJcbiAgICBjbGVhclRpbWVvdXQodGhpcy5zZXRUaW1lT3V0KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImF4LWVkaXRvci1jb250YWluZXIgYXgtbG9vay17eyBsb29rIH19XCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+IDwvbmctY29udGVudD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImF4LWVycm9yLWNvbnRhaW5lclwiPjwvZGl2PlxuIl19
115
+ }] });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3lzaXd5Zy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3d5c2l3eWcvc3JjL2xpYi93eXNpd3lnL3d5c2l3eWctY29udGFpbmVyL3d5c2l3eWctY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy93eXNpd3lnL3NyYy9saWIvd3lzaXd5Zy93eXNpd3lnLWNvbnRhaW5lci93eXNpd3lnLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsZUFBZSxHQUNoQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBRU4saUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFdEQ7OztHQUdHO0FBcUJILE1BQU0sT0FBTywyQkFDWCxTQUFRLE9BQU8sQ0FBQyxDQUFBLHlCQUFpQyxDQUFBLEVB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eWcgfSBmcm9tICdAYWNvcmV4L2Nkay93eXNpd3lnJztcclxuaW1wb3J0IHtcclxuICBBWENsZWFyYWJsZUNvbXBvbmVudCxcclxuICBBWENvbXBvbmVudCxcclxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcclxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxyXG4gIE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQsXHJcbiAgTVhMb29rQ29tcG9uZW50LFxyXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xyXG5pbXBvcnQgeyBpc0Jyb3dzZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBOZ1pvbmUsXHJcbiAgT25EZXN0cm95LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGFmdGVyTmV4dFJlbmRlcixcclxuICBlZmZlY3QsXHJcbiAgZm9yd2FyZFJlZixcclxuICBpbmplY3QsXHJcbiAgaW5wdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xyXG5pbXBvcnQgeyBRdWlsbERlbHRhVG9IdG1sQ29udmVydGVyIH0gZnJvbSAncXVpbGwtZGVsdGEtdG8taHRtbCc7XHJcbmltcG9ydCB7IEFYV3lzaXd5Z1NlcnZpY2UgfSBmcm9tICcuLi93eXNpd3lnLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEEgY29udGFpbmVyIGNvbXBvbmVudCBmb3IgV1lTSVdZRyAoV2hhdCBZb3UgU2VlIElzIFdoYXQgWW91IEdldCkgZWRpdG9yIGZ1bmN0aW9uYWxpdHkuXHJcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LXd5c2l3eWctY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vd3lzaXd5Zy1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi93eXNpd3lnLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcycsXHJcbiAgaW5wdXRzOiBbJ2xvb2snXSxcclxuICBvdXRwdXRzOiBbJ29uVmFsdWVDaGFuZ2VkJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFd5c2l3eWdDb250YWluZXJDb21wb25lbnQgfSxcclxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFd5c2l3eWdDb250YWluZXJDb21wb25lbnQgfSxcclxuICAgIHsgcHJvdmlkZTogQVhDbGVhcmFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFd5c2l3eWdDb250YWluZXJDb21wb25lbnQgfSxcclxuICAgIHsgcHJvdmlkZTogQVhWYWx1YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYV3lzaXd5Z0NvbnRhaW5lckNvbXBvbmVudCB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhXeXNpd3lnQ29udGFpbmVyQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFd5c2l3eWdDb250YWluZXJDb21wb25lbnRcclxuICBleHRlbmRzIGNsYXNzZXMoTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudDxzdHJpbmc+LCBNWExvb2tDb21wb25lbnQpXHJcbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3lcclxue1xyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhXeXNpd3lnU2VydmljZSk7XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIHNldFRpbWVPdXQ7XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJpdmF0ZSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNwZWNpZmllcyB0aGUgcGxhY2Vob2xkZXIgdGV4dC5cclxuICAgKlxyXG4gICAqL1xyXG4gIHBsYWNlSG9sZGVyID0gaW5wdXQ8c3RyaW5nPigpO1xyXG5cclxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XHJcbiAgICBjb25zdCB2aWV3ID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2F4LXd5c2l3eWctdmlldycpIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcihhc3luYyAoKSA9PiB7XHJcbiAgICAgIGlmIChpc0Jyb3dzZXIoKSkge1xyXG4gICAgICAgIGNvbnN0IG5ld1d5c2l3eWcgPSBuZXcgQVhXeXNpd3lnKCk7XHJcblxyXG4gICAgICAgIGF3YWl0IG5ld1d5c2l3eWcuaW5pdCh2aWV3LCB7XHJcbiAgICAgICAgICByZWFkT25seTogdHJ1ZSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnd5c2l3eWcuc2V0KG5ld1d5c2l3eWcpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9KTtcclxuXHJcbiAgI2VmZmVjdDEgPSBlZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMucGxhY2VIb2xkZXIoKSAmJiB0aGlzLnNlcnZpY2Uud3lzaXd5ZygpPy5xdWlsbE9iaigpKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS53eXNpd3lnKCkucXVpbGxPYmooKS5yb290LnNldEF0dHJpYnV0ZSgnZGF0YS1wbGFjZWhvbGRlcicsIHRoaXMucGxhY2VIb2xkZXIoKSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VydmljZS53eXNpd3lnKCk/LnF1aWxsT2JqKCkpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLnd5c2l3eWcoKS5xdWlsbE9iaigpLnJvb3Quc2V0QXR0cmlidXRlKCdkYXRhLXBsYWNlaG9sZGVyJywgJ1dyaXRlIFlvdXIgTWVzc2FnZSAuLi4nKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgI2VmZmVjdDIgPSBlZmZlY3QoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy5zZXJ2aWNlLnd5c2l3eWcoKT8ucXVpbGxPYmooKSkge1xyXG4gICAgICB0aGlzLnNlcnZpY2Uud3lzaXd5ZygpLnF1aWxsT2JqKCkucm9vdC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAjZWZmZWN0MyA9IGVmZmVjdCgoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5zZXJ2aWNlLnd5c2l3eWcoKT8ucXVpbGxPYmooKSkge1xyXG4gICAgICB0aGlzLnNlcnZpY2Uud3lzaXd5ZygpLnF1aWxsT2JqKCkub24oJ3RleHQtY2hhbmdlJywgdGhpcy5jaGFuZ2VIYW5kbGVyLmJpbmQodGhpcykpO1xyXG5cclxuICAgICAgdGhpcy5zZXRUaW1lT3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnd5c2l3eWcoKT8ucXVpbGxPYmooKS5lbmFibGUoKTtcclxuICAgICAgfSwgMTAwMCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIGNoYW5nZUhhbmRsZXIoKSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuc2VydmljZS53eXNpd3lnKCk/LnF1aWxsT2JqKCkucm9vdC5pbm5lckhUTUw7XHJcbiAgICBpZiAodmFsdWUgPT09ICc8cD48YnI+PC9wPicgfHwgIXZhbHVlKSB7XHJcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUobnVsbCk7XHJcbiAgICAgIGlmICh0aGlzLnNlcnZpY2UuaXNFZGl0b3JDbGVhbigpKSByZXR1cm47XHJcbiAgICAgIHRoaXMuc2VydmljZS5pc0VkaXRvckNsZWFuLnNldCh0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGRlbHRhID0gdGhpcy5zZXJ2aWNlLnd5c2l3eWcoKT8ucXVpbGxPYmooKS5lZGl0b3IuZGVsdGEub3BzO1xyXG4gICAgICBjb25zdCBjZmcgPSB7IGlubGluZVN0eWxlczogdHJ1ZSB9O1xyXG4gICAgICBjb25zdCBjb252ZXJ0ZXIgPSBuZXcgUXVpbGxEZWx0YVRvSHRtbENvbnZlcnRlcihkZWx0YSwgY2ZnKTtcclxuICAgICAgY29uc3QgaHRtbCA9IGNvbnZlcnRlci5jb252ZXJ0KCk7XHJcbiAgICAgIHRoaXMuY29tbWl0VmFsdWUoaHRtbCk7XHJcbiAgICAgIGlmICghdGhpcy5zZXJ2aWNlLmlzRWRpdG9yQ2xlYW4oKSkgcmV0dXJuO1xyXG4gICAgICB0aGlzLnNlcnZpY2UuaXNFZGl0b3JDbGVhbi5zZXQoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS53eXNpd3lnKCk/LnF1aWxsT2JqKCkub2ZmKCd0ZXh0LWNoYW5nZScsIHRoaXMuY2hhbmdlSGFuZGxlcik7XHJcbiAgICBjbGVhclRpbWVvdXQodGhpcy5zZXRUaW1lT3V0KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImF4LWVkaXRvci1jb250YWluZXIgYXgtbG9vay17eyBsb29rIH19XCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+IDwvbmctY29udGVudD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImF4LWVycm9yLWNvbnRhaW5lclwiPjwvZGl2PlxuIl19
@@ -1,15 +1,21 @@
1
- import { Component, ViewEncapsulation } from '@angular/core';
1
+ import { Component, HostBinding, ViewEncapsulation } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  /**
4
4
  * A toolbar component for the WYSIWYG editor, providing various formatting options.
5
5
  * @category Components
6
6
  */
7
7
  export class AXWysiwygToolbarComponent {
8
+ get __hostClass() {
9
+ return `ax-sm`;
10
+ }
8
11
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXWysiwygToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXWysiwygToolbarComponent, selector: "ax-wysiwyg-toolbar", ngImport: i0, template: "<div class=\"ax-wysiwyg-tool-container ax-sm\">\r\n <ng-content select=\"ax-prefix\"></ng-content>\r\n <ng-content></ng-content>\r\n <ng-content select=\"ax-suffix\"></ng-content>\r\n</div>\r\n", styles: ["ax-wysiwyg-toolbar .ax-icon{font-weight:900;font-size:1rem}ax-wysiwyg-toolbar .ax-wysiwyg-tool-container{padding-block:.5rem;overflow:hidden;display:flex;flex-wrap:wrap;justify-content:center}ax-wysiwyg-toolbar .ax-wysiwyg-tool-container ax-button{margin-inline:.1rem}ax-wysiwyg-toolbar .ax-wysiwyg-tool-container ax-select-box{margin-inline:.5rem}ax-wysiwyg-toolbar ax-select-box{width:auto!important}\n"], encapsulation: i0.ViewEncapsulation.None }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXWysiwygToolbarComponent, selector: "ax-wysiwyg-toolbar", host: { properties: { "class": "this.__hostClass" } }, ngImport: i0, template: "<ng-content select=\"ax-prefix\"></ng-content>\r\n<div class=\"ax-wysiwyg-tools\"><ng-content></ng-content></div>\r\n<ng-content select=\"ax-suffix\"></ng-content>\r\n", styles: ["ax-wysiwyg-toolbar{overflow:hidden;display:flex;flex-wrap:wrap;justify-content:space-between;padding:.5rem}ax-wysiwyg-toolbar .ax-icon{font-weight:900;font-size:1rem}ax-wysiwyg-toolbar ax-button{margin-inline:.1rem}ax-wysiwyg-toolbar ax-select-box{margin-inline:.5rem}ax-wysiwyg-toolbar .ax-wysiwyg-tools{display:flex;flex-wrap:wrap}ax-wysiwyg-toolbar ax-select-box{width:auto!important}\n"], encapsulation: i0.ViewEncapsulation.None }); }
10
13
  }
11
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXWysiwygToolbarComponent, decorators: [{
12
15
  type: Component,
13
- args: [{ selector: 'ax-wysiwyg-toolbar', encapsulation: ViewEncapsulation.None, template: "<div class=\"ax-wysiwyg-tool-container ax-sm\">\r\n <ng-content select=\"ax-prefix\"></ng-content>\r\n <ng-content></ng-content>\r\n <ng-content select=\"ax-suffix\"></ng-content>\r\n</div>\r\n", styles: ["ax-wysiwyg-toolbar .ax-icon{font-weight:900;font-size:1rem}ax-wysiwyg-toolbar .ax-wysiwyg-tool-container{padding-block:.5rem;overflow:hidden;display:flex;flex-wrap:wrap;justify-content:center}ax-wysiwyg-toolbar .ax-wysiwyg-tool-container ax-button{margin-inline:.1rem}ax-wysiwyg-toolbar .ax-wysiwyg-tool-container ax-select-box{margin-inline:.5rem}ax-wysiwyg-toolbar ax-select-box{width:auto!important}\n"] }]
14
- }] });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3lzaXd5Zy10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy93eXNpd3lnL3NyYy9saWIvd3lzaXd5Zy93eXNpd3lnLXRvb2xiYXIvd3lzaXd5Zy10b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy93eXNpd3lnL3NyYy9saWIvd3lzaXd5Zy93eXNpd3lnLXRvb2xiYXIvd3lzaXd5Zy10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTdEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyx5QkFBeUI7OEdBQXpCLHlCQUF5QjtrR0FBekIseUJBQXlCLDBEQ1p0QyxzTUFLQTs7MkZET2EseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLG9CQUFvQixpQkFHZixpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEEgdG9vbGJhciBjb21wb25lbnQgZm9yIHRoZSBXWVNJV1lHIGVkaXRvciwgcHJvdmlkaW5nIHZhcmlvdXMgZm9ybWF0dGluZyBvcHRpb25zLlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtd3lzaXd5Zy10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3d5c2l3eWctdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi93eXNpd3lnLXRvb2xiYXIuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLCBcbn0pXG5leHBvcnQgY2xhc3MgQVhXeXNpd3lnVG9vbGJhckNvbXBvbmVudCB7fVxuIiwiPGRpdiBjbGFzcz1cImF4LXd5c2l3eWctdG9vbC1jb250YWluZXIgYXgtc21cIj5cclxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj48L25nLWNvbnRlbnQ+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPjwvbmctY29udGVudD5cclxuPC9kaXY+XHJcbiJdfQ==
16
+ args: [{ selector: 'ax-wysiwyg-toolbar', encapsulation: ViewEncapsulation.None, template: "<ng-content select=\"ax-prefix\"></ng-content>\r\n<div class=\"ax-wysiwyg-tools\"><ng-content></ng-content></div>\r\n<ng-content select=\"ax-suffix\"></ng-content>\r\n", styles: ["ax-wysiwyg-toolbar{overflow:hidden;display:flex;flex-wrap:wrap;justify-content:space-between;padding:.5rem}ax-wysiwyg-toolbar .ax-icon{font-weight:900;font-size:1rem}ax-wysiwyg-toolbar ax-button{margin-inline:.1rem}ax-wysiwyg-toolbar ax-select-box{margin-inline:.5rem}ax-wysiwyg-toolbar .ax-wysiwyg-tools{display:flex;flex-wrap:wrap}ax-wysiwyg-toolbar ax-select-box{width:auto!important}\n"] }]
17
+ }], propDecorators: { __hostClass: [{
18
+ type: HostBinding,
19
+ args: ['class']
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3lzaXd5Zy10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy93eXNpd3lnL3NyYy9saWIvd3lzaXd5Zy93eXNpd3lnLXRvb2xiYXIvd3lzaXd5Zy10b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy93eXNpd3lnL3NyYy9saWIvd3lzaXd5Zy93eXNpd3lnLXRvb2xiYXIvd3lzaXd5Zy10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxRTs7O0dBR0c7QUFPSCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLElBQ0ksV0FBVztRQUNiLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7OEdBSlUseUJBQXlCO2tHQUF6Qix5QkFBeUIsaUhDWnRDLHlLQUdBOzsyRkRTYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0Usb0JBQW9CLGlCQUdmLGlCQUFpQixDQUFDLElBQUk7OEJBSWpDLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBBIHRvb2xiYXIgY29tcG9uZW50IGZvciB0aGUgV1lTSVdZRyBlZGl0b3IsIHByb3ZpZGluZyB2YXJpb3VzIGZvcm1hdHRpbmcgb3B0aW9ucy5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXd5c2l3eWctdG9vbGJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi93eXNpd3lnLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vd3lzaXd5Zy10b29sYmFyLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhXeXNpd3lnVG9vbGJhckNvbXBvbmVudCB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGF4LXNtYDtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+PC9uZy1jb250ZW50PlxyXG48ZGl2IGNsYXNzPVwiYXgtd3lzaXd5Zy10b29sc1wiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+PC9uZy1jb250ZW50PlxyXG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Component, afterNextRender, effect, inject, signal } from '@angular/core';
1
+ import { Component, effect, inject, signal } from '@angular/core';
2
2
  import { AXWysiwygService } from '../../wysiwyg.service';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@acorex/components/button";
@@ -16,8 +16,6 @@ export class AXWysiwygAlignmentComponent {
16
16
  /** @ignore */
17
17
  this.alignState = signal('');
18
18
  /** @ignore */
19
- this.wysiwyg = signal(null);
20
- /** @ignore */
21
19
  this.popoverOption = {
22
20
  openOn: 'click',
23
21
  closeOn: 'clickOut',
@@ -26,30 +24,27 @@ export class AXWysiwygAlignmentComponent {
26
24
  offsetY: 0,
27
25
  };
28
26
  effect(() => {
29
- if (!this.wysiwyg())
27
+ if (!this.service.wysiwyg())
30
28
  return;
31
29
  switch (this.service.currentSelectedElemAlign()) {
32
30
  case 'ql-align-center':
33
31
  this.alignState.set('center');
34
- this.wysiwyg().align('center');
32
+ this.service.wysiwyg().align('center');
35
33
  break;
36
34
  case 'ql-align-right':
37
35
  this.alignState.set('right');
38
- this.wysiwyg().align('right');
36
+ this.service.wysiwyg().align('right');
39
37
  break;
40
38
  default:
41
39
  this.alignState.set('left');
42
- this.wysiwyg().align('left');
40
+ this.service.wysiwyg().align('left');
43
41
  }
44
42
  }, { allowSignalWrites: true });
45
- afterNextRender(() => {
46
- this.wysiwyg.set(this.service.wysiwyg());
47
- });
48
43
  }
49
44
  /** @ignore */
50
45
  alignStateHandler(e) {
51
46
  this.alignState.set(e);
52
- this.wysiwyg().align(e);
47
+ this.service.wysiwyg().align(e);
53
48
  }
54
49
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXWysiwygAlignmentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
55
50
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXWysiwygAlignmentComponent, selector: "ax-wysiwyg-alignment", ngImport: i0, template: "<ax-button look=\"blank\" #alignPop>\n <ax-icon class=\"ax-icon ax-icon-align-left\"></ax-icon>\n</ax-button>\n<ax-popover [openOn]=\"popoverOption.openOn\" [closeOn]=\"popoverOption.closeOn\" [target]=\"alignPop\" [placement]=\"popoverOption.placement\">\n <div class=\"ax-overlay-pane ax-alignment-cotainer ax-sm\">\n <ax-button (click)=\"alignStateHandler('left')\" look=\"blank\" [selected]=\"alignState() === 'left' ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-align-left\"></ax-icon>\n </ax-button>\n\n <ax-button (click)=\"alignStateHandler('center')\" look=\"blank\" [selected]=\"alignState() === 'center' ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-align-center\"></ax-icon>\n </ax-button>\n\n <ax-button (click)=\"alignStateHandler('right')\" look=\"blank\" [selected]=\"alignState() === 'right' ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-align-right\"></ax-icon>\n </ax-button>\n </div>\n</ax-popover>\n", styles: [".ax-alignment-cotainer{padding:.5rem}\n"], dependencies: [{ kind: "component", type: i1.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: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }] }); }
@@ -58,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
58
53
  type: Component,
59
54
  args: [{ selector: 'ax-wysiwyg-alignment', template: "<ax-button look=\"blank\" #alignPop>\n <ax-icon class=\"ax-icon ax-icon-align-left\"></ax-icon>\n</ax-button>\n<ax-popover [openOn]=\"popoverOption.openOn\" [closeOn]=\"popoverOption.closeOn\" [target]=\"alignPop\" [placement]=\"popoverOption.placement\">\n <div class=\"ax-overlay-pane ax-alignment-cotainer ax-sm\">\n <ax-button (click)=\"alignStateHandler('left')\" look=\"blank\" [selected]=\"alignState() === 'left' ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-align-left\"></ax-icon>\n </ax-button>\n\n <ax-button (click)=\"alignStateHandler('center')\" look=\"blank\" [selected]=\"alignState() === 'center' ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-align-center\"></ax-icon>\n </ax-button>\n\n <ax-button (click)=\"alignStateHandler('right')\" look=\"blank\" [selected]=\"alignState() === 'right' ? true : false\">\n <ax-icon class=\"ax-icon ax-icon-align-right\"></ax-icon>\n </ax-button>\n </div>\n</ax-popover>\n", styles: [".ax-alignment-cotainer{padding:.5rem}\n"] }]
60
55
  }], ctorParameters: () => [] });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3lzaXd5Zy1hbGlnbm1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3d5c2l3eWcvc3JjL2xpYi93eXNpd3lnL3d5c2l3eWctdG9vbHMvd3lzaXd5Zy1hbGlnbm1lbnQvd3lzaXd5Zy1hbGlnbm1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3d5c2l3eWcvc3JjL2xpYi93eXNpd3lnL3d5c2l3eWctdG9vbHMvd3lzaXd5Zy1hbGlnbm1lbnQvd3lzaXd5Zy1hbGlnbm1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBRXpEOzs7R0FHRztBQU1ILE1BQU0sT0FBTywyQkFBMkI7SUF5QnRDLGNBQWM7SUFDZDtRQXpCQSxjQUFjO1FBQ2QsWUFBTyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRW5DLGNBQWM7UUFDSixlQUFVLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWxDLGNBQWM7UUFDSixZQUFPLEdBQUcsTUFBTSxDQUFtQixJQUFJLENBQUMsQ0FBQztRQUVuRCxjQUFjO1FBQ0osa0JBQWEsR0FNbkI7WUFDRixNQUFNLEVBQUUsT0FBTztZQUNmLE9BQU8sRUFBRSxVQUFVO1lBQ25CLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLE9BQU8sRUFBRSxDQUFDO1lBQ1YsT0FBTyxFQUFFLENBQUM7U0FDWCxDQUFDO1FBSUEsTUFBTSxDQUNKLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUFFLE9BQU87WUFDNUIsUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLEVBQUUsQ0FBQztnQkFDaEQsS0FBSyxpQkFBaUI7b0JBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUM5QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUMvQixNQUFNO2dCQUNSLEtBQUssZ0JBQWdCO29CQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDN0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDOUIsTUFBTTtnQkFDUjtvQkFDRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDNUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzVCLENBQUM7UUFDRixlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ0osaUJBQWlCLENBQUMsQ0FBTTtRQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7OEdBdkRVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLDREQ2Z4QyxtOUJBa0JBOzsyRkRIYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0Usc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhXeXNpd3lnIH0gZnJvbSAnQGFjb3JleC9jZGsvd3lzaXd5Zyc7XG5pbXBvcnQgeyBBWFBsYWNlbWVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyLCBBWFBvcG92ZXJPcGVuVHJpZ2dlciB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IENvbXBvbmVudCwgYWZ0ZXJOZXh0UmVuZGVyLCBlZmZlY3QsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFd5c2l3eWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd3lzaXd5Zy5zZXJ2aWNlJztcblxuLyoqXG4gKiBBIGNvbnRhaW5lciBjb21wb25lbnQgZm9yIFdZU0lXWUcgKFdoYXQgWW91IFNlZSBJcyBXaGF0IFlvdSBHZXQpIGVkaXRvciBmdW5jdGlvbmFsaXR5LlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtd3lzaXd5Zy1hbGlnbm1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd3lzaXd5Zy1hbGlnbm1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vd3lzaXd5Zy1hbGlnbm1lbnQuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFd5c2l3eWdBbGlnbm1lbnRDb21wb25lbnQge1xuICAvKiogQGlnbm9yZSAqL1xuICBzZXJ2aWNlID0gaW5qZWN0KEFYV3lzaXd5Z1NlcnZpY2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBhbGlnblN0YXRlID0gc2lnbmFsKCcnKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgd3lzaXd5ZyA9IHNpZ25hbDxBWFd5c2l3eWcgfCBudWxsPihudWxsKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgcG9wb3Zlck9wdGlvbjoge1xuICAgIG9wZW5PbjogQVhQb3BvdmVyT3BlblRyaWdnZXI7XG4gICAgY2xvc2VPbjogQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyO1xuICAgIHBsYWNlbWVudDogQVhQbGFjZW1lbnQ7XG4gICAgb2Zmc2V0WDogbnVtYmVyO1xuICAgIG9mZnNldFk6IG51bWJlcjtcbiAgfSA9IHtcbiAgICBvcGVuT246ICdjbGljaycsXG4gICAgY2xvc2VPbjogJ2NsaWNrT3V0JyxcbiAgICBwbGFjZW1lbnQ6ICd0b3AnLFxuICAgIG9mZnNldFg6IDAsXG4gICAgb2Zmc2V0WTogMCxcbiAgfTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy53eXNpd3lnKCkpIHJldHVybjtcbiAgICAgICAgc3dpdGNoICh0aGlzLnNlcnZpY2UuY3VycmVudFNlbGVjdGVkRWxlbUFsaWduKCkpIHtcbiAgICAgICAgICBjYXNlICdxbC1hbGlnbi1jZW50ZXInOlxuICAgICAgICAgICAgdGhpcy5hbGlnblN0YXRlLnNldCgnY2VudGVyJyk7XG4gICAgICAgICAgICB0aGlzLnd5c2l3eWcoKS5hbGlnbignY2VudGVyJyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdxbC1hbGlnbi1yaWdodCc6XG4gICAgICAgICAgICB0aGlzLmFsaWduU3RhdGUuc2V0KCdyaWdodCcpO1xuICAgICAgICAgICAgdGhpcy53eXNpd3lnKCkuYWxpZ24oJ3JpZ2h0Jyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhpcy5hbGlnblN0YXRlLnNldCgnbGVmdCcpO1xuICAgICAgICAgICAgdGhpcy53eXNpd3lnKCkuYWxpZ24oJ2xlZnQnKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgICApO1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICB0aGlzLnd5c2l3eWcuc2V0KHRoaXMuc2VydmljZS53eXNpd3lnKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIGFsaWduU3RhdGVIYW5kbGVyKGU6IGFueSkge1xuICAgIHRoaXMuYWxpZ25TdGF0ZS5zZXQoZSk7XG4gICAgdGhpcy53eXNpd3lnKCkuYWxpZ24oZSk7XG4gIH1cbn1cbiIsIjxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgI2FsaWduUG9wPlxuICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1hbGlnbi1sZWZ0XCI+PC9heC1pY29uPlxuPC9heC1idXR0b24+XG48YXgtcG9wb3ZlciBbb3Blbk9uXT1cInBvcG92ZXJPcHRpb24ub3Blbk9uXCIgW2Nsb3NlT25dPVwicG9wb3Zlck9wdGlvbi5jbG9zZU9uXCIgW3RhcmdldF09XCJhbGlnblBvcFwiIFtwbGFjZW1lbnRdPVwicG9wb3Zlck9wdGlvbi5wbGFjZW1lbnRcIj5cbiAgPGRpdiBjbGFzcz1cImF4LW92ZXJsYXktcGFuZSBheC1hbGlnbm1lbnQtY290YWluZXIgYXgtc21cIj5cbiAgICA8YXgtYnV0dG9uIChjbGljayk9XCJhbGlnblN0YXRlSGFuZGxlcignbGVmdCcpXCIgbG9vaz1cImJsYW5rXCIgW3NlbGVjdGVkXT1cImFsaWduU3RhdGUoKSA9PT0gJ2xlZnQnID8gdHJ1ZSA6IGZhbHNlXCI+XG4gICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1hbGlnbi1sZWZ0XCI+PC9heC1pY29uPlxuICAgIDwvYXgtYnV0dG9uPlxuXG4gICAgPGF4LWJ1dHRvbiAoY2xpY2spPVwiYWxpZ25TdGF0ZUhhbmRsZXIoJ2NlbnRlcicpXCIgbG9vaz1cImJsYW5rXCIgW3NlbGVjdGVkXT1cImFsaWduU3RhdGUoKSA9PT0gJ2NlbnRlcicgPyB0cnVlIDogZmFsc2VcIj5cbiAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWFsaWduLWNlbnRlclwiPjwvYXgtaWNvbj5cbiAgICA8L2F4LWJ1dHRvbj5cblxuICAgIDxheC1idXR0b24gKGNsaWNrKT1cImFsaWduU3RhdGVIYW5kbGVyKCdyaWdodCcpXCIgbG9vaz1cImJsYW5rXCIgW3NlbGVjdGVkXT1cImFsaWduU3RhdGUoKSA9PT0gJ3JpZ2h0JyA/IHRydWUgOiBmYWxzZVwiPlxuICAgICAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24tYWxpZ24tcmlnaHRcIj48L2F4LWljb24+XG4gICAgPC9heC1idXR0b24+XG4gIDwvZGl2PlxuPC9heC1wb3BvdmVyPlxuIl19
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3lzaXd5Zy1hbGlnbm1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3d5c2l3eWcvc3JjL2xpYi93eXNpd3lnL3d5c2l3eWctdG9vbHMvd3lzaXd5Zy1hbGlnbm1lbnQvd3lzaXd5Zy1hbGlnbm1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3d5c2l3eWcvc3JjL2xpYi93eXNpd3lnL3d5c2l3eWctdG9vbHMvd3lzaXd5Zy1hbGlnbm1lbnQvd3lzaXd5Zy1hbGlnbm1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFFekQ7OztHQUdHO0FBTUgsTUFBTSxPQUFPLDJCQUEyQjtJQXNCdEMsY0FBYztJQUNkO1FBdEJBLGNBQWM7UUFDZCxZQUFPLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFbkMsY0FBYztRQUNKLGVBQVUsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFbEMsY0FBYztRQUNKLGtCQUFhLEdBTW5CO1lBQ0YsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsVUFBVTtZQUNuQixTQUFTLEVBQUUsS0FBSztZQUNoQixPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxDQUFDO1NBQ1gsQ0FBQztRQUlBLE1BQU0sQ0FDSixHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBQUUsT0FBTztZQUNwQyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxDQUFDO2dCQUNoRCxLQUFLLGlCQUFpQjtvQkFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN2QyxNQUFNO2dCQUNSLEtBQUssZ0JBQWdCO29CQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ3RDLE1BQU07Z0JBQ1I7b0JBQ0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pDLENBQUM7UUFDSCxDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjO0lBQ0osaUJBQWlCLENBQUMsQ0FBTTtRQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDOzhHQWpEVSwyQkFBMkI7a0dBQTNCLDJCQUEyQiw0RENkeEMsbTlCQWtCQTs7MkZESmEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUGxhY2VtZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBvcG92ZXJDbG9zZVRyaWdnZXIsIEFYUG9wb3Zlck9wZW5UcmlnZ2VyIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBlZmZlY3QsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFd5c2l3eWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd3lzaXd5Zy5zZXJ2aWNlJztcblxuLyoqXG4gKiBBIGNvbnRhaW5lciBjb21wb25lbnQgZm9yIFdZU0lXWUcgKFdoYXQgWW91IFNlZSBJcyBXaGF0IFlvdSBHZXQpIGVkaXRvciBmdW5jdGlvbmFsaXR5LlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtd3lzaXd5Zy1hbGlnbm1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd3lzaXd5Zy1hbGlnbm1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vd3lzaXd5Zy1hbGlnbm1lbnQuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFd5c2l3eWdBbGlnbm1lbnRDb21wb25lbnQge1xuICAvKiogQGlnbm9yZSAqL1xuICBzZXJ2aWNlID0gaW5qZWN0KEFYV3lzaXd5Z1NlcnZpY2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBhbGlnblN0YXRlID0gc2lnbmFsKCcnKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgcG9wb3Zlck9wdGlvbjoge1xuICAgIG9wZW5PbjogQVhQb3BvdmVyT3BlblRyaWdnZXI7XG4gICAgY2xvc2VPbjogQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyO1xuICAgIHBsYWNlbWVudDogQVhQbGFjZW1lbnQ7XG4gICAgb2Zmc2V0WDogbnVtYmVyO1xuICAgIG9mZnNldFk6IG51bWJlcjtcbiAgfSA9IHtcbiAgICBvcGVuT246ICdjbGljaycsXG4gICAgY2xvc2VPbjogJ2NsaWNrT3V0JyxcbiAgICBwbGFjZW1lbnQ6ICd0b3AnLFxuICAgIG9mZnNldFg6IDAsXG4gICAgb2Zmc2V0WTogMCxcbiAgfTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zZXJ2aWNlLnd5c2l3eWcoKSkgcmV0dXJuO1xuICAgICAgICBzd2l0Y2ggKHRoaXMuc2VydmljZS5jdXJyZW50U2VsZWN0ZWRFbGVtQWxpZ24oKSkge1xuICAgICAgICAgIGNhc2UgJ3FsLWFsaWduLWNlbnRlcic6XG4gICAgICAgICAgICB0aGlzLmFsaWduU3RhdGUuc2V0KCdjZW50ZXInKTtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS53eXNpd3lnKCkuYWxpZ24oJ2NlbnRlcicpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAncWwtYWxpZ24tcmlnaHQnOlxuICAgICAgICAgICAgdGhpcy5hbGlnblN0YXRlLnNldCgncmlnaHQnKTtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS53eXNpd3lnKCkuYWxpZ24oJ3JpZ2h0Jyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhpcy5hbGlnblN0YXRlLnNldCgnbGVmdCcpO1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnd5c2l3eWcoKS5hbGlnbignbGVmdCcpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICAgICk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgYWxpZ25TdGF0ZUhhbmRsZXIoZTogYW55KSB7XG4gICAgdGhpcy5hbGlnblN0YXRlLnNldChlKTtcbiAgICB0aGlzLnNlcnZpY2Uud3lzaXd5ZygpLmFsaWduKGUpO1xuICB9XG59XG4iLCI8YXgtYnV0dG9uIGxvb2s9XCJibGFua1wiICNhbGlnblBvcD5cbiAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24tYWxpZ24tbGVmdFwiPjwvYXgtaWNvbj5cbjwvYXgtYnV0dG9uPlxuPGF4LXBvcG92ZXIgW29wZW5Pbl09XCJwb3BvdmVyT3B0aW9uLm9wZW5PblwiIFtjbG9zZU9uXT1cInBvcG92ZXJPcHRpb24uY2xvc2VPblwiIFt0YXJnZXRdPVwiYWxpZ25Qb3BcIiBbcGxhY2VtZW50XT1cInBvcG92ZXJPcHRpb24ucGxhY2VtZW50XCI+XG4gIDxkaXYgY2xhc3M9XCJheC1vdmVybGF5LXBhbmUgYXgtYWxpZ25tZW50LWNvdGFpbmVyIGF4LXNtXCI+XG4gICAgPGF4LWJ1dHRvbiAoY2xpY2spPVwiYWxpZ25TdGF0ZUhhbmRsZXIoJ2xlZnQnKVwiIGxvb2s9XCJibGFua1wiIFtzZWxlY3RlZF09XCJhbGlnblN0YXRlKCkgPT09ICdsZWZ0JyA/IHRydWUgOiBmYWxzZVwiPlxuICAgICAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24tYWxpZ24tbGVmdFwiPjwvYXgtaWNvbj5cbiAgICA8L2F4LWJ1dHRvbj5cblxuICAgIDxheC1idXR0b24gKGNsaWNrKT1cImFsaWduU3RhdGVIYW5kbGVyKCdjZW50ZXInKVwiIGxvb2s9XCJibGFua1wiIFtzZWxlY3RlZF09XCJhbGlnblN0YXRlKCkgPT09ICdjZW50ZXInID8gdHJ1ZSA6IGZhbHNlXCI+XG4gICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1hbGlnbi1jZW50ZXJcIj48L2F4LWljb24+XG4gICAgPC9heC1idXR0b24+XG5cbiAgICA8YXgtYnV0dG9uIChjbGljayk9XCJhbGlnblN0YXRlSGFuZGxlcigncmlnaHQnKVwiIGxvb2s9XCJibGFua1wiIFtzZWxlY3RlZF09XCJhbGlnblN0YXRlKCkgPT09ICdyaWdodCcgPyB0cnVlIDogZmFsc2VcIj5cbiAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWFsaWduLXJpZ2h0XCI+PC9heC1pY29uPlxuICAgIDwvYXgtYnV0dG9uPlxuICA8L2Rpdj5cbjwvYXgtcG9wb3Zlcj5cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, ViewEncapsulation, afterNextRender, effect, inject, signal } from '@angular/core';
1
+ import { Component, ViewEncapsulation, effect, inject, signal } from '@angular/core';
2
2
  import { AXWysiwygService } from '../../wysiwyg.service';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@acorex/components/button";
@@ -16,8 +16,6 @@ export class AXWysiwygColorsComponent {
16
16
  /** @ignore */
17
17
  this.service = inject(AXWysiwygService);
18
18
  /** @ignore */
19
- this.wysiwyg = signal(null);
20
- /** @ignore */
21
19
  this.selectedColor = signal('rgb(151, 148, 148)');
22
20
  /** @ignore */
23
21
  this.selectedHighlightColor = signal('rgba(223, 223, 24, 0.5)');
@@ -33,9 +31,6 @@ export class AXWysiwygColorsComponent {
33
31
  offsetX: 0,
34
32
  offsetY: 0,
35
33
  };
36
- afterNextRender(() => {
37
- this.wysiwyg.set(this.service.wysiwyg());
38
- });
39
34
  effect(() => {
40
35
  if (this.service.isEditorClean()) {
41
36
  this.selectedHighlightColor.set('rgba(223, 223, 24, 0.5)');
@@ -48,28 +43,28 @@ export class AXWysiwygColorsComponent {
48
43
  if (!this.userInteractColor())
49
44
  return;
50
45
  this.selectedColor.set(e);
51
- this.wysiwyg().color(e);
46
+ this.service.wysiwyg().color(e);
52
47
  }
53
48
  /** @ignore */
54
49
  changeHighlightColorHandler(e) {
55
50
  if (!this.userInteractHighligh())
56
51
  return;
57
52
  this.selectedHighlightColor.set(e);
58
- this.wysiwyg().background(e);
53
+ this.service.wysiwyg().background(e);
59
54
  }
60
55
  /** @ignore */
61
56
  initialHighlightHandler() {
62
57
  if (this.userInteractHighligh())
63
58
  return;
64
59
  this.userInteractHighligh.set(true);
65
- this.wysiwyg().background('rgba(223, 223, 24, 0.5)');
60
+ this.service.wysiwyg().background('rgba(223, 223, 24, 0.5)');
66
61
  }
67
62
  /** @ignore */
68
63
  initialColorHandler() {
69
64
  if (this.userInteractColor())
70
65
  return;
71
66
  this.userInteractColor.set(true);
72
- this.wysiwyg().color('rgb(151, 148, 148)');
67
+ this.service.wysiwyg().color('rgb(151, 148, 148)');
73
68
  }
74
69
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXWysiwygColorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
70
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AXWysiwygColorsComponent, selector: "ax-wysiwyg-colors", ngImport: i0, template: "<div class=\"ax-color-picker-wysiwyg-container\">\n <div (click)=\"initialColorHandler()\" class=\"ax-color-flex-wysiwyg-container\">\n <div [style]=\"{ backgroundColor: selectedColor() }\" class=\"ax-submit-color\"></div>\n <ax-button #colorBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-color-palette\"></ax-icon>\n </ax-button>\n </div>\n\n <div (click)=\"initialHighlightHandler()\" class=\"ax-color-flex-wysiwyg-container\">\n <div [style]=\"{ backgroundColor: selectedHighlightColor() }\" class=\"ax-submit-color\"></div>\n <ax-button #highlightBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n </div>\n</div>\n\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\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"highlightBtn\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-color-palette\n (ngModelChange)=\"changeHighlightColorHandler($event)\"\n [ngModel]=\"selectedHighlightColor()\"\n >\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: [".ax-color-picker-wysiwyg-container{display:flex;align-items:center}.ax-color-picker-wysiwyg-container .ax-color-flex-wysiwyg-container{display:flex;align-items:center;cursor:pointer}.ax-color-picker-wysiwyg-container .ax-submit-color{border:1px solid rgb(var(--ax-color-text-default));width:.6rem;height:.6rem;border-radius:1000vmax}\n"], dependencies: [{ kind: "component", type: i1.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: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.AXColorPalleteComponent, selector: "ax-color-palette", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "checked"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "component", type: i4.AXColorPalettePreviewComponent, selector: "ax-color-palette-preview" }, { kind: "component", type: i4.AXColorPaletteInputComponent, selector: "ax-color-palette-input" }, { kind: "component", type: i4.AXColorPalettePickerComponent, selector: "ax-color-palette-picker" }, { kind: "component", type: i5.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }], encapsulation: i0.ViewEncapsulation.None }); }
@@ -78,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
78
73
  type: Component,
79
74
  args: [{ selector: 'ax-wysiwyg-colors', encapsulation: ViewEncapsulation.None, template: "<div class=\"ax-color-picker-wysiwyg-container\">\n <div (click)=\"initialColorHandler()\" class=\"ax-color-flex-wysiwyg-container\">\n <div [style]=\"{ backgroundColor: selectedColor() }\" class=\"ax-submit-color\"></div>\n <ax-button #colorBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-color-palette\"></ax-icon>\n </ax-button>\n </div>\n\n <div (click)=\"initialHighlightHandler()\" class=\"ax-color-flex-wysiwyg-container\">\n <div [style]=\"{ backgroundColor: selectedHighlightColor() }\" class=\"ax-submit-color\"></div>\n <ax-button #highlightBtn look=\"blank\">\n <ax-icon class=\"ax-icon ax-icon-highlight\"></ax-icon>\n </ax-button>\n </div>\n</div>\n\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\n<ax-popover\n [openOn]=\"popoverOption.openOn\"\n [closeOn]=\"popoverOption.closeOn\"\n [target]=\"highlightBtn\"\n [placement]=\"popoverOption.placement\"\n>\n <div class=\"ax-overlay-pane\">\n <ax-color-palette\n (ngModelChange)=\"changeHighlightColorHandler($event)\"\n [ngModel]=\"selectedHighlightColor()\"\n >\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: [".ax-color-picker-wysiwyg-container{display:flex;align-items:center}.ax-color-picker-wysiwyg-container .ax-color-flex-wysiwyg-container{display:flex;align-items:center;cursor:pointer}.ax-color-picker-wysiwyg-container .ax-submit-color{border:1px solid rgb(var(--ax-color-text-default));width:.6rem;height:.6rem;border-radius:1000vmax}\n"] }]
80
75
  }], ctorParameters: () => [] });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3lzaXd5Zy1jb2xvcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3d5c2l3eWcvc3JjL2xpYi93eXNpd3lnL3d5c2l3eWctdG9vbHMvd3lzaXd5Zy1jb2xvcnMvd3lzaXd5Zy1jb2xvcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3d5c2l3eWcvc3JjL2xpYi93eXNpd3lnL3d5c2l3eWctdG9vbHMvd3lzaXd5Zy1jb2xvcnMvd3lzaXd5Zy1jb2xvcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFFekQ7OztHQUdHO0FBT0gsTUFBTSxPQUFPLHdCQUF3QjtJQWtDbkMsY0FBYztJQUNkO1FBbENBLGNBQWM7UUFDZCxZQUFPLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFbkMsY0FBYztRQUNKLFlBQU8sR0FBRyxNQUFNLENBQW1CLElBQUksQ0FBQyxDQUFDO1FBRW5ELGNBQWM7UUFDSixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRXZELGNBQWM7UUFDSiwyQkFBc0IsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUVyRSxjQUFjO1FBQ0osc0JBQWlCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVDLGNBQWM7UUFDSix5QkFBb0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0MsY0FBYztRQUNKLGtCQUFhLEdBTW5CO1lBQ0YsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsVUFBVTtZQUNuQixTQUFTLEVBQUUsS0FBSztZQUNoQixPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxDQUFDO1NBQ1gsQ0FBQztRQUlBLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUNKLEdBQUcsRUFBRTtZQUNILElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7Z0JBQzNELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDL0MsQ0FBQztRQUNILENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWM7SUFDSixrQkFBa0IsQ0FBQyxDQUFTO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFBRSxPQUFPO1FBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWM7SUFDSiwyQkFBMkIsQ0FBQyxDQUFTO1FBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFBRSxPQUFPO1FBQ3pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsY0FBYztJQUNKLHVCQUF1QjtRQUMvQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUFFLE9BQU87UUFDeEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGNBQWM7SUFDSixtQkFBbUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFBRSxPQUFPO1FBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7OEdBN0VVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLHlEQ2hCckMsb3dEQWdEQTs7MkZEaENhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxtQkFBbUIsaUJBR2QsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYV3lzaXd5ZyB9IGZyb20gJ0BhY29yZXgvY2RrL3d5c2l3eWcnO1xuaW1wb3J0IHsgQVhQbGFjZW1lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYUG9wb3ZlckNsb3NlVHJpZ2dlciwgQVhQb3BvdmVyT3BlblRyaWdnZXIgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBhZnRlck5leHRSZW5kZXIsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYV3lzaXd5Z1NlcnZpY2UgfSBmcm9tICcuLi8uLi93eXNpd3lnLnNlcnZpY2UnO1xuXG4vKipcbiAqIEEgY29udGFpbmVyIGNvbXBvbmVudCBmb3IgV1lTSVdZRyAoV2hhdCBZb3UgU2VlIElzIFdoYXQgWW91IEdldCkgZWRpdG9yIGZ1bmN0aW9uYWxpdHkuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC13eXNpd3lnLWNvbG9ycycsXG4gIHRlbXBsYXRlVXJsOiAnLi93eXNpd3lnLWNvbG9ycy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi93eXNpd3lnLWNvbG9ycy5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYV3lzaXd5Z0NvbG9yc0NvbXBvbmVudCB7XG4gIC8qKiBAaWdub3JlICovXG4gIHNlcnZpY2UgPSBpbmplY3QoQVhXeXNpd3lnU2VydmljZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHd5c2l3eWcgPSBzaWduYWw8QVhXeXNpd3lnIHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHNlbGVjdGVkQ29sb3IgPSBzaWduYWwoJ3JnYigxNTEsIDE0OCwgMTQ4KScpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzZWxlY3RlZEhpZ2hsaWdodENvbG9yID0gc2lnbmFsKCdyZ2JhKDIyMywgMjIzLCAyNCwgMC41KScpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCB1c2VySW50ZXJhY3RDb2xvciA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHVzZXJJbnRlcmFjdEhpZ2hsaWdoID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgcG9wb3Zlck9wdGlvbjoge1xuICAgIG9wZW5PbjogQVhQb3BvdmVyT3BlblRyaWdnZXI7XG4gICAgY2xvc2VPbjogQVhQb3BvdmVyQ2xvc2VUcmlnZ2VyO1xuICAgIHBsYWNlbWVudDogQVhQbGFjZW1lbnQ7XG4gICAgb2Zmc2V0WDogbnVtYmVyO1xuICAgIG9mZnNldFk6IG51bWJlcjtcbiAgfSA9IHtcbiAgICBvcGVuT246ICdjbGljaycsXG4gICAgY2xvc2VPbjogJ2NsaWNrT3V0JyxcbiAgICBwbGFjZW1lbnQ6ICd0b3AnLFxuICAgIG9mZnNldFg6IDAsXG4gICAgb2Zmc2V0WTogMCxcbiAgfTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgdGhpcy53eXNpd3lnLnNldCh0aGlzLnNlcnZpY2Uud3lzaXd5ZygpKTtcbiAgICB9KTtcblxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuc2VydmljZS5pc0VkaXRvckNsZWFuKCkpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSGlnaGxpZ2h0Q29sb3Iuc2V0KCdyZ2JhKDIyMywgMjIzLCAyNCwgMC41KScpO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb2xvci5zZXQoJ3JnYigxNTEsIDE0OCwgMTQ4KScpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICAgICk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgY2hhbmdlQ29sb3JIYW5kbGVyKGU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy51c2VySW50ZXJhY3RDb2xvcigpKSByZXR1cm47XG4gICAgdGhpcy5zZWxlY3RlZENvbG9yLnNldChlKTtcbiAgICB0aGlzLnd5c2l3eWcoKS5jb2xvcihlKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBjaGFuZ2VIaWdobGlnaHRDb2xvckhhbmRsZXIoZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLnVzZXJJbnRlcmFjdEhpZ2hsaWdoKCkpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkSGlnaGxpZ2h0Q29sb3Iuc2V0KGUpO1xuICAgIHRoaXMud3lzaXd5ZygpLmJhY2tncm91bmQoZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgaW5pdGlhbEhpZ2hsaWdodEhhbmRsZXIoKSB7XG4gICAgaWYgKHRoaXMudXNlckludGVyYWN0SGlnaGxpZ2goKSkgcmV0dXJuO1xuICAgIHRoaXMudXNlckludGVyYWN0SGlnaGxpZ2guc2V0KHRydWUpO1xuICAgIHRoaXMud3lzaXd5ZygpLmJhY2tncm91bmQoJ3JnYmEoMjIzLCAyMjMsIDI0LCAwLjUpJyk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgaW5pdGlhbENvbG9ySGFuZGxlcigpIHtcbiAgICBpZiAodGhpcy51c2VySW50ZXJhY3RDb2xvcigpKSByZXR1cm47XG4gICAgdGhpcy51c2VySW50ZXJhY3RDb2xvci5zZXQodHJ1ZSk7XG4gICAgdGhpcy53eXNpd3lnKCkuY29sb3IoJ3JnYigxNTEsIDE0OCwgMTQ4KScpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtY29sb3ItcGlja2VyLXd5c2l3eWctY29udGFpbmVyXCI+XG4gIDxkaXYgKGNsaWNrKT1cImluaXRpYWxDb2xvckhhbmRsZXIoKVwiIGNsYXNzPVwiYXgtY29sb3ItZmxleC13eXNpd3lnLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgW3N0eWxlXT1cInsgYmFja2dyb3VuZENvbG9yOiBzZWxlY3RlZENvbG9yKCkgfVwiIGNsYXNzPVwiYXgtc3VibWl0LWNvbG9yXCI+PC9kaXY+XG4gICAgPGF4LWJ1dHRvbiAjY29sb3JCdG4gbG9vaz1cImJsYW5rXCI+XG4gICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jb2xvci1wYWxldHRlXCI+PC9heC1pY29uPlxuICAgIDwvYXgtYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8ZGl2IChjbGljayk9XCJpbml0aWFsSGlnaGxpZ2h0SGFuZGxlcigpXCIgY2xhc3M9XCJheC1jb2xvci1mbGV4LXd5c2l3eWctY29udGFpbmVyXCI+XG4gICAgPGRpdiBbc3R5bGVdPVwieyBiYWNrZ3JvdW5kQ29sb3I6IHNlbGVjdGVkSGlnaGxpZ2h0Q29sb3IoKSB9XCIgY2xhc3M9XCJheC1zdWJtaXQtY29sb3JcIj48L2Rpdj5cbiAgICA8YXgtYnV0dG9uICNoaWdobGlnaHRCdG4gbG9vaz1cImJsYW5rXCI+XG4gICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1oaWdobGlnaHRcIj48L2F4LWljb24+XG4gICAgPC9heC1idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxheC1wb3BvdmVyXG4gIFtvcGVuT25dPVwicG9wb3Zlck9wdGlvbi5vcGVuT25cIlxuICBbY2xvc2VPbl09XCJwb3BvdmVyT3B0aW9uLmNsb3NlT25cIlxuICBbdGFyZ2V0XT1cImNvbG9yQnRuXCJcbiAgW3BsYWNlbWVudF09XCJwb3BvdmVyT3B0aW9uLnBsYWNlbWVudFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJheC1vdmVybGF5LXBhbmVcIj5cbiAgICA8YXgtY29sb3ItcGFsZXR0ZSAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VDb2xvckhhbmRsZXIoJGV2ZW50KVwiIFtuZ01vZGVsXT1cInNlbGVjdGVkQ29sb3IoKVwiPlxuICAgICAgPGF4LWNvbG9yLXBhbGV0dGUtcHJldmlldz48L2F4LWNvbG9yLXBhbGV0dGUtcHJldmlldz5cbiAgICAgIDxheC1jb2xvci1wYWxldHRlLXBpY2tlcj48L2F4LWNvbG9yLXBhbGV0dGUtcGlja2VyPlxuICAgICAgPGF4LWNvbG9yLXBhbGV0dGUtaW5wdXQ+PC9heC1jb2xvci1wYWxldHRlLWlucHV0PlxuICAgIDwvYXgtY29sb3ItcGFsZXR0ZT5cbiAgPC9kaXY+XG48L2F4LXBvcG92ZXI+XG5cbjxheC1wb3BvdmVyXG4gIFtvcGVuT25dPVwicG9wb3Zlck9wdGlvbi5vcGVuT25cIlxuICBbY2xvc2VPbl09XCJwb3BvdmVyT3B0aW9uLmNsb3NlT25cIlxuICBbdGFyZ2V0XT1cImhpZ2hsaWdodEJ0blwiXG4gIFtwbGFjZW1lbnRdPVwicG9wb3Zlck9wdGlvbi5wbGFjZW1lbnRcIlxuPlxuICA8ZGl2IGNsYXNzPVwiYXgtb3ZlcmxheS1wYW5lXCI+XG4gICAgPGF4LWNvbG9yLXBhbGV0dGVcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUhpZ2hsaWdodENvbG9ySGFuZGxlcigkZXZlbnQpXCJcbiAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkSGlnaGxpZ2h0Q29sb3IoKVwiXG4gICAgPlxuICAgICAgPGF4LWNvbG9yLXBhbGV0dGUtcHJldmlldz48L2F4LWNvbG9yLXBhbGV0dGUtcHJldmlldz5cbiAgICAgIDxheC1jb2xvci1wYWxldHRlLXBpY2tlcj48L2F4LWNvbG9yLXBhbGV0dGUtcGlja2VyPlxuICAgICAgPGF4LWNvbG9yLXBhbGV0dGUtaW5wdXQ+PC9heC1jb2xvci1wYWxldHRlLWlucHV0PlxuICAgIDwvYXgtY29sb3ItcGFsZXR0ZT5cbiAgPC9kaXY+XG48L2F4LXBvcG92ZXI+XG4iXX0=
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3lzaXd5Zy1jb2xvcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3d5c2l3eWcvc3JjL2xpYi93eXNpd3lnL3d5c2l3eWctdG9vbHMvd3lzaXd5Zy1jb2xvcnMvd3lzaXd5Zy1jb2xvcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3d5c2l3eWcvc3JjL2xpYi93eXNpd3lnL3d5c2l3eWctdG9vbHMvd3lzaXd5Zy1jb2xvcnMvd3lzaXd5Zy1jb2xvcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQUV6RDs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sd0JBQXdCO0lBK0JuQyxjQUFjO0lBQ2Q7UUEvQkEsY0FBYztRQUNkLFlBQU8sR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVuQyxjQUFjO1FBQ0osa0JBQWEsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUV2RCxjQUFjO1FBQ0osMkJBQXNCLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFckUsY0FBYztRQUNKLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1QyxjQUFjO1FBQ0oseUJBQW9CLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9DLGNBQWM7UUFDSixrQkFBYSxHQU1uQjtZQUNGLE1BQU0sRUFBRSxPQUFPO1lBQ2YsT0FBTyxFQUFFLFVBQVU7WUFDbkIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsT0FBTyxFQUFFLENBQUM7WUFDVixPQUFPLEVBQUUsQ0FBQztTQUNYLENBQUM7UUFJQSxNQUFNLENBQ0osR0FBRyxFQUFFO1lBQ0gsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUMvQyxDQUFDO1FBQ0gsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYztJQUNKLGtCQUFrQixDQUFDLENBQVM7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUFFLE9BQU87UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWM7SUFDSiwyQkFBMkIsQ0FBQyxDQUFTO1FBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFBRSxPQUFPO1FBQ3pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGNBQWM7SUFDSix1QkFBdUI7UUFDL0IsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFBRSxPQUFPO1FBQ3hDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsY0FBYztJQUNKLG1CQUFtQjtRQUMzQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUFFLE9BQU87UUFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3JELENBQUM7OEdBdEVVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLHlEQ2ZyQyxvd0RBZ0RBOzsyRkRqQ2Esd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLG1CQUFtQixpQkFHZCxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQbGFjZW1lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYUG9wb3ZlckNsb3NlVHJpZ2dlciwgQVhQb3BvdmVyT3BlblRyaWdnZXIgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBlZmZlY3QsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFd5c2l3eWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd3lzaXd5Zy5zZXJ2aWNlJztcblxuLyoqXG4gKiBBIGNvbnRhaW5lciBjb21wb25lbnQgZm9yIFdZU0lXWUcgKFdoYXQgWW91IFNlZSBJcyBXaGF0IFlvdSBHZXQpIGVkaXRvciBmdW5jdGlvbmFsaXR5LlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtd3lzaXd5Zy1jb2xvcnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vd3lzaXd5Zy1jb2xvcnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vd3lzaXd5Zy1jb2xvcnMuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBWFd5c2l3eWdDb2xvcnNDb21wb25lbnQge1xuICAvKiogQGlnbm9yZSAqL1xuICBzZXJ2aWNlID0gaW5qZWN0KEFYV3lzaXd5Z1NlcnZpY2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBzZWxlY3RlZENvbG9yID0gc2lnbmFsKCdyZ2IoMTUxLCAxNDgsIDE0OCknKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRIaWdobGlnaHRDb2xvciA9IHNpZ25hbCgncmdiYSgyMjMsIDIyMywgMjQsIDAuNSknKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgdXNlckludGVyYWN0Q29sb3IgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCB1c2VySW50ZXJhY3RIaWdobGlnaCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJvdGVjdGVkIHBvcG92ZXJPcHRpb246IHtcbiAgICBvcGVuT246IEFYUG9wb3Zlck9wZW5UcmlnZ2VyO1xuICAgIGNsb3NlT246IEFYUG9wb3ZlckNsb3NlVHJpZ2dlcjtcbiAgICBwbGFjZW1lbnQ6IEFYUGxhY2VtZW50O1xuICAgIG9mZnNldFg6IG51bWJlcjtcbiAgICBvZmZzZXRZOiBudW1iZXI7XG4gIH0gPSB7XG4gICAgb3Blbk9uOiAnY2xpY2snLFxuICAgIGNsb3NlT246ICdjbGlja091dCcsXG4gICAgcGxhY2VtZW50OiAndG9wJyxcbiAgICBvZmZzZXRYOiAwLFxuICAgIG9mZnNldFk6IDAsXG4gIH07XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmlzRWRpdG9yQ2xlYW4oKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRIaWdobGlnaHRDb2xvci5zZXQoJ3JnYmEoMjIzLCAyMjMsIDI0LCAwLjUpJyk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvbG9yLnNldCgncmdiKDE1MSwgMTQ4LCAxNDgpJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBjaGFuZ2VDb2xvckhhbmRsZXIoZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLnVzZXJJbnRlcmFjdENvbG9yKCkpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkQ29sb3Iuc2V0KGUpO1xuICAgIHRoaXMuc2VydmljZS53eXNpd3lnKCkuY29sb3IoZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgY2hhbmdlSGlnaGxpZ2h0Q29sb3JIYW5kbGVyKGU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy51c2VySW50ZXJhY3RIaWdobGlnaCgpKSByZXR1cm47XG4gICAgdGhpcy5zZWxlY3RlZEhpZ2hsaWdodENvbG9yLnNldChlKTtcbiAgICB0aGlzLnNlcnZpY2Uud3lzaXd5ZygpLmJhY2tncm91bmQoZSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgaW5pdGlhbEhpZ2hsaWdodEhhbmRsZXIoKSB7XG4gICAgaWYgKHRoaXMudXNlckludGVyYWN0SGlnaGxpZ2goKSkgcmV0dXJuO1xuICAgIHRoaXMudXNlckludGVyYWN0SGlnaGxpZ2guc2V0KHRydWUpO1xuICAgIHRoaXMuc2VydmljZS53eXNpd3lnKCkuYmFja2dyb3VuZCgncmdiYSgyMjMsIDIyMywgMjQsIDAuNSknKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByb3RlY3RlZCBpbml0aWFsQ29sb3JIYW5kbGVyKCkge1xuICAgIGlmICh0aGlzLnVzZXJJbnRlcmFjdENvbG9yKCkpIHJldHVybjtcbiAgICB0aGlzLnVzZXJJbnRlcmFjdENvbG9yLnNldCh0cnVlKTtcbiAgICB0aGlzLnNlcnZpY2Uud3lzaXd5ZygpLmNvbG9yKCdyZ2IoMTUxLCAxNDgsIDE0OCknKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWNvbG9yLXBpY2tlci13eXNpd3lnLWNvbnRhaW5lclwiPlxuICA8ZGl2IChjbGljayk9XCJpbml0aWFsQ29sb3JIYW5kbGVyKClcIiBjbGFzcz1cImF4LWNvbG9yLWZsZXgtd3lzaXd5Zy1jb250YWluZXJcIj5cbiAgICA8ZGl2IFtzdHlsZV09XCJ7IGJhY2tncm91bmRDb2xvcjogc2VsZWN0ZWRDb2xvcigpIH1cIiBjbGFzcz1cImF4LXN1Ym1pdC1jb2xvclwiPjwvZGl2PlxuICAgIDxheC1idXR0b24gI2NvbG9yQnRuIGxvb2s9XCJibGFua1wiPlxuICAgICAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24tY29sb3ItcGFsZXR0ZVwiPjwvYXgtaWNvbj5cbiAgICA8L2F4LWJ1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAoY2xpY2spPVwiaW5pdGlhbEhpZ2hsaWdodEhhbmRsZXIoKVwiIGNsYXNzPVwiYXgtY29sb3ItZmxleC13eXNpd3lnLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgW3N0eWxlXT1cInsgYmFja2dyb3VuZENvbG9yOiBzZWxlY3RlZEhpZ2hsaWdodENvbG9yKCkgfVwiIGNsYXNzPVwiYXgtc3VibWl0LWNvbG9yXCI+PC9kaXY+XG4gICAgPGF4LWJ1dHRvbiAjaGlnaGxpZ2h0QnRuIGxvb2s9XCJibGFua1wiPlxuICAgICAgPGF4LWljb24gY2xhc3M9XCJheC1pY29uIGF4LWljb24taGlnaGxpZ2h0XCI+PC9heC1pY29uPlxuICAgIDwvYXgtYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48YXgtcG9wb3ZlclxuICBbb3Blbk9uXT1cInBvcG92ZXJPcHRpb24ub3Blbk9uXCJcbiAgW2Nsb3NlT25dPVwicG9wb3Zlck9wdGlvbi5jbG9zZU9uXCJcbiAgW3RhcmdldF09XCJjb2xvckJ0blwiXG4gIFtwbGFjZW1lbnRdPVwicG9wb3Zlck9wdGlvbi5wbGFjZW1lbnRcIlxuPlxuICA8ZGl2IGNsYXNzPVwiYXgtb3ZlcmxheS1wYW5lXCI+XG4gICAgPGF4LWNvbG9yLXBhbGV0dGUgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlQ29sb3JIYW5kbGVyKCRldmVudClcIiBbbmdNb2RlbF09XCJzZWxlY3RlZENvbG9yKClcIj5cbiAgICAgIDxheC1jb2xvci1wYWxldHRlLXByZXZpZXc+PC9heC1jb2xvci1wYWxldHRlLXByZXZpZXc+XG4gICAgICA8YXgtY29sb3ItcGFsZXR0ZS1waWNrZXI+PC9heC1jb2xvci1wYWxldHRlLXBpY2tlcj5cbiAgICAgIDxheC1jb2xvci1wYWxldHRlLWlucHV0PjwvYXgtY29sb3ItcGFsZXR0ZS1pbnB1dD5cbiAgICA8L2F4LWNvbG9yLXBhbGV0dGU+XG4gIDwvZGl2PlxuPC9heC1wb3BvdmVyPlxuXG48YXgtcG9wb3ZlclxuICBbb3Blbk9uXT1cInBvcG92ZXJPcHRpb24ub3Blbk9uXCJcbiAgW2Nsb3NlT25dPVwicG9wb3Zlck9wdGlvbi5jbG9zZU9uXCJcbiAgW3RhcmdldF09XCJoaWdobGlnaHRCdG5cIlxuICBbcGxhY2VtZW50XT1cInBvcG92ZXJPcHRpb24ucGxhY2VtZW50XCJcbj5cbiAgPGRpdiBjbGFzcz1cImF4LW92ZXJsYXktcGFuZVwiPlxuICAgIDxheC1jb2xvci1wYWxldHRlXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VIaWdobGlnaHRDb2xvckhhbmRsZXIoJGV2ZW50KVwiXG4gICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZEhpZ2hsaWdodENvbG9yKClcIlxuICAgID5cbiAgICAgIDxheC1jb2xvci1wYWxldHRlLXByZXZpZXc+PC9heC1jb2xvci1wYWxldHRlLXByZXZpZXc+XG4gICAgICA8YXgtY29sb3ItcGFsZXR0ZS1waWNrZXI+PC9heC1jb2xvci1wYWxldHRlLXBpY2tlcj5cbiAgICAgIDxheC1jb2xvci1wYWxldHRlLWlucHV0PjwvYXgtY29sb3ItcGFsZXR0ZS1pbnB1dD5cbiAgICA8L2F4LWNvbG9yLXBhbGV0dGU+XG4gIDwvZGl2PlxuPC9heC1wb3BvdmVyPlxuIl19