ngx-color 9.0.0 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/coordinates.directive.d.ts +1 -2
  2. package/fesm2022/ngx-color-alpha.mjs +15 -17
  3. package/fesm2022/ngx-color-alpha.mjs.map +1 -1
  4. package/fesm2022/ngx-color-block.mjs +87 -76
  5. package/fesm2022/ngx-color-block.mjs.map +1 -1
  6. package/fesm2022/ngx-color-chrome.mjs +186 -145
  7. package/fesm2022/ngx-color-chrome.mjs.map +1 -1
  8. package/fesm2022/ngx-color-circle.mjs +68 -51
  9. package/fesm2022/ngx-color-circle.mjs.map +1 -1
  10. package/fesm2022/ngx-color-compact.mjs +163 -145
  11. package/fesm2022/ngx-color-compact.mjs.map +1 -1
  12. package/fesm2022/ngx-color-github.mjs +36 -37
  13. package/fesm2022/ngx-color-github.mjs.map +1 -1
  14. package/fesm2022/ngx-color-hue.mjs +27 -25
  15. package/fesm2022/ngx-color-hue.mjs.map +1 -1
  16. package/fesm2022/ngx-color-material.mjs +77 -61
  17. package/fesm2022/ngx-color-material.mjs.map +1 -1
  18. package/fesm2022/ngx-color-photoshop.mjs +224 -214
  19. package/fesm2022/ngx-color-photoshop.mjs.map +1 -1
  20. package/fesm2022/ngx-color-shade.mjs +19 -13
  21. package/fesm2022/ngx-color-shade.mjs.map +1 -1
  22. package/fesm2022/ngx-color-sketch.mjs +232 -227
  23. package/fesm2022/ngx-color-sketch.mjs.map +1 -1
  24. package/fesm2022/ngx-color-slider.mjs +153 -145
  25. package/fesm2022/ngx-color-slider.mjs.map +1 -1
  26. package/fesm2022/ngx-color-swatches.mjs +118 -216
  27. package/fesm2022/ngx-color-swatches.mjs.map +1 -1
  28. package/fesm2022/ngx-color-twitter.mjs +61 -58
  29. package/fesm2022/ngx-color-twitter.mjs.map +1 -1
  30. package/fesm2022/ngx-color.mjs +231 -187
  31. package/fesm2022/ngx-color.mjs.map +1 -1
  32. package/package.json +4 -34
  33. package/esm2022/alpha/alpha-picker.component.mjs +0 -102
  34. package/esm2022/alpha/ngx-color-alpha.mjs +0 -5
  35. package/esm2022/alpha/public_api.mjs +0 -2
  36. package/esm2022/alpha.component.mjs +0 -146
  37. package/esm2022/block/block-swatches.component.mjs +0 -63
  38. package/esm2022/block/block.component.mjs +0 -160
  39. package/esm2022/block/ngx-color-block.mjs +0 -5
  40. package/esm2022/block/public_api.mjs +0 -3
  41. package/esm2022/checkboard.component.mjs +0 -53
  42. package/esm2022/chrome/chrome-fields.component.mjs +0 -317
  43. package/esm2022/chrome/chrome.component.mjs +0 -187
  44. package/esm2022/chrome/ngx-color-chrome.mjs +0 -5
  45. package/esm2022/chrome/public_api.mjs +0 -3
  46. package/esm2022/circle/circle-swatch.component.mjs +0 -69
  47. package/esm2022/circle/circle.component.mjs +0 -136
  48. package/esm2022/circle/ngx-color-circle.mjs +0 -5
  49. package/esm2022/circle/public_api.mjs +0 -3
  50. package/esm2022/color-wrap.component.mjs +0 -173
  51. package/esm2022/compact/compact-color.component.mjs +0 -71
  52. package/esm2022/compact/compact-fields.component.mjs +0 -165
  53. package/esm2022/compact/compact.component.mjs +0 -156
  54. package/esm2022/compact/ngx-color-compact.mjs +0 -5
  55. package/esm2022/compact/public_api.mjs +0 -4
  56. package/esm2022/coordinates.directive.mjs +0 -108
  57. package/esm2022/editable-input.component.mjs +0 -212
  58. package/esm2022/github/github-swatch.component.mjs +0 -53
  59. package/esm2022/github/github.component.mjs +0 -114
  60. package/esm2022/github/ngx-color-github.mjs +0 -5
  61. package/esm2022/github/public_api.mjs +0 -3
  62. package/esm2022/helpers/checkboard.mjs +0 -33
  63. package/esm2022/helpers/color.interfaces.mjs +0 -2
  64. package/esm2022/helpers/color.mjs +0 -60
  65. package/esm2022/hue/hue-picker.component.mjs +0 -102
  66. package/esm2022/hue/ngx-color-hue.mjs +0 -5
  67. package/esm2022/hue/public_api.mjs +0 -2
  68. package/esm2022/hue.component.mjs +0 -128
  69. package/esm2022/material/material.component.mjs +0 -188
  70. package/esm2022/material/ngx-color-material.mjs +0 -5
  71. package/esm2022/material/public_api.mjs +0 -2
  72. package/esm2022/ngx-color.mjs +0 -5
  73. package/esm2022/photoshop/ngx-color-photoshop.mjs +0 -5
  74. package/esm2022/photoshop/photoshop-button.component.mjs +0 -33
  75. package/esm2022/photoshop/photoshop-fields.component.mjs +0 -214
  76. package/esm2022/photoshop/photoshop-previews.component.mjs +0 -40
  77. package/esm2022/photoshop/photoshop.component.mjs +0 -187
  78. package/esm2022/photoshop/public_api.mjs +0 -5
  79. package/esm2022/public_api.mjs +0 -14
  80. package/esm2022/raised.component.mjs +0 -50
  81. package/esm2022/saturation.component.mjs +0 -100
  82. package/esm2022/shade/ngx-color-shade.mjs +0 -5
  83. package/esm2022/shade/public_api.mjs +0 -2
  84. package/esm2022/shade/shade-picker.component.mjs +0 -94
  85. package/esm2022/shade.component.mjs +0 -133
  86. package/esm2022/sketch/ngx-color-sketch.mjs +0 -5
  87. package/esm2022/sketch/public_api.mjs +0 -4
  88. package/esm2022/sketch/sketch-fields.component.mjs +0 -211
  89. package/esm2022/sketch/sketch-preset-colors.component.mjs +0 -68
  90. package/esm2022/sketch/sketch.component.mjs +0 -215
  91. package/esm2022/slider/ngx-color-slider.mjs +0 -5
  92. package/esm2022/slider/public_api.mjs +0 -4
  93. package/esm2022/slider/slider-swatch.component.mjs +0 -55
  94. package/esm2022/slider/slider-swatches.component.mjs +0 -119
  95. package/esm2022/slider/slider.component.mjs +0 -104
  96. package/esm2022/swatch.component.mjs +0 -112
  97. package/esm2022/swatches/ngx-color-swatches.mjs +0 -5
  98. package/esm2022/swatches/public_api.mjs +0 -4
  99. package/esm2022/swatches/swatches-color.component.mjs +0 -105
  100. package/esm2022/swatches/swatches-group.component.mjs +0 -50
  101. package/esm2022/swatches/swatches.component.mjs +0 -244
  102. package/esm2022/twitter/ngx-color-twitter.mjs +0 -5
  103. package/esm2022/twitter/public_api.mjs +0 -2
  104. package/esm2022/twitter/twitter.component.mjs +0 -161
@@ -1,317 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
- import { isValidHex } from 'ngx-color';
3
- import { TinyColor } from '@ctrl/tinycolor';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "ngx-color";
7
- class ChromeFieldsComponent {
8
- disableAlpha;
9
- hsl;
10
- rgb;
11
- hex;
12
- onChange = new EventEmitter();
13
- view = '';
14
- input = {
15
- fontSize: '11px',
16
- color: '#333',
17
- width: '100%',
18
- borderRadius: '2px',
19
- border: 'none',
20
- boxShadow: 'inset 0 0 0 1px #dadada',
21
- height: '21px',
22
- 'text-align': 'center',
23
- };
24
- label = {
25
- 'text-transform': 'uppercase',
26
- fontSize: '11px',
27
- 'line-height': '11px',
28
- color: '#969696',
29
- 'text-align': 'center',
30
- display: 'block',
31
- marginTop: '12px',
32
- };
33
- ngOnInit() {
34
- if (this.hsl.a === 1 && this.view !== 'hex') {
35
- this.view = 'hex';
36
- }
37
- else if (this.view !== 'rgb' && this.view !== 'hsl') {
38
- this.view = 'rgb';
39
- }
40
- }
41
- toggleViews() {
42
- if (this.view === 'hex') {
43
- this.view = 'rgb';
44
- }
45
- else if (this.view === 'rgb') {
46
- this.view = 'hsl';
47
- }
48
- else if (this.view === 'hsl') {
49
- if (this.hsl.a === 1) {
50
- this.view = 'hex';
51
- }
52
- else {
53
- this.view = 'rgb';
54
- }
55
- }
56
- }
57
- round(value) {
58
- return Math.round(value);
59
- }
60
- handleChange({ data, $event }) {
61
- if (data.hex) {
62
- if (isValidHex(data.hex)) {
63
- const color = new TinyColor(data.hex);
64
- this.onChange.emit({
65
- data: {
66
- hex: this.disableAlpha ? color.toHex() : color.toHex8(),
67
- source: 'hex',
68
- },
69
- $event,
70
- });
71
- }
72
- }
73
- else if (data.r || data.g || data.b) {
74
- this.onChange.emit({
75
- data: {
76
- r: data.r || this.rgb.r,
77
- g: data.g || this.rgb.g,
78
- b: data.b || this.rgb.b,
79
- source: 'rgb',
80
- },
81
- $event,
82
- });
83
- }
84
- else if (data.a) {
85
- if (data.a < 0) {
86
- data.a = 0;
87
- }
88
- else if (data.a > 1) {
89
- data.a = 1;
90
- }
91
- if (this.disableAlpha) {
92
- data.a = 1;
93
- }
94
- this.onChange.emit({
95
- data: {
96
- h: this.hsl.h,
97
- s: this.hsl.s,
98
- l: this.hsl.l,
99
- a: Math.round(data.a * 100) / 100,
100
- source: 'rgb',
101
- },
102
- $event,
103
- });
104
- }
105
- else if (data.h || data.s || data.l) {
106
- const s = data.s && data.s.replace('%', '');
107
- const l = data.l && data.l.replace('%', '');
108
- this.onChange.emit({
109
- data: {
110
- h: data.h || this.hsl.h,
111
- s: Number(s || this.hsl.s),
112
- l: Number(l || this.hsl.l),
113
- source: 'hsl',
114
- },
115
- $event,
116
- });
117
- }
118
- }
119
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ChromeFieldsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
120
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: ChromeFieldsComponent, selector: "color-chrome-fields", inputs: { disableAlpha: "disableAlpha", hsl: "hsl", rgb: "rgb", hex: "hex" }, outputs: { onChange: "onChange" }, ngImport: i0, template: `
121
- <div class="chrome-wrap">
122
- <div class="chrome-fields">
123
- <ng-template [ngIf]="view === 'hex'">
124
- <div class="chrome-field">
125
- <color-editable-input
126
- [style]="{ input: input, label: label }"
127
- label="hex" [value]="hex"
128
- (onChange)="handleChange($event)"
129
- ></color-editable-input>
130
- </div>
131
- </ng-template>
132
- <ng-template [ngIf]="view === 'rgb'">
133
- <div class="chrome-field">
134
- <color-editable-input
135
- [style]="{ input: input, label: label }"
136
- label="r" [value]="rgb.r"
137
- (onChange)="handleChange($event)"
138
- ></color-editable-input>
139
- </div>
140
- <div class="chrome-field">
141
- <color-editable-input
142
- [style]="{ input: input, label: label }"
143
- label="g" [value]="rgb.g"
144
- (onChange)="handleChange($event)"
145
- ></color-editable-input>
146
- </div>
147
- <div class="chrome-field">
148
- <color-editable-input
149
- [style]="{ input: input, label: label }"
150
- label="b" [value]="rgb.b"
151
- (onChange)="handleChange($event)"
152
- ></color-editable-input>
153
- </div>
154
- <div class="chrome-field">
155
- <color-editable-input *ngIf="!disableAlpha"
156
- [style]="{ input: input, label: label }"
157
- label="a" [value]="rgb.a"
158
- [arrowOffset]="0.01"
159
- (onChange)="handleChange($event)"
160
- ></color-editable-input>
161
- </div>
162
- </ng-template>
163
- <ng-template [ngIf]="view === 'hsl'">
164
- <div class="chrome-field">
165
- <color-editable-input
166
- [style]="{ input: input, label: label }"
167
- label="h"
168
- [value]="round(hsl.h)"
169
- (onChange)="handleChange($event)"
170
- ></color-editable-input>
171
- </div>
172
- <div class="chrome-field">
173
- <color-editable-input
174
- [style]="{ input: input, label: label }"
175
- label="s" [value]="round(hsl.s * 100) + '%'"
176
- (onChange)="handleChange($event)"
177
- ></color-editable-input>
178
- </div>
179
- <div class="chrome-field">
180
- <color-editable-input
181
- [style]="{ input: input, label: label }"
182
- label="l" [value]="round(hsl.l * 100) + '%'"
183
- (onChange)="handleChange($event)"
184
- ></color-editable-input>
185
- </div>
186
- <div class="chrome-field">
187
- <color-editable-input *ngIf="!disableAlpha"
188
- [style]="{ input: input, label: label }"
189
- label="a" [value]="hsl.a"
190
- [arrowOffset]="0.01"
191
- (onChange)="handleChange($event)"
192
- ></color-editable-input>
193
- </div>
194
- </ng-template>
195
- </div>
196
-
197
- <div class="chrome-toggle">
198
- <div class="chrome-icon" (click)="toggleViews()" #icon>
199
- <svg class="chrome-toggle-svg" viewBox="0 0 24 24">
200
- <path #iconUp fill="#333"
201
- d="M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"
202
- />
203
- <path #iconDown fill="#333"
204
- d="M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15Z"
205
- />
206
- </svg>
207
- </div>
208
- </div>
209
- </div>
210
- `, isInline: true, styles: [".chrome-wrap{padding-top:16px;display:flex}.chrome-fields{flex:1;display:flex;margin-left:-6px}.chrome-field{padding-left:6px;width:100%}.chrome-toggle{width:32px;text-align:right;position:relative}.chrome-icon{margin-right:-4px;margin-top:12px;cursor:pointer;position:relative}.chrome-toggle-svg{width:24px;height:24px;border:1px transparent solid;border-radius:5px}.chrome-toggle-svg:hover{background:#eee}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EditableInputComponent, selector: "color-editable-input", inputs: ["style", "label", "value", "arrowOffset", "dragLabel", "dragMax", "placeholder"], outputs: ["onChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
211
- }
212
- export { ChromeFieldsComponent };
213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ChromeFieldsComponent, decorators: [{
214
- type: Component,
215
- args: [{ selector: 'color-chrome-fields', template: `
216
- <div class="chrome-wrap">
217
- <div class="chrome-fields">
218
- <ng-template [ngIf]="view === 'hex'">
219
- <div class="chrome-field">
220
- <color-editable-input
221
- [style]="{ input: input, label: label }"
222
- label="hex" [value]="hex"
223
- (onChange)="handleChange($event)"
224
- ></color-editable-input>
225
- </div>
226
- </ng-template>
227
- <ng-template [ngIf]="view === 'rgb'">
228
- <div class="chrome-field">
229
- <color-editable-input
230
- [style]="{ input: input, label: label }"
231
- label="r" [value]="rgb.r"
232
- (onChange)="handleChange($event)"
233
- ></color-editable-input>
234
- </div>
235
- <div class="chrome-field">
236
- <color-editable-input
237
- [style]="{ input: input, label: label }"
238
- label="g" [value]="rgb.g"
239
- (onChange)="handleChange($event)"
240
- ></color-editable-input>
241
- </div>
242
- <div class="chrome-field">
243
- <color-editable-input
244
- [style]="{ input: input, label: label }"
245
- label="b" [value]="rgb.b"
246
- (onChange)="handleChange($event)"
247
- ></color-editable-input>
248
- </div>
249
- <div class="chrome-field">
250
- <color-editable-input *ngIf="!disableAlpha"
251
- [style]="{ input: input, label: label }"
252
- label="a" [value]="rgb.a"
253
- [arrowOffset]="0.01"
254
- (onChange)="handleChange($event)"
255
- ></color-editable-input>
256
- </div>
257
- </ng-template>
258
- <ng-template [ngIf]="view === 'hsl'">
259
- <div class="chrome-field">
260
- <color-editable-input
261
- [style]="{ input: input, label: label }"
262
- label="h"
263
- [value]="round(hsl.h)"
264
- (onChange)="handleChange($event)"
265
- ></color-editable-input>
266
- </div>
267
- <div class="chrome-field">
268
- <color-editable-input
269
- [style]="{ input: input, label: label }"
270
- label="s" [value]="round(hsl.s * 100) + '%'"
271
- (onChange)="handleChange($event)"
272
- ></color-editable-input>
273
- </div>
274
- <div class="chrome-field">
275
- <color-editable-input
276
- [style]="{ input: input, label: label }"
277
- label="l" [value]="round(hsl.l * 100) + '%'"
278
- (onChange)="handleChange($event)"
279
- ></color-editable-input>
280
- </div>
281
- <div class="chrome-field">
282
- <color-editable-input *ngIf="!disableAlpha"
283
- [style]="{ input: input, label: label }"
284
- label="a" [value]="hsl.a"
285
- [arrowOffset]="0.01"
286
- (onChange)="handleChange($event)"
287
- ></color-editable-input>
288
- </div>
289
- </ng-template>
290
- </div>
291
-
292
- <div class="chrome-toggle">
293
- <div class="chrome-icon" (click)="toggleViews()" #icon>
294
- <svg class="chrome-toggle-svg" viewBox="0 0 24 24">
295
- <path #iconUp fill="#333"
296
- d="M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"
297
- />
298
- <path #iconDown fill="#333"
299
- d="M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15Z"
300
- />
301
- </svg>
302
- </div>
303
- </div>
304
- </div>
305
- `, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, styles: [".chrome-wrap{padding-top:16px;display:flex}.chrome-fields{flex:1;display:flex;margin-left:-6px}.chrome-field{padding-left:6px;width:100%}.chrome-toggle{width:32px;text-align:right;position:relative}.chrome-icon{margin-right:-4px;margin-top:12px;cursor:pointer;position:relative}.chrome-toggle-svg{width:24px;height:24px;border:1px transparent solid;border-radius:5px}.chrome-toggle-svg:hover{background:#eee}\n"] }]
306
- }], propDecorators: { disableAlpha: [{
307
- type: Input
308
- }], hsl: [{
309
- type: Input
310
- }], rgb: [{
311
- type: Input
312
- }], hex: [{
313
- type: Input
314
- }], onChange: [{
315
- type: Output
316
- }] } });
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyb21lLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2Nocm9tZS9jaHJvbWUtZmllbGRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sV0FBVyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUU1QyxNQXFJYSxxQkFBcUI7SUFDdkIsWUFBWSxDQUFXO0lBQ3ZCLEdBQUcsQ0FBUTtJQUNYLEdBQUcsQ0FBUTtJQUNYLEdBQUcsQ0FBVTtJQUNaLFFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQzdDLElBQUksR0FBRyxFQUFFLENBQUM7SUFDVixLQUFLLEdBQTJCO1FBQzlCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLEtBQUssRUFBRSxNQUFNO1FBQ2IsS0FBSyxFQUFFLE1BQU07UUFDYixZQUFZLEVBQUUsS0FBSztRQUNuQixNQUFNLEVBQUUsTUFBTTtRQUNkLFNBQVMsRUFBRSx5QkFBeUI7UUFDcEMsTUFBTSxFQUFFLE1BQU07UUFDZCxZQUFZLEVBQUUsUUFBUTtLQUN2QixDQUFDO0lBQ0YsS0FBSyxHQUEyQjtRQUM5QixnQkFBZ0IsRUFBRSxXQUFXO1FBQzdCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLGFBQWEsRUFBRSxNQUFNO1FBQ3JCLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFlBQVksRUFBRSxRQUFRO1FBQ3RCLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFNBQVMsRUFBRSxNQUFNO0tBQ2xCLENBQUM7SUFFRixRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUU7WUFDM0MsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7U0FDbkI7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFO1lBQ3JELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1NBQ25CO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRTtZQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztTQUNuQjthQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUU7WUFDOUIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2FBQ25CO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2FBQ25CO1NBQ0Y7SUFDSCxDQUFDO0lBQ0QsS0FBSyxDQUFDLEtBQUs7UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7UUFDM0IsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO29CQUNqQixJQUFJLEVBQUU7d0JBQ0osR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTt3QkFDdkQsTUFBTSxFQUFFLEtBQUs7cUJBQ2Q7b0JBQ0QsTUFBTTtpQkFDUCxDQUFDLENBQUM7YUFDSjtTQUNGO2FBQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDakIsSUFBSSxFQUFFO29CQUNKLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDdkIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN2QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3ZCLE1BQU0sRUFBRSxLQUFLO2lCQUNkO2dCQUNELE1BQU07YUFDUCxDQUFDLENBQUM7U0FDSjthQUFNLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNqQixJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNkLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ1o7aUJBQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDckIsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDWjtZQUVELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDckIsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDWjtZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNqQixJQUFJLEVBQUU7b0JBQ0osQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDYixDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNiLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ2IsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHO29CQUNqQyxNQUFNLEVBQUUsS0FBSztpQkFDZDtnQkFDRCxNQUFNO2FBQ1AsQ0FBQyxDQUFDO1NBQ0o7YUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNqQixJQUFJLEVBQUU7b0JBQ0osQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN2QixDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDMUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQzFCLE1BQU0sRUFBRSxLQUFLO2lCQUNkO2dCQUNELE1BQU07YUFDUCxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7dUdBMUdVLHFCQUFxQjsyRkFBckIscUJBQXFCLDRLQW5JdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBGVDs7U0F5Q1UscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBcklqQyxTQUFTOytCQUNFLHFCQUFxQixZQUNyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEZULG1CQXNDZ0IsdUJBQXVCLENBQUMsTUFBTSx1QkFDMUIsS0FBSzs4QkFHakIsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBpc1ZhbGlkSGV4LCBIU0xBLCBSR0JBIH0gZnJvbSAnbmd4LWNvbG9yJztcbmltcG9ydCB7IFRpbnlDb2xvciB9IGZyb20gJ0BjdHJsL3Rpbnljb2xvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvbG9yLWNocm9tZS1maWVsZHMnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjaHJvbWUtd3JhcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1maWVsZHNcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInZpZXcgPT09ICdoZXgnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1maWVsZFwiPlxuICAgICAgICAgICAgPGNvbG9yLWVkaXRhYmxlLWlucHV0XG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7IGlucHV0OiBpbnB1dCwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICBsYWJlbD1cImhleFwiIFt2YWx1ZV09XCJoZXhcIlxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvY29sb3ItZWRpdGFibGUtaW5wdXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJ2aWV3ID09PSAncmdiJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJvbWUtZmllbGRcIj5cbiAgICAgICAgICAgIDxjb2xvci1lZGl0YWJsZS1pbnB1dFxuICAgICAgICAgICAgICBbc3R5bGVdPVwieyBpbnB1dDogaW5wdXQsIGxhYmVsOiBsYWJlbCB9XCJcbiAgICAgICAgICAgICAgbGFiZWw9XCJyXCIgW3ZhbHVlXT1cInJnYi5yXCJcbiAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2NvbG9yLWVkaXRhYmxlLWlucHV0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJvbWUtZmllbGRcIj5cbiAgICAgICAgICAgIDxjb2xvci1lZGl0YWJsZS1pbnB1dFxuICAgICAgICAgICAgICBbc3R5bGVdPVwieyBpbnB1dDogaW5wdXQsIGxhYmVsOiBsYWJlbCB9XCJcbiAgICAgICAgICAgICAgbGFiZWw9XCJnXCIgW3ZhbHVlXT1cInJnYi5nXCJcbiAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2NvbG9yLWVkaXRhYmxlLWlucHV0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJvbWUtZmllbGRcIj5cbiAgICAgICAgICAgIDxjb2xvci1lZGl0YWJsZS1pbnB1dFxuICAgICAgICAgICAgICBbc3R5bGVdPVwieyBpbnB1dDogaW5wdXQsIGxhYmVsOiBsYWJlbCB9XCJcbiAgICAgICAgICAgICAgbGFiZWw9XCJiXCIgW3ZhbHVlXT1cInJnYi5iXCJcbiAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2NvbG9yLWVkaXRhYmxlLWlucHV0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJvbWUtZmllbGRcIj5cbiAgICAgICAgICAgIDxjb2xvci1lZGl0YWJsZS1pbnB1dCAqbmdJZj1cIiFkaXNhYmxlQWxwaGFcIlxuICAgICAgICAgICAgICBbc3R5bGVdPVwieyBpbnB1dDogaW5wdXQsIGxhYmVsOiBsYWJlbCB9XCJcbiAgICAgICAgICAgICAgbGFiZWw9XCJhXCIgW3ZhbHVlXT1cInJnYi5hXCJcbiAgICAgICAgICAgICAgW2Fycm93T2Zmc2V0XT1cIjAuMDFcIlxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvY29sb3ItZWRpdGFibGUtaW5wdXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJ2aWV3ID09PSAnaHNsJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJvbWUtZmllbGRcIj5cbiAgICAgICAgICAgIDxjb2xvci1lZGl0YWJsZS1pbnB1dFxuICAgICAgICAgICAgICBbc3R5bGVdPVwieyBpbnB1dDogaW5wdXQsIGxhYmVsOiBsYWJlbCB9XCJcbiAgICAgICAgICAgICAgbGFiZWw9XCJoXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cInJvdW5kKGhzbC5oKVwiXG4gICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jb2xvci1lZGl0YWJsZS1pbnB1dD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLWZpZWxkXCI+XG4gICAgICAgICAgICA8Y29sb3ItZWRpdGFibGUtaW5wdXRcbiAgICAgICAgICAgICAgW3N0eWxlXT1cInsgaW5wdXQ6IGlucHV0LCBsYWJlbDogbGFiZWwgfVwiXG4gICAgICAgICAgICAgIGxhYmVsPVwic1wiIFt2YWx1ZV09XCJyb3VuZChoc2wucyAqIDEwMCkgKyAnJSdcIlxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvY29sb3ItZWRpdGFibGUtaW5wdXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1maWVsZFwiPlxuICAgICAgICAgICAgPGNvbG9yLWVkaXRhYmxlLWlucHV0XG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7IGlucHV0OiBpbnB1dCwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICBsYWJlbD1cImxcIiBbdmFsdWVdPVwicm91bmQoaHNsLmwgKiAxMDApICsgJyUnXCJcbiAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2NvbG9yLWVkaXRhYmxlLWlucHV0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJvbWUtZmllbGRcIj5cbiAgICAgICAgICAgIDxjb2xvci1lZGl0YWJsZS1pbnB1dCAqbmdJZj1cIiFkaXNhYmxlQWxwaGFcIlxuICAgICAgICAgICAgICBbc3R5bGVdPVwieyBpbnB1dDogaW5wdXQsIGxhYmVsOiBsYWJlbCB9XCJcbiAgICAgICAgICAgICAgbGFiZWw9XCJhXCIgW3ZhbHVlXT1cImhzbC5hXCJcbiAgICAgICAgICAgICAgW2Fycm93T2Zmc2V0XT1cIjAuMDFcIlxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvY29sb3ItZWRpdGFibGUtaW5wdXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS10b2dnbGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1pY29uXCIgKGNsaWNrKT1cInRvZ2dsZVZpZXdzKClcIiAjaWNvbj5cbiAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2hyb21lLXRvZ2dsZS1zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICA8cGF0aCAjaWNvblVwIGZpbGw9XCIjMzMzXCJcbiAgICAgICAgICAgICAgZD1cIk0xMiw1LjgzTDE1LjE3LDlMMTYuNTgsNy41OUwxMiwzTDcuNDEsNy41OUw4LjgzLDlMMTIsNS44M1pcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxwYXRoICNpY29uRG93biBmaWxsPVwiIzMzM1wiXG4gICAgICAgICAgICAgIGQ9XCJNMTIsMTguMTdMOC44MywxNUw3LjQyLDE2LjQxTDEyLDIxTDE2LjU5LDE2LjQxTDE1LjE3LDE1WlwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuY2hyb21lLXdyYXAge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTZweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICAgIC5jaHJvbWUtZmllbGRzIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC02cHg7XG4gICAgICB9XG4gICAgICAuY2hyb21lLWZpZWxkIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA2cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgICAgLmNocm9tZS10b2dnbGUge1xuICAgICAgICB3aWR0aDogMzJweDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICAgIC5jaHJvbWUtaWNvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTRweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG4gICAgICAuY2hyb21lLXRvZ2dsZS1zdmcge1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBib3JkZXI6IDFweCB0cmFuc3BhcmVudCBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgfVxuICAgICAgLmNocm9tZS10b2dnbGUtc3ZnOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2VlZTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIENocm9tZUZpZWxkc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGRpc2FibGVBbHBoYSE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGhzbCE6IEhTTEE7XG4gIEBJbnB1dCgpIHJnYiE6IFJHQkE7XG4gIEBJbnB1dCgpIGhleCE6IHN0cmluZztcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIHZpZXcgPSAnJztcbiAgaW5wdXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgZm9udFNpemU6ICcxMXB4JyxcbiAgICBjb2xvcjogJyMzMzMnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgYm9yZGVyUmFkaXVzOiAnMnB4JyxcbiAgICBib3JkZXI6ICdub25lJyxcbiAgICBib3hTaGFkb3c6ICdpbnNldCAwIDAgMCAxcHggI2RhZGFkYScsXG4gICAgaGVpZ2h0OiAnMjFweCcsXG4gICAgJ3RleHQtYWxpZ24nOiAnY2VudGVyJyxcbiAgfTtcbiAgbGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgJ3RleHQtdHJhbnNmb3JtJzogJ3VwcGVyY2FzZScsXG4gICAgZm9udFNpemU6ICcxMXB4JyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMTFweCcsXG4gICAgY29sb3I6ICcjOTY5Njk2JyxcbiAgICAndGV4dC1hbGlnbic6ICdjZW50ZXInLFxuICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgbWFyZ2luVG9wOiAnMTJweCcsXG4gIH07XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuaHNsLmEgPT09IDEgJiYgdGhpcy52aWV3ICE9PSAnaGV4Jykge1xuICAgICAgdGhpcy52aWV3ID0gJ2hleCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnZpZXcgIT09ICdyZ2InICYmIHRoaXMudmlldyAhPT0gJ2hzbCcpIHtcbiAgICAgIHRoaXMudmlldyA9ICdyZ2InO1xuICAgIH1cbiAgfVxuICB0b2dnbGVWaWV3cygpIHtcbiAgICBpZiAodGhpcy52aWV3ID09PSAnaGV4Jykge1xuICAgICAgdGhpcy52aWV3ID0gJ3JnYic7XG4gICAgfSBlbHNlIGlmICh0aGlzLnZpZXcgPT09ICdyZ2InKSB7XG4gICAgICB0aGlzLnZpZXcgPSAnaHNsJztcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ2hzbCcpIHtcbiAgICAgIGlmICh0aGlzLmhzbC5hID09PSAxKSB7XG4gICAgICAgIHRoaXMudmlldyA9ICdoZXgnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52aWV3ID0gJ3JnYic7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJvdW5kKHZhbHVlKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUpO1xuICB9XG4gIGhhbmRsZUNoYW5nZSh7IGRhdGEsICRldmVudCB9KSB7XG4gICAgaWYgKGRhdGEuaGV4KSB7XG4gICAgICBpZiAoaXNWYWxpZEhleChkYXRhLmhleCkpIHtcbiAgICAgICAgY29uc3QgY29sb3IgPSBuZXcgVGlueUNvbG9yKGRhdGEuaGV4KTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBoZXg6IHRoaXMuZGlzYWJsZUFscGhhID8gY29sb3IudG9IZXgoKSA6IGNvbG9yLnRvSGV4OCgpLFxuICAgICAgICAgICAgc291cmNlOiAnaGV4JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgICRldmVudCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChkYXRhLnIgfHwgZGF0YS5nIHx8IGRhdGEuYikge1xuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHI6IGRhdGEuciB8fCB0aGlzLnJnYi5yLFxuICAgICAgICAgIGc6IGRhdGEuZyB8fCB0aGlzLnJnYi5nLFxuICAgICAgICAgIGI6IGRhdGEuYiB8fCB0aGlzLnJnYi5iLFxuICAgICAgICAgIHNvdXJjZTogJ3JnYicsXG4gICAgICAgIH0sXG4gICAgICAgICRldmVudCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoZGF0YS5hKSB7XG4gICAgICBpZiAoZGF0YS5hIDwgMCkge1xuICAgICAgICBkYXRhLmEgPSAwO1xuICAgICAgfSBlbHNlIGlmIChkYXRhLmEgPiAxKSB7XG4gICAgICAgIGRhdGEuYSA9IDE7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmRpc2FibGVBbHBoYSkge1xuICAgICAgICBkYXRhLmEgPSAxO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgaDogdGhpcy5oc2wuaCxcbiAgICAgICAgICBzOiB0aGlzLmhzbC5zLFxuICAgICAgICAgIGw6IHRoaXMuaHNsLmwsXG4gICAgICAgICAgYTogTWF0aC5yb3VuZChkYXRhLmEgKiAxMDApIC8gMTAwLFxuICAgICAgICAgIHNvdXJjZTogJ3JnYicsXG4gICAgICAgIH0sXG4gICAgICAgICRldmVudCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoZGF0YS5oIHx8IGRhdGEucyB8fCBkYXRhLmwpIHtcbiAgICAgIGNvbnN0IHMgPSBkYXRhLnMgJiYgZGF0YS5zLnJlcGxhY2UoJyUnLCAnJyk7XG4gICAgICBjb25zdCBsID0gZGF0YS5sICYmIGRhdGEubC5yZXBsYWNlKCclJywgJycpO1xuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGg6IGRhdGEuaCB8fCB0aGlzLmhzbC5oLFxuICAgICAgICAgIHM6IE51bWJlcihzIHx8IHRoaXMuaHNsLnMpLFxuICAgICAgICAgIGw6IE51bWJlcihsIHx8IHRoaXMuaHNsLmwpLFxuICAgICAgICAgIHNvdXJjZTogJ2hzbCcsXG4gICAgICAgIH0sXG4gICAgICAgICRldmVudCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,187 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, forwardRef, Input, NgModule } from '@angular/core';
3
- import { AlphaModule, CheckboardModule, ColorWrap, EditableInputModule, HueModule, SaturationModule } from 'ngx-color';
4
- import { ChromeFieldsComponent } from './chrome-fields.component';
5
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "ngx-color";
9
- class ChromeComponent extends ColorWrap {
10
- /** Remove alpha slider and options from picker */
11
- disableAlpha = false;
12
- circle = {
13
- width: '12px',
14
- height: '12px',
15
- borderRadius: '6px',
16
- boxShadow: 'rgb(255, 255, 255) 0px 0px 0px 1px inset',
17
- transform: 'translate(-6px, -8px)',
18
- };
19
- pointer = {
20
- width: '12px',
21
- height: '12px',
22
- borderRadius: '6px',
23
- transform: 'translate(-6px, -2px)',
24
- backgroundColor: 'rgb(248, 248, 248)',
25
- boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)',
26
- };
27
- activeBackground;
28
- constructor() {
29
- super();
30
- }
31
- afterValidChange() {
32
- const alpha = this.disableAlpha ? 1 : this.rgb.a;
33
- this.activeBackground = `rgba(${this.rgb.r}, ${this.rgb.g}, ${this.rgb.b}, ${alpha})`;
34
- }
35
- handleValueChange({ data, $event }) {
36
- this.handleChange(data, $event);
37
- }
38
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ChromeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: ChromeComponent, selector: "color-chrome", inputs: { disableAlpha: "disableAlpha" }, providers: [
40
- {
41
- provide: NG_VALUE_ACCESSOR,
42
- useExisting: forwardRef(() => ChromeComponent),
43
- multi: true,
44
- },
45
- {
46
- provide: ColorWrap,
47
- useExisting: forwardRef(() => ChromeComponent),
48
- },
49
- ], usesInheritance: true, ngImport: i0, template: `
50
- <div class="chrome-picker {{ className }}">
51
- <div class="saturation">
52
- <color-saturation
53
- [hsl]="hsl"
54
- [hsv]="hsv"
55
- [circle]="circle"
56
- (onChange)="handleValueChange($event)"
57
- ></color-saturation>
58
- </div>
59
- <div class="chrome-body">
60
- <div class="chrome-controls">
61
- <div class="chrome-color">
62
- <div class="chrome-swatch">
63
- <div class="chrome-active"
64
- [style.background]="activeBackground"
65
- ></div>
66
- <color-checkboard></color-checkboard>
67
- </div>
68
- </div>
69
- <div class="chrome-toggles">
70
- <div class="chrome-hue">
71
- <color-hue
72
- [radius]="2"
73
- [hsl]="hsl"
74
- [pointer]="pointer"
75
- (onChange)="handleValueChange($event)"
76
- ></color-hue>
77
- </div>
78
- <div class="chrome-alpha" *ngIf="!disableAlpha">
79
- <color-alpha
80
- [radius]="2" [rgb]="rgb" [hsl]="hsl"
81
- [pointer]="pointer" (onChange)="handleValueChange($event)"
82
- ></color-alpha>
83
- </div>
84
- </div>
85
- </div>
86
- <color-chrome-fields
87
- [rgb]="rgb" [hsl]="hsl" [hex]="hex"
88
- [disableAlpha]="disableAlpha"
89
- (onChange)="handleValueChange($event)"
90
- ></color-chrome-fields>
91
- </div>
92
- </div>
93
- `, isInline: true, styles: [".chrome-picker{background:#fff;border-radius:2px;box-shadow:0 0 2px #0000004d,0 4px 8px #0000004d;box-sizing:initial;width:225px;font-family:Menlo}.chrome-controls{display:flex}.chrome-color{width:42px}.chrome-body{padding:14px 14px 12px}.chrome-active{position:absolute;inset:0;border-radius:20px;box-shadow:inset 0 0 0 1px #0000001a;z-index:2}.chrome-swatch{width:28px;height:28px;border-radius:15px;position:relative;overflow:hidden}.saturation{width:100%;padding-bottom:55%;position:relative;border-radius:2px 2px 0 0;overflow:hidden}.chrome-toggles{flex:1}.chrome-hue{height:10px;position:relative;margin-bottom:8px}.chrome-alpha{height:10px;position:relative}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i0.forwardRef(function () { return i2.AlphaComponent; }), selector: "color-alpha", inputs: ["hsl", "rgb", "pointer", "shadow", "radius", "direction"], outputs: ["onChange"] }, { kind: "component", type: i0.forwardRef(function () { return i2.CheckboardComponent; }), selector: "color-checkboard", inputs: ["white", "size", "grey", "boxShadow", "borderRadius"] }, { kind: "component", type: i0.forwardRef(function () { return i2.HueComponent; }), selector: "color-hue", inputs: ["hsl", "pointer", "radius", "shadow", "hidePointer", "direction"], outputs: ["onChange"] }, { kind: "component", type: i0.forwardRef(function () { return i2.SaturationComponent; }), selector: "color-saturation", inputs: ["hsl", "hsv", "radius", "pointer", "circle"], outputs: ["onChange"] }, { kind: "component", type: i0.forwardRef(function () { return ChromeFieldsComponent; }), selector: "color-chrome-fields", inputs: ["disableAlpha", "hsl", "rgb", "hex"], outputs: ["onChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
94
- }
95
- export { ChromeComponent };
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ChromeComponent, decorators: [{
97
- type: Component,
98
- args: [{ selector: 'color-chrome', template: `
99
- <div class="chrome-picker {{ className }}">
100
- <div class="saturation">
101
- <color-saturation
102
- [hsl]="hsl"
103
- [hsv]="hsv"
104
- [circle]="circle"
105
- (onChange)="handleValueChange($event)"
106
- ></color-saturation>
107
- </div>
108
- <div class="chrome-body">
109
- <div class="chrome-controls">
110
- <div class="chrome-color">
111
- <div class="chrome-swatch">
112
- <div class="chrome-active"
113
- [style.background]="activeBackground"
114
- ></div>
115
- <color-checkboard></color-checkboard>
116
- </div>
117
- </div>
118
- <div class="chrome-toggles">
119
- <div class="chrome-hue">
120
- <color-hue
121
- [radius]="2"
122
- [hsl]="hsl"
123
- [pointer]="pointer"
124
- (onChange)="handleValueChange($event)"
125
- ></color-hue>
126
- </div>
127
- <div class="chrome-alpha" *ngIf="!disableAlpha">
128
- <color-alpha
129
- [radius]="2" [rgb]="rgb" [hsl]="hsl"
130
- [pointer]="pointer" (onChange)="handleValueChange($event)"
131
- ></color-alpha>
132
- </div>
133
- </div>
134
- </div>
135
- <color-chrome-fields
136
- [rgb]="rgb" [hsl]="hsl" [hex]="hex"
137
- [disableAlpha]="disableAlpha"
138
- (onChange)="handleValueChange($event)"
139
- ></color-chrome-fields>
140
- </div>
141
- </div>
142
- `, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, providers: [
143
- {
144
- provide: NG_VALUE_ACCESSOR,
145
- useExisting: forwardRef(() => ChromeComponent),
146
- multi: true,
147
- },
148
- {
149
- provide: ColorWrap,
150
- useExisting: forwardRef(() => ChromeComponent),
151
- },
152
- ], styles: [".chrome-picker{background:#fff;border-radius:2px;box-shadow:0 0 2px #0000004d,0 4px 8px #0000004d;box-sizing:initial;width:225px;font-family:Menlo}.chrome-controls{display:flex}.chrome-color{width:42px}.chrome-body{padding:14px 14px 12px}.chrome-active{position:absolute;inset:0;border-radius:20px;box-shadow:inset 0 0 0 1px #0000001a;z-index:2}.chrome-swatch{width:28px;height:28px;border-radius:15px;position:relative;overflow:hidden}.saturation{width:100%;padding-bottom:55%;position:relative;border-radius:2px 2px 0 0;overflow:hidden}.chrome-toggles{flex:1}.chrome-hue{height:10px;position:relative;margin-bottom:8px}.chrome-alpha{height:10px;position:relative}\n"] }]
153
- }], ctorParameters: function () { return []; }, propDecorators: { disableAlpha: [{
154
- type: Input
155
- }] } });
156
- class ColorChromeModule {
157
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ColorChromeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
158
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: ColorChromeModule, declarations: [ChromeComponent, ChromeFieldsComponent], imports: [CommonModule,
159
- AlphaModule,
160
- CheckboardModule,
161
- EditableInputModule,
162
- HueModule,
163
- SaturationModule], exports: [ChromeComponent, ChromeFieldsComponent] });
164
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ColorChromeModule, imports: [CommonModule,
165
- AlphaModule,
166
- CheckboardModule,
167
- EditableInputModule,
168
- HueModule,
169
- SaturationModule] });
170
- }
171
- export { ColorChromeModule };
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ColorChromeModule, decorators: [{
173
- type: NgModule,
174
- args: [{
175
- declarations: [ChromeComponent, ChromeFieldsComponent],
176
- exports: [ChromeComponent, ChromeFieldsComponent],
177
- imports: [
178
- CommonModule,
179
- AlphaModule,
180
- CheckboardModule,
181
- EditableInputModule,
182
- HueModule,
183
- SaturationModule,
184
- ],
185
- }]
186
- }] });
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyb21lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY2hyb21lL2Nocm9tZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRW5ELE1Bc0hhLGVBQWdCLFNBQVEsU0FBUztJQUM1QyxrREFBa0Q7SUFDekMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM5QixNQUFNLEdBQTJCO1FBQy9CLEtBQUssRUFBRSxNQUFNO1FBQ2IsTUFBTSxFQUFFLE1BQU07UUFDZCxZQUFZLEVBQUUsS0FBSztRQUNuQixTQUFTLEVBQUUsMENBQTBDO1FBQ3JELFNBQVMsRUFBRSx1QkFBdUI7S0FDbkMsQ0FBQztJQUNGLE9BQU8sR0FBMkI7UUFDaEMsS0FBSyxFQUFFLE1BQU07UUFDYixNQUFNLEVBQUUsTUFBTTtRQUNkLFlBQVksRUFBRSxLQUFLO1FBQ25CLFNBQVMsRUFBRSx1QkFBdUI7UUFDbEMsZUFBZSxFQUFFLG9CQUFvQjtRQUNyQyxTQUFTLEVBQUUsaUNBQWlDO0tBQzdDLENBQUM7SUFDRixnQkFBZ0IsQ0FBVTtJQUUxQjtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUM7SUFDeEYsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtRQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO3VHQTlCVSxlQUFlOzJGQUFmLGVBQWUsaUZBWmY7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLElBQUk7YUFDWjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQzthQUMvQztTQUNGLGlEQWxIUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Q1QsK3FEQTBHK0IscUJBQXFCOztTQWxDMUMsZUFBZTsyRkFBZixlQUFlO2tCQXRIM0IsU0FBUzsrQkFDRSxjQUFjLFlBQ2Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENULG1CQTBEZ0IsdUJBQXVCLENBQUMsTUFBTSx1QkFDMUIsS0FBSyxhQUNmO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsU0FBUzs0QkFDbEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7eUJBQy9DO3FCQUNGOzBFQUlRLFlBQVk7c0JBQXBCLEtBQUs7O0FBK0JSLE1BWWEsaUJBQWlCO3VHQUFqQixpQkFBaUI7d0dBQWpCLGlCQUFpQixpQkE3Q2pCLGVBQWUsRUFrQ00scUJBQXFCLGFBR25ELFlBQVk7WUFDWixXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixTQUFTO1lBQ1QsZ0JBQWdCLGFBMUNQLGVBQWUsRUFtQ0MscUJBQXFCO3dHQVVyQyxpQkFBaUIsWUFSMUIsWUFBWTtZQUNaLFdBQVc7WUFDWCxnQkFBZ0I7WUFDaEIsbUJBQW1CO1lBQ25CLFNBQVM7WUFDVCxnQkFBZ0I7O1NBR1AsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBWjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDO29CQUN0RCxPQUFPLEVBQUUsQ0FBQyxlQUFlLEVBQUUscUJBQXFCLENBQUM7b0JBQ2pELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLFNBQVM7d0JBQ1QsZ0JBQWdCO3FCQUNqQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWxwaGFNb2R1bGUsIENoZWNrYm9hcmRNb2R1bGUsIENvbG9yV3JhcCwgRWRpdGFibGVJbnB1dE1vZHVsZSwgSHVlTW9kdWxlLCBTYXR1cmF0aW9uTW9kdWxlIH0gZnJvbSAnbmd4LWNvbG9yJztcbmltcG9ydCB7IENocm9tZUZpZWxkc0NvbXBvbmVudCB9IGZyb20gJy4vY2hyb21lLWZpZWxkcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvbG9yLWNocm9tZScsXG4gIHRlbXBsYXRlOiBgXG4gIDxkaXYgY2xhc3M9XCJjaHJvbWUtcGlja2VyIHt7IGNsYXNzTmFtZSB9fVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzYXR1cmF0aW9uXCI+XG4gICAgICA8Y29sb3Itc2F0dXJhdGlvblxuICAgICAgICBbaHNsXT1cImhzbFwiXG4gICAgICAgIFtoc3ZdPVwiaHN2XCJcbiAgICAgICAgW2NpcmNsZV09XCJjaXJjbGVcIlxuICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+PC9jb2xvci1zYXR1cmF0aW9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjaHJvbWUtYm9keVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1jb250cm9sc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLWNvbG9yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1zd2F0Y2hcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJvbWUtYWN0aXZlXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiYWN0aXZlQmFja2dyb3VuZFwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICA8Y29sb3ItY2hlY2tib2FyZD48L2NvbG9yLWNoZWNrYm9hcmQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLXRvZ2dsZXNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLWh1ZVwiPlxuICAgICAgICAgICAgPGNvbG9yLWh1ZVxuICAgICAgICAgICAgICBbcmFkaXVzXT1cIjJcIlxuICAgICAgICAgICAgICBbaHNsXT1cImhzbFwiXG4gICAgICAgICAgICAgIFtwb2ludGVyXT1cInBvaW50ZXJcIlxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jb2xvci1odWU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1hbHBoYVwiICpuZ0lmPVwiIWRpc2FibGVBbHBoYVwiPlxuICAgICAgICAgICAgPGNvbG9yLWFscGhhXG4gICAgICAgICAgICAgIFtyYWRpdXNdPVwiMlwiIFtyZ2JdPVwicmdiXCIgW2hzbF09XCJoc2xcIlxuICAgICAgICAgICAgICBbcG9pbnRlcl09XCJwb2ludGVyXCIgKG9uQ2hhbmdlKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvY29sb3ItYWxwaGE+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8Y29sb3ItY2hyb21lLWZpZWxkc1xuICAgICAgICBbcmdiXT1cInJnYlwiIFtoc2xdPVwiaHNsXCIgW2hleF09XCJoZXhcIlxuICAgICAgICBbZGlzYWJsZUFscGhhXT1cImRpc2FibGVBbHBoYVwiXG4gICAgICAgIChvbkNoYW5nZSk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgID48L2NvbG9yLWNocm9tZS1maWVsZHM+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuY2hyb21lLXBpY2tlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgICAgIGJveC1zaXppbmc6IGluaXRpYWw7XG4gICAgICAgIHdpZHRoOiAyMjVweDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdNZW5sbyc7XG4gICAgICB9XG4gICAgICAuY2hyb21lLWNvbnRyb2xzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICAgIC5jaHJvbWUtY29sb3Ige1xuICAgICAgICB3aWR0aDogNDJweDtcbiAgICAgIH1cbiAgICAgIC5jaHJvbWUtYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDE0cHggMTRweCAxMnB4O1xuICAgICAgfVxuICAgICAgLmNocm9tZS1hY3RpdmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgIH1cbiAgICAgIC5jaHJvbWUtc3dhdGNoIHtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuICAgICAgLnNhdHVyYXRpb24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDU1JTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHggMnB4IDAgMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cbiAgICAgIC5jaHJvbWUtdG9nZ2xlcyB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICB9XG4gICAgICAuY2hyb21lLWh1ZSB7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICB9XG4gICAgICAuY2hyb21lLWFscGhhIHtcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENocm9tZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IENvbG9yV3JhcCxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENocm9tZUNvbXBvbmVudCksXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDaHJvbWVDb21wb25lbnQgZXh0ZW5kcyBDb2xvcldyYXAge1xuICAvKiogUmVtb3ZlIGFscGhhIHNsaWRlciBhbmQgb3B0aW9ucyBmcm9tIHBpY2tlciAqL1xuICBASW5wdXQoKSBkaXNhYmxlQWxwaGEgPSBmYWxzZTtcbiAgY2lyY2xlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIHdpZHRoOiAnMTJweCcsXG4gICAgaGVpZ2h0OiAnMTJweCcsXG4gICAgYm9yZGVyUmFkaXVzOiAnNnB4JyxcbiAgICBib3hTaGFkb3c6ICdyZ2IoMjU1LCAyNTUsIDI1NSkgMHB4IDBweCAwcHggMXB4IGluc2V0JyxcbiAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoLTZweCwgLThweCknLFxuICB9O1xuICBwb2ludGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIHdpZHRoOiAnMTJweCcsXG4gICAgaGVpZ2h0OiAnMTJweCcsXG4gICAgYm9yZGVyUmFkaXVzOiAnNnB4JyxcbiAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoLTZweCwgLTJweCknLFxuICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYigyNDgsIDI0OCwgMjQ4KScsXG4gICAgYm94U2hhZG93OiAnMCAxcHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjM3KScsXG4gIH07XG4gIGFjdGl2ZUJhY2tncm91bmQhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGFmdGVyVmFsaWRDaGFuZ2UoKSB7XG4gICAgY29uc3QgYWxwaGEgPSB0aGlzLmRpc2FibGVBbHBoYSA/IDEgOiB0aGlzLnJnYi5hO1xuICAgIHRoaXMuYWN0aXZlQmFja2dyb3VuZCA9IGByZ2JhKCR7dGhpcy5yZ2Iucn0sICR7dGhpcy5yZ2IuZ30sICR7dGhpcy5yZ2IuYn0sICR7YWxwaGF9KWA7XG4gIH1cbiAgaGFuZGxlVmFsdWVDaGFuZ2UoeyBkYXRhLCAkZXZlbnQgfSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlKGRhdGEsICRldmVudCk7XG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQ2hyb21lQ29tcG9uZW50LCBDaHJvbWVGaWVsZHNDb21wb25lbnRdLFxuICBleHBvcnRzOiBbQ2hyb21lQ29tcG9uZW50LCBDaHJvbWVGaWVsZHNDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFscGhhTW9kdWxlLFxuICAgIENoZWNrYm9hcmRNb2R1bGUsXG4gICAgRWRpdGFibGVJbnB1dE1vZHVsZSxcbiAgICBIdWVNb2R1bGUsXG4gICAgU2F0dXJhdGlvbk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JDaHJvbWVNb2R1bGUge31cbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNvbG9yLWNocm9tZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY2hyb21lL25neC1jb2xvci1jaHJvbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -1,3 +0,0 @@
1
- export { ChromeFieldsComponent } from './chrome-fields.component';
2
- export { ChromeComponent, ColorChromeModule } from './chrome.component';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY2hyb21lL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ2hyb21lRmllbGRzQ29tcG9uZW50IH0gZnJvbSAnLi9jaHJvbWUtZmllbGRzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBDaHJvbWVDb21wb25lbnQsIENvbG9yQ2hyb21lTW9kdWxlIH0gZnJvbSAnLi9jaHJvbWUuY29tcG9uZW50JztcbiJdfQ==
@@ -1,69 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "ngx-color";
4
- class CircleSwatchComponent {
5
- color;
6
- circleSize = 28;
7
- circleSpacing = 14;
8
- focus = false;
9
- onClick = new EventEmitter();
10
- onSwatchHover = new EventEmitter();
11
- focusStyle = {};
12
- swatchStyle = {
13
- borderRadius: '50%',
14
- background: 'transparent',
15
- transition: '100ms box-shadow ease 0s',
16
- };
17
- ngOnChanges() {
18
- this.swatchStyle.boxShadow = `inset 0 0 0 ${this.circleSize / 2}px ${this.color}`;
19
- this.focusStyle.boxShadow = `inset 0 0 0 ${this.circleSize / 2}px ${this.color}, 0 0 5px ${this.color}`;
20
- if (this.focus) {
21
- this.focusStyle.boxShadow = `inset 0 0 0 3px ${this.color}, 0 0 5px ${this.color}`;
22
- }
23
- }
24
- handleClick({ hex, $event }) {
25
- this.onClick.emit({ hex, $event });
26
- }
27
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CircleSwatchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: CircleSwatchComponent, selector: "color-circle-swatch", inputs: { color: "color", circleSize: "circleSize", circleSpacing: "circleSpacing", focus: "focus" }, outputs: { onClick: "onClick", onSwatchHover: "onSwatchHover" }, usesOnChanges: true, ngImport: i0, template: `
29
- <div class="circle-swatch"
30
- [style.width.px]="circleSize" [style.height.px]="circleSize"
31
- [style.margin-right.px]="circleSpacing" [style.margin-bottom.px]="circleSpacing"
32
- >
33
- <color-swatch
34
- [color]="color" [style]="swatchStyle" [focus]="focus" [focusStyle]="focusStyle"
35
- (onClick)="handleClick($event)" (onHover)="onSwatchHover.emit($event)">
36
- </color-swatch>
37
- <div class="clear"></div>
38
- </div>
39
- `, isInline: true, styles: [".circle-swatch{transform:scale(1);transition:transform .1s ease}.circle-swatch:hover{transform:scale(1.2)}\n"], dependencies: [{ kind: "component", type: i1.SwatchComponent, selector: "color-swatch", inputs: ["color", "style", "focusStyle", "focus"], outputs: ["onClick", "onHover"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
- }
41
- export { CircleSwatchComponent };
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CircleSwatchComponent, decorators: [{
43
- type: Component,
44
- args: [{ selector: 'color-circle-swatch', template: `
45
- <div class="circle-swatch"
46
- [style.width.px]="circleSize" [style.height.px]="circleSize"
47
- [style.margin-right.px]="circleSpacing" [style.margin-bottom.px]="circleSpacing"
48
- >
49
- <color-swatch
50
- [color]="color" [style]="swatchStyle" [focus]="focus" [focusStyle]="focusStyle"
51
- (onClick)="handleClick($event)" (onHover)="onSwatchHover.emit($event)">
52
- </color-swatch>
53
- <div class="clear"></div>
54
- </div>
55
- `, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, styles: [".circle-swatch{transform:scale(1);transition:transform .1s ease}.circle-swatch:hover{transform:scale(1.2)}\n"] }]
56
- }], propDecorators: { color: [{
57
- type: Input
58
- }], circleSize: [{
59
- type: Input
60
- }], circleSpacing: [{
61
- type: Input
62
- }], focus: [{
63
- type: Input
64
- }], onClick: [{
65
- type: Output
66
- }], onSwatchHover: [{
67
- type: Output
68
- }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lyY2xlLXN3YXRjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NpcmNsZS9jaXJjbGUtc3dhdGNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7O0FBRXZCLE1BNEJhLHFCQUFxQjtJQUN2QixLQUFLLENBQVU7SUFDZixVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDbkIsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNiLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ2xDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ2xELFVBQVUsR0FBMkIsRUFBRSxDQUFDO0lBQ3hDLFdBQVcsR0FBMkI7UUFDcEMsWUFBWSxFQUFFLEtBQUs7UUFDbkIsVUFBVSxFQUFFLGFBQWE7UUFDekIsVUFBVSxFQUFFLDBCQUEwQjtLQUN2QyxDQUFDO0lBRUYsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLGVBQWUsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xGLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLGVBQWdCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBRSxNQUFPLElBQUksQ0FBQyxLQUFNLGFBQWMsSUFBSSxDQUFDLEtBQU0sRUFBRSxDQUFDO1FBQzlHLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLG1CQUFvQixJQUFJLENBQUMsS0FBTSxhQUFjLElBQUksQ0FBQyxLQUFNLEVBQUUsQ0FBQztTQUN4RjtJQUNILENBQUM7SUFDRCxXQUFXLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQzt1R0F2QlUscUJBQXFCOzJGQUFyQixxQkFBcUIsdVBBMUJ0Qjs7Ozs7Ozs7Ozs7R0FXVDs7U0FlVSxxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkE1QmpDLFNBQVM7K0JBQ0UscUJBQXFCLFlBQ3JCOzs7Ozs7Ozs7OztHQVdULG1CQVlnQix1QkFBdUIsQ0FBQyxNQUFNLHVCQUMxQixLQUFLOzhCQUdqQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvbG9yLWNpcmNsZS1zd2F0Y2gnLFxuICB0ZW1wbGF0ZTogYFxuICA8ZGl2IGNsYXNzPVwiY2lyY2xlLXN3YXRjaFwiXG4gICAgW3N0eWxlLndpZHRoLnB4XT1cImNpcmNsZVNpemVcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImNpcmNsZVNpemVcIlxuICAgIFtzdHlsZS5tYXJnaW4tcmlnaHQucHhdPVwiY2lyY2xlU3BhY2luZ1wiIFtzdHlsZS5tYXJnaW4tYm90dG9tLnB4XT1cImNpcmNsZVNwYWNpbmdcIlxuICAgID5cbiAgICA8Y29sb3Itc3dhdGNoXG4gICAgICBbY29sb3JdPVwiY29sb3JcIiBbc3R5bGVdPVwic3dhdGNoU3R5bGVcIiBbZm9jdXNdPVwiZm9jdXNcIiBbZm9jdXNTdHlsZV09XCJmb2N1c1N0eWxlXCJcbiAgICAgIChvbkNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIiAob25Ib3Zlcik9XCJvblN3YXRjaEhvdmVyLmVtaXQoJGV2ZW50KVwiPlxuICAgIDwvY29sb3Itc3dhdGNoPlxuICAgIDxkaXYgY2xhc3M9XCJjbGVhclwiPjwvZGl2PlxuICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAuY2lyY2xlLXN3YXRjaCB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgZWFzZTtcbiAgfVxuICAuY2lyY2xlLXN3YXRjaDpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xuICB9XG4gIGAsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgQ2lyY2xlU3dhdGNoQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY29sb3IhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNpcmNsZVNpemUgPSAyODtcbiAgQElucHV0KCkgY2lyY2xlU3BhY2luZyA9IDE0O1xuICBASW5wdXQoKSBmb2N1cyA9IGZhbHNlO1xuICBAT3V0cHV0KCkgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25Td2F0Y2hIb3ZlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBmb2N1c1N0eWxlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIHN3YXRjaFN0eWxlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIGJvcmRlclJhZGl1czogJzUwJScsXG4gICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcbiAgICB0cmFuc2l0aW9uOiAnMTAwbXMgYm94LXNoYWRvdyBlYXNlIDBzJyxcbiAgfTtcblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLnN3YXRjaFN0eWxlLmJveFNoYWRvdyA9IGBpbnNldCAwIDAgMCAke3RoaXMuY2lyY2xlU2l6ZSAvIDJ9cHggJHt0aGlzLmNvbG9yfWA7XG4gICAgdGhpcy5mb2N1c1N0eWxlLmJveFNoYWRvdyA9IGBpbnNldCAwIDAgMCAkeyB0aGlzLmNpcmNsZVNpemUgLyAyIH1weCAkeyB0aGlzLmNvbG9yIH0sIDAgMCA1cHggJHsgdGhpcy5jb2xvciB9YDtcbiAgICBpZiAodGhpcy5mb2N1cykge1xuICAgICAgdGhpcy5mb2N1c1N0eWxlLmJveFNoYWRvdyA9IGBpbnNldCAwIDAgMCAzcHggJHsgdGhpcy5jb2xvciB9LCAwIDAgNXB4ICR7IHRoaXMuY29sb3IgfWA7XG4gICAgfVxuICB9XG4gIGhhbmRsZUNsaWNrKHsgaGV4LCAkZXZlbnQgfSkge1xuICAgIHRoaXMub25DbGljay5lbWl0KHsgaGV4LCAkZXZlbnQgfSk7XG4gIH1cbn1cbiJdfQ==