@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.
Files changed (85) hide show
  1. package/documentation.json +2 -2
  2. package/esm2020/index.mjs +16 -0
  3. package/esm2020/lib/modules/colorpicker/colorpicker-classes.mjs +24 -0
  4. package/esm2020/lib/modules/colorpicker/colorpicker-input.directive.mjs +264 -0
  5. package/esm2020/lib/modules/colorpicker/colorpicker-slider.directive.mjs +98 -0
  6. package/esm2020/lib/modules/colorpicker/colorpicker-text.directive.mjs +51 -0
  7. package/esm2020/lib/modules/colorpicker/colorpicker.component.mjs +413 -0
  8. package/esm2020/lib/modules/colorpicker/colorpicker.module.mjs +60 -0
  9. package/esm2020/lib/modules/colorpicker/colorpicker.service.mjs +342 -0
  10. package/esm2020/lib/modules/colorpicker/types/colorpicker-axis.mjs +2 -0
  11. package/esm2020/lib/modules/colorpicker/types/colorpicker-cmyk.mjs +2 -0
  12. package/esm2020/lib/modules/colorpicker/types/colorpicker-color.mjs +2 -0
  13. package/esm2020/lib/modules/colorpicker/types/colorpicker-hsla.mjs +2 -0
  14. package/esm2020/lib/modules/colorpicker/types/colorpicker-hsva.mjs +2 -0
  15. package/esm2020/lib/modules/colorpicker/types/colorpicker-message-type.mjs +23 -0
  16. package/esm2020/lib/modules/colorpicker/types/colorpicker-message.mjs +2 -0
  17. package/esm2020/lib/modules/colorpicker/types/colorpicker-output.mjs +2 -0
  18. package/esm2020/lib/modules/colorpicker/types/colorpicker-result.mjs +2 -0
  19. package/esm2020/lib/modules/colorpicker/types/colorpicker-rgba.mjs +2 -0
  20. package/esm2020/lib/modules/shared/sky-colorpicker-resources.module.mjs +64 -0
  21. package/esm2020/skyux-colorpicker.mjs +5 -0
  22. package/esm2020/testing/colorpicker-fixture.mjs +85 -0
  23. package/esm2020/testing/public-api.mjs +2 -0
  24. package/esm2020/testing/skyux-colorpicker-testing.mjs +5 -0
  25. package/fesm2015/{skyux-colorpicker-testing.js → skyux-colorpicker-testing.mjs} +1 -1
  26. package/fesm2015/skyux-colorpicker-testing.mjs.map +1 -0
  27. package/fesm2015/skyux-colorpicker.mjs +1319 -0
  28. package/fesm2015/skyux-colorpicker.mjs.map +1 -0
  29. package/fesm2020/skyux-colorpicker-testing.mjs +92 -0
  30. package/fesm2020/skyux-colorpicker-testing.mjs.map +1 -0
  31. package/fesm2020/skyux-colorpicker.mjs +1315 -0
  32. package/fesm2020/skyux-colorpicker.mjs.map +1 -0
  33. package/package.json +41 -17
  34. package/testing/package.json +5 -5
  35. package/bundles/skyux-colorpicker-testing.umd.js +0 -465
  36. package/bundles/skyux-colorpicker.umd.js +0 -1420
  37. package/esm2015/index.js +0 -16
  38. package/esm2015/index.js.map +0 -1
  39. package/esm2015/lib/modules/colorpicker/colorpicker-classes.js +0 -24
  40. package/esm2015/lib/modules/colorpicker/colorpicker-classes.js.map +0 -1
  41. package/esm2015/lib/modules/colorpicker/colorpicker-input.directive.js +0 -264
  42. package/esm2015/lib/modules/colorpicker/colorpicker-input.directive.js.map +0 -1
  43. package/esm2015/lib/modules/colorpicker/colorpicker-slider.directive.js +0 -98
  44. package/esm2015/lib/modules/colorpicker/colorpicker-slider.directive.js.map +0 -1
  45. package/esm2015/lib/modules/colorpicker/colorpicker-text.directive.js +0 -51
  46. package/esm2015/lib/modules/colorpicker/colorpicker-text.directive.js.map +0 -1
  47. package/esm2015/lib/modules/colorpicker/colorpicker.component.js +0 -421
  48. package/esm2015/lib/modules/colorpicker/colorpicker.component.js.map +0 -1
  49. package/esm2015/lib/modules/colorpicker/colorpicker.module.js +0 -61
  50. package/esm2015/lib/modules/colorpicker/colorpicker.module.js.map +0 -1
  51. package/esm2015/lib/modules/colorpicker/colorpicker.service.js +0 -342
  52. package/esm2015/lib/modules/colorpicker/colorpicker.service.js.map +0 -1
  53. package/esm2015/lib/modules/colorpicker/types/colorpicker-axis.js +0 -2
  54. package/esm2015/lib/modules/colorpicker/types/colorpicker-axis.js.map +0 -1
  55. package/esm2015/lib/modules/colorpicker/types/colorpicker-cmyk.js +0 -2
  56. package/esm2015/lib/modules/colorpicker/types/colorpicker-cmyk.js.map +0 -1
  57. package/esm2015/lib/modules/colorpicker/types/colorpicker-color.js +0 -2
  58. package/esm2015/lib/modules/colorpicker/types/colorpicker-color.js.map +0 -1
  59. package/esm2015/lib/modules/colorpicker/types/colorpicker-hsla.js +0 -2
  60. package/esm2015/lib/modules/colorpicker/types/colorpicker-hsla.js.map +0 -1
  61. package/esm2015/lib/modules/colorpicker/types/colorpicker-hsva.js +0 -2
  62. package/esm2015/lib/modules/colorpicker/types/colorpicker-hsva.js.map +0 -1
  63. package/esm2015/lib/modules/colorpicker/types/colorpicker-message-type.js +0 -23
  64. package/esm2015/lib/modules/colorpicker/types/colorpicker-message-type.js.map +0 -1
  65. package/esm2015/lib/modules/colorpicker/types/colorpicker-message.js +0 -2
  66. package/esm2015/lib/modules/colorpicker/types/colorpicker-message.js.map +0 -1
  67. package/esm2015/lib/modules/colorpicker/types/colorpicker-output.js +0 -2
  68. package/esm2015/lib/modules/colorpicker/types/colorpicker-output.js.map +0 -1
  69. package/esm2015/lib/modules/colorpicker/types/colorpicker-result.js +0 -2
  70. package/esm2015/lib/modules/colorpicker/types/colorpicker-result.js.map +0 -1
  71. package/esm2015/lib/modules/colorpicker/types/colorpicker-rgba.js +0 -2
  72. package/esm2015/lib/modules/colorpicker/types/colorpicker-rgba.js.map +0 -1
  73. package/esm2015/lib/modules/shared/sky-colorpicker-resources.module.js +0 -64
  74. package/esm2015/lib/modules/shared/sky-colorpicker-resources.module.js.map +0 -1
  75. package/esm2015/skyux-colorpicker.js +0 -5
  76. package/esm2015/skyux-colorpicker.js.map +0 -1
  77. package/esm2015/testing/colorpicker-fixture.js +0 -96
  78. package/esm2015/testing/colorpicker-fixture.js.map +0 -1
  79. package/esm2015/testing/public-api.js +0 -2
  80. package/esm2015/testing/public-api.js.map +0 -1
  81. package/esm2015/testing/skyux-colorpicker-testing.js +0 -5
  82. package/esm2015/testing/skyux-colorpicker-testing.js.map +0 -1
  83. package/fesm2015/skyux-colorpicker-testing.js.map +0 -1
  84. package/fesm2015/skyux-colorpicker.js +0 -1324
  85. package/fesm2015/skyux-colorpicker.js.map +0 -1
@@ -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 entryComponents: [SkyColorpickerComponent],\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": 36,
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=