ngx-color 8.0.0 → 8.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/README.md +0 -1
  2. package/alpha/alpha-picker.component.d.ts +28 -0
  3. package/alpha/index.d.ts +5 -0
  4. package/alpha/public_api.d.ts +1 -0
  5. package/block/block-swatches.component.d.ts +24 -0
  6. package/block/block.component.d.ts +36 -0
  7. package/block/index.d.ts +5 -0
  8. package/block/public_api.d.ts +2 -0
  9. package/chrome/chrome-fields.component.d.ts +22 -0
  10. package/chrome/chrome.component.d.ts +25 -0
  11. package/chrome/index.d.ts +5 -0
  12. package/chrome/public_api.d.ts +2 -0
  13. package/circle/circle-swatch.component.d.ts +19 -0
  14. package/circle/circle.component.d.ts +32 -0
  15. package/circle/index.d.ts +5 -0
  16. package/circle/public_api.d.ts +2 -0
  17. package/compact/compact-color.component.d.ts +19 -0
  18. package/compact/compact-fields.component.d.ts +32 -0
  19. package/compact/compact.component.d.ts +30 -0
  20. package/compact/index.d.ts +5 -0
  21. package/compact/public_api.d.ts +3 -0
  22. package/coordinates.directive.d.ts +1 -1
  23. package/esm2020/alpha/alpha-picker.component.mjs +100 -0
  24. package/esm2020/alpha/ngx-color-alpha.mjs +5 -0
  25. package/esm2020/alpha/public_api.mjs +2 -0
  26. package/esm2020/alpha.component.mjs +7 -7
  27. package/esm2020/block/block-swatches.component.mjs +63 -0
  28. package/esm2020/block/block.component.mjs +158 -0
  29. package/esm2020/block/ngx-color-block.mjs +5 -0
  30. package/esm2020/block/public_api.mjs +3 -0
  31. package/esm2020/checkboard.component.mjs +7 -7
  32. package/esm2020/chrome/chrome-fields.component.mjs +314 -0
  33. package/esm2020/chrome/chrome.component.mjs +184 -0
  34. package/esm2020/chrome/ngx-color-chrome.mjs +5 -0
  35. package/esm2020/chrome/public_api.mjs +3 -0
  36. package/esm2020/circle/circle-swatch.component.mjs +69 -0
  37. package/esm2020/circle/circle.component.mjs +134 -0
  38. package/esm2020/circle/ngx-color-circle.mjs +5 -0
  39. package/esm2020/circle/public_api.mjs +3 -0
  40. package/esm2020/color-wrap.component.mjs +10 -10
  41. package/esm2020/compact/compact-color.component.mjs +70 -0
  42. package/esm2020/compact/compact-fields.component.mjs +164 -0
  43. package/esm2020/compact/compact.component.mjs +154 -0
  44. package/esm2020/compact/ngx-color-compact.mjs +5 -0
  45. package/esm2020/compact/public_api.mjs +4 -0
  46. package/esm2020/coordinates.directive.mjs +9 -9
  47. package/esm2020/editable-input.component.mjs +10 -14
  48. package/esm2020/github/github-swatch.component.mjs +53 -0
  49. package/esm2020/github/github.component.mjs +112 -0
  50. package/esm2020/github/ngx-color-github.mjs +5 -0
  51. package/esm2020/github/public_api.mjs +3 -0
  52. package/esm2020/hue/hue-picker.component.mjs +100 -0
  53. package/esm2020/hue/ngx-color-hue.mjs +5 -0
  54. package/esm2020/hue/public_api.mjs +2 -0
  55. package/esm2020/hue.component.mjs +7 -7
  56. package/esm2020/material/material.component.mjs +186 -0
  57. package/esm2020/material/ngx-color-material.mjs +5 -0
  58. package/esm2020/material/public_api.mjs +2 -0
  59. package/esm2020/photoshop/ngx-color-photoshop.mjs +5 -0
  60. package/esm2020/photoshop/photoshop-button.component.mjs +34 -0
  61. package/esm2020/photoshop/photoshop-fields.component.mjs +212 -0
  62. package/esm2020/photoshop/photoshop-previews.component.mjs +40 -0
  63. package/esm2020/photoshop/photoshop.component.mjs +185 -0
  64. package/esm2020/photoshop/public_api.mjs +5 -0
  65. package/esm2020/raised.component.mjs +7 -7
  66. package/esm2020/saturation.component.mjs +7 -7
  67. package/esm2020/shade/ngx-color-shade.mjs +5 -0
  68. package/esm2020/shade/public_api.mjs +2 -0
  69. package/esm2020/shade/shade-picker.component.mjs +92 -0
  70. package/esm2020/shade.component.mjs +7 -7
  71. package/esm2020/sketch/ngx-color-sketch.mjs +5 -0
  72. package/esm2020/sketch/public_api.mjs +4 -0
  73. package/esm2020/sketch/sketch-fields.component.mjs +209 -0
  74. package/esm2020/sketch/sketch-preset-colors.component.mjs +68 -0
  75. package/esm2020/sketch/sketch.component.mjs +212 -0
  76. package/esm2020/slider/ngx-color-slider.mjs +5 -0
  77. package/esm2020/slider/public_api.mjs +4 -0
  78. package/esm2020/slider/slider-swatch.component.mjs +52 -0
  79. package/esm2020/slider/slider-swatches.component.mjs +119 -0
  80. package/esm2020/slider/slider.component.mjs +102 -0
  81. package/esm2020/swatch.component.mjs +7 -7
  82. package/esm2020/swatches/ngx-color-swatches.mjs +5 -0
  83. package/esm2020/swatches/public_api.mjs +4 -0
  84. package/esm2020/swatches/swatches-color.component.mjs +104 -0
  85. package/esm2020/swatches/swatches-group.component.mjs +49 -0
  86. package/esm2020/swatches/swatches.component.mjs +242 -0
  87. package/esm2020/twitter/ngx-color-twitter.mjs +5 -0
  88. package/esm2020/twitter/public_api.mjs +2 -0
  89. package/esm2020/twitter/twitter.component.mjs +159 -0
  90. package/fesm2015/ngx-color-alpha.mjs +107 -0
  91. package/fesm2015/ngx-color-alpha.mjs.map +1 -0
  92. package/fesm2015/ngx-color-block.mjs +223 -0
  93. package/fesm2015/ngx-color-block.mjs.map +1 -0
  94. package/fesm2015/ngx-color-chrome.mjs +499 -0
  95. package/fesm2015/ngx-color-chrome.mjs.map +1 -0
  96. package/fesm2015/ngx-color-circle.mjs +207 -0
  97. package/fesm2015/ngx-color-circle.mjs.map +1 -0
  98. package/fesm2015/ngx-color-compact.mjs +385 -0
  99. package/fesm2015/ngx-color-compact.mjs.map +1 -0
  100. package/fesm2015/ngx-color-github.mjs +169 -0
  101. package/fesm2015/ngx-color-github.mjs.map +1 -0
  102. package/fesm2015/ngx-color-hue.mjs +107 -0
  103. package/fesm2015/ngx-color-hue.mjs.map +1 -0
  104. package/fesm2015/ngx-color-material.mjs +193 -0
  105. package/fesm2015/ngx-color-material.mjs.map +1 -0
  106. package/fesm2015/ngx-color-photoshop.mjs +467 -0
  107. package/fesm2015/ngx-color-photoshop.mjs.map +1 -0
  108. package/fesm2015/ngx-color-shade.mjs +99 -0
  109. package/fesm2015/ngx-color-shade.mjs.map +1 -0
  110. package/fesm2015/ngx-color-sketch.mjs +485 -0
  111. package/fesm2015/ngx-color-sketch.mjs.map +1 -0
  112. package/fesm2015/ngx-color-slider.mjs +273 -0
  113. package/fesm2015/ngx-color-slider.mjs.map +1 -0
  114. package/fesm2015/ngx-color-swatches.mjs +391 -0
  115. package/fesm2015/ngx-color-swatches.mjs.map +1 -0
  116. package/fesm2015/ngx-color-twitter.mjs +166 -0
  117. package/fesm2015/ngx-color-twitter.mjs.map +1 -0
  118. package/fesm2015/ngx-color.mjs +78 -80
  119. package/fesm2015/ngx-color.mjs.map +1 -1
  120. package/fesm2020/ngx-color-alpha.mjs +107 -0
  121. package/fesm2020/ngx-color-alpha.mjs.map +1 -0
  122. package/fesm2020/ngx-color-block.mjs +223 -0
  123. package/fesm2020/ngx-color-block.mjs.map +1 -0
  124. package/fesm2020/ngx-color-chrome.mjs +499 -0
  125. package/fesm2020/ngx-color-chrome.mjs.map +1 -0
  126. package/fesm2020/ngx-color-circle.mjs +207 -0
  127. package/fesm2020/ngx-color-circle.mjs.map +1 -0
  128. package/fesm2020/ngx-color-compact.mjs +385 -0
  129. package/fesm2020/ngx-color-compact.mjs.map +1 -0
  130. package/fesm2020/ngx-color-github.mjs +169 -0
  131. package/fesm2020/ngx-color-github.mjs.map +1 -0
  132. package/fesm2020/ngx-color-hue.mjs +107 -0
  133. package/fesm2020/ngx-color-hue.mjs.map +1 -0
  134. package/fesm2020/ngx-color-material.mjs +193 -0
  135. package/fesm2020/ngx-color-material.mjs.map +1 -0
  136. package/fesm2020/ngx-color-photoshop.mjs +467 -0
  137. package/fesm2020/ngx-color-photoshop.mjs.map +1 -0
  138. package/fesm2020/ngx-color-shade.mjs +99 -0
  139. package/fesm2020/ngx-color-shade.mjs.map +1 -0
  140. package/fesm2020/ngx-color-sketch.mjs +485 -0
  141. package/fesm2020/ngx-color-sketch.mjs.map +1 -0
  142. package/fesm2020/ngx-color-slider.mjs +273 -0
  143. package/fesm2020/ngx-color-slider.mjs.map +1 -0
  144. package/fesm2020/ngx-color-swatches.mjs +391 -0
  145. package/fesm2020/ngx-color-swatches.mjs.map +1 -0
  146. package/fesm2020/ngx-color-twitter.mjs +166 -0
  147. package/fesm2020/ngx-color-twitter.mjs.map +1 -0
  148. package/fesm2020/ngx-color.mjs +75 -79
  149. package/fesm2020/ngx-color.mjs.map +1 -1
  150. package/github/github-swatch.component.d.ts +19 -0
  151. package/github/github.component.d.ts +28 -0
  152. package/github/index.d.ts +5 -0
  153. package/github/public_api.d.ts +2 -0
  154. package/hue/hue-picker.component.d.ts +29 -0
  155. package/hue/index.d.ts +5 -0
  156. package/hue/public_api.d.ts +1 -0
  157. package/material/index.d.ts +5 -0
  158. package/material/material.component.d.ts +39 -0
  159. package/material/public_api.d.ts +1 -0
  160. package/package.json +113 -1
  161. package/photoshop/index.d.ts +5 -0
  162. package/photoshop/photoshop-button.component.d.ts +9 -0
  163. package/photoshop/photoshop-fields.component.d.ts +22 -0
  164. package/photoshop/photoshop-previews.component.d.ts +11 -0
  165. package/photoshop/photoshop.component.d.ts +33 -0
  166. package/photoshop/public_api.d.ts +4 -0
  167. package/shade/index.d.ts +5 -0
  168. package/shade/public_api.d.ts +1 -0
  169. package/shade/shade-picker.component.d.ts +27 -0
  170. package/sketch/index.d.ts +5 -0
  171. package/sketch/public_api.d.ts +3 -0
  172. package/sketch/sketch-fields.component.d.ts +23 -0
  173. package/sketch/sketch-preset-colors.component.d.ts +24 -0
  174. package/sketch/sketch.component.d.ts +32 -0
  175. package/slider/index.d.ts +5 -0
  176. package/slider/public_api.d.ts +3 -0
  177. package/slider/slider-swatch.component.d.ts +16 -0
  178. package/slider/slider-swatches.component.d.ts +15 -0
  179. package/slider/slider.component.d.ts +22 -0
  180. package/swatches/index.d.ts +5 -0
  181. package/swatches/public_api.d.ts +3 -0
  182. package/swatches/swatches-color.component.d.ts +18 -0
  183. package/swatches/swatches-group.component.d.ts +10 -0
  184. package/swatches/swatches.component.d.ts +29 -0
  185. package/twitter/index.d.ts +5 -0
  186. package/twitter/public_api.d.ts +1 -0
  187. package/twitter/twitter.component.d.ts +31 -0
@@ -0,0 +1,184 @@
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
+ export class ChromeComponent extends ColorWrap {
10
+ constructor() {
11
+ super();
12
+ /** Remove alpha slider and options from picker */
13
+ this.disableAlpha = false;
14
+ this.circle = {
15
+ width: '12px',
16
+ height: '12px',
17
+ borderRadius: '6px',
18
+ boxShadow: 'rgb(255, 255, 255) 0px 0px 0px 1px inset',
19
+ transform: 'translate(-6px, -8px)',
20
+ };
21
+ this.pointer = {
22
+ width: '12px',
23
+ height: '12px',
24
+ borderRadius: '6px',
25
+ transform: 'translate(-6px, -2px)',
26
+ backgroundColor: 'rgb(248, 248, 248)',
27
+ boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)',
28
+ };
29
+ }
30
+ afterValidChange() {
31
+ const alpha = this.disableAlpha ? 1 : this.rgb.a;
32
+ this.activeBackground = `rgba(${this.rgb.r}, ${this.rgb.g}, ${this.rgb.b}, ${alpha})`;
33
+ }
34
+ handleValueChange({ data, $event }) {
35
+ this.handleChange(data, $event);
36
+ }
37
+ }
38
+ ChromeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ChromeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
+ ChromeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", 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;top:0;bottom:0;left:0;right: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
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ChromeComponent, decorators: [{
95
+ type: Component,
96
+ args: [{ selector: 'color-chrome', template: `
97
+ <div class="chrome-picker {{ className }}">
98
+ <div class="saturation">
99
+ <color-saturation
100
+ [hsl]="hsl"
101
+ [hsv]="hsv"
102
+ [circle]="circle"
103
+ (onChange)="handleValueChange($event)"
104
+ ></color-saturation>
105
+ </div>
106
+ <div class="chrome-body">
107
+ <div class="chrome-controls">
108
+ <div class="chrome-color">
109
+ <div class="chrome-swatch">
110
+ <div class="chrome-active"
111
+ [style.background]="activeBackground"
112
+ ></div>
113
+ <color-checkboard></color-checkboard>
114
+ </div>
115
+ </div>
116
+ <div class="chrome-toggles">
117
+ <div class="chrome-hue">
118
+ <color-hue
119
+ [radius]="2"
120
+ [hsl]="hsl"
121
+ [pointer]="pointer"
122
+ (onChange)="handleValueChange($event)"
123
+ ></color-hue>
124
+ </div>
125
+ <div class="chrome-alpha" *ngIf="!disableAlpha">
126
+ <color-alpha
127
+ [radius]="2" [rgb]="rgb" [hsl]="hsl"
128
+ [pointer]="pointer" (onChange)="handleValueChange($event)"
129
+ ></color-alpha>
130
+ </div>
131
+ </div>
132
+ </div>
133
+ <color-chrome-fields
134
+ [rgb]="rgb" [hsl]="hsl" [hex]="hex"
135
+ [disableAlpha]="disableAlpha"
136
+ (onChange)="handleValueChange($event)"
137
+ ></color-chrome-fields>
138
+ </div>
139
+ </div>
140
+ `, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, providers: [
141
+ {
142
+ provide: NG_VALUE_ACCESSOR,
143
+ useExisting: forwardRef(() => ChromeComponent),
144
+ multi: true,
145
+ },
146
+ {
147
+ provide: ColorWrap,
148
+ useExisting: forwardRef(() => ChromeComponent),
149
+ },
150
+ ], 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;top:0;bottom:0;left:0;right: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"] }]
151
+ }], ctorParameters: function () { return []; }, propDecorators: { disableAlpha: [{
152
+ type: Input
153
+ }] } });
154
+ export class ColorChromeModule {
155
+ }
156
+ ColorChromeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ColorChromeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
157
+ ColorChromeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: ColorChromeModule, declarations: [ChromeComponent, ChromeFieldsComponent], imports: [CommonModule,
158
+ AlphaModule,
159
+ CheckboardModule,
160
+ EditableInputModule,
161
+ HueModule,
162
+ SaturationModule], exports: [ChromeComponent, ChromeFieldsComponent] });
163
+ ColorChromeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ColorChromeModule, imports: [CommonModule,
164
+ AlphaModule,
165
+ CheckboardModule,
166
+ EditableInputModule,
167
+ HueModule,
168
+ SaturationModule] });
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ColorChromeModule, decorators: [{
170
+ type: NgModule,
171
+ args: [{
172
+ declarations: [ChromeComponent, ChromeFieldsComponent],
173
+ exports: [ChromeComponent, ChromeFieldsComponent],
174
+ imports: [
175
+ CommonModule,
176
+ AlphaModule,
177
+ CheckboardModule,
178
+ EditableInputModule,
179
+ HueModule,
180
+ SaturationModule,
181
+ ],
182
+ }]
183
+ }] });
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyb21lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY2hyb21lL2Nocm9tZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBd0huRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxTQUFTO0lBb0I1QztRQUNFLEtBQUssRUFBRSxDQUFDO1FBcEJWLGtEQUFrRDtRQUN6QyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUM5QixXQUFNLEdBQTJCO1lBQy9CLEtBQUssRUFBRSxNQUFNO1lBQ2IsTUFBTSxFQUFFLE1BQU07WUFDZCxZQUFZLEVBQUUsS0FBSztZQUNuQixTQUFTLEVBQUUsMENBQTBDO1lBQ3JELFNBQVMsRUFBRSx1QkFBdUI7U0FDbkMsQ0FBQztRQUNGLFlBQU8sR0FBMkI7WUFDaEMsS0FBSyxFQUFFLE1BQU07WUFDYixNQUFNLEVBQUUsTUFBTTtZQUNkLFlBQVksRUFBRSxLQUFLO1lBQ25CLFNBQVMsRUFBRSx1QkFBdUI7WUFDbEMsZUFBZSxFQUFFLG9CQUFvQjtZQUNyQyxTQUFTLEVBQUUsaUNBQWlDO1NBQzdDLENBQUM7SUFLRixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxLQUFLLEdBQUcsQ0FBQztJQUN4RixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7OzRHQTlCVSxlQUFlO2dHQUFmLGVBQWUsaUZBWmY7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7WUFDOUMsS0FBSyxFQUFFLElBQUk7U0FDWjtRQUNEO1lBQ0UsT0FBTyxFQUFFLFNBQVM7WUFDbEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7U0FDL0M7S0FDRixpREFsSFM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENULHFzREEwRytCLHFCQUFxQjsyRkFsQzFDLGVBQWU7a0JBdEgzQixTQUFTOytCQUNFLGNBQWMsWUFDZDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Q1QsbUJBMERnQix1QkFBdUIsQ0FBQyxNQUFNLHVCQUMxQixLQUFLLGFBQ2Y7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxTQUFTOzRCQUNsQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzt5QkFDL0M7cUJBQ0Y7MEVBSVEsWUFBWTtzQkFBcEIsS0FBSzs7QUEyQ1IsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQTdDakIsZUFBZSxFQWtDTSxxQkFBcUIsYUFHbkQsWUFBWTtRQUNaLFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLFNBQVM7UUFDVCxnQkFBZ0IsYUExQ1AsZUFBZSxFQW1DQyxxQkFBcUI7K0dBVXJDLGlCQUFpQixZQVIxQixZQUFZO1FBQ1osV0FBVztRQUNYLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsU0FBUztRQUNULGdCQUFnQjsyRkFHUCxpQkFBaUI7a0JBWjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDO29CQUN0RCxPQUFPLEVBQUUsQ0FBQyxlQUFlLEVBQUUscUJBQXFCLENBQUM7b0JBQ2pELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLFNBQVM7d0JBQ1QsZ0JBQWdCO3FCQUNqQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWxwaGFNb2R1bGUsIENoZWNrYm9hcmRNb2R1bGUsIENvbG9yV3JhcCwgRWRpdGFibGVJbnB1dE1vZHVsZSwgSHVlTW9kdWxlLCBTYXR1cmF0aW9uTW9kdWxlIH0gZnJvbSAnbmd4LWNvbG9yJztcbmltcG9ydCB7IENocm9tZUZpZWxkc0NvbXBvbmVudCB9IGZyb20gJy4vY2hyb21lLWZpZWxkcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvbG9yLWNocm9tZScsXG4gIHRlbXBsYXRlOiBgXG4gIDxkaXYgY2xhc3M9XCJjaHJvbWUtcGlja2VyIHt7IGNsYXNzTmFtZSB9fVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzYXR1cmF0aW9uXCI+XG4gICAgICA8Y29sb3Itc2F0dXJhdGlvblxuICAgICAgICBbaHNsXT1cImhzbFwiXG4gICAgICAgIFtoc3ZdPVwiaHN2XCJcbiAgICAgICAgW2NpcmNsZV09XCJjaXJjbGVcIlxuICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+PC9jb2xvci1zYXR1cmF0aW9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjaHJvbWUtYm9keVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1jb250cm9sc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLWNvbG9yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1zd2F0Y2hcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJvbWUtYWN0aXZlXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiYWN0aXZlQmFja2dyb3VuZFwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICA8Y29sb3ItY2hlY2tib2FyZD48L2NvbG9yLWNoZWNrYm9hcmQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLXRvZ2dsZXNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLWh1ZVwiPlxuICAgICAgICAgICAgPGNvbG9yLWh1ZVxuICAgICAgICAgICAgICBbcmFkaXVzXT1cIjJcIlxuICAgICAgICAgICAgICBbaHNsXT1cImhzbFwiXG4gICAgICAgICAgICAgIFtwb2ludGVyXT1cInBvaW50ZXJcIlxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jb2xvci1odWU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1hbHBoYVwiICpuZ0lmPVwiIWRpc2FibGVBbHBoYVwiPlxuICAgICAgICAgICAgPGNvbG9yLWFscGhhXG4gICAgICAgICAgICAgIFtyYWRpdXNdPVwiMlwiIFtyZ2JdPVwicmdiXCIgW2hzbF09XCJoc2xcIlxuICAgICAgICAgICAgICBbcG9pbnRlcl09XCJwb2ludGVyXCIgKG9uQ2hhbmdlKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvY29sb3ItYWxwaGE+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8Y29sb3ItY2hyb21lLWZpZWxkc1xuICAgICAgICBbcmdiXT1cInJnYlwiIFtoc2xdPVwiaHNsXCIgW2hleF09XCJoZXhcIlxuICAgICAgICBbZGlzYWJsZUFscGhhXT1cImRpc2FibGVBbHBoYVwiXG4gICAgICAgIChvbkNoYW5nZSk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgID48L2NvbG9yLWNocm9tZS1maWVsZHM+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuY2hyb21lLXBpY2tlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuMyksIDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgICAgIGJveC1zaXppbmc6IGluaXRpYWw7XG4gICAgICAgIHdpZHRoOiAyMjVweDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdNZW5sbyc7XG4gICAgICB9XG4gICAgICAuY2hyb21lLWNvbnRyb2xzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICAgIC5jaHJvbWUtY29sb3Ige1xuICAgICAgICB3aWR0aDogNDJweDtcbiAgICAgIH1cbiAgICAgIC5jaHJvbWUtYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDE0cHggMTRweCAxMnB4O1xuICAgICAgfVxuICAgICAgLmNocm9tZS1hY3RpdmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgIH1cbiAgICAgIC5jaHJvbWUtc3dhdGNoIHtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuICAgICAgLnNhdHVyYXRpb24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDU1JTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHggMnB4IDAgMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cbiAgICAgIC5jaHJvbWUtdG9nZ2xlcyB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICB9XG4gICAgICAuY2hyb21lLWh1ZSB7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICB9XG4gICAgICAuY2hyb21lLWFscGhhIHtcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENocm9tZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IENvbG9yV3JhcCxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENocm9tZUNvbXBvbmVudCksXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDaHJvbWVDb21wb25lbnQgZXh0ZW5kcyBDb2xvcldyYXAge1xuICAvKiogUmVtb3ZlIGFscGhhIHNsaWRlciBhbmQgb3B0aW9ucyBmcm9tIHBpY2tlciAqL1xuICBASW5wdXQoKSBkaXNhYmxlQWxwaGEgPSBmYWxzZTtcbiAgY2lyY2xlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIHdpZHRoOiAnMTJweCcsXG4gICAgaGVpZ2h0OiAnMTJweCcsXG4gICAgYm9yZGVyUmFkaXVzOiAnNnB4JyxcbiAgICBib3hTaGFkb3c6ICdyZ2IoMjU1LCAyNTUsIDI1NSkgMHB4IDBweCAwcHggMXB4IGluc2V0JyxcbiAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoLTZweCwgLThweCknLFxuICB9O1xuICBwb2ludGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIHdpZHRoOiAnMTJweCcsXG4gICAgaGVpZ2h0OiAnMTJweCcsXG4gICAgYm9yZGVyUmFkaXVzOiAnNnB4JyxcbiAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoLTZweCwgLTJweCknLFxuICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYigyNDgsIDI0OCwgMjQ4KScsXG4gICAgYm94U2hhZG93OiAnMCAxcHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjM3KScsXG4gIH07XG4gIGFjdGl2ZUJhY2tncm91bmQhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGFmdGVyVmFsaWRDaGFuZ2UoKSB7XG4gICAgY29uc3QgYWxwaGEgPSB0aGlzLmRpc2FibGVBbHBoYSA/IDEgOiB0aGlzLnJnYi5hO1xuICAgIHRoaXMuYWN0aXZlQmFja2dyb3VuZCA9IGByZ2JhKCR7dGhpcy5yZ2Iucn0sICR7dGhpcy5yZ2IuZ30sICR7dGhpcy5yZ2IuYn0sICR7YWxwaGF9KWA7XG4gIH1cbiAgaGFuZGxlVmFsdWVDaGFuZ2UoeyBkYXRhLCAkZXZlbnQgfSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlKGRhdGEsICRldmVudCk7XG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQ2hyb21lQ29tcG9uZW50LCBDaHJvbWVGaWVsZHNDb21wb25lbnRdLFxuICBleHBvcnRzOiBbQ2hyb21lQ29tcG9uZW50LCBDaHJvbWVGaWVsZHNDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFscGhhTW9kdWxlLFxuICAgIENoZWNrYm9hcmRNb2R1bGUsXG4gICAgRWRpdGFibGVJbnB1dE1vZHVsZSxcbiAgICBIdWVNb2R1bGUsXG4gICAgU2F0dXJhdGlvbk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JDaHJvbWVNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNvbG9yLWNocm9tZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY2hyb21lL25neC1jb2xvci1jaHJvbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export { ChromeFieldsComponent } from './chrome-fields.component';
2
+ export { ChromeComponent, ColorChromeModule } from './chrome.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY2hyb21lL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ2hyb21lRmllbGRzQ29tcG9uZW50IH0gZnJvbSAnLi9jaHJvbWUtZmllbGRzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBDaHJvbWVDb21wb25lbnQsIENvbG9yQ2hyb21lTW9kdWxlIH0gZnJvbSAnLi9jaHJvbWUuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,69 @@
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
+ export class CircleSwatchComponent {
5
+ constructor() {
6
+ this.circleSize = 28;
7
+ this.circleSpacing = 14;
8
+ this.focus = false;
9
+ this.onClick = new EventEmitter();
10
+ this.onSwatchHover = new EventEmitter();
11
+ this.focusStyle = {};
12
+ this.swatchStyle = {
13
+ borderRadius: '50%',
14
+ background: 'transparent',
15
+ transition: '100ms box-shadow ease 0s',
16
+ };
17
+ }
18
+ ngOnChanges() {
19
+ this.swatchStyle.boxShadow = `inset 0 0 0 ${this.circleSize / 2}px ${this.color}`;
20
+ this.focusStyle.boxShadow = `inset 0 0 0 ${this.circleSize / 2}px ${this.color}, 0 0 5px ${this.color}`;
21
+ if (this.focus) {
22
+ this.focusStyle.boxShadow = `inset 0 0 0 3px ${this.color}, 0 0 5px ${this.color}`;
23
+ }
24
+ }
25
+ handleClick({ hex, $event }) {
26
+ this.onClick.emit({ hex, $event });
27
+ }
28
+ }
29
+ CircleSwatchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: CircleSwatchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
+ CircleSwatchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", 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: `
31
+ <div class="circle-swatch"
32
+ [style.width.px]="circleSize" [style.height.px]="circleSize"
33
+ [style.margin-right.px]="circleSpacing" [style.margin-bottom.px]="circleSpacing"
34
+ >
35
+ <color-swatch
36
+ [color]="color" [style]="swatchStyle" [focus]="focus" [focusStyle]="focusStyle"
37
+ (onClick)="handleClick($event)" (onHover)="onSwatchHover.emit($event)">
38
+ </color-swatch>
39
+ <div class="clear"></div>
40
+ </div>
41
+ `, 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 });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lyY2xlLXN3YXRjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NpcmNsZS9jaXJjbGUtc3dhdGNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7O0FBOEJ2QixNQUFNLE9BQU8scUJBQXFCO0lBNUJsQztRQThCVyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDYixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNsQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbEQsZUFBVSxHQUEyQixFQUFFLENBQUM7UUFDeEMsZ0JBQVcsR0FBMkI7WUFDcEMsWUFBWSxFQUFFLEtBQUs7WUFDbkIsVUFBVSxFQUFFLGFBQWE7WUFDekIsVUFBVSxFQUFFLDBCQUEwQjtTQUN2QyxDQUFDO0tBWUg7SUFWQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsZUFBZSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsZUFBZ0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFFLE1BQU8sSUFBSSxDQUFDLEtBQU0sYUFBYyxJQUFJLENBQUMsS0FBTSxFQUFFLENBQUM7UUFDOUcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsbUJBQW9CLElBQUksQ0FBQyxLQUFNLGFBQWMsSUFBSSxDQUFDLEtBQU0sRUFBRSxDQUFDO1NBQ3hGO0lBQ0gsQ0FBQztJQUNELFdBQVcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUU7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDOztrSEF2QlUscUJBQXFCO3NHQUFyQixxQkFBcUIsdVBBMUJ0Qjs7Ozs7Ozs7Ozs7R0FXVDsyRkFlVSxxQkFBcUI7a0JBNUJqQyxTQUFTOytCQUNFLHFCQUFxQixZQUNyQjs7Ozs7Ozs7Ozs7R0FXVCxtQkFZZ0IsdUJBQXVCLENBQUMsTUFBTSx1QkFDMUIsS0FBSzs4QkFHakIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb2xvci1jaXJjbGUtc3dhdGNoJyxcbiAgdGVtcGxhdGU6IGBcbiAgPGRpdiBjbGFzcz1cImNpcmNsZS1zd2F0Y2hcIlxuICAgIFtzdHlsZS53aWR0aC5weF09XCJjaXJjbGVTaXplXCIgW3N0eWxlLmhlaWdodC5weF09XCJjaXJjbGVTaXplXCJcbiAgICBbc3R5bGUubWFyZ2luLXJpZ2h0LnB4XT1cImNpcmNsZVNwYWNpbmdcIiBbc3R5bGUubWFyZ2luLWJvdHRvbS5weF09XCJjaXJjbGVTcGFjaW5nXCJcbiAgICA+XG4gICAgPGNvbG9yLXN3YXRjaFxuICAgICAgW2NvbG9yXT1cImNvbG9yXCIgW3N0eWxlXT1cInN3YXRjaFN0eWxlXCIgW2ZvY3VzXT1cImZvY3VzXCIgW2ZvY3VzU3R5bGVdPVwiZm9jdXNTdHlsZVwiXG4gICAgICAob25DbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQpXCIgKG9uSG92ZXIpPVwib25Td2F0Y2hIb3Zlci5lbWl0KCRldmVudClcIj5cbiAgICA8L2NvbG9yLXN3YXRjaD5cbiAgICA8ZGl2IGNsYXNzPVwiY2xlYXJcIj48L2Rpdj5cbiAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgLmNpcmNsZS1zd2F0Y2gge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEwMG1zIGVhc2U7XG4gIH1cbiAgLmNpcmNsZS1zd2F0Y2g6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbiAgfVxuICBgLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIENpcmNsZVN3YXRjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNvbG9yITogc3RyaW5nO1xuICBASW5wdXQoKSBjaXJjbGVTaXplID0gMjg7XG4gIEBJbnB1dCgpIGNpcmNsZVNwYWNpbmcgPSAxNDtcbiAgQElucHV0KCkgZm9jdXMgPSBmYWxzZTtcbiAgQE91dHB1dCgpIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uU3dhdGNoSG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgZm9jdXNTdHlsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBzd2F0Y2hTdHlsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBib3JkZXJSYWRpdXM6ICc1MCUnLFxuICAgIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gICAgdHJhbnNpdGlvbjogJzEwMG1zIGJveC1zaGFkb3cgZWFzZSAwcycsXG4gIH07XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5zd2F0Y2hTdHlsZS5ib3hTaGFkb3cgPSBgaW5zZXQgMCAwIDAgJHt0aGlzLmNpcmNsZVNpemUgLyAyfXB4ICR7dGhpcy5jb2xvcn1gO1xuICAgIHRoaXMuZm9jdXNTdHlsZS5ib3hTaGFkb3cgPSBgaW5zZXQgMCAwIDAgJHsgdGhpcy5jaXJjbGVTaXplIC8gMiB9cHggJHsgdGhpcy5jb2xvciB9LCAwIDAgNXB4ICR7IHRoaXMuY29sb3IgfWA7XG4gICAgaWYgKHRoaXMuZm9jdXMpIHtcbiAgICAgIHRoaXMuZm9jdXNTdHlsZS5ib3hTaGFkb3cgPSBgaW5zZXQgMCAwIDAgM3B4ICR7IHRoaXMuY29sb3IgfSwgMCAwIDVweCAkeyB0aGlzLmNvbG9yIH1gO1xuICAgIH1cbiAgfVxuICBoYW5kbGVDbGljayh7IGhleCwgJGV2ZW50IH0pIHtcbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh7IGhleCwgJGV2ZW50IH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,134 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, forwardRef, Input, NgModule } from '@angular/core';
3
+ import { amber, blue, blueGrey, brown, cyan, deepOrange, deepPurple, green, indigo, lightBlue, lightGreen, lime, orange, pink, purple, red, teal, yellow, } from 'material-colors';
4
+ import { TinyColor } from '@ctrl/tinycolor';
5
+ import { ColorWrap, isValidHex, SwatchModule } from 'ngx-color';
6
+ import { CircleSwatchComponent } from './circle-swatch.component';
7
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common";
10
+ export class CircleComponent extends ColorWrap {
11
+ constructor() {
12
+ super();
13
+ /** Pixel value for picker width */
14
+ this.width = 252;
15
+ /** Color squares to display */
16
+ this.colors = [
17
+ red['500'],
18
+ pink['500'],
19
+ purple['500'],
20
+ deepPurple['500'],
21
+ indigo['500'],
22
+ blue['500'],
23
+ lightBlue['500'],
24
+ cyan['500'],
25
+ teal['500'],
26
+ green['500'],
27
+ lightGreen['500'],
28
+ lime['500'],
29
+ yellow['500'],
30
+ amber['500'],
31
+ orange['500'],
32
+ deepOrange['500'],
33
+ brown['500'],
34
+ blueGrey['500'],
35
+ ];
36
+ /** Value for circle size */
37
+ this.circleSize = 28;
38
+ /** Value for spacing between circles */
39
+ this.circleSpacing = 14;
40
+ }
41
+ isActive(color) {
42
+ return new TinyColor(this.hex).equals(color);
43
+ }
44
+ handleBlockChange({ hex, $event }) {
45
+ if (isValidHex(hex)) {
46
+ this.handleChange({ hex, source: 'hex' }, $event);
47
+ }
48
+ }
49
+ handleValueChange({ data, $event }) {
50
+ this.handleChange(data, $event);
51
+ }
52
+ }
53
+ CircleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: CircleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
54
+ CircleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: CircleComponent, selector: "color-circle", inputs: { width: "width", colors: "colors", circleSize: "circleSize", circleSpacing: "circleSpacing" }, providers: [
55
+ {
56
+ provide: NG_VALUE_ACCESSOR,
57
+ useExisting: forwardRef(() => CircleComponent),
58
+ multi: true,
59
+ },
60
+ {
61
+ provide: ColorWrap,
62
+ useExisting: forwardRef(() => CircleComponent),
63
+ },
64
+ ], usesInheritance: true, ngImport: i0, template: `
65
+ <div
66
+ class="circle-picker {{ className }}"
67
+ [style.width.px]="width"
68
+ [style.margin-right.px]="-circleSpacing"
69
+ [style.margin-bottom.px]="-circleSpacing"
70
+ >
71
+ <color-circle-swatch
72
+ *ngFor="let color of colors"
73
+ [circleSize]="circleSize"
74
+ [circleSpacing]="circleSpacing"
75
+ [color]="color"
76
+ [focus]="isActive(color)"
77
+ (onClick)="handleBlockChange($event)"
78
+ (onSwatchHover)="onSwatchHover.emit($event)"
79
+ ></color-circle-swatch>
80
+ </div>
81
+ `, isInline: true, styles: [".circle-picker{display:flex;flex-wrap:wrap}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i0.forwardRef(function () { return CircleSwatchComponent; }), selector: "color-circle-swatch", inputs: ["color", "circleSize", "circleSpacing", "focus"], outputs: ["onClick", "onSwatchHover"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: CircleComponent, decorators: [{
83
+ type: Component,
84
+ args: [{ selector: 'color-circle', template: `
85
+ <div
86
+ class="circle-picker {{ className }}"
87
+ [style.width.px]="width"
88
+ [style.margin-right.px]="-circleSpacing"
89
+ [style.margin-bottom.px]="-circleSpacing"
90
+ >
91
+ <color-circle-swatch
92
+ *ngFor="let color of colors"
93
+ [circleSize]="circleSize"
94
+ [circleSpacing]="circleSpacing"
95
+ [color]="color"
96
+ [focus]="isActive(color)"
97
+ (onClick)="handleBlockChange($event)"
98
+ (onSwatchHover)="onSwatchHover.emit($event)"
99
+ ></color-circle-swatch>
100
+ </div>
101
+ `, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, providers: [
102
+ {
103
+ provide: NG_VALUE_ACCESSOR,
104
+ useExisting: forwardRef(() => CircleComponent),
105
+ multi: true,
106
+ },
107
+ {
108
+ provide: ColorWrap,
109
+ useExisting: forwardRef(() => CircleComponent),
110
+ },
111
+ ], styles: [".circle-picker{display:flex;flex-wrap:wrap}\n"] }]
112
+ }], ctorParameters: function () { return []; }, propDecorators: { width: [{
113
+ type: Input
114
+ }], colors: [{
115
+ type: Input
116
+ }], circleSize: [{
117
+ type: Input
118
+ }], circleSpacing: [{
119
+ type: Input
120
+ }] } });
121
+ export class ColorCircleModule {
122
+ }
123
+ ColorCircleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ColorCircleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
124
+ ColorCircleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: ColorCircleModule, declarations: [CircleComponent, CircleSwatchComponent], imports: [CommonModule, SwatchModule], exports: [CircleComponent, CircleSwatchComponent] });
125
+ ColorCircleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ColorCircleModule, imports: [CommonModule, SwatchModule] });
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ColorCircleModule, decorators: [{
127
+ type: NgModule,
128
+ args: [{
129
+ declarations: [CircleComponent, CircleSwatchComponent],
130
+ exports: [CircleComponent, CircleSwatchComponent],
131
+ imports: [CommonModule, SwatchModule],
132
+ }]
133
+ }] });
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lyY2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY2lyY2xlL2NpcmNsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUNMLEtBQUssRUFDTCxJQUFJLEVBQ0osUUFBUSxFQUNSLEtBQUssRUFDTCxJQUFJLEVBQ0osVUFBVSxFQUNWLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLE1BQU0sRUFDTixJQUFJLEVBQ0osTUFBTSxFQUNOLEdBQUcsRUFDSCxJQUFJLEVBQ0osTUFBTSxHQUNQLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBNENuRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxTQUFTO0lBOEI1QztRQUNFLEtBQUssRUFBRSxDQUFDO1FBOUJWLG1DQUFtQztRQUMxQixVQUFLLEdBQW9CLEdBQUcsQ0FBQztRQUN0QywrQkFBK0I7UUFFL0IsV0FBTSxHQUFhO1lBQ2pCLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDVixJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ1gsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNiLFVBQVUsQ0FBQyxLQUFLLENB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LFlBQVksRUFBRSxZQUFZLENBQUM7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgYW1iZXIsXG4gIGJsdWUsXG4gIGJsdWVHcmV5LFxuICBicm93bixcbiAgY3lhbixcbiAgZGVlcE9yYW5nZSxcbiAgZGVlcFB1cnBsZSxcbiAgZ3JlZW4sXG4gIGluZGlnbyxcbiAgbGlnaHRCbHVlLFxuICBsaWdodEdyZWVuLFxuICBsaW1lLFxuICBvcmFuZ2UsXG4gIHBpbmssXG4gIHB1cnBsZSxcbiAgcmVkLFxuICB0ZWFsLFxuICB5ZWxsb3csXG59IGZyb20gJ21hdGVyaWFsLWNvbG9ycyc7XG5pbXBvcnQgeyBUaW55Q29sb3IgfSBmcm9tICdAY3RybC90aW55Y29sb3InO1xuXG5pbXBvcnQgeyBDb2xvcldyYXAsIGlzVmFsaWRIZXgsIFN3YXRjaE1vZHVsZSB9IGZyb20gJ25neC1jb2xvcic7XG5pbXBvcnQgeyBDaXJjbGVTd2F0Y2hDb21wb25lbnQgfSBmcm9tICcuL2NpcmNsZS1zd2F0Y2guY29tcG9uZW50JztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb2xvci1jaXJjbGUnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2lyY2xlLXBpY2tlciB7eyBjbGFzc05hbWUgfX1cIlxuICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoXCJcbiAgICAgIFtzdHlsZS5tYXJnaW4tcmlnaHQucHhdPVwiLWNpcmNsZVNwYWNpbmdcIlxuICAgICAgW3N0eWxlLm1hcmdpbi1ib3R0b20ucHhdPVwiLWNpcmNsZVNwYWNpbmdcIlxuICAgID5cbiAgICAgIDxjb2xvci1jaXJjbGUtc3dhdGNoXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb2xvciBvZiBjb2xvcnNcIlxuICAgICAgICBbY2lyY2xlU2l6ZV09XCJjaXJjbGVTaXplXCJcbiAgICAgICAgW2NpcmNsZVNwYWNpbmddPVwiY2lyY2xlU3BhY2luZ1wiXG4gICAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICAgIFtmb2N1c109XCJpc0FjdGl2ZShjb2xvcilcIlxuICAgICAgICAob25DbGljayk9XCJoYW5kbGVCbG9ja0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKG9uU3dhdGNoSG92ZXIpPVwib25Td2F0Y2hIb3Zlci5lbWl0KCRldmVudClcIlxuICAgICAgPjwvY29sb3ItY2lyY2xlLXN3YXRjaD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLmNpcmNsZS1waWNrZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENpcmNsZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IENvbG9yV3JhcCxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENpcmNsZUNvbXBvbmVudCksXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDaXJjbGVDb21wb25lbnQgZXh0ZW5kcyBDb2xvcldyYXAge1xuICAvKiogUGl4ZWwgdmFsdWUgZm9yIHBpY2tlciB3aWR0aCAqL1xuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nIHwgbnVtYmVyID0gMjUyO1xuICAvKiogQ29sb3Igc3F1YXJlcyB0byBkaXNwbGF5ICovXG4gIEBJbnB1dCgpXG4gIGNvbG9yczogc3RyaW5nW10gPSBbXG4gICAgcmVkWyc1MDAnXSxcbiAgICBwaW5rWyc1MDAnXSxcbiAgICBwdXJwbGVbJzUwMCddLFxuICAgIGRlZXBQdXJwbGVbJzUwMCddLFxuICAgIGluZGlnb1snNTAwJ10sXG4gICAgYmx1ZVsnNTAwJ10sXG4gICAgbGlnaHRCbHVlWyc1MDAnXSxcbiAgICBjeWFuWyc1MDAnXSxcbiAgICB0ZWFsWyc1MDAnXSxcbiAgICBncmVlblsnNTAwJ10sXG4gICAgbGlnaHRHcmVlblsnNTAwJ10sXG4gICAgbGltZVsnNTAwJ10sXG4gICAgeWVsbG93Wyc1MDAnXSxcbiAgICBhbWJlclsnNTAwJ10sXG4gICAgb3JhbmdlWyc1MDAnXSxcbiAgICBkZWVwT3JhbmdlWyc1MDAnXSxcbiAgICBicm93blsnNTAwJ10sXG4gICAgYmx1ZUdyZXlbJzUwMCddLFxuICBdO1xuICAvKiogVmFsdWUgZm9yIGNpcmNsZSBzaXplICovXG4gIEBJbnB1dCgpIGNpcmNsZVNpemUgPSAyODtcbiAgLyoqIFZhbHVlIGZvciBzcGFjaW5nIGJldHdlZW4gY2lyY2xlcyAqL1xuICBASW5wdXQoKSBjaXJjbGVTcGFjaW5nID0gMTQ7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuICBpc0FjdGl2ZShjb2xvcjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBUaW55Q29sb3IodGhpcy5oZXgpLmVxdWFscyhjb2xvcik7XG4gIH1cbiAgaGFuZGxlQmxvY2tDaGFuZ2UoeyBoZXgsICRldmVudCB9OiB7IGhleDogc3RyaW5nLCAkZXZlbnQ6IEV2ZW50IH0pIHtcbiAgICBpZiAoaXNWYWxpZEhleChoZXgpKSB7XG4gICAgICB0aGlzLmhhbmRsZUNoYW5nZSh7IGhleCwgc291cmNlOiAnaGV4JyB9LCAkZXZlbnQpO1xuICAgIH1cbiAgfVxuICBoYW5kbGVWYWx1ZUNoYW5nZSh7IGRhdGEsICRldmVudCB9KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2UoZGF0YSwgJGV2ZW50KTtcbiAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDaXJjbGVDb21wb25lbnQsIENpcmNsZVN3YXRjaENvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtDaXJjbGVDb21wb25lbnQsIENpcmNsZVN3YXRjaENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFN3YXRjaE1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIENvbG9yQ2lyY2xlTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNvbG9yLWNpcmNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY2lyY2xlL25neC1jb2xvci1jaXJjbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export { CircleSwatchComponent } from './circle-swatch.component';
2
+ export { CircleComponent, ColorCircleModule } from './circle.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY2lyY2xlL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ2lyY2xlU3dhdGNoQ29tcG9uZW50IH0gZnJvbSAnLi9jaXJjbGUtc3dhdGNoLmNvbXBvbmVudCc7XG5leHBvcnQgeyBDaXJjbGVDb21wb25lbnQsIENvbG9yQ2lyY2xlTW9kdWxlIH0gZnJvbSAnLi9jaXJjbGUuY29tcG9uZW50JztcbiJdfQ==
@@ -68,8 +68,8 @@ export class ColorWrap {
68
68
  }
69
69
  ngOnDestroy() {
70
70
  this.changes?.unsubscribe();
71
- this._onChangeCompleteSubscription.unsubscribe();
72
- this._onSwatchHoverSubscription.unsubscribe();
71
+ this._onChangeCompleteSubscription?.unsubscribe();
72
+ this._onSwatchHoverSubscription?.unsubscribe();
73
73
  }
74
74
  setState(data) {
75
75
  this.oldHue = data.oldHue;
@@ -110,15 +110,15 @@ export class ColorWrap {
110
110
  this.color = hex;
111
111
  }
112
112
  }
113
- ColorWrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ColorWrap, deps: [], target: i0.ɵɵFactoryTarget.Component });
114
- ColorWrap.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: ColorWrap, selector: "color-wrap", inputs: { className: "className", mode: "mode", color: "color" }, outputs: { colorChange: "colorChange", onChange: "onChange", onChangeComplete: "onChangeComplete", onSwatchHover: "onSwatchHover" }, providers: [
113
+ ColorWrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ColorWrap, deps: [], target: i0.ɵɵFactoryTarget.Component });
114
+ ColorWrap.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: ColorWrap, selector: "color-wrap", inputs: { className: "className", mode: "mode", color: "color" }, outputs: { colorChange: "colorChange", onChange: "onChange", onChangeComplete: "onChangeComplete", onSwatchHover: "onSwatchHover" }, providers: [
115
115
  {
116
116
  provide: NG_VALUE_ACCESSOR,
117
117
  useExisting: forwardRef(() => ColorWrap),
118
118
  multi: true,
119
119
  }
120
120
  ], usesOnChanges: true, ngImport: i0, template: ``, isInline: true });
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ColorWrap, decorators: [{
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ColorWrap, decorators: [{
122
122
  type: Component,
123
123
  args: [{
124
124
  // create seletor base for test override property
@@ -149,10 +149,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
149
149
  }] } });
150
150
  export class ColorWrapModule {
151
151
  }
152
- ColorWrapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ColorWrapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
153
- ColorWrapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: ColorWrapModule, declarations: [ColorWrap], imports: [CommonModule], exports: [ColorWrap] });
154
- ColorWrapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ColorWrapModule, imports: [CommonModule] });
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ColorWrapModule, decorators: [{
152
+ ColorWrapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ColorWrapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
153
+ ColorWrapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: ColorWrapModule, declarations: [ColorWrap], imports: [CommonModule], exports: [ColorWrap] });
154
+ ColorWrapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ColorWrapModule, imports: [CommonModule] });
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ColorWrapModule, decorators: [{
156
156
  type: NgModule,
157
157
  args: [{
158
158
  declarations: [ColorWrap],
@@ -160,4 +160,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
160
160
  imports: [CommonModule],
161
161
  }]
162
162
  }] });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3Itd3JhcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbG9yLXdyYXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBSVIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU96RSxNQUFNLENBQU4sSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLHdCQUFXLENBQUE7SUFDWCx3QkFBVyxDQUFBO0lBQ1gsd0JBQVcsQ0FBQTtJQUNYLHdCQUFXLENBQUE7QUFDYixDQUFDLEVBTFcsU0FBUyxLQUFULFNBQVMsUUFLcEI7QUFjRCxNQUFNLE9BQU8sU0FBUztJQVp0QjtRQWVFOztXQUVHO1FBQ00sU0FBSSxHQUFjLFNBQVMsQ0FBQyxHQUFHLENBQUM7UUFFaEMsVUFBSyxHQUFnQztZQUM1QyxDQUFDLEVBQUUsR0FBRztZQUNOLENBQUMsRUFBRSxHQUFHO1lBQ04sQ0FBQyxFQUFFLEdBQUc7WUFDTixDQUFDLEVBQUUsQ0FBQztTQUNMLENBQUM7UUFDUSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUErQixDQUFDO1FBQzlELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzFDLHFCQUFnQixHQUFHLElBQUksWUFBWSxF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O29CQUNSLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQztvQkFDekIsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO29CQUNwQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgaXNEZXZNb2RlLFxuICBOZ01vZHVsZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgc2ltcGxlQ2hlY2tGb3JWYWxpZENvbG9yLCB0b1N0YXRlIH0gZnJvbSAnLi9oZWxwZXJzL2NvbG9yJztcbmltcG9ydCB7IENvbG9yLCBIU0xBLCBIU1ZBLCBSR0JBIH0gZnJvbSAnLi9oZWxwZXJzL2NvbG9yLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbG9yRXZlbnQge1xuICAkZXZlbnQ6IEV2ZW50O1xuICBjb2xvcjogQ29sb3I7XG59XG5cbmV4cG9ydCBlbnVtIENvbG9yTW9kZSB7XG4gIEhFWCA9ICdoZXgnLFxuICBIU0wgPSAnaHNsJyxcbiAgSFNWID0gJ2hzdicsXG4gIFJHQiA9ICdyZ2InXG59XG5cbkBDb21wb25lbnQoe1xuICAvLyBjcmVhdGUgc2VsZXRvciBiYXNlIGZvciB0ZXN0IG92ZXJyaWRlIHByb3BlcnR5XG4gIHNlbGVjdG9yOiAnY29sb3Itd3JhcCcsXG4gIHRlbXBsYXRlOiBgYCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb2xvcldyYXApLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbG9yV3JhcCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgY2xhc3NOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXNjcmlwdG9ycyB0aGUgcmV0dXJuIGNvbG9yIGZvcm1hdCBpZiB0aGUgY29tcG9uZW50IGlzIHVzZWQgd2l0aCB0d28td2F5IGJpbmRpbmdcbiAgICovXG4gIEBJbnB1dCgpIG1vZGU6IENvbG9yTW9kZSA9IENvbG9yTW9kZS5IRVg7XG5cbiAgQElucHV0KCkgY29sb3I6IEhTTEEgfCBIU1ZBIHwgUkdCQSB8IHN0cmluZyA9IHtcbiAgICBoOiAyNTAsXG4gICAgczogMC41LFxuICAgIGw6IDAuMixcbiAgICBhOiAxLFxuICB9O1xuICBAT3V0cHV0KCkgY29sb3JDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEhTTEEgfCBIU1ZBIHwgUkdCQSB8IHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb2xvckV2ZW50PigpO1xuICBAT3V0cHV0KCkgb25DaGFuZ2VDb21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29sb3JFdmVudD4oKTtcbiAgQE91dHB1dCgpIG9uU3dhdGNoSG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPENvbG9yRXZlbnQ+KCk7XG4gIG9sZEh1ZSE6IG51bWJlcjtcbiAgaHNsITogSFNMQTtcbiAgaHN2ITogSFNWQTtcbiAgcmdiITogUkdCQTtcbiAgaGV4ITogc3RyaW5nO1xuICBzb3VyY2UhOiBzdHJpbmc7XG4gIGN1cnJlbnRDb2xvciE6IHN0cmluZztcbiAgY2hhbmdlcz86IFN1YnNjcmlwdGlvbjtcbiAgZGlzYWJsZUFscGhhPzogYm9vbGVhbjtcblxuICBwcml2YXRlIF9vbkNoYW5nZUNvbXBsZXRlU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcml2YXRlIF9vblN3YXRjaEhvdmVyU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2hhbmdlcyA9IHRoaXMub25DaGFuZ2VcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgICAgdGFwKGV2ZW50ID0+IHtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlQ29tcGxldGUuZW1pdChldmVudCk7XG4gICAgICAgICAgc3dpdGNoICh0aGlzLm1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgQ29sb3JNb2RlLkhFWDpcbiAgICAgICAgICAgICAgdGhpcy5jb2xvckNoYW5nZS5lbWl0KGV2ZW50LmNvbG9yLmhleCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDb2xvck1vZGUuSFNMOlxuICAgICAgICAgICAgICB0aGlzLmNvbG9yQ2hhbmdlLmVtaXQoZXZlbnQuY29sb3IuaHNsKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENvbG9yTW9kZS5IU1Y6XG4gICAgICAgICAgICAgIHRoaXMuY29sb3JDaGFuZ2UuZW1pdChldmVudC5jb2xvci5oc3YpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ29sb3JNb2RlLlJHQjpcbiAgICAgICAgICAgICAgdGhpcy5jb2xvckNoYW5nZS5lbWl0KGV2ZW50LmNvbG9yLnJnYik7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgY29uc3QgbXNnID0gYFRoZSBtb2RlICcke3RoaXMubW9kZX0nIGlzIG5vdCBzdXBwb3J0ZWRgO1xuICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4obXNnKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zZXRTdGF0ZSh0b1N0YXRlKHRoaXMuY29sb3IsIDApKTtcbiAgICB0aGlzLmN1cnJlbnRDb2xvciA9IHRoaXMuaGV4O1xuICB9XG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMuc2V0U3RhdGUodG9TdGF0ZSh0aGlzLmNvbG9yLCB0aGlzLm9sZEh1ZSkpO1xuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY2hhbmdlcz8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9vbkNoYW5nZUNvbXBsZXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fb25Td2F0Y2hIb3ZlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG4gIHNldFN0YXRlKGRhdGEpIHtcbiAgICB0aGlzLm9sZEh1ZSA9IGRhdGEub2xkSHVlO1xuICAgIHRoaXMuaHNsID0gZGF0YS5oc2w7XG4gICAgdGhpcy5oc3YgPSBkYXRhLmhzdjtcbiAgICB0aGlzLnJnYiA9IGRhdGEucmdiO1xuICAgIHRoaXMuaGV4ID0gZGF0YS5oZXg7XG4gICAgdGhpcy5zb3VyY2UgPSBkYXRhLnNvdXJjZTtcbiAgICB0aGlzLmFmdGVyVmFsaWRDaGFuZ2UoKTtcbiAgfVxuICBoYW5kbGVDaGFuZ2UoZGF0YSwgJGV2ZW50KSB7XG4gICAgY29uc3QgaXNWYWxpZENvbG9yID0gc2ltcGxlQ2hlY2tGb3JWYWxpZENvbG9yKGRhdGEpO1xuICAgIGlmIChpc1ZhbGlkQ29sb3IpIHtcbiAgICAgIGNvbnN0IGNvbG9yID0gdG9TdGF0ZShkYXRhLCBkYXRhLmggfHwgdGhpcy5vbGRIdWUsIHRoaXMuZGlzYWJsZUFscGhhKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoY29sb3IpO1xuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHsgY29sb3IsICRldmVudCB9KTtcbiAgICAgIHRoaXMuYWZ0ZXJWYWxpZENoYW5nZSgpO1xuICAgIH1cbiAgfVxuICAvKiogaG9vayBmb3IgY29tcG9uZW50cyBhZnRlciBhIGNvbXBsZXRlIGNoYW5nZSAqL1xuICBhZnRlclZhbGlkQ2hhbmdlKCkge31cblxuICBoYW5kbGVTd2F0Y2hIb3ZlcihkYXRhLCAkZXZlbnQpIHtcbiAgICBjb25zdCBpc1ZhbGlkQ29sb3IgPSBzaW1wbGVDaGVja0ZvclZhbGlkQ29sb3IoZGF0YSk7XG4gICAgaWYgKGlzVmFsaWRDb2xvcikge1xuICAgICAgY29uc3QgY29sb3IgPSB0b1N0YXRlKGRhdGEsIGRhdGEuaCB8fCB0aGlzLm9sZEh1ZSk7XG4gICAgICB0aGlzLnNldFN0YXRlKGNvbG9yKTtcbiAgICAgIHRoaXMub25Td2F0Y2hIb3Zlci5lbWl0KHsgY29sb3IsICRldmVudCB9KTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoaGV4OiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZUNvbXBsZXRlU3Vic2NyaXB0aW9uLmFkZCh0aGlzLm9uQ2hhbmdlQ29tcGxldGUucGlwZShcbiAgICAgIHRhcChldmVudCA9PiBmbihldmVudC5jb2xvci5oZXgpKSxcbiAgICApLnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25Td2F0Y2hIb3ZlclN1YnNjcmlwdGlvbi5hZGQodGhpcy5vblN3YXRjaEhvdmVyLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gZm4oKSksXG4gICAgKS5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHt9XG5cbiAgd3JpdGVWYWx1ZShoZXg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29sb3IgPSBoZXg7XG4gIH1cblxufVxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDb2xvcldyYXBdLFxuICBleHBvcnRzOiBbQ29sb3JXcmFwXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIENvbG9yV3JhcE1vZHVsZSB7fVxuIl19
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3Itd3JhcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbG9yLXdyYXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBSVIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU96RSxNQUFNLENBQU4sSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLHdCQUFXLENBQUE7SUFDWCx3QkFBVyxDQUFBO0lBQ1gsd0JBQVcsQ0FBQTtJQUNYLHdCQUFXLENBQUE7QUFDYixDQUFDLEVBTFcsU0FBUyxLQUFULFNBQVMsUUFLcEI7QUFjRCxNQUFNLE9BQU8sU0FBUztJQVp0QjtRQWVFOztXQUVHO1FBQ00sU0FBSSxHQUFjLFNBQVMsQ0FBQyxHQUFHLENBQUM7UUFFaEMsVUFBSyxHQUFnQztZQUM1QyxDQUFDLEVBQUUsR0FBRztZQUNOLENBQUMsRUFBRSxHQUFHO1lBQ04sQ0FBQyxFQUFFLEdBQUc7WUFDTixDQUFDLEVBQUUsQ0FBQztTQUNMLENBQUM7UUFDUSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUErQixDQUFDO1FBQzlELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzFDLHFCQUFnQixHQUFHLElBQUksWUFBWSxF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O29CQUNSLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQztvQkFDekIsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO29CQUNwQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgaXNEZXZNb2RlLFxuICBOZ01vZHVsZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgc2ltcGxlQ2hlY2tGb3JWYWxpZENvbG9yLCB0b1N0YXRlIH0gZnJvbSAnLi9oZWxwZXJzL2NvbG9yJztcbmltcG9ydCB7IENvbG9yLCBIU0xBLCBIU1ZBLCBSR0JBIH0gZnJvbSAnLi9oZWxwZXJzL2NvbG9yLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbG9yRXZlbnQge1xuICAkZXZlbnQ6IEV2ZW50O1xuICBjb2xvcjogQ29sb3I7XG59XG5cbmV4cG9ydCBlbnVtIENvbG9yTW9kZSB7XG4gIEhFWCA9ICdoZXgnLFxuICBIU0wgPSAnaHNsJyxcbiAgSFNWID0gJ2hzdicsXG4gIFJHQiA9ICdyZ2InXG59XG5cbkBDb21wb25lbnQoe1xuICAvLyBjcmVhdGUgc2VsZXRvciBiYXNlIGZvciB0ZXN0IG92ZXJyaWRlIHByb3BlcnR5XG4gIHNlbGVjdG9yOiAnY29sb3Itd3JhcCcsXG4gIHRlbXBsYXRlOiBgYCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb2xvcldyYXApLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbG9yV3JhcCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgY2xhc3NOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXNjcmlwdG9ycyB0aGUgcmV0dXJuIGNvbG9yIGZvcm1hdCBpZiB0aGUgY29tcG9uZW50IGlzIHVzZWQgd2l0aCB0d28td2F5IGJpbmRpbmdcbiAgICovXG4gIEBJbnB1dCgpIG1vZGU6IENvbG9yTW9kZSA9IENvbG9yTW9kZS5IRVg7XG5cbiAgQElucHV0KCkgY29sb3I6IEhTTEEgfCBIU1ZBIHwgUkdCQSB8IHN0cmluZyA9IHtcbiAgICBoOiAyNTAsXG4gICAgczogMC41LFxuICAgIGw6IDAuMixcbiAgICBhOiAxLFxuICB9O1xuICBAT3V0cHV0KCkgY29sb3JDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEhTTEEgfCBIU1ZBIHwgUkdCQSB8IHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb2xvckV2ZW50PigpO1xuICBAT3V0cHV0KCkgb25DaGFuZ2VDb21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29sb3JFdmVudD4oKTtcbiAgQE91dHB1dCgpIG9uU3dhdGNoSG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPENvbG9yRXZlbnQ+KCk7XG4gIG9sZEh1ZSE6IG51bWJlcjtcbiAgaHNsITogSFNMQTtcbiAgaHN2ITogSFNWQTtcbiAgcmdiITogUkdCQTtcbiAgaGV4ITogc3RyaW5nO1xuICBzb3VyY2UhOiBzdHJpbmc7XG4gIGN1cnJlbnRDb2xvciE6IHN0cmluZztcbiAgY2hhbmdlcz86IFN1YnNjcmlwdGlvbjtcbiAgZGlzYWJsZUFscGhhPzogYm9vbGVhbjtcblxuICBwcml2YXRlIF9vbkNoYW5nZUNvbXBsZXRlU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcml2YXRlIF9vblN3YXRjaEhvdmVyU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2hhbmdlcyA9IHRoaXMub25DaGFuZ2VcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgICAgdGFwKGV2ZW50ID0+IHtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlQ29tcGxldGUuZW1pdChldmVudCk7XG4gICAgICAgICAgc3dpdGNoICh0aGlzLm1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgQ29sb3JNb2RlLkhFWDpcbiAgICAgICAgICAgICAgdGhpcy5jb2xvckNoYW5nZS5lbWl0KGV2ZW50LmNvbG9yLmhleCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDb2xvck1vZGUuSFNMOlxuICAgICAgICAgICAgICB0aGlzLmNvbG9yQ2hhbmdlLmVtaXQoZXZlbnQuY29sb3IuaHNsKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENvbG9yTW9kZS5IU1Y6XG4gICAgICAgICAgICAgIHRoaXMuY29sb3JDaGFuZ2UuZW1pdChldmVudC5jb2xvci5oc3YpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ29sb3JNb2RlLlJHQjpcbiAgICAgICAgICAgICAgdGhpcy5jb2xvckNoYW5nZS5lbWl0KGV2ZW50LmNvbG9yLnJnYik7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgY29uc3QgbXNnID0gYFRoZSBtb2RlICcke3RoaXMubW9kZX0nIGlzIG5vdCBzdXBwb3J0ZWRgO1xuICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4obXNnKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zZXRTdGF0ZSh0b1N0YXRlKHRoaXMuY29sb3IsIDApKTtcbiAgICB0aGlzLmN1cnJlbnRDb2xvciA9IHRoaXMuaGV4O1xuICB9XG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMuc2V0U3RhdGUodG9TdGF0ZSh0aGlzLmNvbG9yLCB0aGlzLm9sZEh1ZSkpO1xuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY2hhbmdlcz8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9vbkNoYW5nZUNvbXBsZXRlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX29uU3dhdGNoSG92ZXJTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbiAgc2V0U3RhdGUoZGF0YSkge1xuICAgIHRoaXMub2xkSHVlID0gZGF0YS5vbGRIdWU7XG4gICAgdGhpcy5oc2wgPSBkYXRhLmhzbDtcbiAgICB0aGlzLmhzdiA9IGRhdGEuaHN2O1xuICAgIHRoaXMucmdiID0gZGF0YS5yZ2I7XG4gICAgdGhpcy5oZXggPSBkYXRhLmhleDtcbiAgICB0aGlzLnNvdXJjZSA9IGRhdGEuc291cmNlO1xuICAgIHRoaXMuYWZ0ZXJWYWxpZENoYW5nZSgpO1xuICB9XG4gIGhhbmRsZUNoYW5nZShkYXRhLCAkZXZlbnQpIHtcbiAgICBjb25zdCBpc1ZhbGlkQ29sb3IgPSBzaW1wbGVDaGVja0ZvclZhbGlkQ29sb3IoZGF0YSk7XG4gICAgaWYgKGlzVmFsaWRDb2xvcikge1xuICAgICAgY29uc3QgY29sb3IgPSB0b1N0YXRlKGRhdGEsIGRhdGEuaCB8fCB0aGlzLm9sZEh1ZSwgdGhpcy5kaXNhYmxlQWxwaGEpO1xuICAgICAgdGhpcy5zZXRTdGF0ZShjb2xvcik7XG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoeyBjb2xvciwgJGV2ZW50IH0pO1xuICAgICAgdGhpcy5hZnRlclZhbGlkQ2hhbmdlKCk7XG4gICAgfVxuICB9XG4gIC8qKiBob29rIGZvciBjb21wb25lbnRzIGFmdGVyIGEgY29tcGxldGUgY2hhbmdlICovXG4gIGFmdGVyVmFsaWRDaGFuZ2UoKSB7fVxuXG4gIGhhbmRsZVN3YXRjaEhvdmVyKGRhdGEsICRldmVudCkge1xuICAgIGNvbnN0IGlzVmFsaWRDb2xvciA9IHNpbXBsZUNoZWNrRm9yVmFsaWRDb2xvcihkYXRhKTtcbiAgICBpZiAoaXNWYWxpZENvbG9yKSB7XG4gICAgICBjb25zdCBjb2xvciA9IHRvU3RhdGUoZGF0YSwgZGF0YS5oIHx8IHRoaXMub2xkSHVlKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoY29sb3IpO1xuICAgICAgdGhpcy5vblN3YXRjaEhvdmVyLmVtaXQoeyBjb2xvciwgJGV2ZW50IH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChoZXg6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlQ29tcGxldGVTdWJzY3JpcHRpb24uYWRkKHRoaXMub25DaGFuZ2VDb21wbGV0ZS5waXBlKFxuICAgICAgdGFwKGV2ZW50ID0+IGZuKGV2ZW50LmNvbG9yLmhleCkpLFxuICAgICkuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblN3YXRjaEhvdmVyU3Vic2NyaXB0aW9uLmFkZCh0aGlzLm9uU3dhdGNoSG92ZXIucGlwZShcbiAgICAgIHRhcCgoKSA9PiBmbigpKSxcbiAgICApLnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge31cblxuICB3cml0ZVZhbHVlKGhleDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jb2xvciA9IGhleDtcbiAgfVxuXG59XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0NvbG9yV3JhcF0sXG4gIGV4cG9ydHM6IFtDb2xvcldyYXBdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JXcmFwTW9kdWxlIHt9XG4iXX0=