ngx-color 9.0.0 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/coordinates.directive.d.ts +1 -2
- package/fesm2022/ngx-color-alpha.mjs +15 -17
- package/fesm2022/ngx-color-alpha.mjs.map +1 -1
- package/fesm2022/ngx-color-block.mjs +87 -76
- package/fesm2022/ngx-color-block.mjs.map +1 -1
- package/fesm2022/ngx-color-chrome.mjs +186 -145
- package/fesm2022/ngx-color-chrome.mjs.map +1 -1
- package/fesm2022/ngx-color-circle.mjs +68 -51
- package/fesm2022/ngx-color-circle.mjs.map +1 -1
- package/fesm2022/ngx-color-compact.mjs +163 -145
- package/fesm2022/ngx-color-compact.mjs.map +1 -1
- package/fesm2022/ngx-color-github.mjs +36 -37
- package/fesm2022/ngx-color-github.mjs.map +1 -1
- package/fesm2022/ngx-color-hue.mjs +27 -25
- package/fesm2022/ngx-color-hue.mjs.map +1 -1
- package/fesm2022/ngx-color-material.mjs +77 -61
- package/fesm2022/ngx-color-material.mjs.map +1 -1
- package/fesm2022/ngx-color-photoshop.mjs +224 -214
- package/fesm2022/ngx-color-photoshop.mjs.map +1 -1
- package/fesm2022/ngx-color-shade.mjs +19 -13
- package/fesm2022/ngx-color-shade.mjs.map +1 -1
- package/fesm2022/ngx-color-sketch.mjs +232 -227
- package/fesm2022/ngx-color-sketch.mjs.map +1 -1
- package/fesm2022/ngx-color-slider.mjs +153 -145
- package/fesm2022/ngx-color-slider.mjs.map +1 -1
- package/fesm2022/ngx-color-swatches.mjs +118 -216
- package/fesm2022/ngx-color-swatches.mjs.map +1 -1
- package/fesm2022/ngx-color-twitter.mjs +61 -58
- package/fesm2022/ngx-color-twitter.mjs.map +1 -1
- package/fesm2022/ngx-color.mjs +231 -187
- package/fesm2022/ngx-color.mjs.map +1 -1
- package/package.json +4 -34
- package/esm2022/alpha/alpha-picker.component.mjs +0 -102
- package/esm2022/alpha/ngx-color-alpha.mjs +0 -5
- package/esm2022/alpha/public_api.mjs +0 -2
- package/esm2022/alpha.component.mjs +0 -146
- package/esm2022/block/block-swatches.component.mjs +0 -63
- package/esm2022/block/block.component.mjs +0 -160
- package/esm2022/block/ngx-color-block.mjs +0 -5
- package/esm2022/block/public_api.mjs +0 -3
- package/esm2022/checkboard.component.mjs +0 -53
- package/esm2022/chrome/chrome-fields.component.mjs +0 -317
- package/esm2022/chrome/chrome.component.mjs +0 -187
- package/esm2022/chrome/ngx-color-chrome.mjs +0 -5
- package/esm2022/chrome/public_api.mjs +0 -3
- package/esm2022/circle/circle-swatch.component.mjs +0 -69
- package/esm2022/circle/circle.component.mjs +0 -136
- package/esm2022/circle/ngx-color-circle.mjs +0 -5
- package/esm2022/circle/public_api.mjs +0 -3
- package/esm2022/color-wrap.component.mjs +0 -173
- package/esm2022/compact/compact-color.component.mjs +0 -71
- package/esm2022/compact/compact-fields.component.mjs +0 -165
- package/esm2022/compact/compact.component.mjs +0 -156
- package/esm2022/compact/ngx-color-compact.mjs +0 -5
- package/esm2022/compact/public_api.mjs +0 -4
- package/esm2022/coordinates.directive.mjs +0 -108
- package/esm2022/editable-input.component.mjs +0 -212
- package/esm2022/github/github-swatch.component.mjs +0 -53
- package/esm2022/github/github.component.mjs +0 -114
- package/esm2022/github/ngx-color-github.mjs +0 -5
- package/esm2022/github/public_api.mjs +0 -3
- package/esm2022/helpers/checkboard.mjs +0 -33
- package/esm2022/helpers/color.interfaces.mjs +0 -2
- package/esm2022/helpers/color.mjs +0 -60
- package/esm2022/hue/hue-picker.component.mjs +0 -102
- package/esm2022/hue/ngx-color-hue.mjs +0 -5
- package/esm2022/hue/public_api.mjs +0 -2
- package/esm2022/hue.component.mjs +0 -128
- package/esm2022/material/material.component.mjs +0 -188
- package/esm2022/material/ngx-color-material.mjs +0 -5
- package/esm2022/material/public_api.mjs +0 -2
- package/esm2022/ngx-color.mjs +0 -5
- package/esm2022/photoshop/ngx-color-photoshop.mjs +0 -5
- package/esm2022/photoshop/photoshop-button.component.mjs +0 -33
- package/esm2022/photoshop/photoshop-fields.component.mjs +0 -214
- package/esm2022/photoshop/photoshop-previews.component.mjs +0 -40
- package/esm2022/photoshop/photoshop.component.mjs +0 -187
- package/esm2022/photoshop/public_api.mjs +0 -5
- package/esm2022/public_api.mjs +0 -14
- package/esm2022/raised.component.mjs +0 -50
- package/esm2022/saturation.component.mjs +0 -100
- package/esm2022/shade/ngx-color-shade.mjs +0 -5
- package/esm2022/shade/public_api.mjs +0 -2
- package/esm2022/shade/shade-picker.component.mjs +0 -94
- package/esm2022/shade.component.mjs +0 -133
- package/esm2022/sketch/ngx-color-sketch.mjs +0 -5
- package/esm2022/sketch/public_api.mjs +0 -4
- package/esm2022/sketch/sketch-fields.component.mjs +0 -211
- package/esm2022/sketch/sketch-preset-colors.component.mjs +0 -68
- package/esm2022/sketch/sketch.component.mjs +0 -215
- package/esm2022/slider/ngx-color-slider.mjs +0 -5
- package/esm2022/slider/public_api.mjs +0 -4
- package/esm2022/slider/slider-swatch.component.mjs +0 -55
- package/esm2022/slider/slider-swatches.component.mjs +0 -119
- package/esm2022/slider/slider.component.mjs +0 -104
- package/esm2022/swatch.component.mjs +0 -112
- package/esm2022/swatches/ngx-color-swatches.mjs +0 -5
- package/esm2022/swatches/public_api.mjs +0 -4
- package/esm2022/swatches/swatches-color.component.mjs +0 -105
- package/esm2022/swatches/swatches-group.component.mjs +0 -50
- package/esm2022/swatches/swatches.component.mjs +0 -244
- package/esm2022/twitter/ngx-color-twitter.mjs +0 -5
- package/esm2022/twitter/public_api.mjs +0 -2
- package/esm2022/twitter/twitter.component.mjs +0 -161
@@ -1,136 +0,0 @@
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
2
|
-
import { ChangeDetectionStrategy, Component, forwardRef, Input, NgModule } from '@angular/core';
|
3
|
-
import { amber, blue, blueGrey, brown, cyan, deepOrange, deepPurple, green, indigo, lightBlue, lightGreen, lime, orange, pink, purple, red, teal, yellow, } from 'material-colors';
|
4
|
-
import { TinyColor } from '@ctrl/tinycolor';
|
5
|
-
import { ColorWrap, isValidHex, SwatchModule } from 'ngx-color';
|
6
|
-
import { CircleSwatchComponent } from './circle-swatch.component';
|
7
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
8
|
-
import * as i0 from "@angular/core";
|
9
|
-
import * as i1 from "@angular/common";
|
10
|
-
class CircleComponent extends ColorWrap {
|
11
|
-
/** Pixel value for picker width */
|
12
|
-
width = 252;
|
13
|
-
/** Color squares to display */
|
14
|
-
colors = [
|
15
|
-
red['500'],
|
16
|
-
pink['500'],
|
17
|
-
purple['500'],
|
18
|
-
deepPurple['500'],
|
19
|
-
indigo['500'],
|
20
|
-
blue['500'],
|
21
|
-
lightBlue['500'],
|
22
|
-
cyan['500'],
|
23
|
-
teal['500'],
|
24
|
-
green['500'],
|
25
|
-
lightGreen['500'],
|
26
|
-
lime['500'],
|
27
|
-
yellow['500'],
|
28
|
-
amber['500'],
|
29
|
-
orange['500'],
|
30
|
-
deepOrange['500'],
|
31
|
-
brown['500'],
|
32
|
-
blueGrey['500'],
|
33
|
-
];
|
34
|
-
/** Value for circle size */
|
35
|
-
circleSize = 28;
|
36
|
-
/** Value for spacing between circles */
|
37
|
-
circleSpacing = 14;
|
38
|
-
constructor() {
|
39
|
-
super();
|
40
|
-
}
|
41
|
-
isActive(color) {
|
42
|
-
return new TinyColor(this.hex).equals(color);
|
43
|
-
}
|
44
|
-
handleBlockChange({ hex, $event }) {
|
45
|
-
if (isValidHex(hex)) {
|
46
|
-
this.handleChange({ hex, source: 'hex' }, $event);
|
47
|
-
}
|
48
|
-
}
|
49
|
-
handleValueChange({ data, $event }) {
|
50
|
-
this.handleChange(data, $event);
|
51
|
-
}
|
52
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CircleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
53
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: CircleComponent, selector: "color-circle", inputs: { width: "width", colors: "colors", circleSize: "circleSize", circleSpacing: "circleSpacing" }, providers: [
|
54
|
-
{
|
55
|
-
provide: NG_VALUE_ACCESSOR,
|
56
|
-
useExisting: forwardRef(() => CircleComponent),
|
57
|
-
multi: true,
|
58
|
-
},
|
59
|
-
{
|
60
|
-
provide: ColorWrap,
|
61
|
-
useExisting: forwardRef(() => CircleComponent),
|
62
|
-
},
|
63
|
-
], usesInheritance: true, ngImport: i0, template: `
|
64
|
-
<div
|
65
|
-
class="circle-picker {{ className }}"
|
66
|
-
[style.width.px]="width"
|
67
|
-
[style.margin-right.px]="-circleSpacing"
|
68
|
-
[style.margin-bottom.px]="-circleSpacing"
|
69
|
-
>
|
70
|
-
<color-circle-swatch
|
71
|
-
*ngFor="let color of colors"
|
72
|
-
[circleSize]="circleSize"
|
73
|
-
[circleSpacing]="circleSpacing"
|
74
|
-
[color]="color"
|
75
|
-
[focus]="isActive(color)"
|
76
|
-
(onClick)="handleBlockChange($event)"
|
77
|
-
(onSwatchHover)="onSwatchHover.emit($event)"
|
78
|
-
></color-circle-swatch>
|
79
|
-
</div>
|
80
|
-
`, isInline: true, styles: [".circle-picker{display:flex;flex-wrap:wrap}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i0.forwardRef(function () { return CircleSwatchComponent; }), selector: "color-circle-swatch", inputs: ["color", "circleSize", "circleSpacing", "focus"], outputs: ["onClick", "onSwatchHover"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
81
|
-
}
|
82
|
-
export { CircleComponent };
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CircleComponent, decorators: [{
|
84
|
-
type: Component,
|
85
|
-
args: [{ selector: 'color-circle', template: `
|
86
|
-
<div
|
87
|
-
class="circle-picker {{ className }}"
|
88
|
-
[style.width.px]="width"
|
89
|
-
[style.margin-right.px]="-circleSpacing"
|
90
|
-
[style.margin-bottom.px]="-circleSpacing"
|
91
|
-
>
|
92
|
-
<color-circle-swatch
|
93
|
-
*ngFor="let color of colors"
|
94
|
-
[circleSize]="circleSize"
|
95
|
-
[circleSpacing]="circleSpacing"
|
96
|
-
[color]="color"
|
97
|
-
[focus]="isActive(color)"
|
98
|
-
(onClick)="handleBlockChange($event)"
|
99
|
-
(onSwatchHover)="onSwatchHover.emit($event)"
|
100
|
-
></color-circle-swatch>
|
101
|
-
</div>
|
102
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, providers: [
|
103
|
-
{
|
104
|
-
provide: NG_VALUE_ACCESSOR,
|
105
|
-
useExisting: forwardRef(() => CircleComponent),
|
106
|
-
multi: true,
|
107
|
-
},
|
108
|
-
{
|
109
|
-
provide: ColorWrap,
|
110
|
-
useExisting: forwardRef(() => CircleComponent),
|
111
|
-
},
|
112
|
-
], styles: [".circle-picker{display:flex;flex-wrap:wrap}\n"] }]
|
113
|
-
}], ctorParameters: function () { return []; }, propDecorators: { width: [{
|
114
|
-
type: Input
|
115
|
-
}], colors: [{
|
116
|
-
type: Input
|
117
|
-
}], circleSize: [{
|
118
|
-
type: Input
|
119
|
-
}], circleSpacing: [{
|
120
|
-
type: Input
|
121
|
-
}] } });
|
122
|
-
class ColorCircleModule {
|
123
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ColorCircleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
124
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: ColorCircleModule, declarations: [CircleComponent, CircleSwatchComponent], imports: [CommonModule, SwatchModule], exports: [CircleComponent, CircleSwatchComponent] });
|
125
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ColorCircleModule, imports: [CommonModule, SwatchModule] });
|
126
|
-
}
|
127
|
-
export { ColorCircleModule };
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ColorCircleModule, decorators: [{
|
129
|
-
type: NgModule,
|
130
|
-
args: [{
|
131
|
-
declarations: [CircleComponent, CircleSwatchComponent],
|
132
|
-
exports: [CircleComponent, CircleSwatchComponent],
|
133
|
-
imports: [CommonModule, SwatchModule],
|
134
|
-
}]
|
135
|
-
}] });
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lyY2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY2lyY2xlL2NpcmNsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUNMLEtBQUssRUFDTCxJQUFJLEVBQ0osUUFBUSxFQUNSLEtBQUssRUFDTCxJQUFJLEVBQ0osVUFBVSxFQUNWLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLE1BQU0sRUFDTixJQUFJLEVBQ0osTUFBTSxFQUNOLEdBQUcsRUFDSCxJQUFJLEVBQ0osTUFBTSxHQUNQLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRW5ELE1BMENhLGVBQWdCLFNBQVEsU0FBUztJQUM1QyxtQ0FBbUM7SUFDMUIsS0FBSyxHQUFvQixHQUFHLENBQUM7SUFDdEMsK0JBQStCO0lBRS9CLE1BQU0sR0FBYTtRQUNqQixHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNYLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDYixVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFD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LE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgYW1iZXIsXG4gIGJsdWUsXG4gIGJsdWVHcmV5LFxuICBicm93bixcbiAgY3lhbixcbiAgZGVlcE9yYW5nZSxcbiAgZGVlcFB1cnBsZSxcbiAgZ3JlZW4sXG4gIGluZGlnbyxcbiAgbGlnaHRCbHVlLFxuICBsaWdodEdyZWVuLFxuICBsaW1lLFxuICBvcmFuZ2UsXG4gIHBpbmssXG4gIHB1cnBsZSxcbiAgcmVkLFxuICB0ZWFsLFxuICB5ZWxsb3csXG59IGZyb20gJ21hdGVyaWFsLWNvbG9ycyc7XG5pbXBvcnQgeyBUaW55Q29sb3IgfSBmcm9tICdAY3RybC90aW55Y29sb3InO1xuXG5pbXBvcnQgeyBDb2xvcldyYXAsIGlzVmFsaWRIZXgsIFN3YXRjaE1vZHVsZSB9IGZyb20gJ25neC1jb2xvcic7XG5pbXBvcnQgeyBDaXJjbGVTd2F0Y2hDb21wb25lbnQgfSBmcm9tICcuL2NpcmNsZS1zd2F0Y2guY29tcG9uZW50JztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb2xvci1jaXJjbGUnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2lyY2xlLXBpY2tlciB7eyBjbGFzc05hbWUgfX1cIlxuICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoXCJcbiAgICAgIFtzdHlsZS5tYXJnaW4tcmlnaHQucHhdPVwiLWNpcmNsZVNwYWNpbmdcIlxuICAgICAgW3N0eWxlLm1hcmdpbi1ib3R0b20ucHhdPVwiLWNpcmNsZVNwYWNpbmdcIlxuICAgID5cbiAgICAgIDxjb2xvci1jaXJjbGUtc3dhdGNoXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb2xvciBvZiBjb2xvcnNcIlxuICAgICAgICBbY2lyY2xlU2l6ZV09XCJjaXJjbGVTaXplXCJcbiAgICAgICAgW2NpcmNsZVNwYWNpbmddPVwiY2lyY2xlU3BhY2luZ1wiXG4gICAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICAgIFtmb2N1c109XCJpc0FjdGl2ZShjb2xvcilcIlxuICAgICAgICAob25DbGljayk9XCJoYW5kbGVCbG9ja0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKG9uU3dhdGNoSG92ZXIpPVwib25Td2F0Y2hIb3Zlci5lbWl0KCRldmVudClcIlxuICAgICAgPjwvY29sb3ItY2lyY2xlLXN3YXRjaD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLmNpcmNsZS1waWNrZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENpcmNsZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IENvbG9yV3JhcCxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENpcmNsZUNvbXBvbmVudCksXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDaXJjbGVDb21wb25lbnQgZXh0ZW5kcyBDb2xvcldyYXAge1xuICAvKiogUGl4ZWwgdmFsdWUgZm9yIHBpY2tlciB3aWR0aCAqL1xuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nIHwgbnVtYmVyID0gMjUyO1xuICAvKiogQ29sb3Igc3F1YXJlcyB0byBkaXNwbGF5ICovXG4gIEBJbnB1dCgpXG4gIGNvbG9yczogc3RyaW5nW10gPSBbXG4gICAgcmVkWyc1MDAnXSxcbiAgICBwaW5rWyc1MDAnXSxcbiAgICBwdXJwbGVbJzUwMCddLFxuICAgIGRlZXBQdXJwbGVbJzUwMCddLFxuICAgIGluZGlnb1snNTAwJ10sXG4gICAgYmx1ZVsnNTAwJ10sXG4gICAgbGlnaHRCbHVlWyc1MDAnXSxcbiAgICBjeWFuWyc1MDAnXSxcbiAgICB0ZWFsWyc1MDAnXSxcbiAgICBncmVlblsnNTAwJ10sXG4gICAgbGlnaHRHcmVlblsnNTAwJ10sXG4gICAgbGltZVsnNTAwJ10sXG4gICAgeWVsbG93Wyc1MDAnXSxcbiAgICBhbWJlclsnNTAwJ10sXG4gICAgb3JhbmdlWyc1MDAnXSxcbiAgICBkZWVwT3JhbmdlWyc1MDAnXSxcbiAgICBicm93blsnNTAwJ10sXG4gICAgYmx1ZUdyZXlbJzUwMCddLFxuICBdO1xuICAvKiogVmFsdWUgZm9yIGNpcmNsZSBzaXplICovXG4gIEBJbnB1dCgpIGNpcmNsZVNpemUgPSAyODtcbiAgLyoqIFZhbHVlIGZvciBzcGFjaW5nIGJldHdlZW4gY2lyY2xlcyAqL1xuICBASW5wdXQoKSBjaXJjbGVTcGFjaW5nID0gMTQ7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuICBpc0FjdGl2ZShjb2xvcjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBUaW55Q29sb3IodGhpcy5oZXgpLmVxdWFscyhjb2xvcik7XG4gIH1cbiAgaGFuZGxlQmxvY2tDaGFuZ2UoeyBoZXgsICRldmVudCB9OiB7IGhleDogc3RyaW5nLCAkZXZlbnQ6IEV2ZW50IH0pIHtcbiAgICBpZiAoaXNWYWxpZEhleChoZXgpKSB7XG4gICAgICB0aGlzLmhhbmRsZUNoYW5nZSh7IGhleCwgc291cmNlOiAnaGV4JyB9LCAkZXZlbnQpO1xuICAgIH1cbiAgfVxuICBoYW5kbGVWYWx1ZUNoYW5nZSh7IGRhdGEsICRldmVudCB9KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2UoZGF0YSwgJGV2ZW50KTtcbiAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDaXJjbGVDb21wb25lbnQsIENpcmNsZVN3YXRjaENvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtDaXJjbGVDb21wb25lbnQsIENpcmNsZVN3YXRjaENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFN3YXRjaE1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIENvbG9yQ2lyY2xlTW9kdWxlIHt9XG4iXX0=
|
@@ -1,5 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Generated bundle index. Do not edit.
|
3
|
-
*/
|
4
|
-
export * from './public_api';
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNvbG9yLWNpcmNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY2lyY2xlL25neC1jb2xvci1jaXJjbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|
@@ -1,3 +0,0 @@
|
|
1
|
-
export { CircleSwatchComponent } from './circle-swatch.component';
|
2
|
-
export { CircleComponent, ColorCircleModule } from './circle.component';
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY2lyY2xlL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ2lyY2xlU3dhdGNoQ29tcG9uZW50IH0gZnJvbSAnLi9jaXJjbGUtc3dhdGNoLmNvbXBvbmVudCc7XG5leHBvcnQgeyBDaXJjbGVDb21wb25lbnQsIENvbG9yQ2lyY2xlTW9kdWxlIH0gZnJvbSAnLi9jaXJjbGUuY29tcG9uZW50JztcbiJdfQ==
|
@@ -1,173 +0,0 @@
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
2
|
-
import { Component, EventEmitter, forwardRef, Input, isDevMode, NgModule, Output, } from '@angular/core';
|
3
|
-
import { Subscription } from 'rxjs';
|
4
|
-
import { debounceTime, tap } from 'rxjs/operators';
|
5
|
-
import { simpleCheckForValidColor, toState } from './helpers/color';
|
6
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
export var ColorMode;
|
9
|
-
(function (ColorMode) {
|
10
|
-
ColorMode["HEX"] = "hex";
|
11
|
-
ColorMode["HSL"] = "hsl";
|
12
|
-
ColorMode["HSV"] = "hsv";
|
13
|
-
ColorMode["RGB"] = "rgb";
|
14
|
-
})(ColorMode || (ColorMode = {}));
|
15
|
-
class ColorWrap {
|
16
|
-
className;
|
17
|
-
/**
|
18
|
-
* Descriptors the return color format if the component is used with two-way binding
|
19
|
-
*/
|
20
|
-
mode = ColorMode.HEX;
|
21
|
-
color = {
|
22
|
-
h: 250,
|
23
|
-
s: 0.5,
|
24
|
-
l: 0.2,
|
25
|
-
a: 1,
|
26
|
-
};
|
27
|
-
colorChange = new EventEmitter();
|
28
|
-
onChange = new EventEmitter();
|
29
|
-
onChangeComplete = new EventEmitter();
|
30
|
-
onSwatchHover = new EventEmitter();
|
31
|
-
oldHue;
|
32
|
-
hsl;
|
33
|
-
hsv;
|
34
|
-
rgb;
|
35
|
-
hex;
|
36
|
-
source;
|
37
|
-
currentColor;
|
38
|
-
changes;
|
39
|
-
disableAlpha;
|
40
|
-
_onChangeCompleteSubscription = new Subscription();
|
41
|
-
_onSwatchHoverSubscription = new Subscription();
|
42
|
-
ngOnInit() {
|
43
|
-
this.changes = this.onChange
|
44
|
-
.pipe(debounceTime(100), tap(event => {
|
45
|
-
this.onChangeComplete.emit(event);
|
46
|
-
switch (this.mode) {
|
47
|
-
case ColorMode.HEX:
|
48
|
-
this.colorChange.emit(event.color.hex);
|
49
|
-
break;
|
50
|
-
case ColorMode.HSL:
|
51
|
-
this.colorChange.emit(event.color.hsl);
|
52
|
-
break;
|
53
|
-
case ColorMode.HSV:
|
54
|
-
this.colorChange.emit(event.color.hsv);
|
55
|
-
break;
|
56
|
-
case ColorMode.RGB:
|
57
|
-
this.colorChange.emit(event.color.rgb);
|
58
|
-
break;
|
59
|
-
default:
|
60
|
-
const msg = `The mode '${this.mode}' is not supported`;
|
61
|
-
if (isDevMode()) {
|
62
|
-
throw new Error(msg);
|
63
|
-
}
|
64
|
-
else {
|
65
|
-
console.warn(msg);
|
66
|
-
}
|
67
|
-
break;
|
68
|
-
}
|
69
|
-
}))
|
70
|
-
.subscribe();
|
71
|
-
this.setState(toState(this.color, 0));
|
72
|
-
this.currentColor = this.hex;
|
73
|
-
}
|
74
|
-
ngOnChanges() {
|
75
|
-
this.setState(toState(this.color, this.oldHue));
|
76
|
-
}
|
77
|
-
ngOnDestroy() {
|
78
|
-
this.changes?.unsubscribe();
|
79
|
-
this._onChangeCompleteSubscription?.unsubscribe();
|
80
|
-
this._onSwatchHoverSubscription?.unsubscribe();
|
81
|
-
}
|
82
|
-
setState(data) {
|
83
|
-
this.oldHue = data.oldHue;
|
84
|
-
this.hsl = data.hsl;
|
85
|
-
this.hsv = data.hsv;
|
86
|
-
this.rgb = data.rgb;
|
87
|
-
this.hex = data.hex;
|
88
|
-
this.source = data.source;
|
89
|
-
this.afterValidChange();
|
90
|
-
}
|
91
|
-
handleChange(data, $event) {
|
92
|
-
const isValidColor = simpleCheckForValidColor(data);
|
93
|
-
if (isValidColor) {
|
94
|
-
const color = toState(data, data.h || this.oldHue, this.disableAlpha);
|
95
|
-
this.setState(color);
|
96
|
-
this.onChange.emit({ color, $event });
|
97
|
-
this.afterValidChange();
|
98
|
-
}
|
99
|
-
}
|
100
|
-
/** hook for components after a complete change */
|
101
|
-
afterValidChange() { }
|
102
|
-
handleSwatchHover(data, $event) {
|
103
|
-
const isValidColor = simpleCheckForValidColor(data);
|
104
|
-
if (isValidColor) {
|
105
|
-
const color = toState(data, data.h || this.oldHue);
|
106
|
-
this.setState(color);
|
107
|
-
this.onSwatchHover.emit({ color, $event });
|
108
|
-
}
|
109
|
-
}
|
110
|
-
registerOnChange(fn) {
|
111
|
-
this._onChangeCompleteSubscription.add(this.onChangeComplete.pipe(tap(event => fn(event.color.hex))).subscribe());
|
112
|
-
}
|
113
|
-
registerOnTouched(fn) {
|
114
|
-
this._onSwatchHoverSubscription.add(this.onSwatchHover.pipe(tap(() => fn())).subscribe());
|
115
|
-
}
|
116
|
-
setDisabledState(isDisabled) { }
|
117
|
-
writeValue(hex) {
|
118
|
-
this.color = hex;
|
119
|
-
}
|
120
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ColorWrap, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
121
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: ColorWrap, selector: "color-wrap", inputs: { className: "className", mode: "mode", color: "color" }, outputs: { colorChange: "colorChange", onChange: "onChange", onChangeComplete: "onChangeComplete", onSwatchHover: "onSwatchHover" }, providers: [
|
122
|
-
{
|
123
|
-
provide: NG_VALUE_ACCESSOR,
|
124
|
-
useExisting: forwardRef(() => ColorWrap),
|
125
|
-
multi: true,
|
126
|
-
}
|
127
|
-
], usesOnChanges: true, ngImport: i0, template: ``, isInline: true });
|
128
|
-
}
|
129
|
-
export { ColorWrap };
|
130
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ColorWrap, decorators: [{
|
131
|
-
type: Component,
|
132
|
-
args: [{
|
133
|
-
// create seletor base for test override property
|
134
|
-
selector: 'color-wrap',
|
135
|
-
template: ``,
|
136
|
-
providers: [
|
137
|
-
{
|
138
|
-
provide: NG_VALUE_ACCESSOR,
|
139
|
-
useExisting: forwardRef(() => ColorWrap),
|
140
|
-
multi: true,
|
141
|
-
}
|
142
|
-
]
|
143
|
-
}]
|
144
|
-
}], propDecorators: { className: [{
|
145
|
-
type: Input
|
146
|
-
}], mode: [{
|
147
|
-
type: Input
|
148
|
-
}], color: [{
|
149
|
-
type: Input
|
150
|
-
}], colorChange: [{
|
151
|
-
type: Output
|
152
|
-
}], onChange: [{
|
153
|
-
type: Output
|
154
|
-
}], onChangeComplete: [{
|
155
|
-
type: Output
|
156
|
-
}], onSwatchHover: [{
|
157
|
-
type: Output
|
158
|
-
}] } });
|
159
|
-
class ColorWrapModule {
|
160
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ColorWrapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
161
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: ColorWrapModule, declarations: [ColorWrap], imports: [CommonModule], exports: [ColorWrap] });
|
162
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ColorWrapModule, imports: [CommonModule] });
|
163
|
-
}
|
164
|
-
export { ColorWrapModule };
|
165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ColorWrapModule, decorators: [{
|
166
|
-
type: NgModule,
|
167
|
-
args: [{
|
168
|
-
declarations: [ColorWrap],
|
169
|
-
exports: [ColorWrap],
|
170
|
-
imports: [CommonModule],
|
171
|
-
}]
|
172
|
-
}] });
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3Itd3JhcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbG9yLXdyYXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBSVIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU96RSxNQUFNLENBQU4sSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLHdCQUFXLENBQUE7SUFDWCx3QkFBVyxDQUFBO0lBQ1gsd0JBQVcsQ0FBQTtJQUNYLHdCQUFXLENBQUE7QUFDYixDQUFDLEVBTFcsU0FBUyxLQUFULFNBQVMsUUFLcEI7QUFFRCxNQVlhLFNBQVM7SUFDWCxTQUFTLENBQVU7SUFFNUI7O09BRUc7SUFDTSxJQUFJLEdBQWMsU0FBUyxDQUFDLEdBQUcsQ0FBQztJQUVoQyxLQUFLLEdBQWdDO1FBQzVDLENBQUMsRUFBRSxHQUFHO1FBQ04sQ0FBQyxFQUFFLEdBQUc7UUFDTixDQUFDLEVBQUUsR0FBRztRQUNOLENBQUMsRUFBRSxDQUFDO0tBQ0wsQ0FBQztJQUNRLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztJQUM5RCxRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUMxQyxnQkFBZ0IsR0FBRyxJQUFJLFlB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RyxhQUFhO3NCQUF0QixNQUFNOztBQTBHVCxNQUthLGVBQWU7dUdBQWYsZUFBZTt3R0FBZixlQUFlLGlCQWhJZixTQUFTLGFBOEhWLFlBQVksYUE5SFgsU0FBUzt3R0FnSVQsZUFBZSxZQUZoQixZQUFZOztTQUVYLGVBQWU7MkZBQWYsZUFBZTtrQkFMM0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQ3pCLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQztvQkFDcEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIGlzRGV2TW9kZSxcbiAgTmdNb2R1bGUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IHNpbXBsZUNoZWNrRm9yVmFsaWRDb2xvciwgdG9TdGF0ZSB9IGZyb20gJy4vaGVscGVycy9jb2xvcic7XG5pbXBvcnQgeyBDb2xvciwgSFNMQSwgSFNWQSwgUkdCQSB9IGZyb20gJy4vaGVscGVycy9jb2xvci5pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGludGVyZmFjZSBDb2xvckV2ZW50IHtcbiAgJGV2ZW50OiBFdmVudDtcbiAgY29sb3I6IENvbG9yO1xufVxuXG5leHBvcnQgZW51bSBDb2xvck1vZGUge1xuICBIRVggPSAnaGV4JyxcbiAgSFNMID0gJ2hzbCcsXG4gIEhTViA9ICdoc3YnLFxuICBSR0IgPSAncmdiJ1xufVxuXG5AQ29tcG9uZW50KHtcbiAgLy8gY3JlYXRlIHNlbGV0b3IgYmFzZSBmb3IgdGVzdCBvdmVycmlkZSBwcm9wZXJ0eVxuICBzZWxlY3RvcjogJ2NvbG9yLXdyYXAnLFxuICB0ZW1wbGF0ZTogYGAsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ29sb3JXcmFwKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb2xvcldyYXAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogRGVzY3JpcHRvcnMgdGhlIHJldHVybiBjb2xvciBmb3JtYXQgaWYgdGhlIGNvbXBvbmVudCBpcyB1c2VkIHdpdGggdHdvLXdheSBiaW5kaW5nXG4gICAqL1xuICBASW5wdXQoKSBtb2RlOiBDb2xvck1vZGUgPSBDb2xvck1vZGUuSEVYO1xuXG4gIEBJbnB1dCgpIGNvbG9yOiBIU0xBIHwgSFNWQSB8IFJHQkEgfCBzdHJpbmcgPSB7XG4gICAgaDogMjUwLFxuICAgIHM6IDAuNSxcbiAgICBsOiAwLjIsXG4gICAgYTogMSxcbiAgfTtcbiAgQE91dHB1dCgpIGNvbG9yQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxIU0xBIHwgSFNWQSB8IFJHQkEgfCBzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29sb3JFdmVudD4oKTtcbiAgQE91dHB1dCgpIG9uQ2hhbmdlQ29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPENvbG9yRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvblN3YXRjaEhvdmVyID0gbmV3IEV2ZW50RW1pdHRlcjxDb2xvckV2ZW50PigpO1xuICBvbGRIdWUhOiBudW1iZXI7XG4gIGhzbCE6IEhTTEE7XG4gIGhzdiE6IEhTVkE7XG4gIHJnYiE6IFJHQkE7XG4gIGhleCE6IHN0cmluZztcbiAgc291cmNlITogc3RyaW5nO1xuICBjdXJyZW50Q29sb3IhOiBzdHJpbmc7XG4gIGNoYW5nZXM/OiBTdWJzY3JpcHRpb247XG4gIGRpc2FibGVBbHBoYT86IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfb25DaGFuZ2VDb21wbGV0ZVN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSBfb25Td2F0Y2hIb3ZlclN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNoYW5nZXMgPSB0aGlzLm9uQ2hhbmdlXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICAgIHRhcChldmVudCA9PiB7XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZUNvbXBsZXRlLmVtaXQoZXZlbnQpO1xuICAgICAgICAgIHN3aXRjaCAodGhpcy5tb2RlKSB7XG4gICAgICAgICAgICBjYXNlIENvbG9yTW9kZS5IRVg6XG4gICAgICAgICAgICAgIHRoaXMuY29sb3JDaGFuZ2UuZW1pdChldmVudC5jb2xvci5oZXgpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ29sb3JNb2RlLkhTTDpcbiAgICAgICAgICAgICAgdGhpcy5jb2xvckNoYW5nZS5lbWl0KGV2ZW50LmNvbG9yLmhzbCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDb2xvck1vZGUuSFNWOlxuICAgICAgICAgICAgICB0aGlzLmNvbG9yQ2hhbmdlLmVtaXQoZXZlbnQuY29sb3IuaHN2KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENvbG9yTW9kZS5SR0I6XG4gICAgICAgICAgICAgIHRoaXMuY29sb3JDaGFuZ2UuZW1pdChldmVudC5jb2xvci5yZ2IpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIGNvbnN0IG1zZyA9IGBUaGUgbW9kZSAnJHt0aGlzLm1vZGV9JyBpcyBub3Qgc3VwcG9ydGVkYDtcbiAgICAgICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKG1zZyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc2V0U3RhdGUodG9TdGF0ZSh0aGlzLmNvbG9yLCAwKSk7XG4gICAgdGhpcy5jdXJyZW50Q29sb3IgPSB0aGlzLmhleDtcbiAgfVxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLnNldFN0YXRlKHRvU3RhdGUodGhpcy5jb2xvciwgdGhpcy5vbGRIdWUpKTtcbiAgfVxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmNoYW5nZXM/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fb25DaGFuZ2VDb21wbGV0ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9vblN3YXRjaEhvdmVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG4gIHNldFN0YXRlKGRhdGEpIHtcbiAgICB0aGlzLm9sZEh1ZSA9IGRhdGEub2xkSHVlO1xuICAgIHRoaXMuaHNsID0gZGF0YS5oc2w7XG4gICAgdGhpcy5oc3YgPSBkYXRhLmhzdjtcbiAgICB0aGlzLnJnYiA9IGRhdGEucmdiO1xuICAgIHRoaXMuaGV4ID0gZGF0YS5oZXg7XG4gICAgdGhpcy5zb3VyY2UgPSBkYXRhLnNvdXJjZTtcbiAgICB0aGlzLmFmdGVyVmFsaWRDaGFuZ2UoKTtcbiAgfVxuICBoYW5kbGVDaGFuZ2UoZGF0YSwgJGV2ZW50KSB7XG4gICAgY29uc3QgaXNWYWxpZENvbG9yID0gc2ltcGxlQ2hlY2tGb3JWYWxpZENvbG9yKGRhdGEpO1xuICAgIGlmIChpc1ZhbGlkQ29sb3IpIHtcbiAgICAgIGNvbnN0IGNvbG9yID0gdG9TdGF0ZShkYXRhLCBkYXRhLmggfHwgdGhpcy5vbGRIdWUsIHRoaXMuZGlzYWJsZUFscGhhKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoY29sb3IpO1xuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHsgY29sb3IsICRldmVudCB9KTtcbiAgICAgIHRoaXMuYWZ0ZXJWYWxpZENoYW5nZSgpO1xuICAgIH1cbiAgfVxuICAvKiogaG9vayBmb3IgY29tcG9uZW50cyBhZnRlciBhIGNvbXBsZXRlIGNoYW5nZSAqL1xuICBhZnRlclZhbGlkQ2hhbmdlKCkge31cblxuICBoYW5kbGVTd2F0Y2hIb3ZlcihkYXRhLCAkZXZlbnQpIHtcbiAgICBjb25zdCBpc1ZhbGlkQ29sb3IgPSBzaW1wbGVDaGVja0ZvclZhbGlkQ29sb3IoZGF0YSk7XG4gICAgaWYgKGlzVmFsaWRDb2xvcikge1xuICAgICAgY29uc3QgY29sb3IgPSB0b1N0YXRlKGRhdGEsIGRhdGEuaCB8fCB0aGlzLm9sZEh1ZSk7XG4gICAgICB0aGlzLnNldFN0YXRlKGNvbG9yKTtcbiAgICAgIHRoaXMub25Td2F0Y2hIb3Zlci5lbWl0KHsgY29sb3IsICRldmVudCB9KTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoaGV4OiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZUNvbXBsZXRlU3Vic2NyaXB0aW9uLmFkZCh0aGlzLm9uQ2hhbmdlQ29tcGxldGUucGlwZShcbiAgICAgIHRhcChldmVudCA9PiBmbihldmVudC5jb2xvci5oZXgpKSxcbiAgICApLnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25Td2F0Y2hIb3ZlclN1YnNjcmlwdGlvbi5hZGQodGhpcy5vblN3YXRjaEhvdmVyLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gZm4oKSksXG4gICAgKS5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHt9XG5cbiAgd3JpdGVWYWx1ZShoZXg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29sb3IgPSBoZXg7XG4gIH1cblxufVxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDb2xvcldyYXBdLFxuICBleHBvcnRzOiBbQ29sb3JXcmFwXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIENvbG9yV3JhcE1vZHVsZSB7fVxuIl19
|
@@ -1,71 +0,0 @@
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
2
|
-
import { getContrastingColor } from 'ngx-color';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
import * as i1 from "ngx-color";
|
5
|
-
class CompactColorComponent {
|
6
|
-
color;
|
7
|
-
active;
|
8
|
-
onClick = new EventEmitter();
|
9
|
-
onSwatchHover = new EventEmitter();
|
10
|
-
swatchStyle = {
|
11
|
-
width: '15px',
|
12
|
-
height: '15px',
|
13
|
-
float: 'left',
|
14
|
-
marginRight: '5px',
|
15
|
-
marginBottom: '5px',
|
16
|
-
position: 'relative',
|
17
|
-
cursor: 'pointer',
|
18
|
-
};
|
19
|
-
swatchFocus = {};
|
20
|
-
getContrastingColor = getContrastingColor;
|
21
|
-
ngOnChanges() {
|
22
|
-
this.swatchStyle.background = this.color;
|
23
|
-
this.swatchFocus.boxShadow = `0 0 4px ${this.color}`;
|
24
|
-
if (this.color.toLowerCase() === '#ffffff') {
|
25
|
-
this.swatchStyle.boxShadow = 'inset 0 0 0 1px #ddd';
|
26
|
-
}
|
27
|
-
}
|
28
|
-
handleClick({ hex, $event }) {
|
29
|
-
this.onClick.emit({ hex, $event });
|
30
|
-
}
|
31
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CompactColorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
32
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: CompactColorComponent, selector: "color-compact-color", inputs: { color: "color", active: "active" }, outputs: { onClick: "onClick", onSwatchHover: "onSwatchHover" }, usesOnChanges: true, ngImport: i0, template: `
|
33
|
-
<div class="compact-color">
|
34
|
-
<color-swatch class="swatch"
|
35
|
-
[color]="color" [style]="swatchStyle"
|
36
|
-
[focusStyle]="swatchFocus"
|
37
|
-
(onClick)="handleClick($event)" (onHover)="onSwatchHover.emit($event)"
|
38
|
-
>
|
39
|
-
<div class="compact-dot"
|
40
|
-
[class.active]="active" [style.background]="getContrastingColor(color)"
|
41
|
-
></div>
|
42
|
-
</color-swatch>
|
43
|
-
</div>
|
44
|
-
`, isInline: true, styles: [".compact-dot{position:absolute;inset:5px;border-radius:50%;opacity:0}.compact-dot.active{opacity:1}\n"], dependencies: [{ kind: "component", type: i1.SwatchComponent, selector: "color-swatch", inputs: ["color", "style", "focusStyle", "focus"], outputs: ["onClick", "onHover"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
45
|
-
}
|
46
|
-
export { CompactColorComponent };
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CompactColorComponent, decorators: [{
|
48
|
-
type: Component,
|
49
|
-
args: [{ selector: 'color-compact-color', template: `
|
50
|
-
<div class="compact-color">
|
51
|
-
<color-swatch class="swatch"
|
52
|
-
[color]="color" [style]="swatchStyle"
|
53
|
-
[focusStyle]="swatchFocus"
|
54
|
-
(onClick)="handleClick($event)" (onHover)="onSwatchHover.emit($event)"
|
55
|
-
>
|
56
|
-
<div class="compact-dot"
|
57
|
-
[class.active]="active" [style.background]="getContrastingColor(color)"
|
58
|
-
></div>
|
59
|
-
</color-swatch>
|
60
|
-
</div>
|
61
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, styles: [".compact-dot{position:absolute;inset:5px;border-radius:50%;opacity:0}.compact-dot.active{opacity:1}\n"] }]
|
62
|
-
}], propDecorators: { color: [{
|
63
|
-
type: Input
|
64
|
-
}], active: [{
|
65
|
-
type: Input
|
66
|
-
}], onClick: [{
|
67
|
-
type: Output
|
68
|
-
}], onSwatchHover: [{
|
69
|
-
type: Output
|
70
|
-
}] } });
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFjdC1jb2xvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBhY3QvY29tcGFjdC1jb2xvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFaEQsTUFrQ2EscUJBQXFCO0lBQ3ZCLEtBQUssQ0FBVTtJQUNmLE1BQU0sQ0FBVztJQUNoQixPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUNsQyxhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUNsRCxXQUFXLEdBQTJCO1FBQ3BDLEtBQUssRUFBRSxNQUFNO1FBQ2IsTUFBTSxFQUFFLE1BQU07UUFDZCxLQUFLLEVBQUUsTUFBTTtRQUNiLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLFlBQVksRUFBRSxLQUFLO1FBQ25CLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLE1BQU0sRUFBRSxTQUFTO0tBQ2xCLENBQUM7SUFDRixXQUFXLEdBQTJCLEVBQUUsQ0FBQztJQUN6QyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztJQUUxQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxXQUFXLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssU0FBUyxFQUFFO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLHNCQUFzQixDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUNELFdBQVcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUU7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO3VHQTFCVSxxQkFBcUI7MkZBQXJCLHFCQUFxQiwrTEFoQ3RCOzs7Ozs7Ozs7Ozs7R0FZVDs7U0FvQlUscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBbENqQyxTQUFTOytCQUNFLHFCQUFxQixZQUNyQjs7Ozs7Ozs7Ozs7O0dBWVQsbUJBaUJnQix1QkFBdUIsQ0FBQyxNQUFNLHVCQUMxQixLQUFLOzhCQUdqQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgZ2V0Q29udHJhc3RpbmdDb2xvciB9IGZyb20gJ25neC1jb2xvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvbG9yLWNvbXBhY3QtY29sb3InLFxuICB0ZW1wbGF0ZTogYFxuICA8ZGl2IGNsYXNzPVwiY29tcGFjdC1jb2xvclwiPlxuICAgIDxjb2xvci1zd2F0Y2ggY2xhc3M9XCJzd2F0Y2hcIlxuICAgICAgW2NvbG9yXT1cImNvbG9yXCIgW3N0eWxlXT1cInN3YXRjaFN0eWxlXCJcbiAgICAgIFtmb2N1c1N0eWxlXT1cInN3YXRjaEZvY3VzXCJcbiAgICAgIChvbkNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIiAob25Ib3Zlcik9XCJvblN3YXRjaEhvdmVyLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29tcGFjdC1kb3RcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImdldENvbnRyYXN0aW5nQ29sb3IoY29sb3IpXCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2NvbG9yLXN3YXRjaD5cbiAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgLmNvbXBhY3QtZG90IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1cHg7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBib3R0b206IDVweDtcbiAgICBsZWZ0OiA1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgLmNvbXBhY3QtZG90LmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICBgLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIENvbXBhY3RDb2xvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNvbG9yITogc3RyaW5nO1xuICBASW5wdXQoKSBhY3RpdmUhOiBib29sZWFuO1xuICBAT3V0cHV0KCkgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25Td2F0Y2hIb3ZlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBzd2F0Y2hTdHlsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICB3aWR0aDogJzE1cHgnLFxuICAgIGhlaWdodDogJzE1cHgnLFxuICAgIGZsb2F0OiAnbGVmdCcsXG4gICAgbWFyZ2luUmlnaHQ6ICc1cHgnLFxuICAgIG1hcmdpbkJvdHRvbTogJzVweCcsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgY3Vyc29yOiAncG9pbnRlcicsXG4gIH07XG4gIHN3YXRjaEZvY3VzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGdldENvbnRyYXN0aW5nQ29sb3IgPSBnZXRDb250cmFzdGluZ0NvbG9yO1xuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMuc3dhdGNoU3R5bGUuYmFja2dyb3VuZCA9IHRoaXMuY29sb3I7XG4gICAgdGhpcy5zd2F0Y2hGb2N1cy5ib3hTaGFkb3cgPSBgMCAwIDRweCAke3RoaXMuY29sb3J9YDtcbiAgICBpZiAodGhpcy5jb2xvci50b0xvd2VyQ2FzZSgpID09PSAnI2ZmZmZmZicpIHtcbiAgICAgIHRoaXMuc3dhdGNoU3R5bGUuYm94U2hhZG93ID0gJ2luc2V0IDAgMCAwIDFweCAjZGRkJztcbiAgICB9XG4gIH1cbiAgaGFuZGxlQ2xpY2soeyBoZXgsICRldmVudCB9KSB7XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoeyBoZXgsICRldmVudCB9KTtcbiAgfVxufVxuIl19
|
@@ -1,165 +0,0 @@
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
2
|
-
import { isValidHex } from 'ngx-color';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
import * as i1 from "ngx-color";
|
5
|
-
class CompactFieldsComponent {
|
6
|
-
hex;
|
7
|
-
rgb;
|
8
|
-
onChange = new EventEmitter();
|
9
|
-
HEXWrap = {
|
10
|
-
marginTop: '-3px',
|
11
|
-
marginBottom: '-3px',
|
12
|
-
// flex: '6 1 0%',
|
13
|
-
position: 'relative',
|
14
|
-
};
|
15
|
-
HEXinput = {
|
16
|
-
width: '80%',
|
17
|
-
padding: '0px',
|
18
|
-
paddingLeft: '20%',
|
19
|
-
border: 'none',
|
20
|
-
outline: 'none',
|
21
|
-
background: 'none',
|
22
|
-
fontSize: '12px',
|
23
|
-
color: '#333',
|
24
|
-
height: '16px',
|
25
|
-
};
|
26
|
-
HEXlabel = {
|
27
|
-
display: 'none',
|
28
|
-
};
|
29
|
-
RGBwrap = {
|
30
|
-
marginTop: '-3px',
|
31
|
-
marginBottom: '-3px',
|
32
|
-
// flex: '3 1 0%',
|
33
|
-
position: 'relative',
|
34
|
-
};
|
35
|
-
RGBinput = {
|
36
|
-
width: '80%',
|
37
|
-
padding: '0px',
|
38
|
-
paddingLeft: '30%',
|
39
|
-
border: 'none',
|
40
|
-
outline: 'none',
|
41
|
-
background: 'none',
|
42
|
-
fontSize: '12px',
|
43
|
-
color: '#333',
|
44
|
-
height: '16px',
|
45
|
-
};
|
46
|
-
RGBlabel = {
|
47
|
-
position: 'absolute',
|
48
|
-
top: '6px',
|
49
|
-
left: '0px',
|
50
|
-
'line-height': '16px',
|
51
|
-
'text-transform': 'uppercase',
|
52
|
-
fontSize: '12px',
|
53
|
-
color: '#999',
|
54
|
-
};
|
55
|
-
handleChange({ data, $event }) {
|
56
|
-
if (data.hex) {
|
57
|
-
if (isValidHex(data.hex)) {
|
58
|
-
this.onChange.emit({
|
59
|
-
data: {
|
60
|
-
hex: data.hex,
|
61
|
-
source: 'hex',
|
62
|
-
},
|
63
|
-
$event,
|
64
|
-
});
|
65
|
-
}
|
66
|
-
}
|
67
|
-
else {
|
68
|
-
this.onChange.emit({
|
69
|
-
data: {
|
70
|
-
r: data.r || this.rgb.r,
|
71
|
-
g: data.g || this.rgb.g,
|
72
|
-
b: data.b || this.rgb.b,
|
73
|
-
source: 'rgb',
|
74
|
-
},
|
75
|
-
$event,
|
76
|
-
});
|
77
|
-
}
|
78
|
-
}
|
79
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CompactFieldsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
80
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: CompactFieldsComponent, selector: "color-compact-fields", inputs: { hex: "hex", rgb: "rgb" }, outputs: { onChange: "onChange" }, ngImport: i0, template: `
|
81
|
-
<div class="compact-fields">
|
82
|
-
<div class="compact-active" [style.background]="hex"></div>
|
83
|
-
<div style="flex: 6 1 0%;">
|
84
|
-
<color-editable-input
|
85
|
-
[style]="{ wrap: HEXWrap, input: HEXinput, label: HEXlabel }"
|
86
|
-
label="hex"
|
87
|
-
[value]="hex"
|
88
|
-
(onChange)="handleChange($event)"
|
89
|
-
></color-editable-input>
|
90
|
-
</div>
|
91
|
-
<div style="flex: 3 1 0%">
|
92
|
-
<color-editable-input
|
93
|
-
[style]="{ wrap: RGBwrap, input: RGBinput, label: RGBlabel }"
|
94
|
-
label="r"
|
95
|
-
[value]="rgb.r"
|
96
|
-
(onChange)="handleChange($event)"
|
97
|
-
></color-editable-input>
|
98
|
-
</div>
|
99
|
-
<div style="flex: 3 1 0%">
|
100
|
-
<color-editable-input
|
101
|
-
[style]="{ wrap: RGBwrap, input: RGBinput, label: RGBlabel }"
|
102
|
-
label="g"
|
103
|
-
[value]="rgb.g"
|
104
|
-
(onChange)="handleChange($event)"
|
105
|
-
></color-editable-input>
|
106
|
-
</div>
|
107
|
-
<div style="flex: 3 1 0%">
|
108
|
-
<color-editable-input
|
109
|
-
[style]="{ wrap: RGBwrap, input: RGBinput, label: RGBlabel }"
|
110
|
-
label="b"
|
111
|
-
[value]="rgb.b"
|
112
|
-
(onChange)="handleChange($event)"
|
113
|
-
></color-editable-input>
|
114
|
-
</div>
|
115
|
-
</div>
|
116
|
-
`, isInline: true, styles: [".compact-fields{display:flex;padding-bottom:6px;padding-right:5px;position:relative}.compact-active{position:absolute;top:6px;left:5px;height:9px;width:9px}\n"], dependencies: [{ kind: "component", type: i1.EditableInputComponent, selector: "color-editable-input", inputs: ["style", "label", "value", "arrowOffset", "dragLabel", "dragMax", "placeholder"], outputs: ["onChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
117
|
-
}
|
118
|
-
export { CompactFieldsComponent };
|
119
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CompactFieldsComponent, decorators: [{
|
120
|
-
type: Component,
|
121
|
-
args: [{ selector: 'color-compact-fields', template: `
|
122
|
-
<div class="compact-fields">
|
123
|
-
<div class="compact-active" [style.background]="hex"></div>
|
124
|
-
<div style="flex: 6 1 0%;">
|
125
|
-
<color-editable-input
|
126
|
-
[style]="{ wrap: HEXWrap, input: HEXinput, label: HEXlabel }"
|
127
|
-
label="hex"
|
128
|
-
[value]="hex"
|
129
|
-
(onChange)="handleChange($event)"
|
130
|
-
></color-editable-input>
|
131
|
-
</div>
|
132
|
-
<div style="flex: 3 1 0%">
|
133
|
-
<color-editable-input
|
134
|
-
[style]="{ wrap: RGBwrap, input: RGBinput, label: RGBlabel }"
|
135
|
-
label="r"
|
136
|
-
[value]="rgb.r"
|
137
|
-
(onChange)="handleChange($event)"
|
138
|
-
></color-editable-input>
|
139
|
-
</div>
|
140
|
-
<div style="flex: 3 1 0%">
|
141
|
-
<color-editable-input
|
142
|
-
[style]="{ wrap: RGBwrap, input: RGBinput, label: RGBlabel }"
|
143
|
-
label="g"
|
144
|
-
[value]="rgb.g"
|
145
|
-
(onChange)="handleChange($event)"
|
146
|
-
></color-editable-input>
|
147
|
-
</div>
|
148
|
-
<div style="flex: 3 1 0%">
|
149
|
-
<color-editable-input
|
150
|
-
[style]="{ wrap: RGBwrap, input: RGBinput, label: RGBlabel }"
|
151
|
-
label="b"
|
152
|
-
[value]="rgb.b"
|
153
|
-
(onChange)="handleChange($event)"
|
154
|
-
></color-editable-input>
|
155
|
-
</div>
|
156
|
-
</div>
|
157
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, styles: [".compact-fields{display:flex;padding-bottom:6px;padding-right:5px;position:relative}.compact-active{position:absolute;top:6px;left:5px;height:9px;width:9px}\n"] }]
|
158
|
-
}], propDecorators: { hex: [{
|
159
|
-
type: Input
|
160
|
-
}], rgb: [{
|
161
|
-
type: Input
|
162
|
-
}], onChange: [{
|
163
|
-
type: Output
|
164
|
-
}] } });
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFjdC1maWVsZHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wYWN0L2NvbXBhY3QtZmllbGRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sV0FBVyxDQUFDOzs7QUFFN0MsTUEyRGEsc0JBQXNCO0lBQ3hCLEdBQUcsQ0FBVTtJQUNiLEdBQUcsQ0FBUTtJQUNWLFFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQzdDLE9BQU8sR0FBNEI7UUFDakMsU0FBUyxFQUFFLE1BQU07UUFDakIsWUFBWSxFQUFFLE1BQU07UUFDcEIsa0JBQWtCO1FBQ2xCLFFBQVEsRUFBRSxVQUFVO0tBQ3JCLENBQUM7SUFDRixRQUFRLEdBQTRCO1FBQ2xDLEtBQUssRUFBRSxLQUFLO1FBQ1osT0FBTyxFQUFFLEtBQUs7UUFDZCxXQUFXLEVBQUUsS0FBSztRQUNsQixNQUFNLEVBQUUsTUFBTTtRQUNkLE9BQU8sRUFBRSxNQUFNO1FBQ2YsVUFBVSxFQUFFLE1BQU07UUFDbEIsUUFBUSxFQUFFLE1BQU07UUFDaEIsS0FBSyxFQUFFLE1BQU07UUFDYixNQUFNLEVBQUUsTUFBTTtLQUNmLENBQUM7SUFDRixRQUFRLEdBQTRCO1FBQ2xDLE9BQU8sRUFBRSxNQUFNO0tBQ2hCLENBQUM7SUFDRixPQUFPLEdBQTRCO1FBQ2pDLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLFlBQVksRUFBRSxNQUFNO1FBQ3BCLGtCQUFrQjtRQUNsQixRQUFRLEVBQUUsVUFBVTtLQUNyQixDQUFDO0lBQ0YsUUFBUSxHQUE0QjtRQUNsQyxLQUFLLEVBQUUsS0FBSztRQUNaLE9BQU8sRUFBRSxLQUFLO1FBQ2QsV0FBVyxFQUFFLEtBQUs7UUFDbEIsTUFBTSxFQUFFLE1BQU07UUFDZCxPQUFPLEVBQUUsTUFBTTtRQUNmLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLEtBQUssRUFBRSxNQUFNO1FBQ2IsTUFBTSxFQUFFLE1BQU07S0FDZixDQUFDO0lBQ0YsUUFBUSxHQUE0QjtRQUNsQyxRQUFRLEVBQUUsVUFBVTtRQUNwQixHQUFHLEVBQUUsS0FBSztRQUNWLElBQUksRUFBRSxLQUFLO1FBQ1gsYUFBYSxFQUFFLE1BQU07UUFDckIsZ0JBQWdCLEVBQUUsV0FBVztRQUM3QixRQUFRLEVBQUUsTUFBTTtRQUNoQixLQUFLLEVBQUUsTUFBTTtLQUNkLENBQUM7SUFFRixZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1FBQzNCLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7b0JBQ2pCLElBQUksRUFBRTt3QkFDSixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7d0JBQ2IsTUFBTSxFQUFFLEtBQUs7cUJBQ2Q7b0JBQ0QsTUFBTTtpQkFDUCxDQUFDLENBQUM7YUFDSjtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDakIsSUFBSSxFQUFFO29CQUNKLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDdkIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN2QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3ZCLE1BQU0sRUFBRSxLQUFLO2lCQUNkO2dCQUNELE1BQU07YUFDUCxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7dUdBekVVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLG1JQXpEdkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9DVDs7U0FxQlUsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBM0RsQyxTQUFTOytCQUNFLHNCQUFzQixZQUN0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0NULG1CQWtCZ0IsdUJBQXVCLENBQUMsTUFBTSx1QkFDMUIsS0FBSzs4QkFHakIsR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgaXNWYWxpZEhleCwgUkdCQSB9IGZyb20gJ25neC1jb2xvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvbG9yLWNvbXBhY3QtZmllbGRzJyxcbiAgdGVtcGxhdGU6IGBcbiAgPGRpdiBjbGFzcz1cImNvbXBhY3QtZmllbGRzXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbXBhY3QtYWN0aXZlXCIgW3N0eWxlLmJhY2tncm91bmRdPVwiaGV4XCI+PC9kaXY+XG4gICAgPGRpdiBzdHlsZT1cImZsZXg6IDYgMSAwJTtcIj5cbiAgICAgIDxjb2xvci1lZGl0YWJsZS1pbnB1dFxuICAgICAgICBbc3R5bGVdPVwieyB3cmFwOiBIRVhXcmFwLCBpbnB1dDogSEVYaW5wdXQsIGxhYmVsOiBIRVhsYWJlbCB9XCJcbiAgICAgICAgbGFiZWw9XCJoZXhcIlxuICAgICAgICBbdmFsdWVdPVwiaGV4XCJcbiAgICAgICAgKG9uQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgID48L2NvbG9yLWVkaXRhYmxlLWlucHV0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJmbGV4OiAzIDEgMCVcIj5cbiAgICAgIDxjb2xvci1lZGl0YWJsZS1pbnB1dFxuICAgICAgICBbc3R5bGVdPVwieyB3cmFwOiBSR0J3cmFwLCBpbnB1dDogUkdCaW5wdXQsIGxhYmVsOiBSR0JsYWJlbCB9XCJcbiAgICAgICAgbGFiZWw9XCJyXCJcbiAgICAgICAgW3ZhbHVlXT1cInJnYi5yXCJcbiAgICAgICAgKG9uQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgID48L2NvbG9yLWVkaXRhYmxlLWlucHV0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJmbGV4OiAzIDEgMCVcIj5cbiAgICAgIDxjb2xvci1lZGl0YWJsZS1pbnB1dFxuICAgICAgICBbc3R5bGVdPVwieyB3cmFwOiBSR0J3cmFwLCBpbnB1dDogUkdCaW5wdXQsIGxhYmVsOiBSR0JsYWJlbCB9XCJcbiAgICAgICAgbGFiZWw9XCJnXCJcbiAgICAgICAgW3ZhbHVlXT1cInJnYi5nXCJcbiAgICAgICAgKG9uQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgID48L2NvbG9yLWVkaXRhYmxlLWlucHV0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJmbGV4OiAzIDEgMCVcIj5cbiAgICAgIDxjb2xvci1lZGl0YWJsZS1pbnB1dFxuICAgICAgICBbc3R5bGVdPVwieyB3cmFwOiBSR0J3cmFwLCBpbnB1dDogUkdCaW5wdXQsIGxhYmVsOiBSR0JsYWJlbCB9XCJcbiAgICAgICAgbGFiZWw9XCJiXCJcbiAgICAgICAgW3ZhbHVlXT1cInJnYi5iXCJcbiAgICAgICAgKG9uQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgID48L2NvbG9yLWVkaXRhYmxlLWlucHV0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAuY29tcGFjdC1maWVsZHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZy1ib3R0b206IDZweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIC5jb21wYWN0LWFjdGl2ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNnB4O1xuICAgIGxlZnQ6IDVweDtcbiAgICBoZWlnaHQ6IDlweDtcbiAgICB3aWR0aDogOXB4O1xuICB9XG4gIGAsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgQ29tcGFjdEZpZWxkc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGhleCE6IHN0cmluZztcbiAgQElucHV0KCkgcmdiITogUkdCQTtcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEhFWFdyYXA6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge1xuICAgIG1hcmdpblRvcDogJy0zcHgnLFxuICAgIG1hcmdpbkJvdHRvbTogJy0zcHgnLFxuICAgIC8vIGZsZXg6ICc2IDEgMCUnLFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICB9O1xuICBIRVhpbnB1dDoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7XG4gICAgd2lkdGg6ICc4MCUnLFxuICAgIHBhZGRpbmc6ICcwcHgnLFxuICAgIHBhZGRpbmdMZWZ0OiAnMjAlJyxcbiAgICBib3JkZXI6ICdub25lJyxcbiAgICBvdXRsaW5lOiAnbm9uZScsXG4gICAgYmFja2dyb3VuZDogJ25vbmUnLFxuICAgIGZvbnRTaXplOiAnMTJweCcsXG4gICAgY29sb3I6ICcjMzMzJyxcbiAgICBoZWlnaHQ6ICcxNnB4JyxcbiAgfTtcbiAgSEVYbGFiZWw6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge1xuICAgIGRpc3BsYXk6ICdub25lJyxcbiAgfTtcbiAgUkdCd3JhcDoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7XG4gICAgbWFyZ2luVG9wOiAnLTNweCcsXG4gICAgbWFyZ2luQm90dG9tOiAnLTNweCcsXG4gICAgLy8gZmxleDogJzMgMSAwJScsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gIH07XG4gIFJHQmlucHV0OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHtcbiAgICB3aWR0aDogJzgwJScsXG4gICAgcGFkZGluZzogJzBweCcsXG4gICAgcGFkZGluZ0xlZnQ6ICczMCUnLFxuICAgIGJvcmRlcjogJ25vbmUnLFxuICAgIG91dGxpbmU6ICdub25lJyxcbiAgICBiYWNrZ3JvdW5kOiAnbm9uZScsXG4gICAgZm9udFNpemU6ICcxMnB4JyxcbiAgICBjb2xvcjogJyMzMzMnLFxuICAgIGhlaWdodDogJzE2cHgnLFxuICB9O1xuICBSR0JsYWJlbDoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdG9wOiAnNnB4JyxcbiAgICBsZWZ0OiAnMHB4JyxcbiAgICAnbGluZS1oZWlnaHQnOiAnMTZweCcsXG4gICAgJ3RleHQtdHJhbnNmb3JtJzogJ3VwcGVyY2FzZScsXG4gICAgZm9udFNpemU6ICcxMnB4JyxcbiAgICBjb2xvcjogJyM5OTknLFxuICB9O1xuXG4gIGhhbmRsZUNoYW5nZSh7IGRhdGEsICRldmVudCB9KSB7XG4gICAgaWYgKGRhdGEuaGV4KSB7XG4gICAgICBpZiAoaXNWYWxpZEhleChkYXRhLmhleCkpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBoZXg6IGRhdGEuaGV4LFxuICAgICAgICAgICAgc291cmNlOiAnaGV4JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgICRldmVudCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICByOiBkYXRhLnIgfHwgdGhpcy5yZ2IucixcbiAgICAgICAgICBnOiBkYXRhLmcgfHwgdGhpcy5yZ2IuZyxcbiAgICAgICAgICBiOiBkYXRhLmIgfHwgdGhpcy5yZ2IuYixcbiAgICAgICAgICBzb3VyY2U6ICdyZ2InLFxuICAgICAgICB9LFxuICAgICAgICAkZXZlbnQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|