@skyux/colorpicker 5.7.2 → 6.0.0-beta.2
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/documentation.json +2 -2
- package/esm2020/index.mjs +16 -0
- package/esm2020/lib/modules/colorpicker/colorpicker-classes.mjs +24 -0
- package/esm2020/lib/modules/colorpicker/colorpicker-input.directive.mjs +264 -0
- package/esm2020/lib/modules/colorpicker/colorpicker-slider.directive.mjs +98 -0
- package/esm2020/lib/modules/colorpicker/colorpicker-text.directive.mjs +51 -0
- package/esm2020/lib/modules/colorpicker/colorpicker.component.mjs +413 -0
- package/esm2020/lib/modules/colorpicker/colorpicker.module.mjs +60 -0
- package/esm2020/lib/modules/colorpicker/colorpicker.service.mjs +342 -0
- package/esm2020/lib/modules/colorpicker/types/colorpicker-axis.mjs +2 -0
- package/esm2020/lib/modules/colorpicker/types/colorpicker-cmyk.mjs +2 -0
- package/esm2020/lib/modules/colorpicker/types/colorpicker-color.mjs +2 -0
- package/esm2020/lib/modules/colorpicker/types/colorpicker-hsla.mjs +2 -0
- package/esm2020/lib/modules/colorpicker/types/colorpicker-hsva.mjs +2 -0
- package/esm2020/lib/modules/colorpicker/types/colorpicker-message-type.mjs +23 -0
- package/esm2020/lib/modules/colorpicker/types/colorpicker-message.mjs +2 -0
- package/esm2020/lib/modules/colorpicker/types/colorpicker-output.mjs +2 -0
- package/esm2020/lib/modules/colorpicker/types/colorpicker-result.mjs +2 -0
- package/esm2020/lib/modules/colorpicker/types/colorpicker-rgba.mjs +2 -0
- package/esm2020/lib/modules/shared/sky-colorpicker-resources.module.mjs +64 -0
- package/esm2020/skyux-colorpicker.mjs +5 -0
- package/esm2020/testing/colorpicker-fixture.mjs +85 -0
- package/esm2020/testing/public-api.mjs +2 -0
- package/esm2020/testing/skyux-colorpicker-testing.mjs +5 -0
- package/fesm2015/{skyux-colorpicker-testing.js → skyux-colorpicker-testing.mjs} +1 -1
- package/fesm2015/skyux-colorpicker-testing.mjs.map +1 -0
- package/fesm2015/skyux-colorpicker.mjs +1319 -0
- package/fesm2015/skyux-colorpicker.mjs.map +1 -0
- package/fesm2020/skyux-colorpicker-testing.mjs +92 -0
- package/fesm2020/skyux-colorpicker-testing.mjs.map +1 -0
- package/fesm2020/skyux-colorpicker.mjs +1315 -0
- package/fesm2020/skyux-colorpicker.mjs.map +1 -0
- package/package.json +41 -17
- package/testing/package.json +5 -5
- package/bundles/skyux-colorpicker-testing.umd.js +0 -465
- package/bundles/skyux-colorpicker.umd.js +0 -1420
- package/esm2015/index.js +0 -16
- package/esm2015/index.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/colorpicker-classes.js +0 -24
- package/esm2015/lib/modules/colorpicker/colorpicker-classes.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/colorpicker-input.directive.js +0 -264
- package/esm2015/lib/modules/colorpicker/colorpicker-input.directive.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/colorpicker-slider.directive.js +0 -98
- package/esm2015/lib/modules/colorpicker/colorpicker-slider.directive.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/colorpicker-text.directive.js +0 -51
- package/esm2015/lib/modules/colorpicker/colorpicker-text.directive.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/colorpicker.component.js +0 -421
- package/esm2015/lib/modules/colorpicker/colorpicker.component.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/colorpicker.module.js +0 -61
- package/esm2015/lib/modules/colorpicker/colorpicker.module.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/colorpicker.service.js +0 -342
- package/esm2015/lib/modules/colorpicker/colorpicker.service.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/types/colorpicker-axis.js +0 -2
- package/esm2015/lib/modules/colorpicker/types/colorpicker-axis.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/types/colorpicker-cmyk.js +0 -2
- package/esm2015/lib/modules/colorpicker/types/colorpicker-cmyk.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/types/colorpicker-color.js +0 -2
- package/esm2015/lib/modules/colorpicker/types/colorpicker-color.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/types/colorpicker-hsla.js +0 -2
- package/esm2015/lib/modules/colorpicker/types/colorpicker-hsla.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/types/colorpicker-hsva.js +0 -2
- package/esm2015/lib/modules/colorpicker/types/colorpicker-hsva.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/types/colorpicker-message-type.js +0 -23
- package/esm2015/lib/modules/colorpicker/types/colorpicker-message-type.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/types/colorpicker-message.js +0 -2
- package/esm2015/lib/modules/colorpicker/types/colorpicker-message.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/types/colorpicker-output.js +0 -2
- package/esm2015/lib/modules/colorpicker/types/colorpicker-output.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/types/colorpicker-result.js +0 -2
- package/esm2015/lib/modules/colorpicker/types/colorpicker-result.js.map +0 -1
- package/esm2015/lib/modules/colorpicker/types/colorpicker-rgba.js +0 -2
- package/esm2015/lib/modules/colorpicker/types/colorpicker-rgba.js.map +0 -1
- package/esm2015/lib/modules/shared/sky-colorpicker-resources.module.js +0 -64
- package/esm2015/lib/modules/shared/sky-colorpicker-resources.module.js.map +0 -1
- package/esm2015/skyux-colorpicker.js +0 -5
- package/esm2015/skyux-colorpicker.js.map +0 -1
- package/esm2015/testing/colorpicker-fixture.js +0 -96
- package/esm2015/testing/colorpicker-fixture.js.map +0 -1
- package/esm2015/testing/public-api.js +0 -2
- package/esm2015/testing/public-api.js.map +0 -1
- package/esm2015/testing/skyux-colorpicker-testing.js +0 -5
- package/esm2015/testing/skyux-colorpicker-testing.js.map +0 -1
- package/fesm2015/skyux-colorpicker-testing.js.map +0 -1
- package/fesm2015/skyux-colorpicker.js +0 -1324
- package/fesm2015/skyux-colorpicker.js.map +0 -1
package/documentation.json
CHANGED
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
"name": "NgModule"
|
|
140
140
|
},
|
|
141
141
|
"arguments": {
|
|
142
|
-
"obj": "{\n declarations: [\n SkyColorpickerComponent,\n SkyColorpickerInputDirective,\n SkyColorpickerTextDirective,\n SkyColorpickerSliderDirective,\n ],\n imports: [\n CommonModule,\n SkyAffixModule,\n SkyColorpickerResourcesModule,\n SkyI18nModule,\n SkyIconModule,\n SkyInputBoxModule,\n SkyOverlayModule,\n SkyThemeModule,\n ],\n exports: [SkyColorpickerComponent, SkyColorpickerInputDirective],\n
|
|
142
|
+
"obj": "{\n declarations: [\n SkyColorpickerComponent,\n SkyColorpickerInputDirective,\n SkyColorpickerTextDirective,\n SkyColorpickerSliderDirective,\n ],\n imports: [\n CommonModule,\n SkyAffixModule,\n SkyColorpickerResourcesModule,\n SkyI18nModule,\n SkyIconModule,\n SkyInputBoxModule,\n SkyOverlayModule,\n SkyThemeModule,\n ],\n exports: [SkyColorpickerComponent, SkyColorpickerInputDirective],\n}"
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
145
|
],
|
|
@@ -156,7 +156,7 @@
|
|
|
156
156
|
"sources": [
|
|
157
157
|
{
|
|
158
158
|
"fileName": "projects/colorpicker/src/modules/colorpicker/colorpicker.module.ts",
|
|
159
|
-
"line":
|
|
159
|
+
"line": 35,
|
|
160
160
|
"character": 13
|
|
161
161
|
}
|
|
162
162
|
]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export * from './lib/modules/colorpicker/colorpicker.module';
|
|
2
|
+
export * from './lib/modules/colorpicker/types/colorpicker-axis';
|
|
3
|
+
export * from './lib/modules/colorpicker/types/colorpicker-cmyk';
|
|
4
|
+
export * from './lib/modules/colorpicker/types/colorpicker-color';
|
|
5
|
+
export * from './lib/modules/colorpicker/types/colorpicker-hsla';
|
|
6
|
+
export * from './lib/modules/colorpicker/types/colorpicker-hsva';
|
|
7
|
+
export * from './lib/modules/colorpicker/types/colorpicker-message';
|
|
8
|
+
export * from './lib/modules/colorpicker/types/colorpicker-message-type';
|
|
9
|
+
export * from './lib/modules/colorpicker/types/colorpicker-output';
|
|
10
|
+
export * from './lib/modules/colorpicker/types/colorpicker-result';
|
|
11
|
+
export * from './lib/modules/colorpicker/types/colorpicker-rgba';
|
|
12
|
+
// Components and directives must be exported to support Angular's "partial" Ivy compiler.
|
|
13
|
+
// Obscure names are used to indicate types are not part of the public API.
|
|
14
|
+
export { SkyColorpickerComponent as λ1 } from './lib/modules/colorpicker/colorpicker.component';
|
|
15
|
+
export { SkyColorpickerInputDirective as λ2 } from './lib/modules/colorpicker/colorpicker-input.directive';
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3JwaWNrZXIvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxrREFBa0QsQ0FBQztBQUVqRSwwRkFBMEY7QUFDMUYsMkVBQTJFO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsSUFBSSxFQUFFLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsNEJBQTRCLElBQUksRUFBRSxFQUFFLE1BQU0sdURBQXVELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2NvbG9ycGlja2VyL2NvbG9ycGlja2VyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2NvbG9ycGlja2VyL3R5cGVzL2NvbG9ycGlja2VyLWF4aXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9jb2xvcnBpY2tlci90eXBlcy9jb2xvcnBpY2tlci1jbXlrJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvY29sb3JwaWNrZXIvdHlwZXMvY29sb3JwaWNrZXItY29sb3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9jb2xvcnBpY2tlci90eXBlcy9jb2xvcnBpY2tlci1oc2xhJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvY29sb3JwaWNrZXIvdHlwZXMvY29sb3JwaWNrZXItaHN2YSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2NvbG9ycGlja2VyL3R5cGVzL2NvbG9ycGlja2VyLW1lc3NhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9jb2xvcnBpY2tlci90eXBlcy9jb2xvcnBpY2tlci1tZXNzYWdlLXR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9jb2xvcnBpY2tlci90eXBlcy9jb2xvcnBpY2tlci1vdXRwdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9jb2xvcnBpY2tlci90eXBlcy9jb2xvcnBpY2tlci1yZXN1bHQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9jb2xvcnBpY2tlci90eXBlcy9jb2xvcnBpY2tlci1yZ2JhJztcblxuLy8gQ29tcG9uZW50cyBhbmQgZGlyZWN0aXZlcyBtdXN0IGJlIGV4cG9ydGVkIHRvIHN1cHBvcnQgQW5ndWxhcidzIFwicGFydGlhbFwiIEl2eSBjb21waWxlci5cbi8vIE9ic2N1cmUgbmFtZXMgYXJlIHVzZWQgdG8gaW5kaWNhdGUgdHlwZXMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBwdWJsaWMgQVBJLlxuZXhwb3J0IHsgU2t5Q29sb3JwaWNrZXJDb21wb25lbnQgYXMgzrsxIH0gZnJvbSAnLi9saWIvbW9kdWxlcy9jb2xvcnBpY2tlci9jb2xvcnBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0IHsgU2t5Q29sb3JwaWNrZXJJbnB1dERpcmVjdGl2ZSBhcyDOuzIgfSBmcm9tICcuL2xpYi9tb2R1bGVzL2NvbG9ycGlja2VyL2NvbG9ycGlja2VyLWlucHV0LmRpcmVjdGl2ZSc7XG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// spell-checker:ignore colorpicker
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export class SliderPosition {
|
|
6
|
+
constructor(hue, saturation, value, alpha) {
|
|
7
|
+
this.hue = hue;
|
|
8
|
+
this.saturation = saturation;
|
|
9
|
+
this.value = value;
|
|
10
|
+
this.alpha = alpha;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export class SliderDimension {
|
|
17
|
+
constructor(hue, saturation, value, alpha) {
|
|
18
|
+
this.hue = hue;
|
|
19
|
+
this.saturation = saturation;
|
|
20
|
+
this.value = value;
|
|
21
|
+
this.alpha = alpha;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JwaWNrZXItY2xhc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb2xvcnBpY2tlci9zcmMvbGliL21vZHVsZXMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXItY2xhc3Nlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQ0FBbUM7QUFFbkM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUNTLEdBQVcsRUFDWCxVQUFrQixFQUNsQixLQUFhLEVBQ2IsS0FBYTtRQUhiLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDWCxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBQ25CLENBQUM7Q0FDTDtBQUNEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDUyxHQUFXLEVBQ1gsVUFBa0IsRUFDbEIsS0FBYSxFQUNiLEtBQWE7UUFIYixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ1gsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUNuQixDQUFDO0NBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcGVsbC1jaGVja2VyOmlnbm9yZSBjb2xvcnBpY2tlclxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgU2xpZGVyUG9zaXRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaHVlOiBudW1iZXIsXG4gICAgcHVibGljIHNhdHVyYXRpb246IG51bWJlcixcbiAgICBwdWJsaWMgdmFsdWU6IG51bWJlcixcbiAgICBwdWJsaWMgYWxwaGE6IG51bWJlclxuICApIHt9XG59XG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgU2xpZGVyRGltZW5zaW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGh1ZTogbnVtYmVyLFxuICAgIHB1YmxpYyBzYXR1cmF0aW9uOiBudW1iZXIsXG4gICAgcHVibGljIHZhbHVlOiBudW1iZXIsXG4gICAgcHVibGljIGFscGhhOiBudW1iZXJcbiAgKSB7fVxufVxuIl19
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import { Directive, ElementRef, HostListener, Injector, Input, Renderer2, forwardRef, } from '@angular/core';
|
|
2
|
+
import { NG_VALIDATORS, NG_VALUE_ACCESSOR, NgControl, } from '@angular/forms';
|
|
3
|
+
import { SkyLibResourcesService } from '@skyux/i18n';
|
|
4
|
+
import { SkyColorpickerComponent } from './colorpicker.component';
|
|
5
|
+
import { SkyColorpickerService } from './colorpicker.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "./colorpicker.service";
|
|
8
|
+
import * as i2 from "@skyux/i18n";
|
|
9
|
+
// tslint:disable:no-forward-ref no-use-before-declare
|
|
10
|
+
const SKY_COLORPICKER_VALUE_ACCESSOR = {
|
|
11
|
+
provide: NG_VALUE_ACCESSOR,
|
|
12
|
+
useExisting: forwardRef(() => SkyColorpickerInputDirective),
|
|
13
|
+
multi: true,
|
|
14
|
+
};
|
|
15
|
+
const SKY_COLORPICKER_VALIDATOR = {
|
|
16
|
+
provide: NG_VALIDATORS,
|
|
17
|
+
useExisting: forwardRef(() => SkyColorpickerInputDirective),
|
|
18
|
+
multi: true,
|
|
19
|
+
};
|
|
20
|
+
// tslint:enable
|
|
21
|
+
const SKY_COLORPICKER_DEFAULT_COLOR = '#FFFFFF';
|
|
22
|
+
/**
|
|
23
|
+
* Creates the colorpicker element and dropdown.
|
|
24
|
+
*/
|
|
25
|
+
export class SkyColorpickerInputDirective {
|
|
26
|
+
constructor(elementRef, renderer, service, resourcesService, injector) {
|
|
27
|
+
this.elementRef = elementRef;
|
|
28
|
+
this.renderer = renderer;
|
|
29
|
+
this.service = service;
|
|
30
|
+
this.resourcesService = resourcesService;
|
|
31
|
+
this.injector = injector;
|
|
32
|
+
/**
|
|
33
|
+
* This property is deprecated and does not affect the colorpicker.
|
|
34
|
+
* We recommend against using it.
|
|
35
|
+
* @deprecated
|
|
36
|
+
* @default "rgba"
|
|
37
|
+
*/
|
|
38
|
+
this.returnFormat = 'rgba';
|
|
39
|
+
/**
|
|
40
|
+
* Specifies the format to use for the color when the colorpicker uses a native input
|
|
41
|
+
* element such as a standard text input or a button. This property accepts `rgba`, `hex`,
|
|
42
|
+
* or `hsla`, but we do not recommend using it because users never see or use its value.
|
|
43
|
+
* Instead, if you need to access this format value, see the demo for an example.
|
|
44
|
+
*@default "rgba"
|
|
45
|
+
*/
|
|
46
|
+
this.outputFormat = 'rgba';
|
|
47
|
+
/**
|
|
48
|
+
* Specifies an array of colors to load as preset choices. The colorpicker displays the
|
|
49
|
+
* colors in a series of 12 boxes for users to select.
|
|
50
|
+
*/
|
|
51
|
+
this.presetColors = ['#333', '#888', '#EFEFEF', '#FFF'];
|
|
52
|
+
/**
|
|
53
|
+
* Specifies the type of transparency to use in the transparency slider.
|
|
54
|
+
*@default "hex6"
|
|
55
|
+
*/
|
|
56
|
+
this.alphaChannel = 'hex6';
|
|
57
|
+
/**
|
|
58
|
+
* Indicates whether to display a transparency slider for users to select transparency
|
|
59
|
+
* levels.
|
|
60
|
+
*/
|
|
61
|
+
this.allowTransparency = true;
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
63
|
+
this._onChange = (_) => { };
|
|
64
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
65
|
+
this._onTouched = () => { };
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
67
|
+
this._validatorChange = () => { };
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Specifies an initial color to load in the colorpicker. Use a reactive or
|
|
71
|
+
* template-driven form to set this value. This property is deprecated. As an alternative,
|
|
72
|
+
* we recommend the `formControlName` property on reactive forms or `ngModel` on
|
|
73
|
+
* template-driven forms. See the demo for examples.
|
|
74
|
+
* @deprecated
|
|
75
|
+
*/
|
|
76
|
+
set initialColor(value) {
|
|
77
|
+
/* istanbul ignore else */
|
|
78
|
+
if (!this._initialColor && !this.modelValue) {
|
|
79
|
+
this.writeValue(value);
|
|
80
|
+
}
|
|
81
|
+
this._initialColor = value;
|
|
82
|
+
}
|
|
83
|
+
get initialColor() {
|
|
84
|
+
return this._initialColor || SKY_COLORPICKER_DEFAULT_COLOR;
|
|
85
|
+
}
|
|
86
|
+
changeInput(event) {
|
|
87
|
+
const value = event.target.value;
|
|
88
|
+
this.skyColorpickerInput.updatePickerValues(value);
|
|
89
|
+
this.skyColorpickerInput.backgroundColorForDisplay = value;
|
|
90
|
+
}
|
|
91
|
+
onChange(event) {
|
|
92
|
+
const newValue = event.target.value;
|
|
93
|
+
this.modelValue = this.formatter(newValue);
|
|
94
|
+
this._validatorChange();
|
|
95
|
+
this._onChange(this.modelValue);
|
|
96
|
+
this.writeModelValue(this.modelValue);
|
|
97
|
+
}
|
|
98
|
+
/* istanbul ignore next */
|
|
99
|
+
onBlur() {
|
|
100
|
+
/*istanbul ignore next */
|
|
101
|
+
this._onTouched();
|
|
102
|
+
}
|
|
103
|
+
ngOnInit() {
|
|
104
|
+
const element = this.elementRef.nativeElement;
|
|
105
|
+
this.renderer.addClass(element, 'sky-form-control');
|
|
106
|
+
this.skyColorpickerInput.initialColor = this.initialColor;
|
|
107
|
+
this.skyColorpickerInput.returnFormat = this.returnFormat;
|
|
108
|
+
this.pickerChangedSubscription =
|
|
109
|
+
this.skyColorpickerInput.selectedColorChanged.subscribe((newColor) => {
|
|
110
|
+
/* istanbul ignore else */
|
|
111
|
+
if (newColor) {
|
|
112
|
+
this.modelValue = this.formatter(newColor);
|
|
113
|
+
this.writeModelValue(this.modelValue);
|
|
114
|
+
}
|
|
115
|
+
this._onChange(newColor);
|
|
116
|
+
});
|
|
117
|
+
this.skyColorpickerInput.updatePickerValues(this.initialColor);
|
|
118
|
+
/* Sanity check */
|
|
119
|
+
/* istanbul ignore else */
|
|
120
|
+
if (!this._disabled) {
|
|
121
|
+
this.skyColorpickerInput.backgroundColorForDisplay = this.initialColor;
|
|
122
|
+
}
|
|
123
|
+
/// Set aria-label as default, if not set
|
|
124
|
+
if (!element.getAttribute('aria-label')) {
|
|
125
|
+
this.renderer.setAttribute(element, 'aria-label', this.getString('skyux_colorpicker_input_default_label'));
|
|
126
|
+
}
|
|
127
|
+
const typeAttr = element.getAttribute('type');
|
|
128
|
+
if (typeAttr && typeAttr === 'hidden') {
|
|
129
|
+
this.skyColorpickerInput.isVisible = false;
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
this.skyColorpickerInput.isVisible = true;
|
|
133
|
+
}
|
|
134
|
+
element.setAttribute('readonly', 'true');
|
|
135
|
+
this.renderer.addClass(element, 'sky-colorpicker-input');
|
|
136
|
+
}
|
|
137
|
+
ngOnDestroy() {
|
|
138
|
+
this.pickerChangedSubscription.unsubscribe();
|
|
139
|
+
}
|
|
140
|
+
setColorPickerDefaults() {
|
|
141
|
+
this.skyColorpickerInput.setDialog(this, this.elementRef, this.initialColor, this.outputFormat, this.presetColors, this.alphaChannel, this.allowTransparency);
|
|
142
|
+
}
|
|
143
|
+
ngOnChanges() {
|
|
144
|
+
this._validatorChange();
|
|
145
|
+
this.skyColorpickerInput.returnFormat = this.returnFormat;
|
|
146
|
+
this.setColorPickerDefaults();
|
|
147
|
+
}
|
|
148
|
+
registerOnChange(fn) {
|
|
149
|
+
this._onChange = fn;
|
|
150
|
+
}
|
|
151
|
+
registerOnTouched(fn) {
|
|
152
|
+
this._onTouched = fn;
|
|
153
|
+
}
|
|
154
|
+
registerOnValidatorChange(fn) {
|
|
155
|
+
this._validatorChange = fn;
|
|
156
|
+
}
|
|
157
|
+
writeValue(value) {
|
|
158
|
+
if (this.skyColorpickerInput &&
|
|
159
|
+
value &&
|
|
160
|
+
value !== this.skyColorpickerInput.lastAppliedColor) {
|
|
161
|
+
this.modelValue = this.formatter(value);
|
|
162
|
+
this.writeModelValue(this.modelValue);
|
|
163
|
+
if (!this._initialColor) {
|
|
164
|
+
this._initialColor = value;
|
|
165
|
+
this.skyColorpickerInput.initialColor = value;
|
|
166
|
+
}
|
|
167
|
+
this.skyColorpickerInput.lastAppliedColor = value;
|
|
168
|
+
const control = this.injector.get(NgControl)
|
|
169
|
+
.control;
|
|
170
|
+
if (control) {
|
|
171
|
+
control.setValue(this.modelValue, { emitEvent: false });
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
validate(control) {
|
|
176
|
+
const value = control.value;
|
|
177
|
+
if (!value) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
// Validation
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Implemented as part of ControlValueAccessor.
|
|
184
|
+
*/
|
|
185
|
+
setDisabledState(isDisabled) {
|
|
186
|
+
this._disabled = isDisabled;
|
|
187
|
+
this.skyColorpickerInput.disabled = isDisabled;
|
|
188
|
+
if (this._disabled) {
|
|
189
|
+
this.skyColorpickerInput.backgroundColorForDisplay = '#fff';
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
this.skyColorpickerInput.backgroundColorForDisplay = this.modelValue.hex;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
writeModelValue(model) {
|
|
196
|
+
const setElementValue = model.rgbaText;
|
|
197
|
+
const element = this.elementRef.nativeElement;
|
|
198
|
+
let output;
|
|
199
|
+
// tslint:disable-next-line:switch-default
|
|
200
|
+
switch (this.outputFormat) {
|
|
201
|
+
case 'rgba':
|
|
202
|
+
output = model.rgbaText;
|
|
203
|
+
break;
|
|
204
|
+
case 'hsla':
|
|
205
|
+
output = model.hslaText;
|
|
206
|
+
break;
|
|
207
|
+
case 'cmyk':
|
|
208
|
+
output = model.cmykText;
|
|
209
|
+
break;
|
|
210
|
+
case 'hex':
|
|
211
|
+
output = model.hex;
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
this.skyColorpickerInput.updatePickerValues(output);
|
|
215
|
+
this.skyColorpickerInput.backgroundColorForDisplay = output;
|
|
216
|
+
this.renderer.setStyle(element, 'background-color', setElementValue);
|
|
217
|
+
this.renderer.setProperty(element, 'value', output);
|
|
218
|
+
}
|
|
219
|
+
formatter(color) {
|
|
220
|
+
if (color && typeof color !== 'string') {
|
|
221
|
+
return color;
|
|
222
|
+
}
|
|
223
|
+
const hsva = this.service.stringToHsva(color, this.alphaChannel === 'hex8');
|
|
224
|
+
const formatColor = this.service.skyColorpickerOut(hsva);
|
|
225
|
+
return formatColor;
|
|
226
|
+
}
|
|
227
|
+
getString(key) {
|
|
228
|
+
// TODO: Need to implement the async `getString` method in a breaking change.
|
|
229
|
+
return this.resourcesService.getStringForLocale({ locale: 'en-US' }, key);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
SkyColorpickerInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyColorpickerInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.SkyColorpickerService }, { token: i2.SkyLibResourcesService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
|
|
233
|
+
SkyColorpickerInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SkyColorpickerInputDirective, selector: "[skyColorpickerInput]", inputs: { skyColorpickerInput: "skyColorpickerInput", initialColor: "initialColor", returnFormat: "returnFormat", outputFormat: "outputFormat", presetColors: "presetColors", alphaChannel: "alphaChannel", allowTransparency: "allowTransparency" }, host: { listeners: { "input": "changeInput($event)", "change": "onChange($event)", "blur": "onBlur()" } }, providers: [SKY_COLORPICKER_VALUE_ACCESSOR, SKY_COLORPICKER_VALIDATOR], usesOnChanges: true, ngImport: i0 });
|
|
234
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyColorpickerInputDirective, decorators: [{
|
|
235
|
+
type: Directive,
|
|
236
|
+
args: [{
|
|
237
|
+
selector: '[skyColorpickerInput]',
|
|
238
|
+
providers: [SKY_COLORPICKER_VALUE_ACCESSOR, SKY_COLORPICKER_VALIDATOR],
|
|
239
|
+
}]
|
|
240
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.SkyColorpickerService }, { type: i2.SkyLibResourcesService }, { type: i0.Injector }]; }, propDecorators: { skyColorpickerInput: [{
|
|
241
|
+
type: Input
|
|
242
|
+
}], initialColor: [{
|
|
243
|
+
type: Input
|
|
244
|
+
}], returnFormat: [{
|
|
245
|
+
type: Input
|
|
246
|
+
}], outputFormat: [{
|
|
247
|
+
type: Input
|
|
248
|
+
}], presetColors: [{
|
|
249
|
+
type: Input
|
|
250
|
+
}], alphaChannel: [{
|
|
251
|
+
type: Input
|
|
252
|
+
}], allowTransparency: [{
|
|
253
|
+
type: Input
|
|
254
|
+
}], changeInput: [{
|
|
255
|
+
type: HostListener,
|
|
256
|
+
args: ['input', ['$event']]
|
|
257
|
+
}], onChange: [{
|
|
258
|
+
type: HostListener,
|
|
259
|
+
args: ['change', ['$event']]
|
|
260
|
+
}], onBlur: [{
|
|
261
|
+
type: HostListener,
|
|
262
|
+
args: ['blur']
|
|
263
|
+
}] } });
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JwaWNrZXItaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvbG9ycGlja2VyL3NyYy9saWIvbW9kdWxlcy9jb2xvcnBpY2tlci9jb2xvcnBpY2tlci1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBSUwsU0FBUyxFQUNULFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUwsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixTQUFTLEdBRVYsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJckQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFJOUQsc0RBQXNEO0FBQ3RELE1BQU0sOEJBQThCLEdBQUc7SUFDckMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDRCQUE0QixDQUFDO0lBQzNELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsT0FBTyxFQUFFLGFBQWE7SUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztJQUMzRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFDRixnQkFBZ0I7QUFDaEIsTUFBTSw2QkFBNkIsR0FBRyxTQUFTLENBQUM7QUFFaEQ7O0dBRUc7QUFLSCxNQUFNLE9BQU8sNEJBQTRCO0lBOEV2QyxZQUNVLFVBQXNCLEVBQ3RCLFFBQW1CLEVB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RyxDQUFDLENBQUM7SUFDNUUsQ0FBQzs7eUhBeFJVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLGlaQUY1QixDQUFDLDhCQUE4QixFQUFFLHlCQUF5QixDQUFDOzJGQUUzRCw0QkFBNEI7a0JBSnhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsU0FBUyxFQUFFLENBQUMsOEJBQThCLEVBQUUseUJBQXlCLENBQUM7aUJBQ3ZFO3lOQWFRLG1CQUFtQjtzQkFEekIsS0FBSztnQkFXSyxZQUFZO3NCQUR0QixLQUFLO2dCQW9CQyxZQUFZO3NCQURsQixLQUFLO2dCQVdDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBUUMsWUFBWTtzQkFEbEIsS0FBSztnQkFRQyxZQUFZO3NCQURsQixLQUFLO2dCQVFDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFnQkMsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUTFCLFFBQVE7c0JBRGQsWUFBWTt1QkFBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBVzNCLE1BQU07c0JBRFosWUFBWTt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgUmVuZGVyZXIyLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1Db250cm9sLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTmdDb250cm9sLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lDb2xvcnBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29sb3JwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUNvbG9ycGlja2VyU2VydmljZSB9IGZyb20gJy4vY29sb3JwaWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lDb2xvcnBpY2tlckhzdmEgfSBmcm9tICcuL3R5cGVzL2NvbG9ycGlja2VyLWhzdmEnO1xuaW1wb3J0IHsgU2t5Q29sb3JwaWNrZXJPdXRwdXQgfSBmcm9tICcuL3R5cGVzL2NvbG9ycGlja2VyLW91dHB1dCc7XG5cbi8vIHRzbGludDpkaXNhYmxlOm5vLWZvcndhcmQtcmVmIG5vLXVzZS1iZWZvcmUtZGVjbGFyZVxuY29uc3QgU0tZX0NPTE9SUElDS0VSX1ZBTFVFX0FDQ0VTU09SID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2t5Q29sb3JwaWNrZXJJbnB1dERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuY29uc3QgU0tZX0NPTE9SUElDS0VSX1ZBTElEQVRPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2t5Q29sb3JwaWNrZXJJbnB1dERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcbi8vIHRzbGludDplbmFibGVcbmNvbnN0IFNLWV9DT0xPUlBJQ0tFUl9ERUZBVUxUX0NPTE9SID0gJyNGRkZGRkYnO1xuXG4vKipcbiAqIENyZWF0ZXMgdGhlIGNvbG9ycGlja2VyIGVsZW1lbnQgYW5kIGRyb3Bkb3duLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5Q29sb3JwaWNrZXJJbnB1dF0nLFxuICBwcm92aWRlcnM6IFtTS1lfQ09MT1JQSUNLRVJfVkFMVUVfQUNDRVNTT1IsIFNLWV9DT0xPUlBJQ0tFUl9WQUxJREFUT1JdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lDb2xvcnBpY2tlcklucHV0RGlyZWN0aXZlXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uRGVzdHJveVxue1xuICBwdWJsaWMgcGlja2VyQ2hhbmdlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBjb2xvcnBpY2tlciBlbGVtZW50IGFuZCBkcm9wZG93bi4gUGxhY2UgdGhpcyBhdHRyaWJ1dGUgb24gYW4gYGlucHV0YCBlbGVtZW50XG4gICAqIG9yIGBidXR0b25gIGVsZW1lbnQsIHdyYXAgdGhlIGVsZW1lbnQgaW4gYSBgc2t5LWNvbG9ycGlja2VyYCBjb21wb25lbnQsIGFuZCBzZXQgdGhlIGF0dHJpYnV0ZVxuICAgKiB0byB0aGUgaW5zdGFuY2Ugb2YgdGhlIGBza3ktY29sb3JwaWNrZXJgIGNvbXBvbmVudC5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2t5Q29sb3JwaWNrZXJJbnB1dDogU2t5Q29sb3JwaWNrZXJDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBpbml0aWFsIGNvbG9yIHRvIGxvYWQgaW4gdGhlIGNvbG9ycGlja2VyLiBVc2UgYSByZWFjdGl2ZSBvclxuICAgKiB0ZW1wbGF0ZS1kcml2ZW4gZm9ybSB0byBzZXQgdGhpcyB2YWx1ZS4gVGhpcyBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkLiBBcyBhbiBhbHRlcm5hdGl2ZSxcbiAgICogd2UgcmVjb21tZW5kIHRoZSBgZm9ybUNvbnRyb2xOYW1lYCBwcm9wZXJ0eSBvbiByZWFjdGl2ZSBmb3JtcyBvciBgbmdNb2RlbGAgb25cbiAgICogdGVtcGxhdGUtZHJpdmVuIGZvcm1zLiBTZWUgdGhlIGRlbW8gZm9yIGV4YW1wbGVzLlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpbml0aWFsQ29sb3IodmFsdWU6IHN0cmluZykge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCF0aGlzLl9pbml0aWFsQ29sb3IgJiYgIXRoaXMubW9kZWxWYWx1ZSkge1xuICAgICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5faW5pdGlhbENvbG9yID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGluaXRpYWxDb2xvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pbml0aWFsQ29sb3IgfHwgU0tZX0NPTE9SUElDS0VSX0RFRkFVTFRfQ09MT1I7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkIGFuZCBkb2VzIG5vdCBhZmZlY3QgdGhlIGNvbG9ycGlja2VyLlxuICAgKiBXZSByZWNvbW1lbmQgYWdhaW5zdCB1c2luZyBpdC5cbiAgICogQGRlcHJlY2F0ZWRcbiAgICogQGRlZmF1bHQgXCJyZ2JhXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZXR1cm5Gb3JtYXQgPSAncmdiYSc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgZm9ybWF0IHRvIHVzZSBmb3IgdGhlIGNvbG9yIHdoZW4gdGhlIGNvbG9ycGlja2VyIHVzZXMgYSBuYXRpdmUgaW5wdXRcbiAgICogZWxlbWVudCBzdWNoIGFzIGEgc3RhbmRhcmQgdGV4dCBpbnB1dCBvciBhIGJ1dHRvbi4gVGhpcyBwcm9wZXJ0eSBhY2NlcHRzIGByZ2JhYCwgYGhleGAsXG4gICAqIG9yIGBoc2xhYCwgYnV0IHdlIGRvIG5vdCByZWNvbW1lbmQgdXNpbmcgaXQgYmVjYXVzZSB1c2VycyBuZXZlciBzZWUgb3IgdXNlIGl0cyB2YWx1ZS5cbiAgICogSW5zdGVhZCwgaWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoaXMgZm9ybWF0IHZhbHVlLCBzZWUgdGhlIGRlbW8gZm9yIGFuIGV4YW1wbGUuXG4gICAqQGRlZmF1bHQgXCJyZ2JhXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdXRwdXRGb3JtYXQgPSAncmdiYSc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBhcnJheSBvZiBjb2xvcnMgdG8gbG9hZCBhcyBwcmVzZXQgY2hvaWNlcy4gVGhlIGNvbG9ycGlja2VyIGRpc3BsYXlzIHRoZVxuICAgKiBjb2xvcnMgaW4gYSBzZXJpZXMgb2YgMTIgYm94ZXMgZm9yIHVzZXJzIHRvIHNlbGVjdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcmVzZXRDb2xvcnMgPSBbJyMzMzMnLCAnIzg4OCcsICcjRUZFRkVGJywgJyNGRkYnXTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0eXBlIG9mIHRyYW5zcGFyZW5jeSB0byB1c2UgaW4gdGhlIHRyYW5zcGFyZW5jeSBzbGlkZXIuXG4gICAqQGRlZmF1bHQgXCJoZXg2XCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhbHBoYUNoYW5uZWwgPSAnaGV4Nic7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc3BsYXkgYSB0cmFuc3BhcmVuY3kgc2xpZGVyIGZvciB1c2VycyB0byBzZWxlY3QgdHJhbnNwYXJlbmN5XG4gICAqIGxldmVscy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhbGxvd1RyYW5zcGFyZW5jeSA9IHRydWU7XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgX2luaXRpYWxDb2xvcjogc3RyaW5nO1xuICBwcml2YXRlIG1vZGVsVmFsdWU6IFNreUNvbG9ycGlja2VyT3V0cHV0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBTa3lDb2xvcnBpY2tlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXG4gICkge31cblxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBjaGFuZ2VJbnB1dChldmVudDogYW55KSB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5za3lDb2xvcnBpY2tlcklucHV0LnVwZGF0ZVBpY2tlclZhbHVlcyh2YWx1ZSk7XG4gICAgdGhpcy5za3lDb2xvcnBpY2tlcklucHV0LmJhY2tncm91bmRDb2xvckZvckRpc3BsYXkgPSB2YWx1ZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkNoYW5nZShldmVudDogYW55KSB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5tb2RlbFZhbHVlID0gdGhpcy5mb3JtYXR0ZXIobmV3VmFsdWUpO1xuICAgIHRoaXMuX3ZhbGlkYXRvckNoYW5nZSgpO1xuICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMubW9kZWxWYWx1ZSk7XG4gICAgdGhpcy53cml0ZU1vZGVsVmFsdWUodGhpcy5tb2RlbFZhbHVlKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBwdWJsaWMgb25CbHVyKCkge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGVsZW1lbnQsICdza3ktZm9ybS1jb250cm9sJyk7XG4gICAgdGhpcy5za3lDb2xvcnBpY2tlcklucHV0LmluaXRpYWxDb2xvciA9IHRoaXMuaW5pdGlhbENvbG9yO1xuICAgIHRoaXMuc2t5Q29sb3JwaWNrZXJJbnB1dC5yZXR1cm5Gb3JtYXQgPSB0aGlzLnJldHVybkZvcm1hdDtcblxuICAgIHRoaXMucGlja2VyQ2hhbmdlZFN1YnNjcmlwdGlvbiA9XG4gICAgICB0aGlzLnNreUNvbG9ycGlja2VySW5wdXQuc2VsZWN0ZWRDb2xvckNoYW5nZWQuc3Vic2NyaWJlKFxuICAgICAgICAobmV3Q29sb3I6IFNreUNvbG9ycGlja2VyT3V0cHV0KSA9PiB7XG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICBpZiAobmV3Q29sb3IpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWxWYWx1ZSA9IHRoaXMuZm9ybWF0dGVyKG5ld0NvbG9yKTtcbiAgICAgICAgICAgIHRoaXMud3JpdGVNb2RlbFZhbHVlKHRoaXMubW9kZWxWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKG5ld0NvbG9yKTtcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgIHRoaXMuc2t5Q29sb3JwaWNrZXJJbnB1dC51cGRhdGVQaWNrZXJWYWx1ZXModGhpcy5pbml0aWFsQ29sb3IpO1xuXG4gICAgLyogU2FuaXR5IGNoZWNrICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIXRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICB0aGlzLnNreUNvbG9ycGlja2VySW5wdXQuYmFja2dyb3VuZENvbG9yRm9yRGlzcGxheSA9IHRoaXMuaW5pdGlhbENvbG9yO1xuICAgIH1cblxuICAgIC8vLyBTZXQgYXJpYS1sYWJlbCBhcyBkZWZhdWx0LCBpZiBub3Qgc2V0XG4gICAgaWYgKCFlbGVtZW50LmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcpKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgICAgZWxlbWVudCxcbiAgICAgICAgJ2FyaWEtbGFiZWwnLFxuICAgICAgICB0aGlzLmdldFN0cmluZygnc2t5dXhfY29sb3JwaWNrZXJfaW5wdXRfZGVmYXVsdF9sYWJlbCcpXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHR5cGVBdHRyID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3R5cGUnKTtcbiAgICBpZiAodHlwZUF0dHIgJiYgdHlwZUF0dHIgPT09ICdoaWRkZW4nKSB7XG4gICAgICB0aGlzLnNreUNvbG9ycGlja2VySW5wdXQuaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2t5Q29sb3JwaWNrZXJJbnB1dC5pc1Zpc2libGUgPSB0cnVlO1xuICAgIH1cblxuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdyZWFkb25seScsICd0cnVlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbGVtZW50LCAnc2t5LWNvbG9ycGlja2VyLWlucHV0Jyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5waWNrZXJDaGFuZ2VkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29sb3JQaWNrZXJEZWZhdWx0cygpIHtcbiAgICB0aGlzLnNreUNvbG9ycGlja2VySW5wdXQuc2V0RGlhbG9nKFxuICAgICAgdGhpcyxcbiAgICAgIHRoaXMuZWxlbWVudFJlZixcbiAgICAgIHRoaXMuaW5pdGlhbENvbG9yLFxuICAgICAgdGhpcy5vdXRwdXRGb3JtYXQsXG4gICAgICB0aGlzLnByZXNldENvbG9ycyxcbiAgICAgIHRoaXMuYWxwaGFDaGFubmVsLFxuICAgICAgdGhpcy5hbGxvd1RyYW5zcGFyZW5jeVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsaWRhdG9yQ2hhbmdlKCk7XG4gICAgdGhpcy5za3lDb2xvcnBpY2tlcklucHV0LnJldHVybkZvcm1hdCA9IHRoaXMucmV0dXJuRm9ybWF0O1xuICAgIHRoaXMuc2V0Q29sb3JQaWNrZXJEZWZhdWx0cygpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cbiAgcHVibGljIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl92YWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLnNreUNvbG9ycGlja2VySW5wdXQgJiZcbiAgICAgIHZhbHVlICYmXG4gICAgICB2YWx1ZSAhPT0gdGhpcy5za3lDb2xvcnBpY2tlcklucHV0Lmxhc3RBcHBsaWVkQ29sb3JcbiAgICApIHtcbiAgICAgIHRoaXMubW9kZWxWYWx1ZSA9IHRoaXMuZm9ybWF0dGVyKHZhbHVlKTtcbiAgICAgIHRoaXMud3JpdGVNb2RlbFZhbHVlKHRoaXMubW9kZWxWYWx1ZSk7XG5cbiAgICAgIGlmICghdGhpcy5faW5pdGlhbENvbG9yKSB7XG4gICAgICAgIHRoaXMuX2luaXRpYWxDb2xvciA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNreUNvbG9ycGlja2VySW5wdXQuaW5pdGlhbENvbG9yID0gdmFsdWU7XG4gICAgICB9XG4gICAgICB0aGlzLnNreUNvbG9ycGlja2VySW5wdXQubGFzdEFwcGxpZWRDb2xvciA9IHZhbHVlO1xuICAgICAgY29uc3QgY29udHJvbDogRm9ybUNvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldDxOZ0NvbnRyb2w+KE5nQ29udHJvbClcbiAgICAgICAgLmNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XG4gICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICBjb250cm9sLnNldFZhbHVlKHRoaXMubW9kZWxWYWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBWYWxpZGF0aW9uXG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5za3lDb2xvcnBpY2tlcklucHV0LmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2t5Q29sb3JwaWNrZXJJbnB1dC5iYWNrZ3JvdW5kQ29sb3JGb3JEaXNwbGF5ID0gJyNmZmYnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNreUNvbG9ycGlja2VySW5wdXQuYmFja2dyb3VuZENvbG9yRm9yRGlzcGxheSA9IHRoaXMubW9kZWxWYWx1ZS5oZXg7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB3cml0ZU1vZGVsVmFsdWUobW9kZWw6IFNreUNvbG9ycGlja2VyT3V0cHV0KSB7XG4gICAgY29uc3Qgc2V0RWxlbWVudFZhbHVlID0gbW9kZWwucmdiYVRleHQ7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgbGV0IG91dHB1dDogc3RyaW5nO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpzd2l0Y2gtZGVmYXVsdFxuICAgIHN3aXRjaCAodGhpcy5vdXRwdXRGb3JtYXQpIHtcbiAgICAgIGNhc2UgJ3JnYmEnOlxuICAgICAgICBvdXRwdXQgPSBtb2RlbC5yZ2JhVGV4dDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2hzbGEnOlxuICAgICAgICBvdXRwdXQgPSBtb2RlbC5oc2xhVGV4dDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2NteWsnOlxuICAgICAgICBvdXRwdXQgPSBtb2RlbC5jbXlrVGV4dDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2hleCc6XG4gICAgICAgIG91dHB1dCA9IG1vZGVsLmhleDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgdGhpcy5za3lDb2xvcnBpY2tlcklucHV0LnVwZGF0ZVBpY2tlclZhbHVlcyhvdXRwdXQpO1xuICAgIHRoaXMuc2t5Q29sb3JwaWNrZXJJbnB1dC5iYWNrZ3JvdW5kQ29sb3JGb3JEaXNwbGF5ID0gb3V0cHV0O1xuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50LCAnYmFja2dyb3VuZC1jb2xvcicsIHNldEVsZW1lbnRWYWx1ZSk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShlbGVtZW50LCAndmFsdWUnLCBvdXRwdXQpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXR0ZXIoY29sb3I6IGFueSkge1xuICAgIGlmIChjb2xvciAmJiB0eXBlb2YgY29sb3IgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gY29sb3I7XG4gICAgfVxuXG4gICAgY29uc3QgaHN2YTogU2t5Q29sb3JwaWNrZXJIc3ZhID0gdGhpcy5zZXJ2aWNlLnN0cmluZ1RvSHN2YShcbiAgICAgIGNvbG9yLFxuICAgICAgdGhpcy5hbHBoYUNoYW5uZWwgPT09ICdoZXg4J1xuICAgICk7XG5cbiAgICBjb25zdCBmb3JtYXRDb2xvciA9IHRoaXMuc2VydmljZS5za3lDb2xvcnBpY2tlck91dChoc3ZhKTtcblxuICAgIHJldHVybiBmb3JtYXRDb2xvcjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RyaW5nKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBUT0RPOiBOZWVkIHRvIGltcGxlbWVudCB0aGUgYXN5bmMgYGdldFN0cmluZ2AgbWV0aG9kIGluIGEgYnJlYWtpbmcgY2hhbmdlLlxuICAgIHJldHVybiB0aGlzLnJlc291cmNlc1NlcnZpY2UuZ2V0U3RyaW5nRm9yTG9jYWxlKHsgbG9jYWxlOiAnZW4tVVMnIH0sIGtleSk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHByaXZhdGUgX29uQ2hhbmdlID0gKF86IGFueSkgPT4ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHJpdmF0ZSBfb25Ub3VjaGVkID0gKCkgPT4ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHJpdmF0ZSBfdmFsaWRhdG9yQ2hhbmdlID0gKCkgPT4ge307XG59XG4iXX0=
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// spell-checker:ignore Colorpicker
|
|
2
|
+
import { Directive, ElementRef, EventEmitter, HostListener, Input, Output, } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export class SkyColorpickerSliderDirective {
|
|
8
|
+
constructor(el) {
|
|
9
|
+
this.el = el;
|
|
10
|
+
this.newColorContrast = new EventEmitter();
|
|
11
|
+
this.listenerMove = (event) => {
|
|
12
|
+
this.move(event);
|
|
13
|
+
};
|
|
14
|
+
this.listenerStop = () => {
|
|
15
|
+
this.stop();
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
setCursor(event) {
|
|
19
|
+
const height = this.el.nativeElement.offsetHeight;
|
|
20
|
+
const width = this.el.nativeElement.offsetWidth;
|
|
21
|
+
const xAxis = Math.max(0, Math.min(this.getX(event), width));
|
|
22
|
+
const yAxis = Math.max(0, Math.min(this.getY(event), height));
|
|
23
|
+
if (this.xAxis !== undefined && this.yAxis !== undefined) {
|
|
24
|
+
this.newColorContrast.emit({
|
|
25
|
+
xCoordinate: xAxis / width,
|
|
26
|
+
yCoordinate: 1 - yAxis / height,
|
|
27
|
+
xAxis: this.xAxis,
|
|
28
|
+
yAxis: this.yAxis,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this.newColorContrast.emit({
|
|
33
|
+
xCoordinate: xAxis / width,
|
|
34
|
+
maxRange: this.xAxis,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/* // No vertical bars
|
|
38
|
+
if (this.xAxis === undefined && this.yAxis !== undefined) {
|
|
39
|
+
this.newColorContrast.emit({ yCoordinate: yAxis / height, maxRange: this.yAxis });
|
|
40
|
+
} */
|
|
41
|
+
}
|
|
42
|
+
move(event) {
|
|
43
|
+
event.preventDefault();
|
|
44
|
+
this.setCursor(event);
|
|
45
|
+
}
|
|
46
|
+
start(event) {
|
|
47
|
+
this.setCursor(event);
|
|
48
|
+
document.addEventListener('mousemove', this.listenerMove);
|
|
49
|
+
document.addEventListener('touchmove', this.listenerMove);
|
|
50
|
+
document.addEventListener('mouseup', this.listenerStop);
|
|
51
|
+
document.addEventListener('touchend', this.listenerStop);
|
|
52
|
+
}
|
|
53
|
+
stop() {
|
|
54
|
+
document.removeEventListener('mousemove', this.listenerMove);
|
|
55
|
+
document.removeEventListener('touchmove', this.listenerMove);
|
|
56
|
+
document.removeEventListener('mouseup', this.listenerStop);
|
|
57
|
+
document.removeEventListener('touchend', this.listenerStop);
|
|
58
|
+
}
|
|
59
|
+
getX(event) {
|
|
60
|
+
/* Ignoring event.touches as tests are not run on a touch device. */
|
|
61
|
+
/* istanbul ignore next */
|
|
62
|
+
return ((event.pageX !== undefined ? event.pageX : event.touches[0].pageX) -
|
|
63
|
+
this.el.nativeElement.getBoundingClientRect().left -
|
|
64
|
+
window.pageXOffset);
|
|
65
|
+
}
|
|
66
|
+
getY(event) {
|
|
67
|
+
/* Ignoring event.touches as tests are not run on a touch device. */
|
|
68
|
+
/* istanbul ignore next */
|
|
69
|
+
return ((event.pageY !== undefined ? event.pageY : event.touches[0].pageY) -
|
|
70
|
+
this.el.nativeElement.getBoundingClientRect().top -
|
|
71
|
+
window.pageYOffset);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
SkyColorpickerSliderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyColorpickerSliderDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
75
|
+
SkyColorpickerSliderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SkyColorpickerSliderDirective, selector: "[skyColorpickerSlider]", inputs: { skyColorpickerSlider: "skyColorpickerSlider", color: "color", xAxis: "xAxis", yAxis: "yAxis" }, outputs: { newColorContrast: "newColorContrast" }, host: { listeners: { "touchstart": "start($event)", "mousedown": "start($event)" } }, ngImport: i0 });
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyColorpickerSliderDirective, decorators: [{
|
|
77
|
+
type: Directive,
|
|
78
|
+
args: [{
|
|
79
|
+
selector: '[skyColorpickerSlider]',
|
|
80
|
+
}]
|
|
81
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { newColorContrast: [{
|
|
82
|
+
type: Output
|
|
83
|
+
}], skyColorpickerSlider: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], color: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], xAxis: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], yAxis: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], start: [{
|
|
92
|
+
type: HostListener,
|
|
93
|
+
args: ['touchstart', ['$event']]
|
|
94
|
+
}, {
|
|
95
|
+
type: HostListener,
|
|
96
|
+
args: ['mousedown', ['$event']]
|
|
97
|
+
}] } });
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JwaWNrZXItc2xpZGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb2xvcnBpY2tlci9zcmMvbGliL21vZHVsZXMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXItc2xpZGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQ0FBbUM7QUFDbkMsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOztBQUl2Qjs7R0FFRztBQUlILE1BQU0sT0FBTyw2QkFBNkI7SUFleEMsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFiM0IscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFjckUsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUFVO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztRQUNsRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFDaEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7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SixDQUFDOzswSEF0RlUsNkJBQTZCOzhHQUE3Qiw2QkFBNkI7MkZBQTdCLDZCQUE2QjtrQkFIekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2lCQUNuQztpR0FHUSxnQkFBZ0I7c0JBRHRCLE1BQU07Z0JBR0Esb0JBQW9CO3NCQUQxQixLQUFLO2dCQUdDLEtBQUs7c0JBRFgsS0FBSztnQkFHQyxLQUFLO3NCQURYLEtBQUs7Z0JBR0MsS0FBSztzQkFEWCxLQUFLO2dCQTZDQyxLQUFLO3NCQUZYLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDckMsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcGVsbC1jaGVja2VyOmlnbm9yZSBDb2xvcnBpY2tlclxuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreUNvbG9ycGlja2VyQ2hhbmdlQXhpcyB9IGZyb20gJy4vdHlwZXMvY29sb3JwaWNrZXItYXhpcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lDb2xvcnBpY2tlclNsaWRlcl0nLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lDb2xvcnBpY2tlclNsaWRlckRpcmVjdGl2ZSB7XG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgbmV3Q29sb3JDb250cmFzdCA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5Q29sb3JwaWNrZXJDaGFuZ2VBeGlzPigpO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2t5Q29sb3JwaWNrZXJTbGlkZXI6IHN0cmluZztcbiAgQElucHV0KClcbiAgcHVibGljIGNvbG9yOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB4QXhpczogbnVtYmVyO1xuICBASW5wdXQoKVxuICBwdWJsaWMgeUF4aXM6IG51bWJlcjtcblxuICBwcml2YXRlIGxpc3RlbmVyTW92ZTogYW55O1xuICBwcml2YXRlIGxpc3RlbmVyU3RvcDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLmxpc3RlbmVyTW92ZSA9IChldmVudDogYW55KSA9PiB7XG4gICAgICB0aGlzLm1vdmUoZXZlbnQpO1xuICAgIH07XG4gICAgdGhpcy5saXN0ZW5lclN0b3AgPSAoKSA9PiB7XG4gICAgICB0aGlzLnN0b3AoKTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHNldEN1cnNvcihldmVudDogYW55KSB7XG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICBjb25zdCB4QXhpcyA9IE1hdGgubWF4KDAsIE1hdGgubWluKHRoaXMuZ2V0WChldmVudCksIHdpZHRoKSk7XG4gICAgY29uc3QgeUF4aXMgPSBNYXRoLm1heCgwLCBNYXRoLm1pbih0aGlzLmdldFkoZXZlbnQpLCBoZWlnaHQpKTtcbiAgICBpZiAodGhpcy54QXhpcyAhPT0gdW5kZWZpbmVkICYmIHRoaXMueUF4aXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5uZXdDb2xvckNvbnRyYXN0LmVtaXQoe1xuICAgICAgICB4Q29vcmRpbmF0ZTogeEF4aXMgLyB3aWR0aCxcbiAgICAgICAgeUNvb3JkaW5hdGU6IDEgLSB5QXhpcyAvIGhlaWdodCxcbiAgICAgICAgeEF4aXM6IHRoaXMueEF4aXMsXG4gICAgICAgIHlBeGlzOiB0aGlzLnlBeGlzLFxuICAgICAgfSBhcyBTa3lDb2xvcnBpY2tlckNoYW5nZUF4aXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5ld0NvbG9yQ29udHJhc3QuZW1pdCh7XG4gICAgICAgIHhDb29yZGluYXRlOiB4QXhpcyAvIHdpZHRoLFxuICAgICAgICBtYXhSYW5nZTogdGhpcy54QXhpcyxcbiAgICAgIH0gYXMgU2t5Q29sb3JwaWNrZXJDaGFuZ2VBeGlzKTtcbiAgICB9XG4gICAgLyogLy8gTm8gdmVydGljYWwgYmFyc1xuICAgICBpZiAodGhpcy54QXhpcyA9PT0gdW5kZWZpbmVkICYmIHRoaXMueUF4aXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMubmV3Q29sb3JDb250cmFzdC5lbWl0KHsgeUNvb3JkaW5hdGU6IHlBeGlzIC8gaGVpZ2h0LCBtYXhSYW5nZTogdGhpcy55QXhpcyB9KTtcbiAgICB9ICovXG4gIH1cblxuICBwdWJsaWMgbW92ZShldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnNldEN1cnNvcihldmVudCk7XG4gIH1cbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hzdGFydCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBzdGFydChldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuc2V0Q3Vyc29yKGV2ZW50KTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmxpc3RlbmVyTW92ZSk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5saXN0ZW5lck1vdmUpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLmxpc3RlbmVyU3RvcCk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0aGlzLmxpc3RlbmVyU3RvcCk7XG4gIH1cblxuICBwdWJsaWMgc3RvcCgpIHtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmxpc3RlbmVyTW92ZSk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5saXN0ZW5lck1vdmUpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLmxpc3RlbmVyU3RvcCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0aGlzLmxpc3RlbmVyU3RvcCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0WChldmVudDogYW55KTogbnVtYmVyIHtcbiAgICAvKiBJZ25vcmluZyBldmVudC50b3VjaGVzIGFzIHRlc3RzIGFyZSBub3QgcnVuIG9uIGEgdG91Y2ggZGV2aWNlLiAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIChcbiAgICAgIChldmVudC5wYWdlWCAhPT0gdW5kZWZpbmVkID8gZXZlbnQucGFnZVggOiBldmVudC50b3VjaGVzWzBdLnBhZ2VYKSAtXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtXG4gICAgICB3aW5kb3cucGFnZVhPZmZzZXRcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXRZKGV2ZW50OiBhbnkpOiBudW1iZXIge1xuICAgIC8qIElnbm9yaW5nIGV2ZW50LnRvdWNoZXMgYXMgdGVzdHMgYXJlIG5vdCBydW4gb24gYSB0b3VjaCBkZXZpY2UuICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gKFxuICAgICAgKGV2ZW50LnBhZ2VZICE9PSB1bmRlZmluZWQgPyBldmVudC5wYWdlWSA6IGV2ZW50LnRvdWNoZXNbMF0ucGFnZVkpIC1cbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgLVxuICAgICAgd2luZG93LnBhZ2VZT2Zmc2V0XG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// spell-checker:ignore Colorpicker
|
|
2
|
+
import { Directive, EventEmitter, HostListener, Input, Output, } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export class SkyColorpickerTextDirective {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.newColorContrast = new EventEmitter();
|
|
10
|
+
}
|
|
11
|
+
changeInput(event) {
|
|
12
|
+
const element = event.target;
|
|
13
|
+
const elementValue = parseFloat(element.value);
|
|
14
|
+
if (this.maxRange === undefined) {
|
|
15
|
+
this.newColorContrast.emit({
|
|
16
|
+
color: element.value,
|
|
17
|
+
colorValue: undefined,
|
|
18
|
+
maxRange: undefined,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
if (!isNaN(elementValue) &&
|
|
22
|
+
elementValue >= 0 &&
|
|
23
|
+
elementValue <= this.maxRange) {
|
|
24
|
+
this.newColorContrast.emit({
|
|
25
|
+
color: this.color,
|
|
26
|
+
colorValue: elementValue,
|
|
27
|
+
maxRange: this.maxRange,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
SkyColorpickerTextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyColorpickerTextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
33
|
+
SkyColorpickerTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SkyColorpickerTextDirective, selector: "[skyColorpickerText]", inputs: { skyColorpickerText: "skyColorpickerText", color: "color", maxRange: "maxRange" }, outputs: { newColorContrast: "newColorContrast" }, host: { listeners: { "input": "changeInput($event)" } }, ngImport: i0 });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyColorpickerTextDirective, decorators: [{
|
|
35
|
+
type: Directive,
|
|
36
|
+
args: [{
|
|
37
|
+
selector: '[skyColorpickerText]',
|
|
38
|
+
}]
|
|
39
|
+
}], propDecorators: { newColorContrast: [{
|
|
40
|
+
type: Output
|
|
41
|
+
}], skyColorpickerText: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], color: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], maxRange: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], changeInput: [{
|
|
48
|
+
type: HostListener,
|
|
49
|
+
args: ['input', ['$event']]
|
|
50
|
+
}] } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JwaWNrZXItdGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29sb3JwaWNrZXIvc3JjL2xpYi9tb2R1bGVzL2NvbG9ycGlja2VyL2NvbG9ycGlja2VyLXRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1DQUFtQztBQUNuQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7QUFJdkI7O0dBRUc7QUFJSCxNQUFNLE9BQU8sMkJBQTJCO0lBSHhDO1FBS1MscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7S0FnQ3pFO0lBdkJRLFdBQVcsQ0FBQyxLQUFZO1FBQzdCLE1BQU0sT0FBTyxHQUFxQixLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUNuRSxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDekIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO2dCQUNwQixVQUFVLEVBQUUsU0FBUztnQkFDckIsUUFBUSxFQUFFLFNBQVM7YUFDUyxDQUFDLENBQUM7U0FDakM7UUFFRCxJQUNFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUNwQixZQUFZLElBQUksQ0FBQztZQUNqQixZQUFZLElBQUksSUFBSSxDQUFDLFFBQVEsRUFDN0I7WUFDQSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2dCQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLFVBQVUsRUFBRSxZQUFZO2dCQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDSyxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDOzt3SEFqQ1UsMkJBQTJCOzRHQUEzQiwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQzs4QkFHUSxnQkFBZ0I7c0JBRHRCLE1BQU07Z0JBR0Esa0JBQWtCO3NCQUR4QixLQUFLO2dCQUdDLEtBQUs7c0JBRFgsS0FBSztnQkFHQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcGVsbC1jaGVja2VyOmlnbm9yZSBDb2xvcnBpY2tlclxuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreUNvbG9ycGlja2VyQ2hhbmdlQ29sb3IgfSBmcm9tICcuL3R5cGVzL2NvbG9ycGlja2VyLWNvbG9yJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreUNvbG9ycGlja2VyVGV4dF0nLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lDb2xvcnBpY2tlclRleHREaXJlY3RpdmUge1xuICBAT3V0cHV0KClcbiAgcHVibGljIG5ld0NvbG9yQ29udHJhc3QgPSBuZXcgRXZlbnRFbWl0dGVyPFNreUNvbG9ycGlja2VyQ2hhbmdlQ29sb3I+KCk7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBza3lDb2xvcnBpY2tlclRleHQ6IGFueTtcbiAgQElucHV0KClcbiAgcHVibGljIGNvbG9yOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXhSYW5nZTogbnVtYmVyO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIGNoYW5nZUlucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCBlbGVtZW50VmFsdWUgPSBwYXJzZUZsb2F0KGVsZW1lbnQudmFsdWUpO1xuICAgIGlmICh0aGlzLm1heFJhbmdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubmV3Q29sb3JDb250cmFzdC5lbWl0KHtcbiAgICAgICAgY29sb3I6IGVsZW1lbnQudmFsdWUsXG4gICAgICAgIGNvbG9yVmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgbWF4UmFuZ2U6IHVuZGVmaW5lZCxcbiAgICAgIH0gYXMgU2t5Q29sb3JwaWNrZXJDaGFuZ2VDb2xvcik7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIWlzTmFOKGVsZW1lbnRWYWx1ZSkgJiZcbiAgICAgIGVsZW1lbnRWYWx1ZSA+PSAwICYmXG4gICAgICBlbGVtZW50VmFsdWUgPD0gdGhpcy5tYXhSYW5nZVxuICAgICkge1xuICAgICAgdGhpcy5uZXdDb2xvckNvbnRyYXN0LmVtaXQoe1xuICAgICAgICBjb2xvcjogdGhpcy5jb2xvcixcbiAgICAgICAgY29sb3JWYWx1ZTogZWxlbWVudFZhbHVlLFxuICAgICAgICBtYXhSYW5nZTogdGhpcy5tYXhSYW5nZSxcbiAgICAgIH0gYXMgU2t5Q29sb3JwaWNrZXJDaGFuZ2VDb2xvcik7XG4gICAgfVxuICB9XG59XG4iXX0=
|