ngx-color 7.3.1 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +281 -0
- package/alpha.component.d.ts +1 -1
- package/checkboard.component.d.ts +1 -1
- package/color-wrap.component.d.ts +1 -1
- package/coordinates.directive.d.ts +1 -1
- package/editable-input.component.d.ts +1 -1
- package/esm2020/alpha.component.mjs +13 -61
- package/esm2020/checkboard.component.mjs +9 -25
- package/esm2020/color-wrap.component.mjs +8 -8
- package/esm2020/coordinates.directive.mjs +7 -7
- package/esm2020/editable-input.component.mjs +11 -25
- package/esm2020/hue.component.mjs +13 -54
- package/esm2020/raised.component.mjs +10 -49
- package/esm2020/saturation.component.mjs +13 -57
- package/esm2020/shade.component.mjs +11 -51
- package/esm2020/swatch.component.mjs +13 -28
- package/fesm2015/ngx-color.mjs +92 -349
- package/fesm2015/ngx-color.mjs.map +1 -1
- package/fesm2020/ngx-color.mjs +92 -349
- package/fesm2020/ngx-color.mjs.map +1 -1
- package/hue.component.d.ts +1 -1
- package/{ngx-color.d.ts → index.d.ts} +0 -0
- package/package.json +11 -123
- package/raised.component.d.ts +1 -1
- package/saturation.component.d.ts +1 -1
- package/shade.component.d.ts +1 -1
- package/swatch.component.d.ts +1 -1
- package/alpha/alpha-picker.component.d.ts +0 -28
- package/alpha/ngx-color-alpha.d.ts +0 -5
- package/alpha/package.json +0 -17
- package/alpha/public_api.d.ts +0 -1
- package/block/block-swatches.component.d.ts +0 -24
- package/block/block.component.d.ts +0 -36
- package/block/ngx-color-block.d.ts +0 -5
- package/block/package.json +0 -16
- package/block/public_api.d.ts +0 -2
- package/chrome/chrome-fields.component.d.ts +0 -22
- package/chrome/chrome.component.d.ts +0 -25
- package/chrome/ngx-color-chrome.d.ts +0 -5
- package/chrome/package.json +0 -16
- package/chrome/public_api.d.ts +0 -2
- package/circle/circle-swatch.component.d.ts +0 -19
- package/circle/circle.component.d.ts +0 -32
- package/circle/ngx-color-circle.d.ts +0 -5
- package/circle/package.json +0 -19
- package/circle/public_api.d.ts +0 -2
- package/compact/compact-color.component.d.ts +0 -19
- package/compact/compact-fields.component.d.ts +0 -32
- package/compact/compact.component.d.ts +0 -30
- package/compact/ngx-color-compact.d.ts +0 -5
- package/compact/package.json +0 -16
- package/compact/public_api.d.ts +0 -3
- package/esm2020/alpha/alpha-picker.component.mjs +0 -116
- package/esm2020/alpha/ngx-color-alpha.mjs +0 -5
- package/esm2020/alpha/public_api.mjs +0 -2
- package/esm2020/block/block-swatches.component.mjs +0 -74
- package/esm2020/block/block.component.mjs +0 -199
- package/esm2020/block/ngx-color-block.mjs +0 -5
- package/esm2020/block/public_api.mjs +0 -3
- package/esm2020/chrome/chrome-fields.component.mjs +0 -356
- package/esm2020/chrome/chrome.component.mjs +0 -249
- package/esm2020/chrome/ngx-color-chrome.mjs +0 -5
- package/esm2020/chrome/public_api.mjs +0 -3
- package/esm2020/circle/circle-swatch.component.mjs +0 -85
- package/esm2020/circle/circle.component.mjs +0 -148
- package/esm2020/circle/ngx-color-circle.mjs +0 -5
- package/esm2020/circle/public_api.mjs +0 -3
- package/esm2020/compact/compact-color.component.mjs +0 -91
- package/esm2020/compact/compact-fields.component.mjs +0 -186
- package/esm2020/compact/compact.component.mjs +0 -177
- package/esm2020/compact/ngx-color-compact.mjs +0 -5
- package/esm2020/compact/public_api.mjs +0 -4
- package/esm2020/github/github-swatch.component.mjs +0 -67
- package/esm2020/github/github.component.mjs +0 -179
- package/esm2020/github/ngx-color-github.mjs +0 -5
- package/esm2020/github/public_api.mjs +0 -3
- package/esm2020/hue/hue-picker.component.mjs +0 -113
- package/esm2020/hue/ngx-color-hue.mjs +0 -5
- package/esm2020/hue/public_api.mjs +0 -2
- package/esm2020/material/material.component.mjs +0 -211
- package/esm2020/material/ngx-color-material.mjs +0 -5
- package/esm2020/material/public_api.mjs +0 -2
- package/esm2020/photoshop/ngx-color-photoshop.mjs +0 -5
- package/esm2020/photoshop/photoshop-button.component.mjs +0 -63
- package/esm2020/photoshop/photoshop-fields.component.mjs +0 -241
- package/esm2020/photoshop/photoshop-previews.component.mjs +0 -68
- package/esm2020/photoshop/photoshop.component.mjs +0 -258
- package/esm2020/photoshop/public_api.mjs +0 -5
- package/esm2020/shade/ngx-color-shade.mjs +0 -5
- package/esm2020/shade/public_api.mjs +0 -2
- package/esm2020/shade/shade-picker.component.mjs +0 -105
- package/esm2020/sketch/ngx-color-sketch.mjs +0 -5
- package/esm2020/sketch/public_api.mjs +0 -4
- package/esm2020/sketch/sketch-fields.component.mjs +0 -243
- package/esm2020/sketch/sketch-preset-colors.component.mjs +0 -98
- package/esm2020/sketch/sketch.component.mjs +0 -283
- package/esm2020/slider/ngx-color-slider.mjs +0 -5
- package/esm2020/slider/public_api.mjs +0 -4
- package/esm2020/slider/slider-swatch.component.mjs +0 -80
- package/esm2020/slider/slider-swatches.component.mjs +0 -135
- package/esm2020/slider/slider.component.mjs +0 -116
- package/esm2020/swatches/ngx-color-swatches.mjs +0 -5
- package/esm2020/swatches/public_api.mjs +0 -4
- package/esm2020/swatches/swatches-color.component.mjs +0 -123
- package/esm2020/swatches/swatches-group.component.mjs +0 -64
- package/esm2020/swatches/swatches.component.mjs +0 -258
- package/esm2020/twitter/ngx-color-twitter.mjs +0 -5
- package/esm2020/twitter/public_api.mjs +0 -2
- package/esm2020/twitter/twitter.component.mjs +0 -255
- package/fesm2015/ngx-color-alpha.mjs +0 -123
- package/fesm2015/ngx-color-alpha.mjs.map +0 -1
- package/fesm2015/ngx-color-block.mjs +0 -275
- package/fesm2015/ngx-color-block.mjs.map +0 -1
- package/fesm2015/ngx-color-chrome.mjs +0 -606
- package/fesm2015/ngx-color-chrome.mjs.map +0 -1
- package/fesm2015/ngx-color-circle.mjs +0 -237
- package/fesm2015/ngx-color-circle.mjs.map +0 -1
- package/fesm2015/ngx-color-compact.mjs +0 -451
- package/fesm2015/ngx-color-compact.mjs.map +0 -1
- package/fesm2015/ngx-color-github.mjs +0 -250
- package/fesm2015/ngx-color-github.mjs.map +0 -1
- package/fesm2015/ngx-color-hue.mjs +0 -120
- package/fesm2015/ngx-color-hue.mjs.map +0 -1
- package/fesm2015/ngx-color-material.mjs +0 -218
- package/fesm2015/ngx-color-material.mjs.map +0 -1
- package/fesm2015/ngx-color-photoshop.mjs +0 -626
- package/fesm2015/ngx-color-photoshop.mjs.map +0 -1
- package/fesm2015/ngx-color-shade.mjs +0 -112
- package/fesm2015/ngx-color-shade.mjs.map +0 -1
- package/fesm2015/ngx-color-sketch.mjs +0 -620
- package/fesm2015/ngx-color-sketch.mjs.map +0 -1
- package/fesm2015/ngx-color-slider.mjs +0 -331
- package/fesm2015/ngx-color-slider.mjs.map +0 -1
- package/fesm2015/ngx-color-swatches.mjs +0 -441
- package/fesm2015/ngx-color-swatches.mjs.map +0 -1
- package/fesm2015/ngx-color-twitter.mjs +0 -262
- package/fesm2015/ngx-color-twitter.mjs.map +0 -1
- package/fesm2020/ngx-color-alpha.mjs +0 -123
- package/fesm2020/ngx-color-alpha.mjs.map +0 -1
- package/fesm2020/ngx-color-block.mjs +0 -275
- package/fesm2020/ngx-color-block.mjs.map +0 -1
- package/fesm2020/ngx-color-chrome.mjs +0 -606
- package/fesm2020/ngx-color-chrome.mjs.map +0 -1
- package/fesm2020/ngx-color-circle.mjs +0 -237
- package/fesm2020/ngx-color-circle.mjs.map +0 -1
- package/fesm2020/ngx-color-compact.mjs +0 -451
- package/fesm2020/ngx-color-compact.mjs.map +0 -1
- package/fesm2020/ngx-color-github.mjs +0 -250
- package/fesm2020/ngx-color-github.mjs.map +0 -1
- package/fesm2020/ngx-color-hue.mjs +0 -120
- package/fesm2020/ngx-color-hue.mjs.map +0 -1
- package/fesm2020/ngx-color-material.mjs +0 -218
- package/fesm2020/ngx-color-material.mjs.map +0 -1
- package/fesm2020/ngx-color-photoshop.mjs +0 -626
- package/fesm2020/ngx-color-photoshop.mjs.map +0 -1
- package/fesm2020/ngx-color-shade.mjs +0 -112
- package/fesm2020/ngx-color-shade.mjs.map +0 -1
- package/fesm2020/ngx-color-sketch.mjs +0 -620
- package/fesm2020/ngx-color-sketch.mjs.map +0 -1
- package/fesm2020/ngx-color-slider.mjs +0 -331
- package/fesm2020/ngx-color-slider.mjs.map +0 -1
- package/fesm2020/ngx-color-swatches.mjs +0 -441
- package/fesm2020/ngx-color-swatches.mjs.map +0 -1
- package/fesm2020/ngx-color-twitter.mjs +0 -262
- package/fesm2020/ngx-color-twitter.mjs.map +0 -1
- package/github/github-swatch.component.d.ts +0 -19
- package/github/github.component.d.ts +0 -28
- package/github/ngx-color-github.d.ts +0 -5
- package/github/package.json +0 -16
- package/github/public_api.d.ts +0 -2
- package/hue/hue-picker.component.d.ts +0 -29
- package/hue/ngx-color-hue.d.ts +0 -5
- package/hue/package.json +0 -15
- package/hue/public_api.d.ts +0 -1
- package/material/material.component.d.ts +0 -39
- package/material/ngx-color-material.d.ts +0 -5
- package/material/package.json +0 -15
- package/material/public_api.d.ts +0 -1
- package/photoshop/ngx-color-photoshop.d.ts +0 -5
- package/photoshop/package.json +0 -15
- package/photoshop/photoshop-button.component.d.ts +0 -9
- package/photoshop/photoshop-fields.component.d.ts +0 -22
- package/photoshop/photoshop-previews.component.d.ts +0 -11
- package/photoshop/photoshop.component.d.ts +0 -33
- package/photoshop/public_api.d.ts +0 -4
- package/shade/ngx-color-shade.d.ts +0 -5
- package/shade/package.json +0 -17
- package/shade/public_api.d.ts +0 -1
- package/shade/shade-picker.component.d.ts +0 -27
- package/sketch/ngx-color-sketch.d.ts +0 -5
- package/sketch/package.json +0 -15
- package/sketch/public_api.d.ts +0 -3
- package/sketch/sketch-fields.component.d.ts +0 -23
- package/sketch/sketch-preset-colors.component.d.ts +0 -24
- package/sketch/sketch.component.d.ts +0 -32
- package/slider/ngx-color-slider.d.ts +0 -5
- package/slider/package.json +0 -15
- package/slider/public_api.d.ts +0 -3
- package/slider/slider-swatch.component.d.ts +0 -16
- package/slider/slider-swatches.component.d.ts +0 -15
- package/slider/slider.component.d.ts +0 -22
- package/swatches/ngx-color-swatches.d.ts +0 -5
- package/swatches/package.json +0 -18
- package/swatches/public_api.d.ts +0 -3
- package/swatches/swatches-color.component.d.ts +0 -18
- package/swatches/swatches-group.component.d.ts +0 -10
- package/swatches/swatches.component.d.ts +0 -29
- package/twitter/ngx-color-twitter.d.ts +0 -5
- package/twitter/package.json +0 -15
- package/twitter/public_api.d.ts +0 -1
- package/twitter/twitter.component.d.ts +0 -31
@@ -1,199 +0,0 @@
|
|
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 "ngx-color";
|
8
|
-
import * as i2 from "@angular/common";
|
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: "13.0.0", ngImport: i0, type: BlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
62
|
-
BlockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", 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"], components: [{ type: i0.forwardRef(function () { return i1.CheckboardComponent; }), selector: "color-checkboard", inputs: ["white", "size", "grey", "boxShadow", "borderRadius"] }, { type: i0.forwardRef(function () { return BlockSwatchesComponent; }), selector: "color-block-swatches", inputs: ["colors"], outputs: ["onClick", "onSwatchHover"] }, { type: i0.forwardRef(function () { return i1.EditableInputComponent; }), selector: "color-editable-input", inputs: ["style", "label", "value", "arrowOffset", "dragLabel", "dragMax", "placeholder"], outputs: ["onChange"] }], directives: [{ type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: BlockComponent, decorators: [{
|
100
|
-
type: Component,
|
101
|
-
args: [{
|
102
|
-
selector: 'color-block',
|
103
|
-
template: `
|
104
|
-
<div class="block-card block-picker {{ className }}">
|
105
|
-
<div class="block-triangle" *ngIf="triangle !== 'hide'"
|
106
|
-
[style.border-color]="'transparent transparent ' + this.hex + ' transparent'"
|
107
|
-
></div>
|
108
|
-
|
109
|
-
<div class="block-head" [style.background]="hex">
|
110
|
-
<color-checkboard *ngIf="hex === 'transparent'"
|
111
|
-
borderRadius="6px 6px 0 0"
|
112
|
-
></color-checkboard>
|
113
|
-
<div class="block-label" [style.color]="getContrastingColor(hex)">
|
114
|
-
{{ hex }}
|
115
|
-
</div>
|
116
|
-
</div>
|
117
|
-
|
118
|
-
<div class="block-body">
|
119
|
-
<color-block-swatches [colors]="colors"
|
120
|
-
(onClick)="handleBlockChange($event)"
|
121
|
-
(onSwatchHover)="onSwatchHover.emit($event)"
|
122
|
-
></color-block-swatches>
|
123
|
-
<color-editable-input [value]="hex"
|
124
|
-
(onChange)="handleValueChange($event)"
|
125
|
-
[style]="{input: input, wrap: wrap}"
|
126
|
-
></color-editable-input>
|
127
|
-
</div>
|
128
|
-
</div>
|
129
|
-
`,
|
130
|
-
styles: [
|
131
|
-
`
|
132
|
-
.block-card {
|
133
|
-
background: #fff;
|
134
|
-
border-radius: 6px;
|
135
|
-
box-shadow: 0 1px rgba(0, 0, 0, .1);
|
136
|
-
position: relative;
|
137
|
-
}
|
138
|
-
.block-head {
|
139
|
-
align-items: center;
|
140
|
-
border-radius: 6px 6px 0 0;
|
141
|
-
display: flex;
|
142
|
-
height: 110px;
|
143
|
-
justify-content: center;
|
144
|
-
position: relative;
|
145
|
-
}
|
146
|
-
.block-body {
|
147
|
-
padding: 10px;
|
148
|
-
}
|
149
|
-
.block-label {
|
150
|
-
font-size: 18px;
|
151
|
-
position: relative;
|
152
|
-
}
|
153
|
-
.block-triangle {
|
154
|
-
border-style: solid;
|
155
|
-
border-width: 0 10px 10px 10px;
|
156
|
-
height: 0;
|
157
|
-
left: 50%;
|
158
|
-
margin-left: -10px;
|
159
|
-
position: absolute;
|
160
|
-
top: -10px;
|
161
|
-
width: 0;
|
162
|
-
}
|
163
|
-
`,
|
164
|
-
],
|
165
|
-
preserveWhitespaces: false,
|
166
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
167
|
-
providers: [
|
168
|
-
{
|
169
|
-
provide: NG_VALUE_ACCESSOR,
|
170
|
-
useExisting: forwardRef(() => BlockComponent),
|
171
|
-
multi: true,
|
172
|
-
},
|
173
|
-
{
|
174
|
-
provide: ColorWrap,
|
175
|
-
useExisting: forwardRef(() => BlockComponent),
|
176
|
-
},
|
177
|
-
]
|
178
|
-
}]
|
179
|
-
}], ctorParameters: function () { return []; }, propDecorators: { width: [{
|
180
|
-
type: Input
|
181
|
-
}], colors: [{
|
182
|
-
type: Input
|
183
|
-
}], triangle: [{
|
184
|
-
type: Input
|
185
|
-
}] } });
|
186
|
-
export class ColorBlockModule {
|
187
|
-
}
|
188
|
-
ColorBlockModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorBlockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
189
|
-
ColorBlockModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorBlockModule, declarations: [BlockComponent, BlockSwatchesComponent], imports: [CommonModule, CheckboardModule, SwatchModule, EditableInputModule], exports: [BlockComponent, BlockSwatchesComponent] });
|
190
|
-
ColorBlockModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorBlockModule, imports: [[CommonModule, CheckboardModule, SwatchModule, EditableInputModule]] });
|
191
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorBlockModule, decorators: [{
|
192
|
-
type: NgModule,
|
193
|
-
args: [{
|
194
|
-
declarations: [BlockComponent, BlockSwatchesComponent],
|
195
|
-
exports: [BlockComponent, BlockSwatchesComponent],
|
196
|
-
imports: [CommonModule, CheckboardModule, SwatchModule, EditableInputModule],
|
197
|
-
}]
|
198
|
-
}] });
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9ibG9jay9ibG9jay5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixVQUFVLEVBQ1YsWUFBWSxHQUNiLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBZ0ZuRCxNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQVM7SUFrQzNDO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFsQ1YsbUNBQW1DO1FBQzFCLFVBQUssR0FBb0IsR0FBRyxDQUFDO1FBQ3RDLCtCQUErQjtRQUN0QixXQUFNLEdBQUc7WUFDaEIsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1lBQ1QsU0FBUztZQUNULFNBQVM7WUFDVCxTQUFTO1NBQ1YsQ0FBQztRQUNPLGFBQVEsR0FBbUIsS0FBSyxDQUFDO1FBQzFDLFVBQUssR0FBNEI7WUFDL0IsS0FBSyxFQUFFLE1BQU07WUFDYixRQUFRLEVBQUUsTUFBTTtZQUNoQixLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxLQUFLO1lBQ2IsT0FBTyxFQUFFLE1BQU07WUFDZixNQUFNLEVBQUUsTUFBTTtZQUNkLFNBQVMsRUFBRSxzQkFBc0I7WUFDakMsWUFBWSxFQUFFLEtBQUs7WUFDbkIsT0FBTyxFQUFFLE9BQU87WUFDaEIsU0FBUyxFQUFFLFlBQVk7U0FDeEIsQ0FBQztRQUNGLFNBQUksR0FBNEI7WUFDOUIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLE1BQU07U0FDZCxDQUFDO1FBQ0YsaUJBQVksR0FBRyxJQUFJLENBQUM7SUFJcEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtRQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNELG1CQUFtQixDQUFDLEdBQUc7UUFDckIsT0FBTyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsaUJBQWlCLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO1FBQy9CLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLGtCQUFrQjtZQUNsQixJQUFJLENBQUMsWUFBWSxDQUNmO2dCQUNFLEdBQUc7Z0JBQ0gsTUFBTSxFQUFFLEtBQUs7YUFDZCxFQUNELE1BQU0sQ0FDUCxDQUFDO1NBQ0g7SUFDSCxDQUFDOzsyR0F2RFUsY0FBYzsrRkFBZCxjQUFjLDBHQVpkO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO1lBQzdDLEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRDtZQUNFLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO1NBQzlDO0tBQ0YsaURBMUVTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCVCx3cUJBNkc4QixzQkFBc0I7MkZBM0QxQyxjQUFjO2tCQTlFMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCVDtvQkFDRCxNQUFNLEVBQUU7d0JBQ047Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NEO3FCQUNBO29CQUNELG1CQUFtQixFQUFFLEtBQUs7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDOzRCQUM3QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsU0FBUzs0QkFDbEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDO3lCQUM5QztxQkFDRjtpQkFDRjswRUFHVSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQVdHLFFBQVE7c0JBQWhCLEtBQUs7O0FBZ0RSLE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixpQkEvRGhCLGNBQWMsRUEyRE0sc0JBQXNCLGFBRTNDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLGFBN0RoRSxjQUFjLEVBNERDLHNCQUFzQjs4R0FHckMsZ0JBQWdCLFlBRmxCLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxtQkFBbUIsQ0FBQzsyRkFFakUsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsRUFBRSxzQkFBc0IsQ0FBQztvQkFDdEQsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLHNCQUFzQixDQUFDO29CQUNqRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixDQUFDO2lCQUM3RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQ2hlY2tib2FyZE1vZHVsZSxcbiAgQ29sb3JXcmFwLFxuICBFZGl0YWJsZUlucHV0TW9kdWxlLFxuICBnZXRDb250cmFzdGluZ0NvbG9yLFxuICBpc1ZhbGlkSGV4LFxuICBTd2F0Y2hNb2R1bGUsXG59IGZyb20gJ25neC1jb2xvcic7XG5pbXBvcnQgeyBCbG9ja1N3YXRjaGVzQ29tcG9uZW50IH0gZnJvbSAnLi9ibG9jay1zd2F0Y2hlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvbG9yLWJsb2NrJyxcbiAgdGVtcGxhdGU6IGBcbiAgPGRpdiBjbGFzcz1cImJsb2NrLWNhcmQgYmxvY2stcGlja2VyIHt7IGNsYXNzTmFtZSB9fVwiPlxuICAgIDxkaXYgY2xhc3M9XCJibG9jay10cmlhbmdsZVwiICpuZ0lmPVwidHJpYW5nbGUgIT09ICdoaWRlJ1wiXG4gICAgICBbc3R5bGUuYm9yZGVyLWNvbG9yXT1cIid0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAnICsgdGhpcy5oZXggKyAnIHRyYW5zcGFyZW50J1wiXG4gICAgPjwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImJsb2NrLWhlYWRcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJoZXhcIj5cbiAgICAgIDxjb2xvci1jaGVja2JvYXJkICpuZ0lmPVwiaGV4ID09PSAndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiNnB4IDZweCAwIDBcIlxuICAgICAgPjwvY29sb3ItY2hlY2tib2FyZD5cbiAgICAgIDxkaXYgY2xhc3M9XCJibG9jay1sYWJlbFwiIFtzdHlsZS5jb2xvcl09XCJnZXRDb250cmFzdGluZ0NvbG9yKGhleClcIj5cbiAgICAgICAge3sgaGV4IH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJibG9jay1ib2R5XCI+XG4gICAgICA8Y29sb3ItYmxvY2stc3dhdGNoZXMgW2NvbG9yc109XCJjb2xvcnNcIlxuICAgICAgICAob25DbGljayk9XCJoYW5kbGVCbG9ja0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKG9uU3dhdGNoSG92ZXIpPVwib25Td2F0Y2hIb3Zlci5lbWl0KCRldmVudClcIlxuICAgICAgPjwvY29sb3ItYmxvY2stc3dhdGNoZXM+XG4gICAgICA8Y29sb3ItZWRpdGFibGUtaW5wdXQgW3ZhbHVlXT1cImhleFwiXG4gICAgICAgIChvbkNoYW5nZSk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW3N0eWxlXT1cIntpbnB1dDogaW5wdXQsIHdyYXA6IHdyYXB9XCJcbiAgICAgID48L2NvbG9yLWVkaXRhYmxlLWlucHV0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgIC5ibG9jay1jYXJkIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBib3gtc2hhZG93OiAwIDFweCByZ2JhKDAsIDAsIDAsIC4xKTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgLmJsb2NrLWhlYWQge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDZweCA2cHggMCAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGhlaWdodDogMTEwcHg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgLmJsb2NrLWJvZHkge1xuICAgICAgcGFkZGluZzogMTBweDtcbiAgICB9XG4gICAgLmJsb2NrLWxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgLmJsb2NrLXRyaWFuZ2xlIHtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItd2lkdGg6IDAgMTBweCAxMHB4IDEwcHg7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC0xMHB4O1xuICAgICAgd2lkdGg6IDA7XG4gICAgfVxuICBgLFxuICBdLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQmxvY2tDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBDb2xvcldyYXAsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBCbG9ja0NvbXBvbmVudCksXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCbG9ja0NvbXBvbmVudCBleHRlbmRzIENvbG9yV3JhcCB7XG4gIC8qKiBQaXhlbCB2YWx1ZSBmb3IgcGlja2VyIHdpZHRoICovXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgfCBudW1iZXIgPSAxNzA7XG4gIC8qKiBDb2xvciBzcXVhcmVzIHRvIGRpc3BsYXkgKi9cbiAgQElucHV0KCkgY29sb3JzID0gW1xuICAgICcjRDlFM0YwJyxcbiAgICAnI0Y0NzM3MycsXG4gICAgJyM2OTc2ODknLFxuICAgICcjMzdENjdBJyxcbiAgICAnIzJDQ0NFNCcsXG4gICAgJyM1NTU1NTUnLFxuICAgICcjZGNlNzc1JyxcbiAgICAnI2ZmOGE2NScsXG4gICAgJyNiYTY4YzgnLFxuICBdO1xuICBASW5wdXQoKSB0cmlhbmdsZTogJ3RvcCcgfCAnaGlkZScgPSAndG9wJztcbiAgaW5wdXQ6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge1xuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgZm9udFNpemU6ICcxMnB4JyxcbiAgICBjb2xvcjogJyM2NjYnLFxuICAgIGJvcmRlcjogJzBweCcsXG4gICAgb3V0bGluZTogJ25vbmUnLFxuICAgIGhlaWdodDogJzIycHgnLFxuICAgIGJveFNoYWRvdzogJ2luc2V0IDAgMCAwIDFweCAjZGRkJyxcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIHBhZGRpbmc6ICcwIDdweCcsXG4gICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gIH07XG4gIHdyYXA6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gIH07XG4gIGRpc2FibGVBbHBoYSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGhhbmRsZVZhbHVlQ2hhbmdlKHsgZGF0YSwgJGV2ZW50IH0pIHtcbiAgICB0aGlzLmhhbmRsZUJsb2NrQ2hhbmdlKHsgaGV4OiBkYXRhLCAkZXZlbnQgfSk7XG4gIH1cbiAgZ2V0Q29udHJhc3RpbmdDb2xvcihoZXgpIHtcbiAgICByZXR1cm4gZ2V0Q29udHJhc3RpbmdDb2xvcihoZXgpO1xuICB9XG4gIGhhbmRsZUJsb2NrQ2hhbmdlKHsgaGV4LCAkZXZlbnQgfSkge1xuICAgIGlmIChpc1ZhbGlkSGV4KGhleCkpIHtcbiAgICAgIC8vIHRoaXMuaGV4ID0gaGV4O1xuICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UoXG4gICAgICAgIHtcbiAgICAgICAgICBoZXgsXG4gICAgICAgICAgc291cmNlOiAnaGV4JyxcbiAgICAgICAgfSxcbiAgICAgICAgJGV2ZW50LFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQmxvY2tDb21wb25lbnQsIEJsb2NrU3dhdGNoZXNDb21wb25lbnRdLFxuICBleHBvcnRzOiBbQmxvY2tDb21wb25lbnQsIEJsb2NrU3dhdGNoZXNDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDaGVja2JvYXJkTW9kdWxlLCBTd2F0Y2hNb2R1bGUsIEVkaXRhYmxlSW5wdXRNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBDb2xvckJsb2NrTW9kdWxlIHt9XG4iXX0=
|
@@ -1,5 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Generated bundle index. Do not edit.
|
3
|
-
*/
|
4
|
-
export * from './public_api';
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNvbG9yLWJsb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9ibG9jay9uZ3gtY29sb3ItYmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|
@@ -1,3 +0,0 @@
|
|
1
|
-
export { BlockSwatchesComponent } from './block-swatches.component';
|
2
|
-
export { BlockComponent, ColorBlockModule } from './block.component';
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYmxvY2svcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBCbG9ja1N3YXRjaGVzQ29tcG9uZW50IH0gZnJvbSAnLi9ibG9jay1zd2F0Y2hlcy5jb21wb25lbnQnO1xuZXhwb3J0IHsgQmxvY2tDb21wb25lbnQsIENvbG9yQmxvY2tNb2R1bGUgfSBmcm9tICcuL2Jsb2NrLmNvbXBvbmVudCc7XG4iXX0=
|
@@ -1,356 +0,0 @@
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
2
|
-
import { isValidHex } from 'ngx-color';
|
3
|
-
import { TinyColor } from '@ctrl/tinycolor';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "ngx-color";
|
6
|
-
import * as i2 from "@angular/common";
|
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: "13.0.0", ngImport: i0, type: ChromeFieldsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
119
|
-
ChromeFieldsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", 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"], components: [{ type: i1.EditableInputComponent, selector: "color-editable-input", inputs: ["style", "label", "value", "arrowOffset", "dragLabel", "dragMax", "placeholder"], outputs: ["onChange"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
210
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ChromeFieldsComponent, decorators: [{
|
211
|
-
type: Component,
|
212
|
-
args: [{
|
213
|
-
selector: 'color-chrome-fields',
|
214
|
-
template: `
|
215
|
-
<div class="chrome-wrap">
|
216
|
-
<div class="chrome-fields">
|
217
|
-
<ng-template [ngIf]="view === 'hex'">
|
218
|
-
<div class="chrome-field">
|
219
|
-
<color-editable-input
|
220
|
-
[style]="{ input: input, label: label }"
|
221
|
-
label="hex" [value]="hex"
|
222
|
-
(onChange)="handleChange($event)"
|
223
|
-
></color-editable-input>
|
224
|
-
</div>
|
225
|
-
</ng-template>
|
226
|
-
<ng-template [ngIf]="view === 'rgb'">
|
227
|
-
<div class="chrome-field">
|
228
|
-
<color-editable-input
|
229
|
-
[style]="{ input: input, label: label }"
|
230
|
-
label="r" [value]="rgb.r"
|
231
|
-
(onChange)="handleChange($event)"
|
232
|
-
></color-editable-input>
|
233
|
-
</div>
|
234
|
-
<div class="chrome-field">
|
235
|
-
<color-editable-input
|
236
|
-
[style]="{ input: input, label: label }"
|
237
|
-
label="g" [value]="rgb.g"
|
238
|
-
(onChange)="handleChange($event)"
|
239
|
-
></color-editable-input>
|
240
|
-
</div>
|
241
|
-
<div class="chrome-field">
|
242
|
-
<color-editable-input
|
243
|
-
[style]="{ input: input, label: label }"
|
244
|
-
label="b" [value]="rgb.b"
|
245
|
-
(onChange)="handleChange($event)"
|
246
|
-
></color-editable-input>
|
247
|
-
</div>
|
248
|
-
<div class="chrome-field">
|
249
|
-
<color-editable-input *ngIf="!disableAlpha"
|
250
|
-
[style]="{ input: input, label: label }"
|
251
|
-
label="a" [value]="rgb.a"
|
252
|
-
[arrowOffset]="0.01"
|
253
|
-
(onChange)="handleChange($event)"
|
254
|
-
></color-editable-input>
|
255
|
-
</div>
|
256
|
-
</ng-template>
|
257
|
-
<ng-template [ngIf]="view === 'hsl'">
|
258
|
-
<div class="chrome-field">
|
259
|
-
<color-editable-input
|
260
|
-
[style]="{ input: input, label: label }"
|
261
|
-
label="h"
|
262
|
-
[value]="round(hsl.h)"
|
263
|
-
(onChange)="handleChange($event)"
|
264
|
-
></color-editable-input>
|
265
|
-
</div>
|
266
|
-
<div class="chrome-field">
|
267
|
-
<color-editable-input
|
268
|
-
[style]="{ input: input, label: label }"
|
269
|
-
label="s" [value]="round(hsl.s * 100) + '%'"
|
270
|
-
(onChange)="handleChange($event)"
|
271
|
-
></color-editable-input>
|
272
|
-
</div>
|
273
|
-
<div class="chrome-field">
|
274
|
-
<color-editable-input
|
275
|
-
[style]="{ input: input, label: label }"
|
276
|
-
label="l" [value]="round(hsl.l * 100) + '%'"
|
277
|
-
(onChange)="handleChange($event)"
|
278
|
-
></color-editable-input>
|
279
|
-
</div>
|
280
|
-
<div class="chrome-field">
|
281
|
-
<color-editable-input *ngIf="!disableAlpha"
|
282
|
-
[style]="{ input: input, label: label }"
|
283
|
-
label="a" [value]="hsl.a"
|
284
|
-
[arrowOffset]="0.01"
|
285
|
-
(onChange)="handleChange($event)"
|
286
|
-
></color-editable-input>
|
287
|
-
</div>
|
288
|
-
</ng-template>
|
289
|
-
</div>
|
290
|
-
|
291
|
-
<div class="chrome-toggle">
|
292
|
-
<div class="chrome-icon" (click)="toggleViews()" #icon>
|
293
|
-
<svg class="chrome-toggle-svg" viewBox="0 0 24 24">
|
294
|
-
<path #iconUp fill="#333"
|
295
|
-
d="M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"
|
296
|
-
/>
|
297
|
-
<path #iconDown fill="#333"
|
298
|
-
d="M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15Z"
|
299
|
-
/>
|
300
|
-
</svg>
|
301
|
-
</div>
|
302
|
-
</div>
|
303
|
-
</div>
|
304
|
-
`,
|
305
|
-
styles: [
|
306
|
-
`
|
307
|
-
.chrome-wrap {
|
308
|
-
padding-top: 16px;
|
309
|
-
display: flex;
|
310
|
-
}
|
311
|
-
.chrome-fields {
|
312
|
-
flex: 1;
|
313
|
-
display: flex;
|
314
|
-
margin-left: -6px;
|
315
|
-
}
|
316
|
-
.chrome-field {
|
317
|
-
padding-left: 6px;
|
318
|
-
width: 100%;
|
319
|
-
}
|
320
|
-
.chrome-toggle {
|
321
|
-
width: 32px;
|
322
|
-
text-align: right;
|
323
|
-
position: relative;
|
324
|
-
}
|
325
|
-
.chrome-icon {
|
326
|
-
margin-right: -4px;
|
327
|
-
margin-top: 12px;
|
328
|
-
cursor: pointer;
|
329
|
-
position: relative;
|
330
|
-
}
|
331
|
-
.chrome-toggle-svg {
|
332
|
-
width: 24px;
|
333
|
-
height: 24px;
|
334
|
-
border: 1px transparent solid;
|
335
|
-
border-radius: 5px;
|
336
|
-
}
|
337
|
-
.chrome-toggle-svg:hover {
|
338
|
-
background: #eee;
|
339
|
-
}
|
340
|
-
`,
|
341
|
-
],
|
342
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
343
|
-
preserveWhitespaces: false,
|
344
|
-
}]
|
345
|
-
}], propDecorators: { disableAlpha: [{
|
346
|
-
type: Input
|
347
|
-
}], hsl: [{
|
348
|
-
type: Input
|
349
|
-
}], rgb: [{
|
350
|
-
type: Input
|
351
|
-
}], hex: [{
|
352
|
-
type: Input
|
353
|
-
}], onChange: [{
|
354
|
-
type: Output
|
355
|
-
}] } });
|
356
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyb21lLWZpZWxkcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2Nocm9tZS9jaHJvbWUtZmllbGRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sV0FBVyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQXVJNUMsTUFBTSxPQUFPLHFCQUFxQjtJQXJJbEM7UUEwSVksYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDN0MsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLFVBQUssR0FBMkI7WUFDOUIsUUFBUSxFQUFFLE1BQU07WUFDaEIsS0FBSyxFQUFFLE1BQU07WUFDYixLQUFLLEVBQUUsTUFBTTtZQUNiLFlBQVksRUFBRSxLQUFLO1lBQ25CLE1BQU0sRUFBRSxNQUFNO1lBQ2QsU0FBUyxFQUFFLHlCQUF5QjtZQUNwQyxNQUFNLEVBQUUsTUFBTTtZQUNkLFlBQVksRUFBRSxRQUFRO1NBQ3ZCLENBQUM7UUFDRixVQUFLLEdBQTJCO1lBQzlCLGdCQUFnQixFQUFFLFdBQVc7WUFDN0IsUUFBUSxFQUFFLE1BQU07WUFDaEIsYUFBYSxFQUFFLE1BQU07WUFDckIsS0FBSyxFQUFFLFNBQVM7WUFDaEIsWUFBWSxFQUFFLFFBQVE7WUFDdEIsT0FBTyxFQUFFLE9BQU87WUFDaEIsU0FBUyxFQUFFLE1BQU07U0FDbEIsQ0FBQztLQWtGSDtJQWhGQyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUU7WUFDM0MsSUFBSSxDQUFDLElB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QjtvQkFDL0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwRlQ7b0JBQ0QsTUFBTSxFQUFFO3dCQUNOOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBa0NDO3FCQUNGO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxtQkFBbUIsRUFBRSxLQUFLO2lCQUMzQjs4QkFFVSxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGlzVmFsaWRIZXgsIEhTTEEsIFJHQkEgfSBmcm9tICduZ3gtY29sb3InO1xuaW1wb3J0IHsgVGlueUNvbG9yIH0gZnJvbSAnQGN0cmwvdGlueWNvbG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29sb3ItY2hyb21lLWZpZWxkcycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImNocm9tZS13cmFwXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLWZpZWxkc1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwidmlldyA9PT0gJ2hleCdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLWZpZWxkXCI+XG4gICAgICAgICAgICA8Y29sb3ItZWRpdGFibGUtaW5wdXRcbiAgICAgICAgICAgICAgW3N0eWxlXT1cInsgaW5wdXQ6IGlucHV0LCBsYWJlbDogbGFiZWwgfVwiXG4gICAgICAgICAgICAgIGxhYmVsPVwiaGV4XCIgW3ZhbHVlXT1cImhleFwiXG4gICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jb2xvci1lZGl0YWJsZS1pbnB1dD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInZpZXcgPT09ICdyZ2InXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1maWVsZFwiPlxuICAgICAgICAgICAgPGNvbG9yLWVkaXRhYmxlLWlucHV0XG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7IGlucHV0OiBpbnB1dCwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICBsYWJlbD1cInJcIiBbdmFsdWVdPVwicmdiLnJcIlxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvY29sb3ItZWRpdGFibGUtaW5wdXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1maWVsZFwiPlxuICAgICAgICAgICAgPGNvbG9yLWVkaXRhYmxlLWlucHV0XG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7IGlucHV0OiBpbnB1dCwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICBsYWJlbD1cImdcIiBbdmFsdWVdPVwicmdiLmdcIlxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvY29sb3ItZWRpdGFibGUtaW5wdXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1maWVsZFwiPlxuICAgICAgICAgICAgPGNvbG9yLWVkaXRhYmxlLWlucHV0XG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7IGlucHV0OiBpbnB1dCwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICBsYWJlbD1cImJcIiBbdmFsdWVdPVwicmdiLmJcIlxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvY29sb3ItZWRpdGFibGUtaW5wdXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1maWVsZFwiPlxuICAgICAgICAgICAgPGNvbG9yLWVkaXRhYmxlLWlucHV0ICpuZ0lmPVwiIWRpc2FibGVBbHBoYVwiXG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7IGlucHV0OiBpbnB1dCwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICBsYWJlbD1cImFcIiBbdmFsdWVdPVwicmdiLmFcIlxuICAgICAgICAgICAgICBbYXJyb3dPZmZzZXRdPVwiMC4wMVwiXG4gICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jb2xvci1lZGl0YWJsZS1pbnB1dD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInZpZXcgPT09ICdoc2wnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1maWVsZFwiPlxuICAgICAgICAgICAgPGNvbG9yLWVkaXRhYmxlLWlucHV0XG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7IGlucHV0OiBpbnB1dCwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICBsYWJlbD1cImhcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwicm91bmQoaHNsLmgpXCJcbiAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2NvbG9yLWVkaXRhYmxlLWlucHV0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJvbWUtZmllbGRcIj5cbiAgICAgICAgICAgIDxjb2xvci1lZGl0YWJsZS1pbnB1dFxuICAgICAgICAgICAgICBbc3R5bGVdPVwieyBpbnB1dDogaW5wdXQsIGxhYmVsOiBsYWJlbCB9XCJcbiAgICAgICAgICAgICAgbGFiZWw9XCJzXCIgW3ZhbHVlXT1cInJvdW5kKGhzbC5zICogMTAwKSArICclJ1wiXG4gICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jb2xvci1lZGl0YWJsZS1pbnB1dD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLWZpZWxkXCI+XG4gICAgICAgICAgICA8Y29sb3ItZWRpdGFibGUtaW5wdXRcbiAgICAgICAgICAgICAgW3N0eWxlXT1cInsgaW5wdXQ6IGlucHV0LCBsYWJlbDogbGFiZWwgfVwiXG4gICAgICAgICAgICAgIGxhYmVsPVwibFwiIFt2YWx1ZV09XCJyb3VuZChoc2wubCAqIDEwMCkgKyAnJSdcIlxuICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgPjwvY29sb3ItZWRpdGFibGUtaW5wdXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocm9tZS1maWVsZFwiPlxuICAgICAgICAgICAgPGNvbG9yLWVkaXRhYmxlLWlucHV0ICpuZ0lmPVwiIWRpc2FibGVBbHBoYVwiXG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7IGlucHV0OiBpbnB1dCwgbGFiZWw6IGxhYmVsIH1cIlxuICAgICAgICAgICAgICBsYWJlbD1cImFcIiBbdmFsdWVdPVwiaHNsLmFcIlxuICAgICAgICAgICAgICBbYXJyb3dPZmZzZXRdPVwiMC4wMVwiXG4gICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jb2xvci1lZGl0YWJsZS1pbnB1dD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLXRvZ2dsZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyb21lLWljb25cIiAoY2xpY2spPVwidG9nZ2xlVmlld3MoKVwiICNpY29uPlxuICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaHJvbWUtdG9nZ2xlLXN2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgIDxwYXRoICNpY29uVXAgZmlsbD1cIiMzMzNcIlxuICAgICAgICAgICAgICBkPVwiTTEyLDUuODNMMTUuMTcsOUwxNi41OCw3LjU5TDEyLDNMNy40MSw3LjU5TDguODMsOUwxMiw1LjgzWlwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHBhdGggI2ljb25Eb3duIGZpbGw9XCIjMzMzXCJcbiAgICAgICAgICAgICAgZD1cIk0xMiwxOC4xN0w4LjgzLDE1TDcuNDIsMTYuNDFMMTIsMjFMMTYuNTksMTYuNDFMMTUuMTcsMTVaXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5jaHJvbWUtd3JhcCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuICAgICAgLmNocm9tZS1maWVsZHMge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW4tbGVmdDogLTZweDtcbiAgICAgIH1cbiAgICAgIC5jaHJvbWUtZmllbGQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgICAuY2hyb21lLXRvZ2dsZSB7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuICAgICAgLmNocm9tZS1pY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICAgIC5jaHJvbWUtdG9nZ2xlLXN2ZyB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHRyYW5zcGFyZW50IHNvbGlkO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICB9XG4gICAgICAuY2hyb21lLXRvZ2dsZS1zdmc6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWVlO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hyb21lRmllbGRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZGlzYWJsZUFscGhhITogYm9vbGVhbjtcbiAgQElucHV0KCkgaHNsITogSFNMQTtcbiAgQElucHV0KCkgcmdiITogUkdCQTtcbiAgQElucHV0KCkgaGV4ITogc3RyaW5nO1xuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgdmlldyA9ICcnO1xuICBpbnB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBmb250U2l6ZTogJzExcHgnLFxuICAgIGNvbG9yOiAnIzMzMycsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBib3JkZXJSYWRpdXM6ICcycHgnLFxuICAgIGJvcmRlcjogJ25vbmUnLFxuICAgIGJveFNoYWRvdzogJ2luc2V0IDAgMCAwIDFweCAjZGFkYWRhJyxcbiAgICBoZWlnaHQ6ICcyMXB4JyxcbiAgICAndGV4dC1hbGlnbic6ICdjZW50ZXInLFxuICB9O1xuICBsYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAndGV4dC10cmFuc2Zvcm0nOiAndXBwZXJjYXNlJyxcbiAgICBmb250U2l6ZTogJzExcHgnLFxuICAgICdsaW5lLWhlaWdodCc6ICcxMXB4JyxcbiAgICBjb2xvcjogJyM5Njk2OTYnLFxuICAgICd0ZXh0LWFsaWduJzogJ2NlbnRlcicsXG4gICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICBtYXJnaW5Ub3A6ICcxMnB4JyxcbiAgfTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5oc2wuYSA9PT0gMSAmJiB0aGlzLnZpZXcgIT09ICdoZXgnKSB7XG4gICAgICB0aGlzLnZpZXcgPSAnaGV4JztcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyAhPT0gJ3JnYicgJiYgdGhpcy52aWV3ICE9PSAnaHNsJykge1xuICAgICAgdGhpcy52aWV3ID0gJ3JnYic7XG4gICAgfVxuICB9XG4gIHRvZ2dsZVZpZXdzKCkge1xuICAgIGlmICh0aGlzLnZpZXcgPT09ICdoZXgnKSB7XG4gICAgICB0aGlzLnZpZXcgPSAncmdiJztcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ3JnYicpIHtcbiAgICAgIHRoaXMudmlldyA9ICdoc2wnO1xuICAgIH0gZWxzZSBpZiAodGhpcy52aWV3ID09PSAnaHNsJykge1xuICAgICAgaWYgKHRoaXMuaHNsLmEgPT09IDEpIHtcbiAgICAgICAgdGhpcy52aWV3ID0gJ2hleCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnZpZXcgPSAncmdiJztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcm91bmQodmFsdWUpIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSk7XG4gIH1cbiAgaGFuZGxlQ2hhbmdlKHsgZGF0YSwgJGV2ZW50IH0pIHtcbiAgICBpZiAoZGF0YS5oZXgpIHtcbiAgICAgIGlmIChpc1ZhbGlkSGV4KGRhdGEuaGV4KSkge1xuICAgICAgICBjb25zdCBjb2xvciA9IG5ldyBUaW55Q29sb3IoZGF0YS5oZXgpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGhleDogdGhpcy5kaXNhYmxlQWxwaGEgPyBjb2xvci50b0hleCgpIDogY29sb3IudG9IZXg4KCksXG4gICAgICAgICAgICBzb3VyY2U6ICdoZXgnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgJGV2ZW50LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRhdGEuciB8fCBkYXRhLmcgfHwgZGF0YS5iKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgcjogZGF0YS5yIHx8IHRoaXMucmdiLnIsXG4gICAgICAgICAgZzogZGF0YS5nIHx8IHRoaXMucmdiLmcsXG4gICAgICAgICAgYjogZGF0YS5iIHx8IHRoaXMucmdiLmIsXG4gICAgICAgICAgc291cmNlOiAncmdiJyxcbiAgICAgICAgfSxcbiAgICAgICAgJGV2ZW50LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChkYXRhLmEpIHtcbiAgICAgIGlmIChkYXRhLmEgPCAwKSB7XG4gICAgICAgIGRhdGEuYSA9IDA7XG4gICAgICB9IGVsc2UgaWYgKGRhdGEuYSA+IDEpIHtcbiAgICAgICAgZGF0YS5hID0gMTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZGlzYWJsZUFscGhhKSB7XG4gICAgICAgIGRhdGEuYSA9IDE7XG4gICAgICB9XG5cbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBoOiB0aGlzLmhzbC5oLFxuICAgICAgICAgIHM6IHRoaXMuaHNsLnMsXG4gICAgICAgICAgbDogdGhpcy5oc2wubCxcbiAgICAgICAgICBhOiBNYXRoLnJvdW5kKGRhdGEuYSAqIDEwMCkgLyAxMDAsXG4gICAgICAgICAgc291cmNlOiAncmdiJyxcbiAgICAgICAgfSxcbiAgICAgICAgJGV2ZW50LFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChkYXRhLmggfHwgZGF0YS5zIHx8IGRhdGEubCkge1xuICAgICAgY29uc3QgcyA9IGRhdGEucyAmJiBkYXRhLnMucmVwbGFjZSgnJScsICcnKTtcbiAgICAgIGNvbnN0IGwgPSBkYXRhLmwgJiYgZGF0YS5sLnJlcGxhY2UoJyUnLCAnJyk7XG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgaDogZGF0YS5oIHx8IHRoaXMuaHNsLmgsXG4gICAgICAgICAgczogTnVtYmVyKHMgfHwgdGhpcy5oc2wucyksXG4gICAgICAgICAgbDogTnVtYmVyKGwgfHwgdGhpcy5oc2wubCksXG4gICAgICAgICAgc291cmNlOiAnaHNsJyxcbiAgICAgICAgfSxcbiAgICAgICAgJGV2ZW50LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|