ngx-color 7.2.0 → 7.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/alpha/alpha-picker.component.d.ts +8 -0
- package/alpha/esm2020/alpha-picker.component.mjs +116 -0
- package/alpha/{esm2015/ngx-color-alpha.js → esm2020/ngx-color-alpha.mjs} +2 -2
- package/alpha/esm2020/public_api.mjs +2 -0
- package/alpha/fesm2015/ngx-color-alpha.mjs +123 -0
- package/alpha/fesm2015/ngx-color-alpha.mjs.map +1 -0
- package/alpha/fesm2020/ngx-color-alpha.mjs +123 -0
- package/alpha/fesm2020/ngx-color-alpha.mjs.map +1 -0
- package/alpha/ngx-color-alpha.d.ts +2 -1
- package/alpha/package.json +19 -7
- package/alpha/public_api.d.ts +1 -0
- package/alpha.component.d.ts +9 -0
- package/block/block-swatches.component.d.ts +3 -0
- package/block/block.component.d.ts +9 -0
- package/block/esm2020/block-swatches.component.mjs +76 -0
- package/block/esm2020/block.component.mjs +199 -0
- package/block/esm2020/ngx-color-block.mjs +5 -0
- package/block/esm2020/public_api.mjs +3 -0
- package/block/fesm2015/ngx-color-block.mjs +277 -0
- package/block/fesm2015/ngx-color-block.mjs.map +1 -0
- package/block/fesm2020/ngx-color-block.mjs +277 -0
- package/block/fesm2020/ngx-color-block.mjs.map +1 -0
- package/block/ngx-color-block.d.ts +2 -2
- package/block/package.json +19 -7
- package/block/public_api.d.ts +2 -0
- package/checkboard.component.d.ts +7 -0
- package/chrome/chrome-fields.component.d.ts +3 -0
- package/chrome/chrome.component.d.ts +9 -0
- package/chrome/esm2020/chrome-fields.component.mjs +356 -0
- package/chrome/esm2020/chrome.component.mjs +249 -0
- package/chrome/esm2020/ngx-color-chrome.mjs +5 -0
- package/chrome/esm2020/public_api.mjs +3 -0
- package/chrome/fesm2015/ngx-color-chrome.mjs +606 -0
- package/chrome/fesm2015/ngx-color-chrome.mjs.map +1 -0
- package/chrome/fesm2020/ngx-color-chrome.mjs +606 -0
- package/chrome/fesm2020/ngx-color-chrome.mjs.map +1 -0
- package/chrome/ngx-color-chrome.d.ts +2 -2
- package/chrome/package.json +19 -7
- package/chrome/public_api.d.ts +2 -0
- package/circle/circle-swatch.component.d.ts +3 -0
- package/circle/circle.component.d.ts +9 -0
- package/circle/esm2020/circle-swatch.component.mjs +85 -0
- package/circle/esm2020/circle.component.mjs +148 -0
- package/circle/esm2020/ngx-color-circle.mjs +5 -0
- package/circle/esm2020/public_api.mjs +3 -0
- package/circle/fesm2015/ngx-color-circle.mjs +237 -0
- package/circle/fesm2015/ngx-color-circle.mjs.map +1 -0
- package/circle/fesm2020/ngx-color-circle.mjs +237 -0
- package/circle/fesm2020/ngx-color-circle.mjs.map +1 -0
- package/circle/ngx-color-circle.d.ts +2 -2
- package/circle/package.json +19 -7
- package/circle/public_api.d.ts +2 -0
- package/color-wrap.component.d.ts +7 -0
- package/compact/compact-color.component.d.ts +3 -0
- package/compact/compact-fields.component.d.ts +3 -0
- package/compact/compact.component.d.ts +10 -0
- package/compact/esm2020/compact-color.component.mjs +91 -0
- package/compact/esm2020/compact-fields.component.mjs +186 -0
- package/compact/esm2020/compact.component.mjs +177 -0
- package/compact/esm2020/ngx-color-compact.mjs +5 -0
- package/compact/esm2020/public_api.mjs +4 -0
- package/compact/fesm2015/ngx-color-compact.mjs +451 -0
- package/compact/fesm2015/ngx-color-compact.mjs.map +1 -0
- package/compact/fesm2020/ngx-color-compact.mjs +451 -0
- package/compact/fesm2020/ngx-color-compact.mjs.map +1 -0
- package/compact/ngx-color-compact.d.ts +2 -3
- package/compact/package.json +19 -7
- package/compact/public_api.d.ts +3 -0
- package/coordinates.directive.d.ts +6 -0
- package/editable-input.component.d.ts +7 -0
- package/esm2020/alpha.component.mjs +186 -0
- package/esm2020/checkboard.component.mjs +66 -0
- package/esm2020/color-wrap.component.mjs +163 -0
- package/esm2020/coordinates.directive.mjs +104 -0
- package/esm2020/editable-input.component.mjs +217 -0
- package/{esm2015/helpers/checkboard.js → esm2020/helpers/checkboard.mjs} +0 -0
- package/{esm2015/helpers/color.interfaces.js → esm2020/helpers/color.interfaces.mjs} +0 -0
- package/{esm2015/helpers/color.js → esm2020/helpers/color.mjs} +0 -0
- package/esm2020/hue.component.mjs +165 -0
- package/{esm2015/ngx-color.js → esm2020/ngx-color.mjs} +0 -0
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
- package/esm2020/raised.component.mjs +89 -0
- package/esm2020/saturation.component.mjs +136 -0
- package/esm2020/shade.component.mjs +165 -0
- package/esm2020/swatch.component.mjs +125 -0
- package/fesm2015/ngx-color.mjs +1461 -0
- package/fesm2015/ngx-color.mjs.map +1 -0
- package/fesm2020/ngx-color.mjs +1466 -0
- package/fesm2020/ngx-color.mjs.map +1 -0
- package/github/esm2020/github-swatch.component.mjs +67 -0
- package/github/esm2020/github.component.mjs +179 -0
- package/github/esm2020/ngx-color-github.mjs +5 -0
- package/github/esm2020/public_api.mjs +3 -0
- package/github/fesm2015/ngx-color-github.mjs +250 -0
- package/github/fesm2015/ngx-color-github.mjs.map +1 -0
- package/github/fesm2020/ngx-color-github.mjs +250 -0
- package/github/fesm2020/ngx-color-github.mjs.map +1 -0
- package/github/github-swatch.component.d.ts +3 -0
- package/github/github.component.d.ts +9 -0
- package/github/ngx-color-github.d.ts +2 -2
- package/github/package.json +19 -7
- package/github/public_api.d.ts +2 -0
- package/helpers/checkboard.d.ts +2 -2
- package/hue/esm2020/hue-picker.component.mjs +113 -0
- package/hue/{esm2015/ngx-color-hue.js → esm2020/ngx-color-hue.mjs} +2 -2
- package/hue/esm2020/public_api.mjs +2 -0
- package/hue/fesm2015/ngx-color-hue.mjs +120 -0
- package/hue/fesm2015/ngx-color-hue.mjs.map +1 -0
- package/hue/fesm2020/ngx-color-hue.mjs +120 -0
- package/hue/fesm2020/ngx-color-hue.mjs.map +1 -0
- package/hue/hue-picker.component.d.ts +8 -0
- package/hue/ngx-color-hue.d.ts +2 -1
- package/hue/package.json +19 -7
- package/hue/public_api.d.ts +1 -0
- package/hue.component.d.ts +8 -0
- package/material/esm2020/material.component.mjs +211 -0
- package/material/{esm2015/ngx-color-material.js → esm2020/ngx-color-material.mjs} +2 -2
- package/material/esm2020/public_api.mjs +2 -0
- package/material/fesm2015/ngx-color-material.mjs +218 -0
- package/material/fesm2015/ngx-color-material.mjs.map +1 -0
- package/material/fesm2020/ngx-color-material.mjs +218 -0
- package/material/fesm2020/ngx-color-material.mjs.map +1 -0
- package/material/material.component.d.ts +8 -0
- package/material/ngx-color-material.d.ts +2 -1
- package/material/package.json +19 -7
- package/material/public_api.d.ts +1 -0
- package/ngx-color.d.ts +1 -0
- package/package.json +20 -8
- package/photoshop/esm2020/ngx-color-photoshop.mjs +5 -0
- package/photoshop/esm2020/photoshop-button.component.mjs +63 -0
- package/photoshop/esm2020/photoshop-fields.component.mjs +241 -0
- package/photoshop/esm2020/photoshop-previews.component.mjs +68 -0
- package/photoshop/esm2020/photoshop.component.mjs +258 -0
- package/photoshop/esm2020/public_api.mjs +5 -0
- package/photoshop/fesm2015/ngx-color-photoshop.mjs +626 -0
- package/photoshop/fesm2015/ngx-color-photoshop.mjs.map +1 -0
- package/photoshop/fesm2020/ngx-color-photoshop.mjs +626 -0
- package/photoshop/fesm2020/ngx-color-photoshop.mjs.map +1 -0
- package/photoshop/ngx-color-photoshop.d.ts +2 -4
- package/photoshop/package.json +19 -7
- package/photoshop/photoshop-button.component.d.ts +3 -0
- package/photoshop/photoshop-fields.component.d.ts +3 -0
- package/photoshop/photoshop-previews.component.d.ts +3 -0
- package/photoshop/photoshop.component.d.ts +11 -0
- package/photoshop/public_api.d.ts +4 -0
- package/raised.component.d.ts +7 -0
- package/saturation.component.d.ts +8 -0
- package/shade/{esm2015/ngx-color-shade.js → esm2020/ngx-color-shade.mjs} +2 -2
- package/shade/esm2020/public_api.mjs +2 -0
- package/shade/esm2020/shade-picker.component.mjs +105 -0
- package/shade/fesm2015/ngx-color-shade.mjs +112 -0
- package/shade/fesm2015/ngx-color-shade.mjs.map +1 -0
- package/shade/fesm2020/ngx-color-shade.mjs +112 -0
- package/shade/fesm2020/ngx-color-shade.mjs.map +1 -0
- package/shade/ngx-color-shade.d.ts +2 -1
- package/shade/package.json +19 -7
- package/shade/public_api.d.ts +1 -0
- package/shade/shade-picker.component.d.ts +8 -0
- package/shade.component.d.ts +8 -0
- package/sketch/esm2020/ngx-color-sketch.mjs +5 -0
- package/sketch/esm2020/public_api.mjs +4 -0
- package/sketch/esm2020/sketch-fields.component.mjs +243 -0
- package/sketch/esm2020/sketch-preset-colors.component.mjs +98 -0
- package/sketch/esm2020/sketch.component.mjs +283 -0
- package/sketch/fesm2015/ngx-color-sketch.mjs +620 -0
- package/sketch/fesm2015/ngx-color-sketch.mjs.map +1 -0
- package/sketch/fesm2020/ngx-color-sketch.mjs +620 -0
- package/sketch/fesm2020/ngx-color-sketch.mjs.map +1 -0
- package/sketch/ngx-color-sketch.d.ts +2 -3
- package/sketch/package.json +19 -7
- package/sketch/public_api.d.ts +3 -0
- package/sketch/sketch-fields.component.d.ts +3 -0
- package/sketch/sketch-preset-colors.component.d.ts +3 -0
- package/sketch/sketch.component.d.ts +10 -0
- package/slider/esm2020/ngx-color-slider.mjs +5 -0
- package/slider/esm2020/public_api.mjs +4 -0
- package/slider/esm2020/slider-swatch.component.mjs +80 -0
- package/slider/esm2020/slider-swatches.component.mjs +135 -0
- package/slider/esm2020/slider.component.mjs +116 -0
- package/slider/fesm2015/ngx-color-slider.mjs +331 -0
- package/slider/fesm2015/ngx-color-slider.mjs.map +1 -0
- package/slider/fesm2020/ngx-color-slider.mjs +331 -0
- package/slider/fesm2020/ngx-color-slider.mjs.map +1 -0
- package/slider/ngx-color-slider.d.ts +2 -3
- package/slider/package.json +19 -7
- package/slider/public_api.d.ts +3 -0
- package/slider/slider-swatch.component.d.ts +3 -0
- package/slider/slider-swatches.component.d.ts +3 -0
- package/slider/slider.component.d.ts +10 -0
- package/swatch.component.d.ts +8 -0
- package/swatches/esm2020/ngx-color-swatches.mjs +5 -0
- package/swatches/esm2020/public_api.mjs +4 -0
- package/swatches/esm2020/swatches-color.component.mjs +123 -0
- package/swatches/esm2020/swatches-group.component.mjs +64 -0
- package/swatches/esm2020/swatches.component.mjs +258 -0
- package/swatches/fesm2015/ngx-color-swatches.mjs +441 -0
- package/swatches/fesm2015/ngx-color-swatches.mjs.map +1 -0
- package/swatches/fesm2020/ngx-color-swatches.mjs +441 -0
- package/swatches/fesm2020/ngx-color-swatches.mjs.map +1 -0
- package/swatches/ngx-color-swatches.d.ts +2 -3
- package/swatches/package.json +19 -7
- package/swatches/public_api.d.ts +3 -0
- package/swatches/swatches-color.component.d.ts +3 -0
- package/swatches/swatches-group.component.d.ts +3 -0
- package/swatches/swatches.component.d.ts +10 -0
- package/twitter/{esm2015/ngx-color-twitter.js → esm2020/ngx-color-twitter.mjs} +2 -2
- package/twitter/esm2020/public_api.mjs +2 -0
- package/twitter/esm2020/twitter.component.mjs +255 -0
- package/twitter/fesm2015/ngx-color-twitter.mjs +262 -0
- package/twitter/fesm2015/ngx-color-twitter.mjs.map +1 -0
- package/twitter/fesm2020/ngx-color-twitter.mjs +262 -0
- package/twitter/fesm2020/ngx-color-twitter.mjs.map +1 -0
- package/twitter/ngx-color-twitter.d.ts +2 -1
- package/twitter/package.json +19 -7
- package/twitter/public_api.d.ts +1 -0
- package/twitter/twitter.component.d.ts +8 -0
- package/alpha/bundles/ngx-color-alpha.umd.js +0 -404
- package/alpha/bundles/ngx-color-alpha.umd.js.map +0 -1
- package/alpha/esm2015/alpha-picker.component.js +0 -84
- package/alpha/fesm2015/ngx-color-alpha.js +0 -91
- package/alpha/fesm2015/ngx-color-alpha.js.map +0 -1
- package/alpha/ngx-color-alpha.metadata.json +0 -1
- package/block/bundles/ngx-color-block.umd.js +0 -472
- package/block/bundles/ngx-color-block.umd.js.map +0 -1
- package/block/esm2015/block-swatches.component.js +0 -58
- package/block/esm2015/block.component.js +0 -151
- package/block/esm2015/ngx-color-block.js +0 -6
- package/block/fesm2015/ngx-color-block.js +0 -214
- package/block/fesm2015/ngx-color-block.js.map +0 -1
- package/block/ngx-color-block.metadata.json +0 -1
- package/bundles/ngx-color.umd.js +0 -1014
- package/bundles/ngx-color.umd.js.map +0 -1
- package/chrome/bundles/ngx-color-chrome.umd.js +0 -543
- package/chrome/bundles/ngx-color-chrome.umd.js.map +0 -1
- package/chrome/esm2015/chrome-fields.component.js +0 -255
- package/chrome/esm2015/chrome.component.js +0 -173
- package/chrome/esm2015/ngx-color-chrome.js +0 -6
- package/chrome/fesm2015/ngx-color-chrome.js +0 -432
- package/chrome/fesm2015/ngx-color-chrome.js.map +0 -1
- package/chrome/ngx-color-chrome.metadata.json +0 -1
- package/circle/bundles/ngx-color-circle.umd.js +0 -469
- package/circle/bundles/ngx-color-circle.umd.js.map +0 -1
- package/circle/esm2015/circle-swatch.component.js +0 -63
- package/circle/esm2015/circle.component.js +0 -109
- package/circle/esm2015/ngx-color-circle.js +0 -6
- package/circle/fesm2015/ngx-color-circle.js +0 -177
- package/circle/fesm2015/ngx-color-circle.js.map +0 -1
- package/circle/ngx-color-circle.metadata.json +0 -1
- package/compact/bundles/ngx-color-compact.umd.js +0 -579
- package/compact/bundles/ngx-color-compact.umd.js.map +0 -1
- package/compact/esm2015/compact-color.component.js +0 -70
- package/compact/esm2015/compact-fields.component.js +0 -142
- package/compact/esm2015/compact.component.js +0 -135
- package/compact/esm2015/ngx-color-compact.js +0 -7
- package/compact/fesm2015/ngx-color-compact.js +0 -348
- package/compact/fesm2015/ngx-color-compact.js.map +0 -1
- package/compact/ngx-color-compact.metadata.json +0 -1
- package/esm2015/alpha.component.js +0 -156
- package/esm2015/checkboard.component.js +0 -52
- package/esm2015/color-wrap.component.js +0 -145
- package/esm2015/coordinates.directive.js +0 -85
- package/esm2015/editable-input.component.js +0 -183
- package/esm2015/hue.component.js +0 -140
- package/esm2015/raised.component.js +0 -73
- package/esm2015/saturation.component.js +0 -111
- package/esm2015/shade.component.js +0 -127
- package/esm2015/swatch.component.js +0 -85
- package/fesm2015/ngx-color.js +0 -1228
- package/fesm2015/ngx-color.js.map +0 -1
- package/github/bundles/ngx-color-github.umd.js +0 -447
- package/github/bundles/ngx-color-github.umd.js.map +0 -1
- package/github/esm2015/github-swatch.component.js +0 -48
- package/github/esm2015/github.component.js +0 -146
- package/github/esm2015/ngx-color-github.js +0 -6
- package/github/fesm2015/ngx-color-github.js +0 -199
- package/github/fesm2015/ngx-color-github.js.map +0 -1
- package/github/ngx-color-github.metadata.json +0 -1
- package/hue/bundles/ngx-color-hue.umd.js +0 -407
- package/hue/bundles/ngx-color-hue.umd.js.map +0 -1
- package/hue/esm2015/hue-picker.component.js +0 -82
- package/hue/fesm2015/ngx-color-hue.js +0 -89
- package/hue/fesm2015/ngx-color-hue.js.map +0 -1
- package/hue/ngx-color-hue.metadata.json +0 -1
- package/material/bundles/ngx-color-material.umd.js +0 -455
- package/material/bundles/ngx-color-material.umd.js.map +0 -1
- package/material/esm2015/material.component.js +0 -161
- package/material/fesm2015/ngx-color-material.js +0 -168
- package/material/fesm2015/ngx-color-material.js.map +0 -1
- package/material/ngx-color-material.metadata.json +0 -1
- package/ngx-color.metadata.json +0 -1
- package/photoshop/bundles/ngx-color-photoshop.umd.js +0 -571
- package/photoshop/bundles/ngx-color-photoshop.umd.js.map +0 -1
- package/photoshop/esm2015/ngx-color-photoshop.js +0 -8
- package/photoshop/esm2015/photoshop-button.component.js +0 -50
- package/photoshop/esm2015/photoshop-fields.component.js +0 -180
- package/photoshop/esm2015/photoshop-previews.component.js +0 -53
- package/photoshop/esm2015/photoshop.component.js +0 -181
- package/photoshop/fesm2015/ngx-color-photoshop.js +0 -464
- package/photoshop/fesm2015/ngx-color-photoshop.js.map +0 -1
- package/photoshop/ngx-color-photoshop.metadata.json +0 -1
- package/shade/bundles/ngx-color-shade.umd.js +0 -399
- package/shade/bundles/ngx-color-shade.umd.js.map +0 -1
- package/shade/esm2015/shade-picker.component.js +0 -75
- package/shade/fesm2015/ngx-color-shade.js +0 -82
- package/shade/fesm2015/ngx-color-shade.js.map +0 -1
- package/shade/ngx-color-shade.metadata.json +0 -1
- package/sketch/bundles/ngx-color-sketch.umd.js +0 -585
- package/sketch/bundles/ngx-color-sketch.umd.js.map +0 -1
- package/sketch/esm2015/ngx-color-sketch.js +0 -7
- package/sketch/esm2015/sketch-fields.component.js +0 -181
- package/sketch/esm2015/sketch-preset-colors.component.js +0 -76
- package/sketch/esm2015/sketch.component.js +0 -203
- package/sketch/fesm2015/ngx-color-sketch.js +0 -462
- package/sketch/fesm2015/ngx-color-sketch.js.map +0 -1
- package/sketch/ngx-color-sketch.metadata.json +0 -1
- package/slider/bundles/ngx-color-slider.umd.js +0 -470
- package/slider/bundles/ngx-color-slider.umd.js.map +0 -1
- package/slider/esm2015/ngx-color-slider.js +0 -7
- package/slider/esm2015/slider-swatch.component.js +0 -65
- package/slider/esm2015/slider-swatches.component.js +0 -84
- package/slider/esm2015/slider.component.js +0 -81
- package/slider/fesm2015/ngx-color-slider.js +0 -233
- package/slider/fesm2015/ngx-color-slider.js.map +0 -1
- package/slider/ngx-color-slider.metadata.json +0 -1
- package/swatches/bundles/ngx-color-swatches.umd.js +0 -612
- package/swatches/bundles/ngx-color-swatches.umd.js.map +0 -1
- package/swatches/esm2015/ngx-color-swatches.js +0 -7
- package/swatches/esm2015/swatches-color.component.js +0 -90
- package/swatches/esm2015/swatches-group.component.js +0 -42
- package/swatches/esm2015/swatches.component.js +0 -217
- package/swatches/fesm2015/ngx-color-swatches.js +0 -351
- package/swatches/fesm2015/ngx-color-swatches.js.map +0 -1
- package/swatches/ngx-color-swatches.metadata.json +0 -1
- package/twitter/bundles/ngx-color-twitter.umd.js +0 -433
- package/twitter/bundles/ngx-color-twitter.umd.js.map +0 -1
- package/twitter/esm2015/twitter.component.js +0 -207
- package/twitter/fesm2015/ngx-color-twitter.js +0 -214
- package/twitter/fesm2015/ngx-color-twitter.js.map +0 -1
- package/twitter/ngx-color-twitter.metadata.json +0 -1
@@ -0,0 +1,186 @@
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, NgModule, Output, } from '@angular/core';
|
3
|
+
import { CheckboardModule } from './checkboard.component';
|
4
|
+
import { CoordinatesModule } from './coordinates.directive';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "./checkboard.component";
|
7
|
+
import * as i2 from "@angular/common";
|
8
|
+
import * as i3 from "./coordinates.directive";
|
9
|
+
export class AlphaComponent {
|
10
|
+
constructor() {
|
11
|
+
this.direction = 'horizontal';
|
12
|
+
this.onChange = new EventEmitter();
|
13
|
+
}
|
14
|
+
ngOnChanges() {
|
15
|
+
if (this.direction === 'vertical') {
|
16
|
+
this.pointerLeft = 0;
|
17
|
+
this.pointerTop = this.rgb.a * 100;
|
18
|
+
this.gradient = {
|
19
|
+
background: `linear-gradient(to bottom, rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 0) 0%,
|
20
|
+
rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 1) 100%)`,
|
21
|
+
};
|
22
|
+
}
|
23
|
+
else {
|
24
|
+
this.gradient = {
|
25
|
+
background: `linear-gradient(to right, rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 0) 0%,
|
26
|
+
rgba(${this.rgb.r},${this.rgb.g},${this.rgb.b}, 1) 100%)`,
|
27
|
+
};
|
28
|
+
this.pointerLeft = this.rgb.a * 100;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
handleChange({ top, left, containerHeight, containerWidth, $event }) {
|
32
|
+
let data;
|
33
|
+
if (this.direction === 'vertical') {
|
34
|
+
let a;
|
35
|
+
if (top < 0) {
|
36
|
+
a = 0;
|
37
|
+
}
|
38
|
+
else if (top > containerHeight) {
|
39
|
+
a = 1;
|
40
|
+
}
|
41
|
+
else {
|
42
|
+
a = Math.round(top * 100 / containerHeight) / 100;
|
43
|
+
}
|
44
|
+
if (this.hsl.a !== a) {
|
45
|
+
data = {
|
46
|
+
h: this.hsl.h,
|
47
|
+
s: this.hsl.s,
|
48
|
+
l: this.hsl.l,
|
49
|
+
a,
|
50
|
+
source: 'rgb',
|
51
|
+
};
|
52
|
+
}
|
53
|
+
}
|
54
|
+
else {
|
55
|
+
let a;
|
56
|
+
if (left < 0) {
|
57
|
+
a = 0;
|
58
|
+
}
|
59
|
+
else if (left > containerWidth) {
|
60
|
+
a = 1;
|
61
|
+
}
|
62
|
+
else {
|
63
|
+
a = Math.round(left * 100 / containerWidth) / 100;
|
64
|
+
}
|
65
|
+
if (this.hsl.a !== a) {
|
66
|
+
data = {
|
67
|
+
h: this.hsl.h,
|
68
|
+
s: this.hsl.s,
|
69
|
+
l: this.hsl.l,
|
70
|
+
a,
|
71
|
+
source: 'rgb',
|
72
|
+
};
|
73
|
+
}
|
74
|
+
}
|
75
|
+
if (!data) {
|
76
|
+
return;
|
77
|
+
}
|
78
|
+
this.onChange.emit({ data, $event });
|
79
|
+
}
|
80
|
+
}
|
81
|
+
AlphaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: AlphaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
82
|
+
AlphaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: AlphaComponent, selector: "color-alpha", inputs: { hsl: "hsl", rgb: "rgb", pointer: "pointer", shadow: "shadow", radius: "radius", direction: "direction" }, outputs: { onChange: "onChange" }, usesOnChanges: true, ngImport: i0, template: `
|
83
|
+
<div class="alpha" [style.border-radius]="radius">
|
84
|
+
<div class="alpha-checkboard">
|
85
|
+
<color-checkboard></color-checkboard>
|
86
|
+
</div>
|
87
|
+
<div class="alpha-gradient" [ngStyle]="gradient" [style.box-shadow]="shadow" [style.border-radius]="radius"></div>
|
88
|
+
<div ngx-color-coordinates (coordinatesChange)="handleChange($event)" class="alpha-container color-alpha-{{direction}}">
|
89
|
+
<div class="alpha-pointer" [style.left.%]="pointerLeft" [style.top.%]="pointerTop">
|
90
|
+
<div class="alpha-slider" [ngStyle]="pointer"></div>
|
91
|
+
</div>
|
92
|
+
</div>
|
93
|
+
</div>
|
94
|
+
`, isInline: true, styles: [".alpha{position:absolute;top:0;bottom:0;left:0;right:0}.alpha-checkboard{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.alpha-gradient{position:absolute;top:0;bottom:0;left:0;right:0}.alpha-container{position:relative;height:100%;margin:0 3px}.alpha-pointer{position:absolute}.alpha-slider{width:4px;border-radius:1px;height:8px;box-shadow:0 0 2px #0009;background:#fff;margin-top:1px;transform:translate(-2px)}\n"], components: [{ type: i1.CheckboardComponent, selector: "color-checkboard", inputs: ["white", "size", "grey", "boxShadow", "borderRadius"] }], directives: [{ type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.CoordinatesDirective, selector: "[ngx-color-coordinates]", outputs: ["coordinatesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: AlphaComponent, decorators: [{
|
96
|
+
type: Component,
|
97
|
+
args: [{
|
98
|
+
selector: 'color-alpha',
|
99
|
+
template: `
|
100
|
+
<div class="alpha" [style.border-radius]="radius">
|
101
|
+
<div class="alpha-checkboard">
|
102
|
+
<color-checkboard></color-checkboard>
|
103
|
+
</div>
|
104
|
+
<div class="alpha-gradient" [ngStyle]="gradient" [style.box-shadow]="shadow" [style.border-radius]="radius"></div>
|
105
|
+
<div ngx-color-coordinates (coordinatesChange)="handleChange($event)" class="alpha-container color-alpha-{{direction}}">
|
106
|
+
<div class="alpha-pointer" [style.left.%]="pointerLeft" [style.top.%]="pointerTop">
|
107
|
+
<div class="alpha-slider" [ngStyle]="pointer"></div>
|
108
|
+
</div>
|
109
|
+
</div>
|
110
|
+
</div>
|
111
|
+
`,
|
112
|
+
styles: [
|
113
|
+
`
|
114
|
+
.alpha {
|
115
|
+
position: absolute;
|
116
|
+
top: 0;
|
117
|
+
bottom: 0;
|
118
|
+
left: 0;
|
119
|
+
right: 0;
|
120
|
+
}
|
121
|
+
.alpha-checkboard {
|
122
|
+
position: absolute;
|
123
|
+
top: 0;
|
124
|
+
bottom: 0;
|
125
|
+
left: 0;
|
126
|
+
right: 0;
|
127
|
+
overflow: hidden;
|
128
|
+
}
|
129
|
+
.alpha-gradient {
|
130
|
+
position: absolute;
|
131
|
+
top: 0;
|
132
|
+
bottom: 0;
|
133
|
+
left: 0;
|
134
|
+
right: 0;
|
135
|
+
}
|
136
|
+
.alpha-container {
|
137
|
+
position: relative;
|
138
|
+
height: 100%;
|
139
|
+
margin: 0 3px;
|
140
|
+
}
|
141
|
+
.alpha-pointer {
|
142
|
+
position: absolute;
|
143
|
+
}
|
144
|
+
.alpha-slider {
|
145
|
+
width: 4px;
|
146
|
+
border-radius: 1px;
|
147
|
+
height: 8px;
|
148
|
+
box-shadow: 0 0 2px rgba(0, 0, 0, .6);
|
149
|
+
background: #fff;
|
150
|
+
margin-top: 1px;
|
151
|
+
transform: translateX(-2px);
|
152
|
+
}
|
153
|
+
`,
|
154
|
+
],
|
155
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
156
|
+
preserveWhitespaces: false,
|
157
|
+
}]
|
158
|
+
}], propDecorators: { hsl: [{
|
159
|
+
type: Input
|
160
|
+
}], rgb: [{
|
161
|
+
type: Input
|
162
|
+
}], pointer: [{
|
163
|
+
type: Input
|
164
|
+
}], shadow: [{
|
165
|
+
type: Input
|
166
|
+
}], radius: [{
|
167
|
+
type: Input
|
168
|
+
}], direction: [{
|
169
|
+
type: Input
|
170
|
+
}], onChange: [{
|
171
|
+
type: Output
|
172
|
+
}] } });
|
173
|
+
export class AlphaModule {
|
174
|
+
}
|
175
|
+
AlphaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: AlphaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
176
|
+
AlphaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: AlphaModule, declarations: [AlphaComponent], imports: [CommonModule, CheckboardModule, CoordinatesModule], exports: [AlphaComponent] });
|
177
|
+
AlphaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: AlphaModule, imports: [[CommonModule, CheckboardModule, CoordinatesModule]] });
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: AlphaModule, decorators: [{
|
179
|
+
type: NgModule,
|
180
|
+
args: [{
|
181
|
+
declarations: [AlphaComponent],
|
182
|
+
exports: [AlphaComponent],
|
183
|
+
imports: [CommonModule, CheckboardModule, CoordinatesModule],
|
184
|
+
}]
|
185
|
+
}] });
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxwaGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21tb24vYWxwaGEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFFBQVEsRUFFUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBaUU1RCxNQUFNLE9BQU8sY0FBYztJQTdEM0I7UUFtRVcsY0FBUyxHQUE4QixZQUFZLENBQUM7UUFDbkQsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7S0F5RTlDO0lBcEVDLFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssVUFBVSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUc7Z0JBQ2QsVUFBVSxFQUFFLG1DQUFtQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUNYLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZO2FBQzVELENBQUM7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRztnQkFD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SztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNOztBQWdGVCxNQUFNLE9BQU8sV0FBVzs7d0dBQVgsV0FBVzt5R0FBWCxXQUFXLGlCQXZGWCxjQUFjLGFBcUZmLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsYUFyRmhELGNBQWM7eUdBdUZkLFdBQVcsWUFGYixDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQzsyRkFFakQsV0FBVztrQkFMdkIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQzlCLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDekIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDO2lCQUM3RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBOZ01vZHVsZSxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDaGVja2JvYXJkTW9kdWxlIH0gZnJvbSAnLi9jaGVja2JvYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb29yZGluYXRlc01vZHVsZSB9IGZyb20gJy4vY29vcmRpbmF0ZXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEhTTEEsIFJHQkEgfSBmcm9tICcuL2hlbHBlcnMvY29sb3IuaW50ZXJmYWNlcyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29sb3ItYWxwaGEnLFxuICB0ZW1wbGF0ZTogYFxuICA8ZGl2IGNsYXNzPVwiYWxwaGFcIiBbc3R5bGUuYm9yZGVyLXJhZGl1c109XCJyYWRpdXNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWxwaGEtY2hlY2tib2FyZFwiPlxuICAgICAgPGNvbG9yLWNoZWNrYm9hcmQ+PC9jb2xvci1jaGVja2JvYXJkPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJhbHBoYS1ncmFkaWVudFwiIFtuZ1N0eWxlXT1cImdyYWRpZW50XCIgW3N0eWxlLmJveC1zaGFkb3ddPVwic2hhZG93XCIgW3N0eWxlLmJvcmRlci1yYWRpdXNdPVwicmFkaXVzXCI+PC9kaXY+XG4gICAgPGRpdiBuZ3gtY29sb3ItY29vcmRpbmF0ZXMgKGNvb3JkaW5hdGVzQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCIgY2xhc3M9XCJhbHBoYS1jb250YWluZXIgY29sb3ItYWxwaGEte3tkaXJlY3Rpb259fVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFscGhhLXBvaW50ZXJcIiBbc3R5bGUubGVmdC4lXT1cInBvaW50ZXJMZWZ0XCIgW3N0eWxlLnRvcC4lXT1cInBvaW50ZXJUb3BcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFscGhhLXNsaWRlclwiIFtuZ1N0eWxlXT1cInBvaW50ZXJcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgIC5hbHBoYSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuICAgIC5hbHBoYS1jaGVja2JvYXJkIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICAgIC5hbHBoYS1ncmFkaWVudCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuICAgIC5hbHBoYS1jb250YWluZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIDNweDtcbiAgICB9XG4gICAgLmFscGhhLXBvaW50ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgICAuYWxwaGEtc2xpZGVyIHtcbiAgICAgIHdpZHRoOiA0cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gICAgICBoZWlnaHQ6IDhweDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAuNik7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpO1xuICAgIH1cbiAgYCxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBBbHBoYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGhzbCE6IEhTTEE7XG4gIEBJbnB1dCgpIHJnYiE6IFJHQkE7XG4gIEBJbnB1dCgpIHBvaW50ZXIhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBASW5wdXQoKSBzaGFkb3chOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJhZGl1cyE6IG51bWJlciB8IHN0cmluZztcbiAgQElucHV0KCkgZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ2hvcml6b250YWwnO1xuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgZ3JhZGllbnQhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBwb2ludGVyTGVmdCE6IG51bWJlcjtcbiAgcG9pbnRlclRvcCE6IG51bWJlcjtcblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5kaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgIHRoaXMucG9pbnRlckxlZnQgPSAwO1xuICAgICAgdGhpcy5wb2ludGVyVG9wID0gdGhpcy5yZ2IuYSAqIDEwMDtcbiAgICAgIHRoaXMuZ3JhZGllbnQgPSB7XG4gICAgICAgIGJhY2tncm91bmQ6IGBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKCR7dGhpcy5yZ2Iucn0sJHtcbiAgICAgICAgICB0aGlzLnJnYi5nXG4gICAgICAgIH0sJHt0aGlzLnJnYi5ifSwgMCkgMCUsXG4gICAgICAgICAgcmdiYSgke3RoaXMucmdiLnJ9LCR7dGhpcy5yZ2IuZ30sJHt0aGlzLnJnYi5ifSwgMSkgMTAwJSlgLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ncmFkaWVudCA9IHtcbiAgICAgICAgYmFja2dyb3VuZDogYGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgke3RoaXMucmdiLnJ9LCR7XG4gICAgICAgICAgdGhpcy5yZ2IuZ1xuICAgICAgICB9LCR7dGhpcy5yZ2IuYn0sIDApIDAlLFxuICAgICAgICAgIHJnYmEoJHt0aGlzLnJnYi5yfSwke3RoaXMucmdiLmd9LCR7dGhpcy5yZ2IuYn0sIDEpIDEwMCUpYCxcbiAgICAgIH07XG4gICAgICB0aGlzLnBvaW50ZXJMZWZ0ID0gdGhpcy5yZ2IuYSAqIDEwMDtcbiAgICB9XG4gIH1cbiAgaGFuZGxlQ2hhbmdlKHsgdG9wLCBsZWZ0LCBjb250YWluZXJIZWlnaHQsIGNvbnRhaW5lcldpZHRoLCAkZXZlbnQgfSk6IHZvaWQge1xuICAgIGxldCBkYXRhOiBhbnk7XG4gICAgaWYgKHRoaXMuZGlyZWN0aW9uID09PSAndmVydGljYWwnKSB7XG4gICAgICBsZXQgYTogbnVtYmVyO1xuICAgICAgaWYgKHRvcCA8IDApIHtcbiAgICAgICAgYSA9IDA7XG4gICAgICB9IGVsc2UgaWYgKHRvcCA+IGNvbnRhaW5lckhlaWdodCkge1xuICAgICAgICBhID0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGEgPSBNYXRoLnJvdW5kKHRvcCAqIDEwMCAvIGNvbnRhaW5lckhlaWdodCkgLyAxMDA7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmhzbC5hICE9PSBhKSB7XG4gICAgICAgIGRhdGEgPSB7XG4gICAgICAgICAgaDogdGhpcy5oc2wuaCxcbiAgICAgICAgICBzOiB0aGlzLmhzbC5zLFxuICAgICAgICAgIGw6IHRoaXMuaHNsLmwsXG4gICAgICAgICAgYSxcbiAgICAgICAgICBzb3VyY2U6ICdyZ2InLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgYTogbnVtYmVyO1xuICAgICAgaWYgKGxlZnQgPCAwKSB7XG4gICAgICAgIGEgPSAwO1xuICAgICAgfSBlbHNlIGlmIChsZWZ0ID4gY29udGFpbmVyV2lkdGgpIHtcbiAgICAgICAgYSA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhID0gTWF0aC5yb3VuZChsZWZ0ICogMTAwIC8gY29udGFpbmVyV2lkdGgpIC8gMTAwO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5oc2wuYSAhPT0gYSkge1xuICAgICAgICBkYXRhID0ge1xuICAgICAgICAgIGg6IHRoaXMuaHNsLmgsXG4gICAgICAgICAgczogdGhpcy5oc2wucyxcbiAgICAgICAgICBsOiB0aGlzLmhzbC5sLFxuICAgICAgICAgIGEsXG4gICAgICAgICAgc291cmNlOiAncmdiJyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoeyBkYXRhLCAkZXZlbnQgfSk7XG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQWxwaGFDb21wb25lbnRdLFxuICBleHBvcnRzOiBbQWxwaGFDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDaGVja2JvYXJkTW9kdWxlLCBDb29yZGluYXRlc01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFscGhhTW9kdWxlIHt9XG4iXX0=
|
@@ -0,0 +1,66 @@
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
2
|
+
import { ChangeDetectionStrategy, Component, Input, NgModule, } from '@angular/core';
|
3
|
+
import { getCheckerboard } from './helpers/checkboard';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@angular/common";
|
6
|
+
export class CheckboardComponent {
|
7
|
+
constructor() {
|
8
|
+
this.white = 'transparent';
|
9
|
+
this.size = 8;
|
10
|
+
this.grey = 'rgba(0,0,0,.08)';
|
11
|
+
}
|
12
|
+
ngOnInit() {
|
13
|
+
const background = getCheckerboard(this.white, this.grey, this.size);
|
14
|
+
this.gridStyles = {
|
15
|
+
borderRadius: this.borderRadius,
|
16
|
+
boxShadow: this.boxShadow,
|
17
|
+
background: `url(${background}) center left`,
|
18
|
+
};
|
19
|
+
}
|
20
|
+
}
|
21
|
+
CheckboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: CheckboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
22
|
+
CheckboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: CheckboardComponent, selector: "color-checkboard", inputs: { white: "white", size: "size", grey: "grey", boxShadow: "boxShadow", borderRadius: "borderRadius" }, ngImport: i0, template: `<div class="grid" [ngStyle]="gridStyles"></div>`, isInline: true, styles: [".grid{top:0px;right:0px;bottom:0px;left:0px;position:absolute}\n"], directives: [{ type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: CheckboardComponent, decorators: [{
|
24
|
+
type: Component,
|
25
|
+
args: [{
|
26
|
+
selector: 'color-checkboard',
|
27
|
+
template: `<div class="grid" [ngStyle]="gridStyles"></div>`,
|
28
|
+
styles: [
|
29
|
+
`
|
30
|
+
.grid {
|
31
|
+
top: 0px;
|
32
|
+
right: 0px;
|
33
|
+
bottom: 0px;
|
34
|
+
left: 0px;
|
35
|
+
position: absolute;
|
36
|
+
}
|
37
|
+
`,
|
38
|
+
],
|
39
|
+
preserveWhitespaces: false,
|
40
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
41
|
+
}]
|
42
|
+
}], propDecorators: { white: [{
|
43
|
+
type: Input
|
44
|
+
}], size: [{
|
45
|
+
type: Input
|
46
|
+
}], grey: [{
|
47
|
+
type: Input
|
48
|
+
}], boxShadow: [{
|
49
|
+
type: Input
|
50
|
+
}], borderRadius: [{
|
51
|
+
type: Input
|
52
|
+
}] } });
|
53
|
+
export class CheckboardModule {
|
54
|
+
}
|
55
|
+
CheckboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: CheckboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
56
|
+
CheckboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: CheckboardModule, declarations: [CheckboardComponent], imports: [CommonModule], exports: [CheckboardComponent] });
|
57
|
+
CheckboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: CheckboardModule, imports: [[CommonModule]] });
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: CheckboardModule, decorators: [{
|
59
|
+
type: NgModule,
|
60
|
+
args: [{
|
61
|
+
declarations: [CheckboardComponent],
|
62
|
+
exports: [CheckboardComponent],
|
63
|
+
imports: [CommonModule],
|
64
|
+
}]
|
65
|
+
}] });
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbW1vbi9jaGVja2JvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLFFBQVEsR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQW1CdkQsTUFBTSxPQUFPLG1CQUFtQjtJQWpCaEM7UUFrQlcsVUFBSyxHQUFHLGFBQWEsQ0FBQztRQUN0QixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsU0FBSSxHQUFHLGlCQUFpQixDQUFDO0tBYW5DO0lBUkMsUUFBUTtRQUNOLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixVQUFVLEVBQUUsT0FBTyxVQUFVLGVBQWU7U0FDN0MsQ0FBQztJQUNKLENBQUM7O2dIQWZVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHNLQWZwQixpREFBaUQ7MkZBZWhELG1CQUFtQjtrQkFqQi9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLGlEQUFpRDtvQkFDM0QsTUFBTSxFQUFFO3dCQUNOOzs7Ozs7OztHQVFEO3FCQUNBO29CQUNELG1CQUFtQixFQUFFLEtBQUs7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs4QkFFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7O0FBa0JSLE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixpQkF2QmhCLG1CQUFtQixhQXFCcEIsWUFBWSxhQXJCWCxtQkFBbUI7OEdBdUJuQixnQkFBZ0IsWUFGbEIsQ0FBQyxZQUFZLENBQUM7MkZBRVosZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgTmdNb2R1bGUsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGdldENoZWNrZXJib2FyZCB9IGZyb20gJy4vaGVscGVycy9jaGVja2JvYXJkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29sb3ItY2hlY2tib2FyZCcsXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cImdyaWRcIiBbbmdTdHlsZV09XCJncmlkU3R5bGVzXCI+PC9kaXY+YCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAuZ3JpZCB7XG4gICAgdG9wOiAwcHg7XG4gICAgcmlnaHQ6IDBweDtcbiAgICBib3R0b206IDBweDtcbiAgICBsZWZ0OiAwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG4gIGAsXG4gIF0sXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHdoaXRlID0gJ3RyYW5zcGFyZW50JztcbiAgQElucHV0KCkgc2l6ZSA9IDg7XG4gIEBJbnB1dCgpIGdyZXkgPSAncmdiYSgwLDAsMCwuMDgpJztcbiAgQElucHV0KCkgYm94U2hhZG93ITogc3RyaW5nO1xuICBASW5wdXQoKSBib3JkZXJSYWRpdXMhOiBzdHJpbmc7XG4gIGdyaWRTdHlsZXMhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGJhY2tncm91bmQgPSBnZXRDaGVja2VyYm9hcmQodGhpcy53aGl0ZSwgdGhpcy5ncmV5LCB0aGlzLnNpemUpO1xuICAgIHRoaXMuZ3JpZFN0eWxlcyA9IHtcbiAgICAgIGJvcmRlclJhZGl1czogdGhpcy5ib3JkZXJSYWRpdXMsXG4gICAgICBib3hTaGFkb3c6IHRoaXMuYm94U2hhZG93LFxuICAgICAgYmFja2dyb3VuZDogYHVybCgke2JhY2tncm91bmR9KSBjZW50ZXIgbGVmdGAsXG4gICAgfTtcbiAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDaGVja2JvYXJkQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0NoZWNrYm9hcmRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib2FyZE1vZHVsZSB7fVxuIl19
|
@@ -0,0 +1,163 @@
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
2
|
+
import { Component, EventEmitter, forwardRef, Input, isDevMode, NgModule, Output, } from '@angular/core';
|
3
|
+
import { Subscription } from 'rxjs';
|
4
|
+
import { debounceTime, tap } from 'rxjs/operators';
|
5
|
+
import { simpleCheckForValidColor, toState } from './helpers/color';
|
6
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
7
|
+
import * as i0 from "@angular/core";
|
8
|
+
export var ColorMode;
|
9
|
+
(function (ColorMode) {
|
10
|
+
ColorMode["HEX"] = "hex";
|
11
|
+
ColorMode["HSL"] = "hsl";
|
12
|
+
ColorMode["HSV"] = "hsv";
|
13
|
+
ColorMode["RGB"] = "rgb";
|
14
|
+
})(ColorMode || (ColorMode = {}));
|
15
|
+
export class ColorWrap {
|
16
|
+
constructor() {
|
17
|
+
/**
|
18
|
+
* Descriptors the return color format if the component is used with two-way binding
|
19
|
+
*/
|
20
|
+
this.mode = ColorMode.HEX;
|
21
|
+
this.color = {
|
22
|
+
h: 250,
|
23
|
+
s: 0.5,
|
24
|
+
l: 0.2,
|
25
|
+
a: 1,
|
26
|
+
};
|
27
|
+
this.colorChange = new EventEmitter();
|
28
|
+
this.onChange = new EventEmitter();
|
29
|
+
this.onChangeComplete = new EventEmitter();
|
30
|
+
this.onSwatchHover = new EventEmitter();
|
31
|
+
this._onChangeCompleteSubscription = new Subscription();
|
32
|
+
this._onSwatchHoverSubscription = new Subscription();
|
33
|
+
}
|
34
|
+
ngOnInit() {
|
35
|
+
this.changes = this.onChange
|
36
|
+
.pipe(debounceTime(100), tap(event => {
|
37
|
+
this.onChangeComplete.emit(event);
|
38
|
+
switch (this.mode) {
|
39
|
+
case ColorMode.HEX:
|
40
|
+
this.colorChange.emit(event.color.hex);
|
41
|
+
break;
|
42
|
+
case ColorMode.HSL:
|
43
|
+
this.colorChange.emit(event.color.hsl);
|
44
|
+
break;
|
45
|
+
case ColorMode.HSV:
|
46
|
+
this.colorChange.emit(event.color.hsv);
|
47
|
+
break;
|
48
|
+
case ColorMode.RGB:
|
49
|
+
this.colorChange.emit(event.color.rgb);
|
50
|
+
break;
|
51
|
+
default:
|
52
|
+
const msg = `The mode '${this.mode}' is not supported`;
|
53
|
+
if (isDevMode()) {
|
54
|
+
throw new Error(msg);
|
55
|
+
}
|
56
|
+
else {
|
57
|
+
console.warn(msg);
|
58
|
+
}
|
59
|
+
break;
|
60
|
+
}
|
61
|
+
}))
|
62
|
+
.subscribe();
|
63
|
+
this.setState(toState(this.color, 0));
|
64
|
+
this.currentColor = this.hex;
|
65
|
+
}
|
66
|
+
ngOnChanges() {
|
67
|
+
this.setState(toState(this.color, this.oldHue));
|
68
|
+
}
|
69
|
+
ngOnDestroy() {
|
70
|
+
this.changes?.unsubscribe();
|
71
|
+
this._onChangeCompleteSubscription.unsubscribe();
|
72
|
+
this._onSwatchHoverSubscription.unsubscribe();
|
73
|
+
}
|
74
|
+
setState(data) {
|
75
|
+
this.oldHue = data.oldHue;
|
76
|
+
this.hsl = data.hsl;
|
77
|
+
this.hsv = data.hsv;
|
78
|
+
this.rgb = data.rgb;
|
79
|
+
this.hex = data.hex;
|
80
|
+
this.source = data.source;
|
81
|
+
this.afterValidChange();
|
82
|
+
}
|
83
|
+
handleChange(data, $event) {
|
84
|
+
const isValidColor = simpleCheckForValidColor(data);
|
85
|
+
if (isValidColor) {
|
86
|
+
const color = toState(data, data.h || this.oldHue, this.disableAlpha);
|
87
|
+
this.setState(color);
|
88
|
+
this.onChange.emit({ color, $event });
|
89
|
+
this.afterValidChange();
|
90
|
+
}
|
91
|
+
}
|
92
|
+
/** hook for components after a complete change */
|
93
|
+
afterValidChange() { }
|
94
|
+
handleSwatchHover(data, $event) {
|
95
|
+
const isValidColor = simpleCheckForValidColor(data);
|
96
|
+
if (isValidColor) {
|
97
|
+
const color = toState(data, data.h || this.oldHue);
|
98
|
+
this.setState(color);
|
99
|
+
this.onSwatchHover.emit({ color, $event });
|
100
|
+
}
|
101
|
+
}
|
102
|
+
registerOnChange(fn) {
|
103
|
+
this._onChangeCompleteSubscription.add(this.onChangeComplete.pipe(tap(event => fn(event.color.hex))).subscribe());
|
104
|
+
}
|
105
|
+
registerOnTouched(fn) {
|
106
|
+
this._onSwatchHoverSubscription.add(this.onSwatchHover.pipe(tap(() => fn())).subscribe());
|
107
|
+
}
|
108
|
+
setDisabledState(isDisabled) { }
|
109
|
+
writeValue(hex) {
|
110
|
+
this.color = hex;
|
111
|
+
}
|
112
|
+
}
|
113
|
+
ColorWrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorWrap, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
114
|
+
ColorWrap.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ColorWrap, selector: "color-wrap", inputs: { className: "className", mode: "mode", color: "color" }, outputs: { colorChange: "colorChange", onChange: "onChange", onChangeComplete: "onChangeComplete", onSwatchHover: "onSwatchHover" }, providers: [
|
115
|
+
{
|
116
|
+
provide: NG_VALUE_ACCESSOR,
|
117
|
+
useExisting: forwardRef(() => ColorWrap),
|
118
|
+
multi: true,
|
119
|
+
}
|
120
|
+
], usesOnChanges: true, ngImport: i0, template: ``, isInline: true });
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorWrap, decorators: [{
|
122
|
+
type: Component,
|
123
|
+
args: [{
|
124
|
+
// create seletor base for test override property
|
125
|
+
selector: 'color-wrap',
|
126
|
+
template: ``,
|
127
|
+
providers: [
|
128
|
+
{
|
129
|
+
provide: NG_VALUE_ACCESSOR,
|
130
|
+
useExisting: forwardRef(() => ColorWrap),
|
131
|
+
multi: true,
|
132
|
+
}
|
133
|
+
]
|
134
|
+
}]
|
135
|
+
}], propDecorators: { className: [{
|
136
|
+
type: Input
|
137
|
+
}], mode: [{
|
138
|
+
type: Input
|
139
|
+
}], color: [{
|
140
|
+
type: Input
|
141
|
+
}], colorChange: [{
|
142
|
+
type: Output
|
143
|
+
}], onChange: [{
|
144
|
+
type: Output
|
145
|
+
}], onChangeComplete: [{
|
146
|
+
type: Output
|
147
|
+
}], onSwatchHover: [{
|
148
|
+
type: Output
|
149
|
+
}] } });
|
150
|
+
export class ColorWrapModule {
|
151
|
+
}
|
152
|
+
ColorWrapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorWrapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
153
|
+
ColorWrapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorWrapModule, declarations: [ColorWrap], imports: [CommonModule], exports: [ColorWrap] });
|
154
|
+
ColorWrapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorWrapModule, imports: [[CommonModule]] });
|
155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ColorWrapModule, decorators: [{
|
156
|
+
type: NgModule,
|
157
|
+
args: [{
|
158
|
+
declarations: [ColorWrap],
|
159
|
+
exports: [ColorWrap],
|
160
|
+
imports: [CommonModule],
|
161
|
+
}]
|
162
|
+
}] });
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3Itd3JhcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbW1vbi9jb2xvci13cmFwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUlSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBFLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFPekUsTUFBTSxDQUFOLElBQVksU0FLWDtBQUxELFdBQVksU0FBUztJQUNuQix3QkFBVyxDQUFBO0lBQ1gsd0JBQVcsQ0FBQTtJQUNYLHdCQUFXLENBQUE7SUFDWCx3QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQUxXLFNBQVMsS0FBVCxTQUFTLFFBS3BCO0FBY0QsTUFBTSxPQUFPLFNBQVM7SUFadEI7UUFlRTs7V0FFRztRQUNNLFNBQUksR0FBYyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBRWhDLFVBQUssR0FBZ0M7WUFDNUMsQ0FBQyxFQUFFLEdBQUc7WUFDTixDQUFDLEVBQUUsR0FBRztZQUNOLENBQUMsRUFBRSxHQUFHO1lBQ04sQ0FBQyxFQUFFLENBQUM7U0FDTCxDQUFDO1FBQ1EsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztRQUM5RCxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUMxQyxxQkFBZ0IsR0FBRyxJ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QWU7a0JBTDNCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDO29CQUN6QixPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQ3BCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBpc0Rldk1vZGUsXG4gIE5nTW9kdWxlLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBzaW1wbGVDaGVja0ZvclZhbGlkQ29sb3IsIHRvU3RhdGUgfSBmcm9tICcuL2hlbHBlcnMvY29sb3InO1xuaW1wb3J0IHsgQ29sb3IsIEhTTEEsIEhTVkEsIFJHQkEgfSBmcm9tICcuL2hlbHBlcnMvY29sb3IuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sb3JFdmVudCB7XG4gICRldmVudDogRXZlbnQ7XG4gIGNvbG9yOiBDb2xvcjtcbn1cblxuZXhwb3J0IGVudW0gQ29sb3JNb2RlIHtcbiAgSEVYID0gJ2hleCcsXG4gIEhTTCA9ICdoc2wnLFxuICBIU1YgPSAnaHN2JyxcbiAgUkdCID0gJ3JnYidcbn1cblxuQENvbXBvbmVudCh7XG4gIC8vIGNyZWF0ZSBzZWxldG9yIGJhc2UgZm9yIHRlc3Qgb3ZlcnJpZGUgcHJvcGVydHlcbiAgc2VsZWN0b3I6ICdjb2xvci13cmFwJyxcbiAgdGVtcGxhdGU6IGBgLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvbG9yV3JhcCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JXcmFwIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBjbGFzc05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc2NyaXB0b3JzIHRoZSByZXR1cm4gY29sb3IgZm9ybWF0IGlmIHRoZSBjb21wb25lbnQgaXMgdXNlZCB3aXRoIHR3by13YXkgYmluZGluZ1xuICAgKi9cbiAgQElucHV0KCkgbW9kZTogQ29sb3JNb2RlID0gQ29sb3JNb2RlLkhFWDtcblxuICBASW5wdXQoKSBjb2xvcjogSFNMQSB8IEhTVkEgfCBSR0JBIHwgc3RyaW5nID0ge1xuICAgIGg6IDI1MCxcbiAgICBzOiAwLjUsXG4gICAgbDogMC4yLFxuICAgIGE6IDEsXG4gIH07XG4gIEBPdXRwdXQoKSBjb2xvckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SFNMQSB8IEhTVkEgfCBSR0JBIHwgc3RyaW5nPigpO1xuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvbG9yRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZUNvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxDb2xvckV2ZW50PigpO1xuICBAT3V0cHV0KCkgb25Td2F0Y2hIb3ZlciA9IG5ldyBFdmVudEVtaXR0ZXI8Q29sb3JFdmVudD4oKTtcbiAgb2xkSHVlITogbnVtYmVyO1xuICBoc2whOiBIU0xBO1xuICBoc3YhOiBIU1ZBO1xuICByZ2IhOiBSR0JBO1xuICBoZXghOiBzdHJpbmc7XG4gIHNvdXJjZSE6IHN0cmluZztcbiAgY3VycmVudENvbG9yITogc3RyaW5nO1xuICBjaGFuZ2VzPzogU3Vic2NyaXB0aW9uO1xuICBkaXNhYmxlQWxwaGE/OiBib29sZWFuO1xuXG4gIHByaXZhdGUgX29uQ2hhbmdlQ29tcGxldGVTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgX29uU3dhdGNoSG92ZXJTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jaGFuZ2VzID0gdGhpcy5vbkNoYW5nZVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgICB0YXAoZXZlbnQgPT4ge1xuICAgICAgICAgIHRoaXMub25DaGFuZ2VDb21wbGV0ZS5lbWl0KGV2ZW50KTtcbiAgICAgICAgICBzd2l0Y2ggKHRoaXMubW9kZSkge1xuICAgICAgICAgICAgY2FzZSBDb2xvck1vZGUuSEVYOlxuICAgICAgICAgICAgICB0aGlzLmNvbG9yQ2hhbmdlLmVtaXQoZXZlbnQuY29sb3IuaGV4KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENvbG9yTW9kZS5IU0w6XG4gICAgICAgICAgICAgIHRoaXMuY29sb3JDaGFuZ2UuZW1pdChldmVudC5jb2xvci5oc2wpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ29sb3JNb2RlLkhTVjpcbiAgICAgICAgICAgICAgdGhpcy5jb2xvckNoYW5nZS5lbWl0KGV2ZW50LmNvbG9yLmhzdik7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDb2xvck1vZGUuUkdCOlxuICAgICAgICAgICAgICB0aGlzLmNvbG9yQ2hhbmdlLmVtaXQoZXZlbnQuY29sb3IucmdiKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBjb25zdCBtc2cgPSBgVGhlIG1vZGUgJyR7dGhpcy5tb2RlfScgaXMgbm90IHN1cHBvcnRlZGA7XG4gICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybihtc2cpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnNldFN0YXRlKHRvU3RhdGUodGhpcy5jb2xvciwgMCkpO1xuICAgIHRoaXMuY3VycmVudENvbG9yID0gdGhpcy5oZXg7XG4gIH1cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh0b1N0YXRlKHRoaXMuY29sb3IsIHRoaXMub2xkSHVlKSk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5jaGFuZ2VzPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX29uQ2hhbmdlQ29tcGxldGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9vblN3YXRjaEhvdmVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cbiAgc2V0U3RhdGUoZGF0YSkge1xuICAgIHRoaXMub2xkSHVlID0gZGF0YS5vbGRIdWU7XG4gICAgdGhpcy5oc2wgPSBkYXRhLmhzbDtcbiAgICB0aGlzLmhzdiA9IGRhdGEuaHN2O1xuICAgIHRoaXMucmdiID0gZGF0YS5yZ2I7XG4gICAgdGhpcy5oZXggPSBkYXRhLmhleDtcbiAgICB0aGlzLnNvdXJjZSA9IGRhdGEuc291cmNlO1xuICAgIHRoaXMuYWZ0ZXJWYWxpZENoYW5nZSgpO1xuICB9XG4gIGhhbmRsZUNoYW5nZShkYXRhLCAkZXZlbnQpIHtcbiAgICBjb25zdCBpc1ZhbGlkQ29sb3IgPSBzaW1wbGVDaGVja0ZvclZhbGlkQ29sb3IoZGF0YSk7XG4gICAgaWYgKGlzVmFsaWRDb2xvcikge1xuICAgICAgY29uc3QgY29sb3IgPSB0b1N0YXRlKGRhdGEsIGRhdGEuaCB8fCB0aGlzLm9sZEh1ZSwgdGhpcy5kaXNhYmxlQWxwaGEpO1xuICAgICAgdGhpcy5zZXRTdGF0ZShjb2xvcik7XG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoeyBjb2xvciwgJGV2ZW50IH0pO1xuICAgICAgdGhpcy5hZnRlclZhbGlkQ2hhbmdlKCk7XG4gICAgfVxuICB9XG4gIC8qKiBob29rIGZvciBjb21wb25lbnRzIGFmdGVyIGEgY29tcGxldGUgY2hhbmdlICovXG4gIGFmdGVyVmFsaWRDaGFuZ2UoKSB7fVxuXG4gIGhhbmRsZVN3YXRjaEhvdmVyKGRhdGEsICRldmVudCkge1xuICAgIGNvbnN0IGlzVmFsaWRDb2xvciA9IHNpbXBsZUNoZWNrRm9yVmFsaWRDb2xvcihkYXRhKTtcbiAgICBpZiAoaXNWYWxpZENvbG9yKSB7XG4gICAgICBjb25zdCBjb2xvciA9IHRvU3RhdGUoZGF0YSwgZGF0YS5oIHx8IHRoaXMub2xkSHVlKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoY29sb3IpO1xuICAgICAgdGhpcy5vblN3YXRjaEhvdmVyLmVtaXQoeyBjb2xvciwgJGV2ZW50IH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChoZXg6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlQ29tcGxldGVTdWJzY3JpcHRpb24uYWRkKHRoaXMub25DaGFuZ2VDb21wbGV0ZS5waXBlKFxuICAgICAgdGFwKGV2ZW50ID0+IGZuKGV2ZW50LmNvbG9yLmhleCkpLFxuICAgICkuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblN3YXRjaEhvdmVyU3Vic2NyaXB0aW9uLmFkZCh0aGlzLm9uU3dhdGNoSG92ZXIucGlwZShcbiAgICAgIHRhcCgoKSA9PiBmbigpKSxcbiAgICApLnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge31cblxuICB3cml0ZVZhbHVlKGhleDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jb2xvciA9IGhleDtcbiAgfVxuXG59XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0NvbG9yV3JhcF0sXG4gIGV4cG9ydHM6IFtDb2xvcldyYXBdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JXcmFwTW9kdWxlIHt9XG4iXX0=
|
@@ -0,0 +1,104 @@
|
|
1
|
+
import { Directive, HostListener, NgModule, Output, } from '@angular/core';
|
2
|
+
import { Subject } from 'rxjs';
|
3
|
+
import { distinctUntilChanged } from 'rxjs/operators';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export class CoordinatesDirective {
|
6
|
+
constructor(el) {
|
7
|
+
this.el = el;
|
8
|
+
this.coordinatesChange = new Subject();
|
9
|
+
this.mousechange = new Subject();
|
10
|
+
this.mouseListening = false;
|
11
|
+
}
|
12
|
+
mousemove($event, x, y, isTouch = false) {
|
13
|
+
if (this.mouseListening) {
|
14
|
+
$event.preventDefault();
|
15
|
+
this.mousechange.next({ $event, x, y, isTouch });
|
16
|
+
}
|
17
|
+
}
|
18
|
+
mouseup() {
|
19
|
+
this.mouseListening = false;
|
20
|
+
}
|
21
|
+
mousedown($event, x, y, isTouch = false) {
|
22
|
+
$event.preventDefault();
|
23
|
+
this.mouseListening = true;
|
24
|
+
this.mousechange.next({ $event, x, y, isTouch });
|
25
|
+
}
|
26
|
+
ngOnInit() {
|
27
|
+
this.sub = this.mousechange
|
28
|
+
.pipe(
|
29
|
+
// limit times it is updated for the same area
|
30
|
+
distinctUntilChanged((p, q) => p.x === q.x && p.y === q.y))
|
31
|
+
.subscribe(n => this.handleChange(n.x, n.y, n.$event, n.isTouch));
|
32
|
+
}
|
33
|
+
ngOnDestroy() {
|
34
|
+
this.sub.unsubscribe();
|
35
|
+
}
|
36
|
+
handleChange(x, y, $event, isTouch) {
|
37
|
+
const containerWidth = this.el.nativeElement.clientWidth;
|
38
|
+
const containerHeight = this.el.nativeElement.clientHeight;
|
39
|
+
const left = x -
|
40
|
+
(this.el.nativeElement.getBoundingClientRect().left + window.pageXOffset);
|
41
|
+
let top = y - this.el.nativeElement.getBoundingClientRect().top;
|
42
|
+
if (!isTouch) {
|
43
|
+
top = top - window.pageYOffset;
|
44
|
+
}
|
45
|
+
this.coordinatesChange.next({
|
46
|
+
x,
|
47
|
+
y,
|
48
|
+
top,
|
49
|
+
left,
|
50
|
+
containerWidth,
|
51
|
+
containerHeight,
|
52
|
+
$event,
|
53
|
+
});
|
54
|
+
}
|
55
|
+
}
|
56
|
+
CoordinatesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: CoordinatesDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
57
|
+
CoordinatesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: CoordinatesDirective, selector: "[ngx-color-coordinates]", outputs: { coordinatesChange: "coordinatesChange" }, host: { listeners: { "window:mousemove": "mousemove($event,$event.pageX,$event.pageY)", "window:touchmove": "mousemove($event,$event.touches[0].clientX,$event.touches[0].clientY,true)", "window:mouseup": "mouseup()", "window:touchend": "mouseup()", "mousedown": "mousedown($event,$event.pageX,$event.pageY)", "touchstart": "mousedown($event,$event.touches[0].clientX,$event.touches[0].clientY,true)" } }, ngImport: i0 });
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: CoordinatesDirective, decorators: [{
|
59
|
+
type: Directive,
|
60
|
+
args: [{ selector: '[ngx-color-coordinates]' }]
|
61
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { coordinatesChange: [{
|
62
|
+
type: Output
|
63
|
+
}], mousemove: [{
|
64
|
+
type: HostListener,
|
65
|
+
args: ['window:mousemove', ['$event', '$event.pageX', '$event.pageY']]
|
66
|
+
}, {
|
67
|
+
type: HostListener,
|
68
|
+
args: ['window:touchmove', [
|
69
|
+
'$event',
|
70
|
+
'$event.touches[0].clientX',
|
71
|
+
'$event.touches[0].clientY',
|
72
|
+
'true',
|
73
|
+
]]
|
74
|
+
}], mouseup: [{
|
75
|
+
type: HostListener,
|
76
|
+
args: ['window:mouseup']
|
77
|
+
}, {
|
78
|
+
type: HostListener,
|
79
|
+
args: ['window:touchend']
|
80
|
+
}], mousedown: [{
|
81
|
+
type: HostListener,
|
82
|
+
args: ['mousedown', ['$event', '$event.pageX', '$event.pageY']]
|
83
|
+
}, {
|
84
|
+
type: HostListener,
|
85
|
+
args: ['touchstart', [
|
86
|
+
'$event',
|
87
|
+
'$event.touches[0].clientX',
|
88
|
+
'$event.touches[0].clientY',
|
89
|
+
'true',
|
90
|
+
]]
|
91
|
+
}] } });
|
92
|
+
export class CoordinatesModule {
|
93
|
+
}
|
94
|
+
CoordinatesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: CoordinatesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
95
|
+
CoordinatesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: CoordinatesModule, declarations: [CoordinatesDirective], exports: [CoordinatesDirective] });
|
96
|
+
CoordinatesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: CoordinatesModule });
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: CoordinatesModule, decorators: [{
|
98
|
+
type: NgModule,
|
99
|
+
args: [{
|
100
|
+
declarations: [CoordinatesDirective],
|
101
|
+
exports: [CoordinatesDirective],
|
102
|
+
}]
|
103
|
+
}] });
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRpbmF0ZXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21tb24vY29vcmRpbmF0ZXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFFBQVEsRUFHUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3RELE1BQU0sT0FBTyxvQkFBb0I7SUFtRC9CLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBakRsQyxzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFRM0IsQ0FBQztRQUNHLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBSzdCLENBQUM7UUFFRyxtQkFBYyxHQUFHLEtBQUssQ0FBQztJQWlDTSxDQUFDO0lBeEJ0QyxTQUFTLENBQUMsTUFBYSxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsT0FBTyxHQUFHLEtBQUs7UUFDNUQsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBR0QsT0FBTztRQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFRRCxTQUFTLENBQUMsTUFBYSxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsT0FBTyxHQUFHLEtBQUs7UUFDNUQsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFD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QUMsb0JBQW9CLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIE5nTW9kdWxlLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW25neC1jb2xvci1jb29yZGluYXRlc10nIH0pXG5leHBvcnQgY2xhc3MgQ29vcmRpbmF0ZXNEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBPdXRwdXQoKVxuICBjb29yZGluYXRlc0NoYW5nZSA9IG5ldyBTdWJqZWN0PHtcbiAgICB4OiBudW1iZXI7XG4gICAgeTogbnVtYmVyO1xuICAgIHRvcDogbnVtYmVyO1xuICAgIGxlZnQ6IG51bWJlcjtcbiAgICBjb250YWluZXJXaWR0aDogbnVtYmVyO1xuICAgIGNvbnRhaW5lckhlaWdodDogbnVtYmVyO1xuICAgICRldmVudDogYW55O1xuICB9PigpO1xuICBwcml2YXRlIG1vdXNlY2hhbmdlID0gbmV3IFN1YmplY3Q8e1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gICAgJGV2ZW50OiBhbnk7XG4gICAgaXNUb3VjaDogYm9vbGVhbjtcbiAgfT4oKTtcblxuICBwcml2YXRlIG1vdXNlTGlzdGVuaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgc3ViITogU3Vic2NyaXB0aW9uO1xuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bW91c2Vtb3ZlJywgWyckZXZlbnQnLCAnJGV2ZW50LnBhZ2VYJywgJyRldmVudC5wYWdlWSddKVxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6dG91Y2htb3ZlJywgW1xuICAgICckZXZlbnQnLFxuICAgICckZXZlbnQudG91Y2hlc1swXS5jbGllbnRYJyxcbiAgICAnJGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WScsXG4gICAgJ3RydWUnLFxuICBdKVxuICBtb3VzZW1vdmUoJGV2ZW50OiBFdmVudCwgeDogbnVtYmVyLCB5OiBudW1iZXIsIGlzVG91Y2ggPSBmYWxzZSkge1xuICAgIGlmICh0aGlzLm1vdXNlTGlzdGVuaW5nKSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMubW91c2VjaGFuZ2UubmV4dCh7ICRldmVudCwgeCwgeSwgaXNUb3VjaCB9KTtcbiAgICB9XG4gIH1cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93Om1vdXNldXAnKVxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6dG91Y2hlbmQnKVxuICBtb3VzZXVwKCkge1xuICAgIHRoaXMubW91c2VMaXN0ZW5pbmcgPSBmYWxzZTtcbiAgfVxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCcsICckZXZlbnQucGFnZVgnLCAnJGV2ZW50LnBhZ2VZJ10pXG4gIEBIb3N0TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBbXG4gICAgJyRldmVudCcsXG4gICAgJyRldmVudC50b3VjaGVzWzBdLmNsaWVudFgnLFxuICAgICckZXZlbnQudG91Y2hlc1swXS5jbGllbnRZJyxcbiAgICAndHJ1ZScsXG4gIF0pXG4gIG1vdXNlZG93bigkZXZlbnQ6IEV2ZW50LCB4OiBudW1iZXIsIHk6IG51bWJlciwgaXNUb3VjaCA9IGZhbHNlKSB7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5tb3VzZUxpc3RlbmluZyA9IHRydWU7XG4gICAgdGhpcy5tb3VzZWNoYW5nZS5uZXh0KHsgJGV2ZW50LCB4LCB5LCBpc1RvdWNoIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN1YiA9IHRoaXMubW91c2VjaGFuZ2VcbiAgICAgIC5waXBlKFxuICAgICAgICAvLyBsaW1pdCB0aW1lcyBpdCBpcyB1cGRhdGVkIGZvciB0aGUgc2FtZSBhcmVhXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwLCBxKSA9PiBwLnggPT09IHEueCAmJiBwLnkgPT09IHEueSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKG4gPT4gdGhpcy5oYW5kbGVDaGFuZ2Uobi54LCBuLnksIG4uJGV2ZW50LCBuLmlzVG91Y2gpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBoYW5kbGVDaGFuZ2UoeDogbnVtYmVyLCB5OiBudW1iZXIsICRldmVudDogRXZlbnQsIGlzVG91Y2g6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICBjb25zdCBjb250YWluZXJIZWlnaHQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgIGNvbnN0IGxlZnQgPVxuICAgICAgeCAtXG4gICAgICAodGhpcy5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgKyB3aW5kb3cucGFnZVhPZmZzZXQpO1xuICAgIGxldCB0b3AgPSB5IC0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcblxuICAgIGlmICghaXNUb3VjaCkge1xuICAgICAgdG9wID0gdG9wIC0gd2luZG93LnBhZ2VZT2Zmc2V0O1xuICAgIH1cbiAgICB0aGlzLmNvb3JkaW5hdGVzQ2hhbmdlLm5leHQoe1xuICAgICAgeCxcbiAgICAgIHksXG4gICAgICB0b3AsXG4gICAgICBsZWZ0LFxuICAgICAgY29udGFpbmVyV2lkdGgsXG4gICAgICBjb250YWluZXJIZWlnaHQsXG4gICAgICAkZXZlbnQsXG4gICAgfSk7XG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQ29vcmRpbmF0ZXNEaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbQ29vcmRpbmF0ZXNEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBDb29yZGluYXRlc01vZHVsZSB7fVxuIl19
|