ngx-color 9.0.0 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/coordinates.directive.d.ts +1 -2
  2. package/fesm2022/ngx-color-alpha.mjs +15 -17
  3. package/fesm2022/ngx-color-alpha.mjs.map +1 -1
  4. package/fesm2022/ngx-color-block.mjs +87 -76
  5. package/fesm2022/ngx-color-block.mjs.map +1 -1
  6. package/fesm2022/ngx-color-chrome.mjs +186 -145
  7. package/fesm2022/ngx-color-chrome.mjs.map +1 -1
  8. package/fesm2022/ngx-color-circle.mjs +68 -51
  9. package/fesm2022/ngx-color-circle.mjs.map +1 -1
  10. package/fesm2022/ngx-color-compact.mjs +163 -145
  11. package/fesm2022/ngx-color-compact.mjs.map +1 -1
  12. package/fesm2022/ngx-color-github.mjs +36 -37
  13. package/fesm2022/ngx-color-github.mjs.map +1 -1
  14. package/fesm2022/ngx-color-hue.mjs +27 -25
  15. package/fesm2022/ngx-color-hue.mjs.map +1 -1
  16. package/fesm2022/ngx-color-material.mjs +77 -61
  17. package/fesm2022/ngx-color-material.mjs.map +1 -1
  18. package/fesm2022/ngx-color-photoshop.mjs +224 -214
  19. package/fesm2022/ngx-color-photoshop.mjs.map +1 -1
  20. package/fesm2022/ngx-color-shade.mjs +19 -13
  21. package/fesm2022/ngx-color-shade.mjs.map +1 -1
  22. package/fesm2022/ngx-color-sketch.mjs +232 -227
  23. package/fesm2022/ngx-color-sketch.mjs.map +1 -1
  24. package/fesm2022/ngx-color-slider.mjs +153 -145
  25. package/fesm2022/ngx-color-slider.mjs.map +1 -1
  26. package/fesm2022/ngx-color-swatches.mjs +118 -216
  27. package/fesm2022/ngx-color-swatches.mjs.map +1 -1
  28. package/fesm2022/ngx-color-twitter.mjs +61 -58
  29. package/fesm2022/ngx-color-twitter.mjs.map +1 -1
  30. package/fesm2022/ngx-color.mjs +231 -187
  31. package/fesm2022/ngx-color.mjs.map +1 -1
  32. package/package.json +4 -34
  33. package/esm2022/alpha/alpha-picker.component.mjs +0 -102
  34. package/esm2022/alpha/ngx-color-alpha.mjs +0 -5
  35. package/esm2022/alpha/public_api.mjs +0 -2
  36. package/esm2022/alpha.component.mjs +0 -146
  37. package/esm2022/block/block-swatches.component.mjs +0 -63
  38. package/esm2022/block/block.component.mjs +0 -160
  39. package/esm2022/block/ngx-color-block.mjs +0 -5
  40. package/esm2022/block/public_api.mjs +0 -3
  41. package/esm2022/checkboard.component.mjs +0 -53
  42. package/esm2022/chrome/chrome-fields.component.mjs +0 -317
  43. package/esm2022/chrome/chrome.component.mjs +0 -187
  44. package/esm2022/chrome/ngx-color-chrome.mjs +0 -5
  45. package/esm2022/chrome/public_api.mjs +0 -3
  46. package/esm2022/circle/circle-swatch.component.mjs +0 -69
  47. package/esm2022/circle/circle.component.mjs +0 -136
  48. package/esm2022/circle/ngx-color-circle.mjs +0 -5
  49. package/esm2022/circle/public_api.mjs +0 -3
  50. package/esm2022/color-wrap.component.mjs +0 -173
  51. package/esm2022/compact/compact-color.component.mjs +0 -71
  52. package/esm2022/compact/compact-fields.component.mjs +0 -165
  53. package/esm2022/compact/compact.component.mjs +0 -156
  54. package/esm2022/compact/ngx-color-compact.mjs +0 -5
  55. package/esm2022/compact/public_api.mjs +0 -4
  56. package/esm2022/coordinates.directive.mjs +0 -108
  57. package/esm2022/editable-input.component.mjs +0 -212
  58. package/esm2022/github/github-swatch.component.mjs +0 -53
  59. package/esm2022/github/github.component.mjs +0 -114
  60. package/esm2022/github/ngx-color-github.mjs +0 -5
  61. package/esm2022/github/public_api.mjs +0 -3
  62. package/esm2022/helpers/checkboard.mjs +0 -33
  63. package/esm2022/helpers/color.interfaces.mjs +0 -2
  64. package/esm2022/helpers/color.mjs +0 -60
  65. package/esm2022/hue/hue-picker.component.mjs +0 -102
  66. package/esm2022/hue/ngx-color-hue.mjs +0 -5
  67. package/esm2022/hue/public_api.mjs +0 -2
  68. package/esm2022/hue.component.mjs +0 -128
  69. package/esm2022/material/material.component.mjs +0 -188
  70. package/esm2022/material/ngx-color-material.mjs +0 -5
  71. package/esm2022/material/public_api.mjs +0 -2
  72. package/esm2022/ngx-color.mjs +0 -5
  73. package/esm2022/photoshop/ngx-color-photoshop.mjs +0 -5
  74. package/esm2022/photoshop/photoshop-button.component.mjs +0 -33
  75. package/esm2022/photoshop/photoshop-fields.component.mjs +0 -214
  76. package/esm2022/photoshop/photoshop-previews.component.mjs +0 -40
  77. package/esm2022/photoshop/photoshop.component.mjs +0 -187
  78. package/esm2022/photoshop/public_api.mjs +0 -5
  79. package/esm2022/public_api.mjs +0 -14
  80. package/esm2022/raised.component.mjs +0 -50
  81. package/esm2022/saturation.component.mjs +0 -100
  82. package/esm2022/shade/ngx-color-shade.mjs +0 -5
  83. package/esm2022/shade/public_api.mjs +0 -2
  84. package/esm2022/shade/shade-picker.component.mjs +0 -94
  85. package/esm2022/shade.component.mjs +0 -133
  86. package/esm2022/sketch/ngx-color-sketch.mjs +0 -5
  87. package/esm2022/sketch/public_api.mjs +0 -4
  88. package/esm2022/sketch/sketch-fields.component.mjs +0 -211
  89. package/esm2022/sketch/sketch-preset-colors.component.mjs +0 -68
  90. package/esm2022/sketch/sketch.component.mjs +0 -215
  91. package/esm2022/slider/ngx-color-slider.mjs +0 -5
  92. package/esm2022/slider/public_api.mjs +0 -4
  93. package/esm2022/slider/slider-swatch.component.mjs +0 -55
  94. package/esm2022/slider/slider-swatches.component.mjs +0 -119
  95. package/esm2022/slider/slider.component.mjs +0 -104
  96. package/esm2022/swatch.component.mjs +0 -112
  97. package/esm2022/swatches/ngx-color-swatches.mjs +0 -5
  98. package/esm2022/swatches/public_api.mjs +0 -4
  99. package/esm2022/swatches/swatches-color.component.mjs +0 -105
  100. package/esm2022/swatches/swatches-group.component.mjs +0 -50
  101. package/esm2022/swatches/swatches.component.mjs +0 -244
  102. package/esm2022/twitter/ngx-color-twitter.mjs +0 -5
  103. package/esm2022/twitter/public_api.mjs +0 -2
  104. package/esm2022/twitter/twitter.component.mjs +0 -161
@@ -1,161 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, forwardRef, Input, NgModule } from '@angular/core';
3
- import { ColorWrap, EditableInputModule, isValidHex, SwatchModule } from 'ngx-color';
4
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "ngx-color";
8
- class TwitterComponent extends ColorWrap {
9
- /** Pixel value for picker width */
10
- width = 276;
11
- /** Color squares to display */
12
- colors = [
13
- '#FF6900',
14
- '#FCB900',
15
- '#7BDCB5',
16
- '#00D084',
17
- '#8ED1FC',
18
- '#0693E3',
19
- '#ABB8C3',
20
- '#EB144C',
21
- '#F78DA7',
22
- '#9900EF',
23
- ];
24
- triangle = 'top-left';
25
- swatchStyle = {
26
- width: '30px',
27
- height: '30px',
28
- borderRadius: '4px',
29
- fontSize: '0',
30
- };
31
- input = {
32
- borderRadius: '4px',
33
- borderBottomLeftRadius: '0',
34
- borderTopLeftRadius: '0',
35
- border: '1px solid #e6ecf0',
36
- boxSizing: 'border-box',
37
- display: 'inline',
38
- fontSize: '14px',
39
- height: '30px',
40
- padding: '0',
41
- paddingLeft: '6px',
42
- width: '100%',
43
- color: '#657786',
44
- };
45
- disableAlpha = true;
46
- constructor() {
47
- super();
48
- }
49
- focus(color) {
50
- return { boxShadow: `0 0 4px ${color}` };
51
- }
52
- handleBlockChange({ hex, $event }) {
53
- if (isValidHex(hex)) {
54
- // this.hex = hex;
55
- this.handleChange({ hex, source: 'hex' }, $event);
56
- }
57
- }
58
- handleValueChange({ data, $event }) {
59
- this.handleBlockChange({ hex: data, $event });
60
- }
61
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: TwitterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
62
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: TwitterComponent, selector: "color-twitter", inputs: { width: "width", colors: "colors", triangle: "triangle" }, providers: [
63
- {
64
- provide: NG_VALUE_ACCESSOR,
65
- useExisting: forwardRef(() => TwitterComponent),
66
- multi: true,
67
- },
68
- {
69
- provide: ColorWrap,
70
- useExisting: forwardRef(() => TwitterComponent),
71
- },
72
- ], usesInheritance: true, ngImport: i0, template: `
73
- <div class="twitter-picker {{ triangle }}-triangle {{ className }}" [style.width.px]="width">
74
- <div class="triangleShadow"></div>
75
- <div class="triangle"></div>
76
- <div class="twitter-body">
77
- <div class="twitter-swatch" *ngFor="let color of colors">
78
- <color-swatch
79
- [color]="color"
80
- [style]="swatchStyle"
81
- [focusStyle]="focus(color)"
82
- (onClick)="handleBlockChange($event)"
83
- (onHover)="onSwatchHover.emit($event)"
84
- ></color-swatch>
85
- </div>
86
- <div class="twitter-hash">
87
- <div>#</div>
88
- </div>
89
- <div class="twitter-input">
90
- <color-editable-input
91
- [style]="{ input: input }"
92
- [value]="hex.replace('#', '')"
93
- (onChange)="handleValueChange($event)"
94
- ></color-editable-input>
95
- </div>
96
- </div>
97
- </div>
98
- `, isInline: true, styles: [".twitter-picker{background:rgb(255,255,255);border:0px solid rgba(0,0,0,.25);box-shadow:#00000040 0 1px 4px;border-radius:4px;position:relative;box-sizing:border-box}.triangleShadow{width:0px;height:0px;border-style:solid;border-width:0px 9px 10px;border-color:transparent transparent rgba(0,0,0,.1);position:absolute}.triangle{width:0px;height:0px;border-style:solid;border-width:0px 9px 10px;border-color:transparent transparent rgb(255,255,255);position:absolute}.hide-triangle>.triangle{display:none}.hide-triangle>.triangleShadow{display:none}.top-left-triangle>.triangle{top:-10px;left:12px}.top-left-triangle>.triangleShadow{top:-11px;left:12px}.top-right-triangle>.triangle{top:-10px;right:12px}.top-right-triangle>.triangleShadow{top:-11px;right:12px}.twitter-body{padding:15px 9px 9px 15px}.twitter-swatch{width:30px;height:30px;display:inline-block;margin:0 6px 0 0}.twitter-hash{background:rgb(240,240,240);height:30px;width:30px;border-radius:4px 0 0 4px;color:#98a1a4;margin-left:-3px;display:inline-block}.twitter-hash>div{position:absolute;align-items:center;justify-content:center;height:30px;width:30px;display:flex}.twitter-input{display:inline-block;margin-top:-6px;font-size:10px;height:27px;padding:0;position:relative;top:6px;vertical-align:top;width:108px;margin-left:-4px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.SwatchComponent, selector: "color-swatch", inputs: ["color", "style", "focusStyle", "focus"], outputs: ["onClick", "onHover"] }, { kind: "component", type: i2.EditableInputComponent, selector: "color-editable-input", inputs: ["style", "label", "value", "arrowOffset", "dragLabel", "dragMax", "placeholder"], outputs: ["onChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
99
- }
100
- export { TwitterComponent };
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: TwitterComponent, decorators: [{
102
- type: Component,
103
- args: [{ selector: 'color-twitter', template: `
104
- <div class="twitter-picker {{ triangle }}-triangle {{ className }}" [style.width.px]="width">
105
- <div class="triangleShadow"></div>
106
- <div class="triangle"></div>
107
- <div class="twitter-body">
108
- <div class="twitter-swatch" *ngFor="let color of colors">
109
- <color-swatch
110
- [color]="color"
111
- [style]="swatchStyle"
112
- [focusStyle]="focus(color)"
113
- (onClick)="handleBlockChange($event)"
114
- (onHover)="onSwatchHover.emit($event)"
115
- ></color-swatch>
116
- </div>
117
- <div class="twitter-hash">
118
- <div>#</div>
119
- </div>
120
- <div class="twitter-input">
121
- <color-editable-input
122
- [style]="{ input: input }"
123
- [value]="hex.replace('#', '')"
124
- (onChange)="handleValueChange($event)"
125
- ></color-editable-input>
126
- </div>
127
- </div>
128
- </div>
129
- `, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, providers: [
130
- {
131
- provide: NG_VALUE_ACCESSOR,
132
- useExisting: forwardRef(() => TwitterComponent),
133
- multi: true,
134
- },
135
- {
136
- provide: ColorWrap,
137
- useExisting: forwardRef(() => TwitterComponent),
138
- },
139
- ], styles: [".twitter-picker{background:rgb(255,255,255);border:0px solid rgba(0,0,0,.25);box-shadow:#00000040 0 1px 4px;border-radius:4px;position:relative;box-sizing:border-box}.triangleShadow{width:0px;height:0px;border-style:solid;border-width:0px 9px 10px;border-color:transparent transparent rgba(0,0,0,.1);position:absolute}.triangle{width:0px;height:0px;border-style:solid;border-width:0px 9px 10px;border-color:transparent transparent rgb(255,255,255);position:absolute}.hide-triangle>.triangle{display:none}.hide-triangle>.triangleShadow{display:none}.top-left-triangle>.triangle{top:-10px;left:12px}.top-left-triangle>.triangleShadow{top:-11px;left:12px}.top-right-triangle>.triangle{top:-10px;right:12px}.top-right-triangle>.triangleShadow{top:-11px;right:12px}.twitter-body{padding:15px 9px 9px 15px}.twitter-swatch{width:30px;height:30px;display:inline-block;margin:0 6px 0 0}.twitter-hash{background:rgb(240,240,240);height:30px;width:30px;border-radius:4px 0 0 4px;color:#98a1a4;margin-left:-3px;display:inline-block}.twitter-hash>div{position:absolute;align-items:center;justify-content:center;height:30px;width:30px;display:flex}.twitter-input{display:inline-block;margin-top:-6px;font-size:10px;height:27px;padding:0;position:relative;top:6px;vertical-align:top;width:108px;margin-left:-4px}\n"] }]
140
- }], ctorParameters: function () { return []; }, propDecorators: { width: [{
141
- type: Input
142
- }], colors: [{
143
- type: Input
144
- }], triangle: [{
145
- type: Input
146
- }] } });
147
- class ColorTwitterModule {
148
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ColorTwitterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
149
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: ColorTwitterModule, declarations: [TwitterComponent], imports: [CommonModule, SwatchModule, EditableInputModule], exports: [TwitterComponent] });
150
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ColorTwitterModule, imports: [CommonModule, SwatchModule, EditableInputModule] });
151
- }
152
- export { ColorTwitterModule };
153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ColorTwitterModule, decorators: [{
154
- type: NgModule,
155
- args: [{
156
- declarations: [TwitterComponent],
157
- exports: [TwitterComponent],
158
- imports: [CommonModule, SwatchModule, EditableInputModule],
159
- }]
160
- }] });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdpdHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R3aXR0ZXIvdHdpdHRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRW5ELE1BcUlhLGdCQUFpQixTQUFRLFNBQVM7SUFDN0MsbUNBQW1DO0lBQzFCLEtBQUssR0FBb0IsR0FBRyxDQUFDO0lBQ3RDLCtCQUErQjtJQUN0QixNQUFNLEdBQUc7UUFDaEIsU0FBUztRQUNULFNBQVM7UUFDVCxTQUFTO1FBQ1QsU0FBUztRQUNULFNBQVM7UUFDVCxTQUFTO1FBQ1QsU0FBUztRQUNULFNBQVM7UUFDVCxTQUFTO1FBQ1QsU0FBUztLQUNWLENBQUM7SUFDTyxRQUFRLEdBQXVELFVBQVUsQ0FBQztJQUVuRixXQUFXLEdBQTRCO1FBQ3JDLEtBQUssRUFBRSxNQUFNO1FBQ2IsTUFBTSxFQUFFLE1BQU07UUFDZCxZQUFZLEVBQUUsS0FBSztRQUNuQixRQUFRLEVBQUUsR0FBRztLQUNkLENBQUM7SUFDRixLQUFLLEdBQTRCO1FBQy9CLFlBQVksRUFBRSxLQUFLO1FBQ25CLHNCQUFzQixFQUFFLEdBQUc7UUFDM0IsbUJBQW1CLEVBQUUsR0FBRztRQUN4QixNQUFNLEVBQUUsbUJBQW1CO1FBQzNCLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLE9BQU8sRUFBRSxRQUFRO1FBQ2pCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLE1BQU0sRUFBRSxNQUFNO1FBQ2QsT0FBTyxFQUFFLEdBQUc7UUFDWixXQUFXLEVBQUUsS0FBSztRQUNsQixLQUFLLEVBQUUsTUFBTTtRQUNiLEtBQUssRUFBRSxTQUFTO0tBQ2pCLENBQUM7SUFDRixZQUFZLEdBQUcsSUFBSSxDQUFDO0lBRXBCO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQWE7UUFDakIsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBTztRQUNwQyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNuQixrQkFBa0I7WUFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFPO1FBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO3VHQXpEVSxnQkFBZ0I7MkZBQWhCLGdCQUFnQiw0R0FaaEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO2dCQUMvQyxLQUFLLEVBQUUsSUFBSTthQUNaO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLFNBQVM7Z0JBQ2xCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7YUFDaEQ7U0FDRixpREFqSVM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJUOztTQXlHVSxnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFySTVCLFNBQVM7K0JBQ0UsZUFBZSxZQUNmOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCVCxtQkEyRmdCLHVCQUF1QixDQUFDLE1BQU0sdUJBQzFCLEtBQUssYUFDZjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQzs0QkFDL0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLFNBQVM7NEJBQ2xCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDO3lCQUNoRDtxQkFDRjswRUFJUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQVlHLFFBQVE7c0JBQWhCLEtBQUs7O0FBNENSLE1BS2Esa0JBQWtCO3VHQUFsQixrQkFBa0I7d0dBQWxCLGtCQUFrQixpQkFqRWxCLGdCQUFnQixhQStEakIsWUFBWSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsYUEvRDlDLGdCQUFnQjt3R0FpRWhCLGtCQUFrQixZQUZuQixZQUFZLEVBQUUsWUFBWSxFQUFFLG1CQUFtQjs7U0FFOUMsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBTDlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixDQUFDO2lCQUMzRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29sb3JXcmFwLCBFZGl0YWJsZUlucHV0TW9kdWxlLCBpc1ZhbGlkSGV4LCBTd2F0Y2hNb2R1bGUgfSBmcm9tICduZ3gtY29sb3InO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvbG9yLXR3aXR0ZXInLFxuICB0ZW1wbGF0ZTogYFxuICA8ZGl2IGNsYXNzPVwidHdpdHRlci1waWNrZXIge3sgdHJpYW5nbGUgfX0tdHJpYW5nbGUge3sgY2xhc3NOYW1lIH19XCIgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoXCI+XG4gICAgPGRpdiBjbGFzcz1cInRyaWFuZ2xlU2hhZG93XCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRyaWFuZ2xlXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInR3aXR0ZXItYm9keVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInR3aXR0ZXItc3dhdGNoXCIgKm5nRm9yPVwibGV0IGNvbG9yIG9mIGNvbG9yc1wiPlxuICAgICAgICA8Y29sb3Itc3dhdGNoXG4gICAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgICAgICBbc3R5bGVdPVwic3dhdGNoU3R5bGVcIlxuICAgICAgICAgIFtmb2N1c1N0eWxlXT1cImZvY3VzKGNvbG9yKVwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQmxvY2tDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgKG9uSG92ZXIpPVwib25Td2F0Y2hIb3Zlci5lbWl0KCRldmVudClcIlxuICAgICAgICA+PC9jb2xvci1zd2F0Y2g+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0d2l0dGVyLWhhc2hcIj5cbiAgICAgICAgPGRpdj4jPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0d2l0dGVyLWlucHV0XCI+XG4gICAgICAgIDxjb2xvci1lZGl0YWJsZS1pbnB1dFxuICAgICAgICAgIFtzdHlsZV09XCJ7IGlucHV0OiBpbnB1dCB9XCJcbiAgICAgICAgICBbdmFsdWVdPVwiaGV4LnJlcGxhY2UoJyMnLCAnJylcIlxuICAgICAgICAgIChvbkNoYW5nZSk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvY29sb3ItZWRpdGFibGUtaW5wdXQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAudHdpdHRlci1waWNrZXIge1xuICAgICAgYmFja2dyb3VuZDogcmdiKDI1NSwgMjU1LCAyNTUpO1xuICAgICAgYm9yZGVyOiAwcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICAgIGJveC1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4yNSkgMHB4IDFweCA0cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgICAudHJpYW5nbGVTaGFkb3cge1xuICAgICAgd2lkdGg6IDBweDtcbiAgICAgIGhlaWdodDogMHB4O1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci13aWR0aDogMHB4IDlweCAxMHB4O1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICAgIC50cmlhbmdsZSB7XG4gICAgICB3aWR0aDogMHB4O1xuICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwcHggOXB4IDEwcHg7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHJnYigyNTUsIDI1NSwgMjU1KTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gICAgLmhpZGUtdHJpYW5nbGUgPiAudHJpYW5nbGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmhpZGUtdHJpYW5nbGUgPiAudHJpYW5nbGVTaGFkb3cge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLnRvcC1sZWZ0LXRyaWFuZ2xlID4gLnRyaWFuZ2xlIHtcbiAgICAgIHRvcDogLTEwcHg7XG4gICAgICBsZWZ0OiAxMnB4O1xuICAgIH1cbiAgICAudG9wLWxlZnQtdHJpYW5nbGUgPiAudHJpYW5nbGVTaGFkb3cge1xuICAgICAgdG9wOiAtMTFweDtcbiAgICAgIGxlZnQ6IDEycHg7XG4gICAgfVxuICAgIC50b3AtcmlnaHQtdHJpYW5nbGUgPiAudHJpYW5nbGUge1xuICAgICAgdG9wOiAtMTBweDtcbiAgICAgIHJpZ2h0OiAxMnB4O1xuICAgIH1cbiAgICAudG9wLXJpZ2h0LXRyaWFuZ2xlID4gLnRyaWFuZ2xlU2hhZG93IHtcbiAgICAgIHRvcDogLTExcHg7XG4gICAgICByaWdodDogMTJweDtcbiAgICB9XG4gICAgLnR3aXR0ZXItYm9keSB7XG4gICAgICBwYWRkaW5nOiAxNXB4IDlweCA5cHggMTVweDtcbiAgICB9XG4gICAgLnR3aXR0ZXItc3dhdGNoIHtcbiAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luOiAwIDZweCAwIDA7XG4gICAgfVxuICAgIC50d2l0dGVyLWhhc2gge1xuICAgICAgYmFja2dyb3VuZDogcmdiKDI0MCwgMjQwLCAyNDApO1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHggMHB4IDBweCA0cHg7XG4gICAgICBjb2xvcjogcmdiKDE1MiwgMTYxLCAxNjQpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0zcHg7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICB9XG4gICAgLnR3aXR0ZXItaGFzaCA+IGRpdiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICAgIC50d2l0dGVyLWlucHV0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi10b3A6IC02cHg7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDI3cHg7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiA2cHg7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgd2lkdGg6IDEwOHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgfVxuICBgLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHdpdHRlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IENvbG9yV3JhcCxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR3aXR0ZXJDb21wb25lbnQpLFxuICAgIH0sXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVHdpdHRlckNvbXBvbmVudCBleHRlbmRzIENvbG9yV3JhcCB7XG4gIC8qKiBQaXhlbCB2YWx1ZSBmb3IgcGlja2VyIHdpZHRoICovXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgfCBudW1iZXIgPSAyNzY7XG4gIC8qKiBDb2xvciBzcXVhcmVzIHRvIGRpc3BsYXkgKi9cbiAgQElucHV0KCkgY29sb3JzID0gW1xuICAgICcjRkY2OTAwJyxcbiAgICAnI0ZDQjkwMCcsXG4gICAgJyM3QkRDQjUnLFxuICAgICcjMDBEMDg0JyxcbiAgICAnIzhFRDFGQycsXG4gICAgJyMwNjkzRTMnLFxuICAgICcjQUJCOEMzJyxcbiAgICAnI0VCMTQ0QycsXG4gICAgJyNGNzhEQTcnLFxuICAgICcjOTkwMEVGJyxcbiAgXTtcbiAgQElucHV0KCkgdHJpYW5nbGU6ICdoaWRlJyB8ICd0b3AtbGVmdCcgfCAndG9wLXJpZ2h0JyB8ICdib3R0b20tcmlnaHQnID0gJ3RvcC1sZWZ0JztcblxuICBzd2F0Y2hTdHlsZToge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7XG4gICAgd2lkdGg6ICczMHB4JyxcbiAgICBoZWlnaHQ6ICczMHB4JyxcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGZvbnRTaXplOiAnMCcsXG4gIH07XG4gIGlucHV0OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHtcbiAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgIGJvcmRlckJvdHRvbUxlZnRSYWRpdXM6ICcwJyxcbiAgICBib3JkZXJUb3BMZWZ0UmFkaXVzOiAnMCcsXG4gICAgYm9yZGVyOiAnMXB4IHNvbGlkICNlNmVjZjAnLFxuICAgIGJveFNpemluZzogJ2JvcmRlci1ib3gnLFxuICAgIGRpc3BsYXk6ICdpbmxpbmUnLFxuICAgIGZvbnRTaXplOiAnMTRweCcsXG4gICAgaGVpZ2h0OiAnMzBweCcsXG4gICAgcGFkZGluZzogJzAnLFxuICAgIHBhZGRpbmdMZWZ0OiAnNnB4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIGNvbG9yOiAnIzY1Nzc4NicsXG4gIH07XG4gIGRpc2FibGVBbHBoYSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGZvY3VzKGNvbG9yOiBzdHJpbmcpIHtcbiAgICByZXR1cm4geyBib3hTaGFkb3c6IGAwIDAgNHB4ICR7Y29sb3J9YCB9O1xuICB9XG5cbiAgaGFuZGxlQmxvY2tDaGFuZ2UoeyBoZXgsICRldmVudCB9OiBhbnkpIHtcbiAgICBpZiAoaXNWYWxpZEhleChoZXgpKSB7XG4gICAgICAvLyB0aGlzLmhleCA9IGhleDtcbiAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKHsgaGV4LCBzb3VyY2U6ICdoZXgnIH0sICRldmVudCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlVmFsdWVDaGFuZ2UoeyBkYXRhLCAkZXZlbnQgfTogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVCbG9ja0NoYW5nZSh7IGhleDogZGF0YSwgJGV2ZW50IH0pO1xuICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1R3aXR0ZXJDb21wb25lbnRdLFxuICBleHBvcnRzOiBbVHdpdHRlckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFN3YXRjaE1vZHVsZSwgRWRpdGFibGVJbnB1dE1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIENvbG9yVHdpdHRlck1vZHVsZSB7fVxuIl19