ngx-color 8.0.0 → 8.0.1

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 (172) 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/esm2020/alpha/alpha-picker.component.mjs +100 -0
  23. package/esm2020/alpha/ngx-color-alpha.mjs +5 -0
  24. package/esm2020/alpha/public_api.mjs +2 -0
  25. package/esm2020/block/block-swatches.component.mjs +63 -0
  26. package/esm2020/block/block.component.mjs +158 -0
  27. package/esm2020/block/ngx-color-block.mjs +5 -0
  28. package/esm2020/block/public_api.mjs +3 -0
  29. package/esm2020/chrome/chrome-fields.component.mjs +314 -0
  30. package/esm2020/chrome/chrome.component.mjs +184 -0
  31. package/esm2020/chrome/ngx-color-chrome.mjs +5 -0
  32. package/esm2020/chrome/public_api.mjs +3 -0
  33. package/esm2020/circle/circle-swatch.component.mjs +69 -0
  34. package/esm2020/circle/circle.component.mjs +134 -0
  35. package/esm2020/circle/ngx-color-circle.mjs +5 -0
  36. package/esm2020/circle/public_api.mjs +3 -0
  37. package/esm2020/compact/compact-color.component.mjs +70 -0
  38. package/esm2020/compact/compact-fields.component.mjs +164 -0
  39. package/esm2020/compact/compact.component.mjs +154 -0
  40. package/esm2020/compact/ngx-color-compact.mjs +5 -0
  41. package/esm2020/compact/public_api.mjs +4 -0
  42. package/esm2020/github/github-swatch.component.mjs +53 -0
  43. package/esm2020/github/github.component.mjs +112 -0
  44. package/esm2020/github/ngx-color-github.mjs +5 -0
  45. package/esm2020/github/public_api.mjs +3 -0
  46. package/esm2020/hue/hue-picker.component.mjs +100 -0
  47. package/esm2020/hue/ngx-color-hue.mjs +5 -0
  48. package/esm2020/hue/public_api.mjs +2 -0
  49. package/esm2020/material/material.component.mjs +186 -0
  50. package/esm2020/material/ngx-color-material.mjs +5 -0
  51. package/esm2020/material/public_api.mjs +2 -0
  52. package/esm2020/photoshop/ngx-color-photoshop.mjs +5 -0
  53. package/esm2020/photoshop/photoshop-button.component.mjs +34 -0
  54. package/esm2020/photoshop/photoshop-fields.component.mjs +212 -0
  55. package/esm2020/photoshop/photoshop-previews.component.mjs +40 -0
  56. package/esm2020/photoshop/photoshop.component.mjs +185 -0
  57. package/esm2020/photoshop/public_api.mjs +5 -0
  58. package/esm2020/shade/ngx-color-shade.mjs +5 -0
  59. package/esm2020/shade/public_api.mjs +2 -0
  60. package/esm2020/shade/shade-picker.component.mjs +92 -0
  61. package/esm2020/sketch/ngx-color-sketch.mjs +5 -0
  62. package/esm2020/sketch/public_api.mjs +4 -0
  63. package/esm2020/sketch/sketch-fields.component.mjs +209 -0
  64. package/esm2020/sketch/sketch-preset-colors.component.mjs +68 -0
  65. package/esm2020/sketch/sketch.component.mjs +212 -0
  66. package/esm2020/slider/ngx-color-slider.mjs +5 -0
  67. package/esm2020/slider/public_api.mjs +4 -0
  68. package/esm2020/slider/slider-swatch.component.mjs +52 -0
  69. package/esm2020/slider/slider-swatches.component.mjs +119 -0
  70. package/esm2020/slider/slider.component.mjs +102 -0
  71. package/esm2020/swatches/ngx-color-swatches.mjs +5 -0
  72. package/esm2020/swatches/public_api.mjs +4 -0
  73. package/esm2020/swatches/swatches-color.component.mjs +104 -0
  74. package/esm2020/swatches/swatches-group.component.mjs +49 -0
  75. package/esm2020/swatches/swatches.component.mjs +242 -0
  76. package/esm2020/twitter/ngx-color-twitter.mjs +5 -0
  77. package/esm2020/twitter/public_api.mjs +2 -0
  78. package/esm2020/twitter/twitter.component.mjs +159 -0
  79. package/fesm2015/ngx-color-alpha.mjs +107 -0
  80. package/fesm2015/ngx-color-alpha.mjs.map +1 -0
  81. package/fesm2015/ngx-color-block.mjs +223 -0
  82. package/fesm2015/ngx-color-block.mjs.map +1 -0
  83. package/fesm2015/ngx-color-chrome.mjs +499 -0
  84. package/fesm2015/ngx-color-chrome.mjs.map +1 -0
  85. package/fesm2015/ngx-color-circle.mjs +207 -0
  86. package/fesm2015/ngx-color-circle.mjs.map +1 -0
  87. package/fesm2015/ngx-color-compact.mjs +385 -0
  88. package/fesm2015/ngx-color-compact.mjs.map +1 -0
  89. package/fesm2015/ngx-color-github.mjs +169 -0
  90. package/fesm2015/ngx-color-github.mjs.map +1 -0
  91. package/fesm2015/ngx-color-hue.mjs +107 -0
  92. package/fesm2015/ngx-color-hue.mjs.map +1 -0
  93. package/fesm2015/ngx-color-material.mjs +193 -0
  94. package/fesm2015/ngx-color-material.mjs.map +1 -0
  95. package/fesm2015/ngx-color-photoshop.mjs +467 -0
  96. package/fesm2015/ngx-color-photoshop.mjs.map +1 -0
  97. package/fesm2015/ngx-color-shade.mjs +99 -0
  98. package/fesm2015/ngx-color-shade.mjs.map +1 -0
  99. package/fesm2015/ngx-color-sketch.mjs +485 -0
  100. package/fesm2015/ngx-color-sketch.mjs.map +1 -0
  101. package/fesm2015/ngx-color-slider.mjs +273 -0
  102. package/fesm2015/ngx-color-slider.mjs.map +1 -0
  103. package/fesm2015/ngx-color-swatches.mjs +391 -0
  104. package/fesm2015/ngx-color-swatches.mjs.map +1 -0
  105. package/fesm2015/ngx-color-twitter.mjs +166 -0
  106. package/fesm2015/ngx-color-twitter.mjs.map +1 -0
  107. package/fesm2020/ngx-color-alpha.mjs +107 -0
  108. package/fesm2020/ngx-color-alpha.mjs.map +1 -0
  109. package/fesm2020/ngx-color-block.mjs +223 -0
  110. package/fesm2020/ngx-color-block.mjs.map +1 -0
  111. package/fesm2020/ngx-color-chrome.mjs +499 -0
  112. package/fesm2020/ngx-color-chrome.mjs.map +1 -0
  113. package/fesm2020/ngx-color-circle.mjs +207 -0
  114. package/fesm2020/ngx-color-circle.mjs.map +1 -0
  115. package/fesm2020/ngx-color-compact.mjs +385 -0
  116. package/fesm2020/ngx-color-compact.mjs.map +1 -0
  117. package/fesm2020/ngx-color-github.mjs +169 -0
  118. package/fesm2020/ngx-color-github.mjs.map +1 -0
  119. package/fesm2020/ngx-color-hue.mjs +107 -0
  120. package/fesm2020/ngx-color-hue.mjs.map +1 -0
  121. package/fesm2020/ngx-color-material.mjs +193 -0
  122. package/fesm2020/ngx-color-material.mjs.map +1 -0
  123. package/fesm2020/ngx-color-photoshop.mjs +467 -0
  124. package/fesm2020/ngx-color-photoshop.mjs.map +1 -0
  125. package/fesm2020/ngx-color-shade.mjs +99 -0
  126. package/fesm2020/ngx-color-shade.mjs.map +1 -0
  127. package/fesm2020/ngx-color-sketch.mjs +485 -0
  128. package/fesm2020/ngx-color-sketch.mjs.map +1 -0
  129. package/fesm2020/ngx-color-slider.mjs +273 -0
  130. package/fesm2020/ngx-color-slider.mjs.map +1 -0
  131. package/fesm2020/ngx-color-swatches.mjs +391 -0
  132. package/fesm2020/ngx-color-swatches.mjs.map +1 -0
  133. package/fesm2020/ngx-color-twitter.mjs +166 -0
  134. package/fesm2020/ngx-color-twitter.mjs.map +1 -0
  135. package/github/github-swatch.component.d.ts +19 -0
  136. package/github/github.component.d.ts +28 -0
  137. package/github/index.d.ts +5 -0
  138. package/github/public_api.d.ts +2 -0
  139. package/hue/hue-picker.component.d.ts +29 -0
  140. package/hue/index.d.ts +5 -0
  141. package/hue/public_api.d.ts +1 -0
  142. package/material/index.d.ts +5 -0
  143. package/material/material.component.d.ts +39 -0
  144. package/material/public_api.d.ts +1 -0
  145. package/package.json +113 -1
  146. package/photoshop/index.d.ts +5 -0
  147. package/photoshop/photoshop-button.component.d.ts +9 -0
  148. package/photoshop/photoshop-fields.component.d.ts +22 -0
  149. package/photoshop/photoshop-previews.component.d.ts +11 -0
  150. package/photoshop/photoshop.component.d.ts +33 -0
  151. package/photoshop/public_api.d.ts +4 -0
  152. package/shade/index.d.ts +5 -0
  153. package/shade/public_api.d.ts +1 -0
  154. package/shade/shade-picker.component.d.ts +27 -0
  155. package/sketch/index.d.ts +5 -0
  156. package/sketch/public_api.d.ts +3 -0
  157. package/sketch/sketch-fields.component.d.ts +23 -0
  158. package/sketch/sketch-preset-colors.component.d.ts +24 -0
  159. package/sketch/sketch.component.d.ts +32 -0
  160. package/slider/index.d.ts +5 -0
  161. package/slider/public_api.d.ts +3 -0
  162. package/slider/slider-swatch.component.d.ts +16 -0
  163. package/slider/slider-swatches.component.d.ts +15 -0
  164. package/slider/slider.component.d.ts +22 -0
  165. package/swatches/index.d.ts +5 -0
  166. package/swatches/public_api.d.ts +3 -0
  167. package/swatches/swatches-color.component.d.ts +18 -0
  168. package/swatches/swatches-group.component.d.ts +10 -0
  169. package/swatches/swatches.component.d.ts +29 -0
  170. package/twitter/index.d.ts +5 -0
  171. package/twitter/public_api.d.ts +1 -0
  172. package/twitter/twitter.component.d.ts +31 -0
@@ -0,0 +1,158 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, forwardRef, Input, NgModule } from '@angular/core';
3
+ import { CheckboardModule, ColorWrap, EditableInputModule, getContrastingColor, isValidHex, SwatchModule, } from 'ngx-color';
4
+ import { BlockSwatchesComponent } from './block-swatches.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 BlockComponent extends ColorWrap {
10
+ constructor() {
11
+ super();
12
+ /** Pixel value for picker width */
13
+ this.width = 170;
14
+ /** Color squares to display */
15
+ this.colors = [
16
+ '#D9E3F0',
17
+ '#F47373',
18
+ '#697689',
19
+ '#37D67A',
20
+ '#2CCCE4',
21
+ '#555555',
22
+ '#dce775',
23
+ '#ff8a65',
24
+ '#ba68c8',
25
+ ];
26
+ this.triangle = 'top';
27
+ this.input = {
28
+ width: '100%',
29
+ fontSize: '12px',
30
+ color: '#666',
31
+ border: '0px',
32
+ outline: 'none',
33
+ height: '22px',
34
+ boxShadow: 'inset 0 0 0 1px #ddd',
35
+ borderRadius: '4px',
36
+ padding: '0 7px',
37
+ boxSizing: 'border-box',
38
+ };
39
+ this.wrap = {
40
+ position: 'relative',
41
+ width: '100%',
42
+ };
43
+ this.disableAlpha = true;
44
+ }
45
+ handleValueChange({ data, $event }) {
46
+ this.handleBlockChange({ hex: data, $event });
47
+ }
48
+ getContrastingColor(hex) {
49
+ return getContrastingColor(hex);
50
+ }
51
+ handleBlockChange({ hex, $event }) {
52
+ if (isValidHex(hex)) {
53
+ // this.hex = hex;
54
+ this.handleChange({
55
+ hex,
56
+ source: 'hex',
57
+ }, $event);
58
+ }
59
+ }
60
+ }
61
+ BlockComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
62
+ BlockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: BlockComponent, selector: "color-block", inputs: { width: "width", colors: "colors", triangle: "triangle" }, providers: [
63
+ {
64
+ provide: NG_VALUE_ACCESSOR,
65
+ useExisting: forwardRef(() => BlockComponent),
66
+ multi: true,
67
+ },
68
+ {
69
+ provide: ColorWrap,
70
+ useExisting: forwardRef(() => BlockComponent),
71
+ },
72
+ ], usesInheritance: true, ngImport: i0, template: `
73
+ <div class="block-card block-picker {{ className }}">
74
+ <div class="block-triangle" *ngIf="triangle !== 'hide'"
75
+ [style.border-color]="'transparent transparent ' + this.hex + ' transparent'"
76
+ ></div>
77
+
78
+ <div class="block-head" [style.background]="hex">
79
+ <color-checkboard *ngIf="hex === 'transparent'"
80
+ borderRadius="6px 6px 0 0"
81
+ ></color-checkboard>
82
+ <div class="block-label" [style.color]="getContrastingColor(hex)">
83
+ {{ hex }}
84
+ </div>
85
+ </div>
86
+
87
+ <div class="block-body">
88
+ <color-block-swatches [colors]="colors"
89
+ (onClick)="handleBlockChange($event)"
90
+ (onSwatchHover)="onSwatchHover.emit($event)"
91
+ ></color-block-swatches>
92
+ <color-editable-input [value]="hex"
93
+ (onChange)="handleValueChange($event)"
94
+ [style]="{input: input, wrap: wrap}"
95
+ ></color-editable-input>
96
+ </div>
97
+ </div>
98
+ `, isInline: true, styles: [".block-card{background:#fff;border-radius:6px;box-shadow:0 1px #0000001a;position:relative}.block-head{align-items:center;border-radius:6px 6px 0 0;display:flex;height:110px;justify-content:center;position:relative}.block-body{padding:10px}.block-label{font-size:18px;position:relative}.block-triangle{border-style:solid;border-width:0 10px 10px 10px;height:0;left:50%;margin-left:-10px;position:absolute;top:-10px;width:0}\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.CheckboardComponent; }), selector: "color-checkboard", inputs: ["white", "size", "grey", "boxShadow", "borderRadius"] }, { kind: "component", type: i0.forwardRef(function () { return i2.EditableInputComponent; }), selector: "color-editable-input", inputs: ["style", "label", "value", "arrowOffset", "dragLabel", "dragMax", "placeholder"], outputs: ["onChange"] }, { kind: "component", type: i0.forwardRef(function () { return BlockSwatchesComponent; }), selector: "color-block-swatches", inputs: ["colors"], outputs: ["onClick", "onSwatchHover"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BlockComponent, decorators: [{
100
+ type: Component,
101
+ args: [{ selector: 'color-block', template: `
102
+ <div class="block-card block-picker {{ className }}">
103
+ <div class="block-triangle" *ngIf="triangle !== 'hide'"
104
+ [style.border-color]="'transparent transparent ' + this.hex + ' transparent'"
105
+ ></div>
106
+
107
+ <div class="block-head" [style.background]="hex">
108
+ <color-checkboard *ngIf="hex === 'transparent'"
109
+ borderRadius="6px 6px 0 0"
110
+ ></color-checkboard>
111
+ <div class="block-label" [style.color]="getContrastingColor(hex)">
112
+ {{ hex }}
113
+ </div>
114
+ </div>
115
+
116
+ <div class="block-body">
117
+ <color-block-swatches [colors]="colors"
118
+ (onClick)="handleBlockChange($event)"
119
+ (onSwatchHover)="onSwatchHover.emit($event)"
120
+ ></color-block-swatches>
121
+ <color-editable-input [value]="hex"
122
+ (onChange)="handleValueChange($event)"
123
+ [style]="{input: input, wrap: wrap}"
124
+ ></color-editable-input>
125
+ </div>
126
+ </div>
127
+ `, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
128
+ {
129
+ provide: NG_VALUE_ACCESSOR,
130
+ useExisting: forwardRef(() => BlockComponent),
131
+ multi: true,
132
+ },
133
+ {
134
+ provide: ColorWrap,
135
+ useExisting: forwardRef(() => BlockComponent),
136
+ },
137
+ ], styles: [".block-card{background:#fff;border-radius:6px;box-shadow:0 1px #0000001a;position:relative}.block-head{align-items:center;border-radius:6px 6px 0 0;display:flex;height:110px;justify-content:center;position:relative}.block-body{padding:10px}.block-label{font-size:18px;position:relative}.block-triangle{border-style:solid;border-width:0 10px 10px 10px;height:0;left:50%;margin-left:-10px;position:absolute;top:-10px;width:0}\n"] }]
138
+ }], ctorParameters: function () { return []; }, propDecorators: { width: [{
139
+ type: Input
140
+ }], colors: [{
141
+ type: Input
142
+ }], triangle: [{
143
+ type: Input
144
+ }] } });
145
+ export class ColorBlockModule {
146
+ }
147
+ ColorBlockModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ColorBlockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
148
+ ColorBlockModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: ColorBlockModule, declarations: [BlockComponent, BlockSwatchesComponent], imports: [CommonModule, CheckboardModule, SwatchModule, EditableInputModule], exports: [BlockComponent, BlockSwatchesComponent] });
149
+ ColorBlockModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ColorBlockModule, imports: [CommonModule, CheckboardModule, SwatchModule, EditableInputModule] });
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ColorBlockModule, decorators: [{
151
+ type: NgModule,
152
+ args: [{
153
+ declarations: [BlockComponent, BlockSwatchesComponent],
154
+ exports: [BlockComponent, BlockSwatchesComponent],
155
+ imports: [CommonModule, CheckboardModule, SwatchModule, EditableInputModule],
156
+ }]
157
+ }] });
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9ibG9jay9ibG9jay5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixVQUFVLEVBQ1YsWUFBWSxHQUNiLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBZ0ZuRCxNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQVM7SUFrQzNDO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFsQ1YsbUNBQW1DO1FBQzFCLFVBQUssR0FBb0IsR0FBRyxDQUFDO1FBQ3RDLCtCQUErQjtRQUN0QixXQUFNLEdBQUc7WUFDaEIsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1NBQ1YsQ0FBQztRQUNPLGFBQVEsR0FBbUIsS0FBSyxDQUFDO1FBQzFDLFVBQUssR0FBNEI7WUFDL0IsS0FBSyxFQUFFLE1BQU07WUFDYixRQUFRLEVBQUUsTUFBTTtZQUNoQixLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxLQUFLO1lBQ2IsT0FBTyxFQUFFLE1BQU07WUFDZixNQUFNLEVBQUUsTUFBTTtZQUNkLFNBQVMsRUFBRSxzQkFBc0I7WUFDakMsWUFBWSxFQUFFLEtBQUs7WUFDbkIsT0FBTyxFQUFFLE9BQU87WUFDaEIsU0FBUyxFQUFFLFlBQVk7U0FDeEIsQ0FBQztRQUNGLFNBQUksR0FBNEI7WUFDOUIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLE1BQU07U0FDZCxDQUFDO1FBQ0YsaUJBQVksR0FBRyxJQUFJLENBQUM7SUFJcEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtRQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNELG1CQUFtQixDQUFDLEdBQUc7UUFDckIsT0FBTyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsaUJBQWlCLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO1FBQy9CLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLGtCQUFrQjtZQUNsQixJQUFJLENBQUMsWUFBWSxDQUNmO2dCQUNFLEdBQUc7Z0JBQ0gsTUFBTSxFQUFFLEtBQUs7YUFDZCxFQUNELE1BQU0sQ0FDUCxDQUFDO1NBQ0g7SUFDSCxDQUFDOzsyR0F2RFUsY0FBYzsrRkFBZCxjQUFjLDBHQVpkO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO1lBQzdDLEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRDtZQUNFLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO1NBQzlDO0tBQ0YsaURBMUVTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCVCw4a0NBNkc4QixzQkFBc0I7MkZBM0QxQyxjQUFjO2tCQTlFMUIsU0FBUzsrQkFDRSxhQUFhLFlBQ2I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJULHVCQW9Db0IsS0FBSyxtQkFDVCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQzs0QkFDN0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLFNBQVM7NEJBQ2xCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQzt5QkFDOUM7cUJBQ0Y7MEVBSVEsS0FBSztzQkFBYixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFXRyxRQUFRO3NCQUFoQixLQUFLOztBQWdEUixNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBL0RoQixjQUFjLEVBMkRNLHNCQUFzQixhQUUzQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixhQTdEaEUsY0FBYyxFQTREQyxzQkFBc0I7OEdBR3JDLGdCQUFnQixZQUZqQixZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLG1CQUFtQjsyRkFFaEUsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsRUFBRSxzQkFBc0IsQ0FBQztvQkFDdEQsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLHNCQUFzQixDQUFDO29CQUNqRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixDQUFDO2lCQUM3RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQ2hlY2tib2FyZE1vZHVsZSxcbiAgQ29sb3JXcmFwLFxuICBFZGl0YWJsZUlucHV0TW9kdWxlLFxuICBnZXRDb250cmFzdGluZ0NvbG9yLFxuICBpc1ZhbGlkSGV4LFxuICBTd2F0Y2hNb2R1bGUsXG59IGZyb20gJ25neC1jb2xvcic7XG5pbXBvcnQgeyBCbG9ja1N3YXRjaGVzQ29tcG9uZW50IH0gZnJvbSAnLi9ibG9jay1zd2F0Y2hlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvbG9yLWJsb2NrJyxcbiAgdGVtcGxhdGU6IGBcbiAgPGRpdiBjbGFzcz1cImJsb2NrLWNhcmQgYmxvY2stcGlja2VyIHt7IGNsYXNzTmFtZSB9fVwiPlxuICAgIDxkaXYgY2xhc3M9XCJibG9jay10cmlhbmdsZVwiICpuZ0lmPVwidHJpYW5nbGUgIT09ICdoaWRlJ1wiXG4gICAgICBbc3R5bGUuYm9yZGVyLWNvbG9yXT1cIid0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAnICsgdGhpcy5oZXggKyAnIHRyYW5zcGFyZW50J1wiXG4gICAgPjwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImJsb2NrLWhlYWRcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJoZXhcIj5cbiAgICAgIDxjb2xvci1jaGVja2JvYXJkICpuZ0lmPVwiaGV4ID09PSAndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiNnB4IDZweCAwIDBcIlxuICAgICAgPjwvY29sb3ItY2hlY2tib2FyZD5cbiAgICAgIDxkaXYgY2xhc3M9XCJibG9jay1sYWJlbFwiIFtzdHlsZS5jb2xvcl09XCJnZXRDb250cmFzdGluZ0NvbG9yKGhleClcIj5cbiAgICAgICAge3sgaGV4IH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJibG9jay1ib2R5XCI+XG4gICAgICA8Y29sb3ItYmxvY2stc3dhdGNoZXMgW2NvbG9yc109XCJjb2xvcnNcIlxuICAgICAgICAob25DbGljayk9XCJoYW5kbGVCbG9ja0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKG9uU3dhdGNoSG92ZXIpPVwib25Td2F0Y2hIb3Zlci5lbWl0KCRldmVudClcIlxuICAgICAgPjwvY29sb3ItYmxvY2stc3dhdGNoZXM+XG4gICAgICA8Y29sb3ItZWRpdGFibGUtaW5wdXQgW3ZhbHVlXT1cImhleFwiXG4gICAgICAgIChvbkNoYW5nZSk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW3N0eWxlXT1cIntpbnB1dDogaW5wdXQsIHdyYXA6IHdyYXB9XCJcbiAgICAgID48L2NvbG9yLWVkaXRhYmxlLWlucHV0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgIC5ibG9jay1jYXJkIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBib3gtc2hhZG93OiAwIDFweCByZ2JhKDAsIDAsIDAsIC4xKTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgLmJsb2NrLWhlYWQge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDZweCA2cHggMCAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGhlaWdodDogMTEwcHg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgLmJsb2NrLWJvZHkge1xuICAgICAgcGFkZGluZzogMTBweDtcbiAgICB9XG4gICAgLmJsb2NrLWxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgLmJsb2NrLXRyaWFuZ2xlIHtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItd2lkdGg6IDAgMTBweCAxMHB4IDEwcHg7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC0xMHB4O1xuICAgICAgd2lkdGg6IDA7XG4gICAgfVxuICBgLFxuICBdLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQmxvY2tDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBDb2xvcldyYXAsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBCbG9ja0NvbXBvbmVudCksXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCbG9ja0NvbXBvbmVudCBleHRlbmRzIENvbG9yV3JhcCB7XG4gIC8qKiBQaXhlbCB2YWx1ZSBmb3IgcGlja2VyIHdpZHRoICovXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgfCBudW1iZXIgPSAxNzA7XG4gIC8qKiBDb2xvciBzcXVhcmVzIHRvIGRpc3BsYXkgKi9cbiAgQElucHV0KCkgY29sb3JzID0gW1xuICAgICcjRDlFM0YwJyxcbiAgICAnI0Y0NzM3MycsXG4gICAgJyM2OTc2ODknLFxuICAgICcjMzdENjdBJyxcbiAgICAnIzJDQ0NFNCcsXG4gICAgJyM1NTU1NTUnLFxuICAgICcjZGNlNzc1JyxcbiAgICAnI2ZmOGE2NScsXG4gICAgJyNiYTY4YzgnLFxuICBdO1xuICBASW5wdXQoKSB0cmlhbmdsZTogJ3RvcCcgfCAnaGlkZScgPSAndG9wJztcbiAgaW5wdXQ6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgZm9udFNpemU6ICcxMnB4JyxcbiAgICBjb2xvcjogJyM2NjYnLFxuICAgIGJvcmRlcjogJzBweCcsXG4gICAgb3V0bGluZTogJ25vbmUnLFxuICAgIGhlaWdodDogJzIycHgnLFxuICAgIGJveFNoYWRvdzogJ2luc2V0IDAgMCAwIDFweCAjZGRkJyxcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIHBhZGRpbmc6ICcwIDdweCcsXG4gICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gIH07XG4gIHdyYXA6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gIH07XG4gIGRpc2FibGVBbHBoYSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGhhbmRsZVZhbHVlQ2hhbmdlKHsgZGF0YSwgJGV2ZW50IH0pIHtcbiAgICB0aGlzLmhhbmRsZUJsb2NrQ2hhbmdlKHsgaGV4OiBkYXRhLCAkZXZlbnQgfSk7XG4gIH1cbiAgZ2V0Q29udHJhc3RpbmdDb2xvcihoZXgpIHtcbiAgICByZXR1cm4gZ2V0Q29udHJhc3RpbmdDb2xvcihoZXgpO1xuICB9XG4gIGhhbmRsZUJsb2NrQ2hhbmdlKHsgaGV4LCAkZXZlbnQgfSkge1xuICAgIGlmIChpc1ZhbGlkSGV4KGhleCkpIHtcbiAgICAgIC8vIHRoaXMuaGV4ID0gaGV4O1xuICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UoXG4gICAgICAgIHtcbiAgICAgICAgICBoZXgsXG4gICAgICAgICAgc291cmNlOiAnaGV4JyxcbiAgICAgICAgfSxcbiAgICAgICAgJGV2ZW50LFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQmxvY2tDb21wb25lbnQsIEJsb2NrU3dhdGNoZXNDb21wb25lbnRdLFxuICBleHBvcnRzOiBbQmxvY2tDb21wb25lbnQsIEJsb2NrU3dhdGNoZXNDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDaGVja2JvYXJkTW9kdWxlLCBTd2F0Y2hNb2R1bGUsIEVkaXRhYmxlSW5wdXRNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBDb2xvckJsb2NrTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNvbG9yLWJsb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9ibG9jay9uZ3gtY29sb3ItYmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export { BlockSwatchesComponent } from './block-swatches.component';
2
+ export { BlockComponent, ColorBlockModule } from './block.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYmxvY2svcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBCbG9ja1N3YXRjaGVzQ29tcG9uZW50IH0gZnJvbSAnLi9ibG9jay1zd2F0Y2hlcy5jb21wb25lbnQnO1xuZXhwb3J0IHsgQmxvY2tDb21wb25lbnQsIENvbG9yQmxvY2tNb2R1bGUgfSBmcm9tICcuL2Jsb2NrLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,314 @@
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
+ export class ChromeFieldsComponent {
8
+ constructor() {
9
+ this.onChange = new EventEmitter();
10
+ this.view = '';
11
+ this.input = {
12
+ fontSize: '11px',
13
+ color: '#333',
14
+ width: '100%',
15
+ borderRadius: '2px',
16
+ border: 'none',
17
+ boxShadow: 'inset 0 0 0 1px #dadada',
18
+ height: '21px',
19
+ 'text-align': 'center',
20
+ };
21
+ this.label = {
22
+ 'text-transform': 'uppercase',
23
+ fontSize: '11px',
24
+ 'line-height': '11px',
25
+ color: '#969696',
26
+ 'text-align': 'center',
27
+ display: 'block',
28
+ marginTop: '12px',
29
+ };
30
+ }
31
+ ngOnInit() {
32
+ if (this.hsl.a === 1 && this.view !== 'hex') {
33
+ this.view = 'hex';
34
+ }
35
+ else if (this.view !== 'rgb' && this.view !== 'hsl') {
36
+ this.view = 'rgb';
37
+ }
38
+ }
39
+ toggleViews() {
40
+ if (this.view === 'hex') {
41
+ this.view = 'rgb';
42
+ }
43
+ else if (this.view === 'rgb') {
44
+ this.view = 'hsl';
45
+ }
46
+ else if (this.view === 'hsl') {
47
+ if (this.hsl.a === 1) {
48
+ this.view = 'hex';
49
+ }
50
+ else {
51
+ this.view = 'rgb';
52
+ }
53
+ }
54
+ }
55
+ round(value) {
56
+ return Math.round(value);
57
+ }
58
+ handleChange({ data, $event }) {
59
+ if (data.hex) {
60
+ if (isValidHex(data.hex)) {
61
+ const color = new TinyColor(data.hex);
62
+ this.onChange.emit({
63
+ data: {
64
+ hex: this.disableAlpha ? color.toHex() : color.toHex8(),
65
+ source: 'hex',
66
+ },
67
+ $event,
68
+ });
69
+ }
70
+ }
71
+ else if (data.r || data.g || data.b) {
72
+ this.onChange.emit({
73
+ data: {
74
+ r: data.r || this.rgb.r,
75
+ g: data.g || this.rgb.g,
76
+ b: data.b || this.rgb.b,
77
+ source: 'rgb',
78
+ },
79
+ $event,
80
+ });
81
+ }
82
+ else if (data.a) {
83
+ if (data.a < 0) {
84
+ data.a = 0;
85
+ }
86
+ else if (data.a > 1) {
87
+ data.a = 1;
88
+ }
89
+ if (this.disableAlpha) {
90
+ data.a = 1;
91
+ }
92
+ this.onChange.emit({
93
+ data: {
94
+ h: this.hsl.h,
95
+ s: this.hsl.s,
96
+ l: this.hsl.l,
97
+ a: Math.round(data.a * 100) / 100,
98
+ source: 'rgb',
99
+ },
100
+ $event,
101
+ });
102
+ }
103
+ else if (data.h || data.s || data.l) {
104
+ const s = data.s && data.s.replace('%', '');
105
+ const l = data.l && data.l.replace('%', '');
106
+ this.onChange.emit({
107
+ data: {
108
+ h: data.h || this.hsl.h,
109
+ s: Number(s || this.hsl.s),
110
+ l: Number(l || this.hsl.l),
111
+ source: 'hsl',
112
+ },
113
+ $event,
114
+ });
115
+ }
116
+ }
117
+ }
118
+ ChromeFieldsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ChromeFieldsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
119
+ ChromeFieldsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: ChromeFieldsComponent, selector: "color-chrome-fields", inputs: { disableAlpha: "disableAlpha", hsl: "hsl", rgb: "rgb", hex: "hex" }, outputs: { onChange: "onChange" }, ngImport: i0, template: `
120
+ <div class="chrome-wrap">
121
+ <div class="chrome-fields">
122
+ <ng-template [ngIf]="view === 'hex'">
123
+ <div class="chrome-field">
124
+ <color-editable-input
125
+ [style]="{ input: input, label: label }"
126
+ label="hex" [value]="hex"
127
+ (onChange)="handleChange($event)"
128
+ ></color-editable-input>
129
+ </div>
130
+ </ng-template>
131
+ <ng-template [ngIf]="view === 'rgb'">
132
+ <div class="chrome-field">
133
+ <color-editable-input
134
+ [style]="{ input: input, label: label }"
135
+ label="r" [value]="rgb.r"
136
+ (onChange)="handleChange($event)"
137
+ ></color-editable-input>
138
+ </div>
139
+ <div class="chrome-field">
140
+ <color-editable-input
141
+ [style]="{ input: input, label: label }"
142
+ label="g" [value]="rgb.g"
143
+ (onChange)="handleChange($event)"
144
+ ></color-editable-input>
145
+ </div>
146
+ <div class="chrome-field">
147
+ <color-editable-input
148
+ [style]="{ input: input, label: label }"
149
+ label="b" [value]="rgb.b"
150
+ (onChange)="handleChange($event)"
151
+ ></color-editable-input>
152
+ </div>
153
+ <div class="chrome-field">
154
+ <color-editable-input *ngIf="!disableAlpha"
155
+ [style]="{ input: input, label: label }"
156
+ label="a" [value]="rgb.a"
157
+ [arrowOffset]="0.01"
158
+ (onChange)="handleChange($event)"
159
+ ></color-editable-input>
160
+ </div>
161
+ </ng-template>
162
+ <ng-template [ngIf]="view === 'hsl'">
163
+ <div class="chrome-field">
164
+ <color-editable-input
165
+ [style]="{ input: input, label: label }"
166
+ label="h"
167
+ [value]="round(hsl.h)"
168
+ (onChange)="handleChange($event)"
169
+ ></color-editable-input>
170
+ </div>
171
+ <div class="chrome-field">
172
+ <color-editable-input
173
+ [style]="{ input: input, label: label }"
174
+ label="s" [value]="round(hsl.s * 100) + '%'"
175
+ (onChange)="handleChange($event)"
176
+ ></color-editable-input>
177
+ </div>
178
+ <div class="chrome-field">
179
+ <color-editable-input
180
+ [style]="{ input: input, label: label }"
181
+ label="l" [value]="round(hsl.l * 100) + '%'"
182
+ (onChange)="handleChange($event)"
183
+ ></color-editable-input>
184
+ </div>
185
+ <div class="chrome-field">
186
+ <color-editable-input *ngIf="!disableAlpha"
187
+ [style]="{ input: input, label: label }"
188
+ label="a" [value]="hsl.a"
189
+ [arrowOffset]="0.01"
190
+ (onChange)="handleChange($event)"
191
+ ></color-editable-input>
192
+ </div>
193
+ </ng-template>
194
+ </div>
195
+
196
+ <div class="chrome-toggle">
197
+ <div class="chrome-icon" (click)="toggleViews()" #icon>
198
+ <svg class="chrome-toggle-svg" viewBox="0 0 24 24">
199
+ <path #iconUp fill="#333"
200
+ d="M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"
201
+ />
202
+ <path #iconDown fill="#333"
203
+ d="M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15Z"
204
+ />
205
+ </svg>
206
+ </div>
207
+ </div>
208
+ </div>
209
+ `, 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 });
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ChromeFieldsComponent, decorators: [{
211
+ type: Component,
212
+ args: [{ selector: 'color-chrome-fields', template: `
213
+ <div class="chrome-wrap">
214
+ <div class="chrome-fields">
215
+ <ng-template [ngIf]="view === 'hex'">
216
+ <div class="chrome-field">
217
+ <color-editable-input
218
+ [style]="{ input: input, label: label }"
219
+ label="hex" [value]="hex"
220
+ (onChange)="handleChange($event)"
221
+ ></color-editable-input>
222
+ </div>
223
+ </ng-template>
224
+ <ng-template [ngIf]="view === 'rgb'">
225
+ <div class="chrome-field">
226
+ <color-editable-input
227
+ [style]="{ input: input, label: label }"
228
+ label="r" [value]="rgb.r"
229
+ (onChange)="handleChange($event)"
230
+ ></color-editable-input>
231
+ </div>
232
+ <div class="chrome-field">
233
+ <color-editable-input
234
+ [style]="{ input: input, label: label }"
235
+ label="g" [value]="rgb.g"
236
+ (onChange)="handleChange($event)"
237
+ ></color-editable-input>
238
+ </div>
239
+ <div class="chrome-field">
240
+ <color-editable-input
241
+ [style]="{ input: input, label: label }"
242
+ label="b" [value]="rgb.b"
243
+ (onChange)="handleChange($event)"
244
+ ></color-editable-input>
245
+ </div>
246
+ <div class="chrome-field">
247
+ <color-editable-input *ngIf="!disableAlpha"
248
+ [style]="{ input: input, label: label }"
249
+ label="a" [value]="rgb.a"
250
+ [arrowOffset]="0.01"
251
+ (onChange)="handleChange($event)"
252
+ ></color-editable-input>
253
+ </div>
254
+ </ng-template>
255
+ <ng-template [ngIf]="view === 'hsl'">
256
+ <div class="chrome-field">
257
+ <color-editable-input
258
+ [style]="{ input: input, label: label }"
259
+ label="h"
260
+ [value]="round(hsl.h)"
261
+ (onChange)="handleChange($event)"
262
+ ></color-editable-input>
263
+ </div>
264
+ <div class="chrome-field">
265
+ <color-editable-input
266
+ [style]="{ input: input, label: label }"
267
+ label="s" [value]="round(hsl.s * 100) + '%'"
268
+ (onChange)="handleChange($event)"
269
+ ></color-editable-input>
270
+ </div>
271
+ <div class="chrome-field">
272
+ <color-editable-input
273
+ [style]="{ input: input, label: label }"
274
+ label="l" [value]="round(hsl.l * 100) + '%'"
275
+ (onChange)="handleChange($event)"
276
+ ></color-editable-input>
277
+ </div>
278
+ <div class="chrome-field">
279
+ <color-editable-input *ngIf="!disableAlpha"
280
+ [style]="{ input: input, label: label }"
281
+ label="a" [value]="hsl.a"
282
+ [arrowOffset]="0.01"
283
+ (onChange)="handleChange($event)"
284
+ ></color-editable-input>
285
+ </div>
286
+ </ng-template>
287
+ </div>
288
+
289
+ <div class="chrome-toggle">
290
+ <div class="chrome-icon" (click)="toggleViews()" #icon>
291
+ <svg class="chrome-toggle-svg" viewBox="0 0 24 24">
292
+ <path #iconUp fill="#333"
293
+ d="M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"
294
+ />
295
+ <path #iconDown fill="#333"
296
+ d="M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15Z"
297
+ />
298
+ </svg>
299
+ </div>
300
+ </div>
301
+ </div>
302
+ `, 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"] }]
303
+ }], propDecorators: { disableAlpha: [{
304
+ type: Input
305
+ }], hsl: [{
306
+ type: Input
307
+ }], rgb: [{
308
+ type: Input
309
+ }], hex: [{
310
+ type: Input
311
+ }], onChange: [{
312
+ type: Output
313
+ }] } });
314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyb21lLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2Nocm9tZS9jaHJvbWUtZmllbGRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sV0FBVyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQXVJNUMsTUFBTSxPQUFPLHFCQUFxQjtJQXJJbEM7UUEwSVksYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDN0MsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLFVBQUssR0FBMkI7WUFDOUIsUUFBUSxFQUFFLE1BQU07WUFDaEIsS0FBSyxFQUFFLE1BQU07WUFDYixLQUFLLEVBQUUsTUFBTTtZQUNiLFlBQVksRUFBRSxLQUFLO1lBQ25CLE1BQU0sRUFBRSxNQUFNO1lBQ2QsU0FBUyxFQUFFLHlCQUF5QjtZQUNwQyxNQUFNLEVBQUUsTUFBTTtZQUNkLFlBQVksRUFBRSxRQUFRO1NBQ3ZCLENBQUM7UUFDRixVQUFLLEdBQTJCO1lBQzlCLGdCQUFnQixFQUFFLFdBQVc7WUFDN0IsUUFBUSxFQUFFLE1BQU07WUFDaEIsYUFBYSxFQUFFLE1BQU07WUFDckIsS0FBSyxFQUFFLFNBQVM7WUFDaEIsWUFBWSxFQUFFLFFBQVE7WUFDdEIsT0FBTyxFQUFFLE9BQU87WUFDaEIsU0FBUyxFQUFFLE1BQU07U0FDbEIsQ0FBQztLQWtGSDtJQWhGQyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUU7WUFDM0MsSUFBSSxDQUFDLElB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwRlQsbUJBc0NnQix1QkFBdUIsQ0FBQyxNQUFNLHVCQUMxQixLQUFLOzhCQUdqQixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGlzVmFsaWRIZXgsIEhTTEEsIFJHQkEgfSBmcm9tICduZ3gtY29sb3InO1xuaW1wb3J0IHsgVGlueUNvbG9yIH0gZnJvbSAnQGN0cmwvdGlueWNvbG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29sb3ItY2hyb21lLWZpZWxkcycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImNocm9tZS13cmFwXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLWZpZWxkc1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwidmlldyA9PT0gJ2hleCdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLWZpZWxkXCI+XG4gICAgICAgICAgICA8Y29sb3ItZWRpdGFibGUtaW5wdXRcbiAgICAgICAgICAgICAgW3N0eWxlXT1cInsgaW5wdXQ6IGlucHV0LCBsYWJlbDogbGFiZWwgfVwiXG4gICAgICAgICAgICAgIGxhYmVsPVwiaGV4XCIgW3ZhbHVlXT1cImhleFwiXG4gICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jb2xvci1lZGl0YWJsZS1pbnB1dD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInZpZXcgPT09ICdyZ2InXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1maWVsZFwiPlxuICAgICAgICAgICAgPGNvbG9yLWVkaXRhYmxlLWlucHV0XG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7IGlucHV0OiBpbnB1dCwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICBsYWJlbD1cInJcIiBbdmFsdWVdPVwicmdiLnJcIlxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvY29sb3ItZWRpdGFibGUtaW5wdXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1maWVsZFwiPlxuICAgICAgICAgICAgPGNvbG9yLWVkaXRhYmxlLWlucHV0XG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7IGlucHV0OiBpbnB1dCwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICBsYWJlbD1cImdcIiBbdmFsdWVdPVwicmdiLmdcIlxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvY29sb3ItZWRpdGFibGUtaW5wdXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1maWVsZFwiPlxuICAgICAgICAgICAgPGNvbG9yLWVkaXRhYmxlLWlucHV0XG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7IGlucHV0OiBpbnB1dCwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICBsYWJlbD1cImJcIiBbdmFsdWVdPVwicmdiLmJcIlxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvY29sb3ItZWRpdGFibGUtaW5wdXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1maWVsZFwiPlxuICAgICAgICAgICAgPGNvbG9yLWVkaXRhYmxlLWlucHV0ICpuZ0lmPVwiIWRpc2FibGVBbHBoYVwiXG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7IGlucHV0OiBpbnB1dCwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICBsYWJlbD1cImFcIiBbdmFsdWVdPVwicmdiLmFcIlxuICAgICAgICAgICAgICBbYXJyb3dPZmZzZXRdPVwiMC4wMVwiXG4gICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jb2xvci1lZGl0YWJsZS1pbnB1dD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInZpZXcgPT09ICdoc2wnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1maWVsZFwiPlxuICAgICAgICAgICAgPGNvbG9yLWVkaXRhYmxlLWlucHV0XG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7IGlucHV0OiBpbnB1dCwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICBsYWJlbD1cImhcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwicm91bmQoaHNsLmgpXCJcbiAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2NvbG9yLWVkaXRhYmxlLWlucHV0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJvbWUtZmllbGRcIj5cbiAgICAgICAgICAgIDxjb2xvci1lZGl0YWJsZS1pbnB1dFxuICAgICAgICAgICAgICBbc3R5bGVdPVwieyBpbnB1dDogaW5wdXQsIGxhYmVsOiBsYWJlbCB9XCJcbiAgICAgICAgICAgICAgbGFiZWw9XCJzXCIgW3ZhbHVlXT1cInJvdW5kKGhzbC5zICogMTAwKSArICclJ1wiXG4gICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jb2xvci1lZGl0YWJsZS1pbnB1dD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLWZpZWxkXCI+XG4gICAgICAgICAgICA8Y29sb3ItZWRpdGFibGUtaW5wdXRcbiAgICAgICAgICAgICAgW3N0eWxlXT1cInsgaW5wdXQ6IGlucHV0LCBsYWJlbDogbGFiZWwgfVwiXG4gICAgICAgICAgICAgIGxhYmVsPVwibFwiIFt2YWx1ZV09XCJyb3VuZChoc2wubCAqIDEwMCkgKyAnJSdcIlxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvY29sb3ItZWRpdGFibGUtaW5wdXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1maWVsZFwiPlxuICAgICAgICAgICAgPGNvbG9yLWVkaXRhYmxlLWlucHV0ICpuZ0lmPVwiIWRpc2FibGVBbHBoYVwiXG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7IGlucHV0OiBpbnB1dCwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICBsYWJlbD1cImFcIiBbdmFsdWVdPVwiaHNsLmFcIlxuICAgICAgICAgICAgICBbYXJyb3dPZmZzZXRdPVwiMC4wMVwiXG4gICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jb2xvci1lZGl0YWJsZS1pbnB1dD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLXRvZ2dsZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLWljb25cIiAoY2xpY2spPVwidG9nZ2xlVmlld3MoKVwiICNpY29uPlxuICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaHJvbWUtdG9nZ2xlLXN2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgIDxwYXRoICNpY29uVXAgZmlsbD1cIiMzMzNcIlxuICAgICAgICAgICAgICBkPVwiTTEyLDUuODNMMTUuMTcsOUwxNi41OCw3LjU5TDEyLDNMNy40MSw3LjU5TDguODMsOUwxMiw1LjgzWlwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHBhdGggI2ljb25Eb3duIGZpbGw9XCIjMzMzXCJcbiAgICAgICAgICAgICAgZD1cIk0xMiwxOC4xN0w4LjgzLDE1TDcuNDIsMTYuNDFMMTIsMjFMMTYuNTksMTYuNDFMMTUuMTcsMTVaXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5jaHJvbWUtd3JhcCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuICAgICAgLmNocm9tZS1maWVsZHMge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTZweDtcbiAgICAgIH1cbiAgICAgIC5jaHJvbWUtZmllbGQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgICAuY2hyb21lLXRvZ2dsZSB7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuICAgICAgLmNocm9tZS1pY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICAgIC5jaHJvbWUtdG9nZ2xlLXN2ZyB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHRyYW5zcGFyZW50IHNvbGlkO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICB9XG4gICAgICAuY2hyb21lLXRvZ2dsZS1zdmc6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWVlO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hyb21lRmllbGRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZGlzYWJsZUFscGhhITogYm9vbGVhbjtcbiAgQElucHV0KCkgaHNsITogSFNMQTtcbiAgQElucHV0KCkgcmdiITogUkdCQTtcbiAgQElucHV0KCkgaGV4ITogc3RyaW5nO1xuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgdmlldyA9ICcnO1xuICBpbnB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBmb250U2l6ZTogJzExcHgnLFxuICAgIGNvbG9yOiAnIzMzMycsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBib3JkZXJSYWRpdXM6ICcycHgnLFxuICAgIGJvcmRlcjogJ25vbmUnLFxuICAgIGJveFNoYWRvdzogJ2luc2V0IDAgMCAwIDFweCAjZGFkYWRhJyxcbiAgICBoZWlnaHQ6ICcyMXB4JyxcbiAgICAndGV4dC1hbGlnbic6ICdjZW50ZXInLFxuICB9O1xuICBsYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAndGV4dC10cmFuc2Zvcm0nOiAndXBwZXJjYXNlJyxcbiAgICBmb250U2l6ZTogJzExcHgnLFxuICAgICdsaW5lLWhlaWdodCc6ICcxMXB4JyxcbiAgICBjb2xvcjogJyM5Njk2OTYnLFxuICAgICd0ZXh0LWFsaWduJzogJ2NlbnRlcicsXG4gICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICBtYXJnaW5Ub3A6ICcxMnB4JyxcbiAgfTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5oc2wuYSA9PT0gMSAmJiB0aGlzLnZpZXcgIT09ICdoZXgnKSB7XG4gICAgICB0aGlzLnZpZXcgPSAnaGV4JztcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyAhPT0gJ3JnYicgJiYgdGhpcy52aWV3ICE9PSAnaHNsJykge1xuICAgICAgdGhpcy52aWV3ID0gJ3JnYic7XG4gICAgfVxuICB9XG4gIHRvZ2dsZVZpZXdzKCkge1xuICAgIGlmICh0aGlzLnZpZXcgPT09ICdoZXgnKSB7XG4gICAgICB0aGlzLnZpZXcgPSAncmdiJztcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ3JnYicpIHtcbiAgICAgIHRoaXMudmlldyA9ICdoc2wnO1xuICAgIH0gZWxzZSBpZiAodGhpcy52aWV3ID09PSAnaHNsJykge1xuICAgICAgaWYgKHRoaXMuaHNsLmEgPT09IDEpIHtcbiAgICAgICAgdGhpcy52aWV3ID0gJ2hleCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnZpZXcgPSAncmdiJztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcm91bmQodmFsdWUpIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSk7XG4gIH1cbiAgaGFuZGxlQ2hhbmdlKHsgZGF0YSwgJGV2ZW50IH0pIHtcbiAgICBpZiAoZGF0YS5oZXgpIHtcbiAgICAgIGlmIChpc1ZhbGlkSGV4KGRhdGEuaGV4KSkge1xuICAgICAgICBjb25zdCBjb2xvciA9IG5ldyBUaW55Q29sb3IoZGF0YS5oZXgpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGhleDogdGhpcy5kaXNhYmxlQWxwaGEgPyBjb2xvci50b0hleCgpIDogY29sb3IudG9IZXg4KCksXG4gICAgICAgICAgICBzb3VyY2U6ICdoZXgnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgJGV2ZW50LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRhdGEuciB8fCBkYXRhLmcgfHwgZGF0YS5iKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgcjogZGF0YS5yIHx8IHRoaXMucmdiLnIsXG4gICAgICAgICAgZzogZGF0YS5nIHx8IHRoaXMucmdiLmcsXG4gICAgICAgICAgYjogZGF0YS5iIHx8IHRoaXMucmdiLmIsXG4gICAgICAgICAgc291cmNlOiAncmdiJyxcbiAgICAgICAgfSxcbiAgICAgICAgJGV2ZW50LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChkYXRhLmEpIHtcbiAgICAgIGlmIChkYXRhLmEgPCAwKSB7XG4gICAgICAgIGRhdGEuYSA9IDA7XG4gICAgICB9IGVsc2UgaWYgKGRhdGEuYSA+IDEpIHtcbiAgICAgICAgZGF0YS5hID0gMTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZGlzYWJsZUFscGhhKSB7XG4gICAgICAgIGRhdGEuYSA9IDE7XG4gICAgICB9XG5cbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBoOiB0aGlzLmhzbC5oLFxuICAgICAgICAgIHM6IHRoaXMuaHNsLnMsXG4gICAgICAgICAgbDogdGhpcy5oc2wubCxcbiAgICAgICAgICBhOiBNYXRoLnJvdW5kKGRhdGEuYSAqIDEwMCkgLyAxMDAsXG4gICAgICAgICAgc291cmNlOiAncmdiJyxcbiAgICAgICAgfSxcbiAgICAgICAgJGV2ZW50LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChkYXRhLmggfHwgZGF0YS5zIHx8IGRhdGEubCkge1xuICAgICAgY29uc3QgcyA9IGRhdGEucyAmJiBkYXRhLnMucmVwbGFjZSgnJScsICcnKTtcbiAgICAgIGNvbnN0IGwgPSBkYXRhLmwgJiYgZGF0YS5sLnJlcGxhY2UoJyUnLCAnJyk7XG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgaDogZGF0YS5oIHx8IHRoaXMuaHNsLmgsXG4gICAgICAgICAgczogTnVtYmVyKHMgfHwgdGhpcy5oc2wucyksXG4gICAgICAgICAgbDogTnVtYmVyKGwgfHwgdGhpcy5oc2wubCksXG4gICAgICAgICAgc291cmNlOiAnaHNsJyxcbiAgICAgICAgfSxcbiAgICAgICAgJGV2ZW50LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=