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.
Files changed (339) hide show
  1. package/alpha/alpha-picker.component.d.ts +8 -0
  2. package/alpha/esm2020/alpha-picker.component.mjs +116 -0
  3. package/alpha/{esm2015/ngx-color-alpha.js → esm2020/ngx-color-alpha.mjs} +2 -2
  4. package/alpha/esm2020/public_api.mjs +2 -0
  5. package/alpha/fesm2015/ngx-color-alpha.mjs +123 -0
  6. package/alpha/fesm2015/ngx-color-alpha.mjs.map +1 -0
  7. package/alpha/fesm2020/ngx-color-alpha.mjs +123 -0
  8. package/alpha/fesm2020/ngx-color-alpha.mjs.map +1 -0
  9. package/alpha/ngx-color-alpha.d.ts +2 -1
  10. package/alpha/package.json +19 -7
  11. package/alpha/public_api.d.ts +1 -0
  12. package/alpha.component.d.ts +9 -0
  13. package/block/block-swatches.component.d.ts +3 -0
  14. package/block/block.component.d.ts +9 -0
  15. package/block/esm2020/block-swatches.component.mjs +76 -0
  16. package/block/esm2020/block.component.mjs +199 -0
  17. package/block/esm2020/ngx-color-block.mjs +5 -0
  18. package/block/esm2020/public_api.mjs +3 -0
  19. package/block/fesm2015/ngx-color-block.mjs +277 -0
  20. package/block/fesm2015/ngx-color-block.mjs.map +1 -0
  21. package/block/fesm2020/ngx-color-block.mjs +277 -0
  22. package/block/fesm2020/ngx-color-block.mjs.map +1 -0
  23. package/block/ngx-color-block.d.ts +2 -2
  24. package/block/package.json +19 -7
  25. package/block/public_api.d.ts +2 -0
  26. package/checkboard.component.d.ts +7 -0
  27. package/chrome/chrome-fields.component.d.ts +3 -0
  28. package/chrome/chrome.component.d.ts +9 -0
  29. package/chrome/esm2020/chrome-fields.component.mjs +356 -0
  30. package/chrome/esm2020/chrome.component.mjs +249 -0
  31. package/chrome/esm2020/ngx-color-chrome.mjs +5 -0
  32. package/chrome/esm2020/public_api.mjs +3 -0
  33. package/chrome/fesm2015/ngx-color-chrome.mjs +606 -0
  34. package/chrome/fesm2015/ngx-color-chrome.mjs.map +1 -0
  35. package/chrome/fesm2020/ngx-color-chrome.mjs +606 -0
  36. package/chrome/fesm2020/ngx-color-chrome.mjs.map +1 -0
  37. package/chrome/ngx-color-chrome.d.ts +2 -2
  38. package/chrome/package.json +19 -7
  39. package/chrome/public_api.d.ts +2 -0
  40. package/circle/circle-swatch.component.d.ts +3 -0
  41. package/circle/circle.component.d.ts +9 -0
  42. package/circle/esm2020/circle-swatch.component.mjs +85 -0
  43. package/circle/esm2020/circle.component.mjs +148 -0
  44. package/circle/esm2020/ngx-color-circle.mjs +5 -0
  45. package/circle/esm2020/public_api.mjs +3 -0
  46. package/circle/fesm2015/ngx-color-circle.mjs +237 -0
  47. package/circle/fesm2015/ngx-color-circle.mjs.map +1 -0
  48. package/circle/fesm2020/ngx-color-circle.mjs +237 -0
  49. package/circle/fesm2020/ngx-color-circle.mjs.map +1 -0
  50. package/circle/ngx-color-circle.d.ts +2 -2
  51. package/circle/package.json +19 -7
  52. package/circle/public_api.d.ts +2 -0
  53. package/color-wrap.component.d.ts +7 -0
  54. package/compact/compact-color.component.d.ts +3 -0
  55. package/compact/compact-fields.component.d.ts +3 -0
  56. package/compact/compact.component.d.ts +10 -0
  57. package/compact/esm2020/compact-color.component.mjs +91 -0
  58. package/compact/esm2020/compact-fields.component.mjs +186 -0
  59. package/compact/esm2020/compact.component.mjs +177 -0
  60. package/compact/esm2020/ngx-color-compact.mjs +5 -0
  61. package/compact/esm2020/public_api.mjs +4 -0
  62. package/compact/fesm2015/ngx-color-compact.mjs +451 -0
  63. package/compact/fesm2015/ngx-color-compact.mjs.map +1 -0
  64. package/compact/fesm2020/ngx-color-compact.mjs +451 -0
  65. package/compact/fesm2020/ngx-color-compact.mjs.map +1 -0
  66. package/compact/ngx-color-compact.d.ts +2 -3
  67. package/compact/package.json +19 -7
  68. package/compact/public_api.d.ts +3 -0
  69. package/coordinates.directive.d.ts +6 -0
  70. package/editable-input.component.d.ts +7 -0
  71. package/esm2020/alpha.component.mjs +186 -0
  72. package/esm2020/checkboard.component.mjs +66 -0
  73. package/esm2020/color-wrap.component.mjs +163 -0
  74. package/esm2020/coordinates.directive.mjs +104 -0
  75. package/esm2020/editable-input.component.mjs +217 -0
  76. package/{esm2015/helpers/checkboard.js → esm2020/helpers/checkboard.mjs} +0 -0
  77. package/{esm2015/helpers/color.interfaces.js → esm2020/helpers/color.interfaces.mjs} +0 -0
  78. package/{esm2015/helpers/color.js → esm2020/helpers/color.mjs} +0 -0
  79. package/esm2020/hue.component.mjs +165 -0
  80. package/{esm2015/ngx-color.js → esm2020/ngx-color.mjs} +0 -0
  81. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  82. package/esm2020/raised.component.mjs +89 -0
  83. package/esm2020/saturation.component.mjs +136 -0
  84. package/esm2020/shade.component.mjs +165 -0
  85. package/esm2020/swatch.component.mjs +125 -0
  86. package/fesm2015/ngx-color.mjs +1461 -0
  87. package/fesm2015/ngx-color.mjs.map +1 -0
  88. package/fesm2020/ngx-color.mjs +1466 -0
  89. package/fesm2020/ngx-color.mjs.map +1 -0
  90. package/github/esm2020/github-swatch.component.mjs +67 -0
  91. package/github/esm2020/github.component.mjs +179 -0
  92. package/github/esm2020/ngx-color-github.mjs +5 -0
  93. package/github/esm2020/public_api.mjs +3 -0
  94. package/github/fesm2015/ngx-color-github.mjs +250 -0
  95. package/github/fesm2015/ngx-color-github.mjs.map +1 -0
  96. package/github/fesm2020/ngx-color-github.mjs +250 -0
  97. package/github/fesm2020/ngx-color-github.mjs.map +1 -0
  98. package/github/github-swatch.component.d.ts +3 -0
  99. package/github/github.component.d.ts +9 -0
  100. package/github/ngx-color-github.d.ts +2 -2
  101. package/github/package.json +19 -7
  102. package/github/public_api.d.ts +2 -0
  103. package/helpers/checkboard.d.ts +2 -2
  104. package/hue/esm2020/hue-picker.component.mjs +113 -0
  105. package/hue/{esm2015/ngx-color-hue.js → esm2020/ngx-color-hue.mjs} +2 -2
  106. package/hue/esm2020/public_api.mjs +2 -0
  107. package/hue/fesm2015/ngx-color-hue.mjs +120 -0
  108. package/hue/fesm2015/ngx-color-hue.mjs.map +1 -0
  109. package/hue/fesm2020/ngx-color-hue.mjs +120 -0
  110. package/hue/fesm2020/ngx-color-hue.mjs.map +1 -0
  111. package/hue/hue-picker.component.d.ts +8 -0
  112. package/hue/ngx-color-hue.d.ts +2 -1
  113. package/hue/package.json +19 -7
  114. package/hue/public_api.d.ts +1 -0
  115. package/hue.component.d.ts +8 -0
  116. package/material/esm2020/material.component.mjs +211 -0
  117. package/material/{esm2015/ngx-color-material.js → esm2020/ngx-color-material.mjs} +2 -2
  118. package/material/esm2020/public_api.mjs +2 -0
  119. package/material/fesm2015/ngx-color-material.mjs +218 -0
  120. package/material/fesm2015/ngx-color-material.mjs.map +1 -0
  121. package/material/fesm2020/ngx-color-material.mjs +218 -0
  122. package/material/fesm2020/ngx-color-material.mjs.map +1 -0
  123. package/material/material.component.d.ts +8 -0
  124. package/material/ngx-color-material.d.ts +2 -1
  125. package/material/package.json +19 -7
  126. package/material/public_api.d.ts +1 -0
  127. package/ngx-color.d.ts +1 -0
  128. package/package.json +20 -8
  129. package/photoshop/esm2020/ngx-color-photoshop.mjs +5 -0
  130. package/photoshop/esm2020/photoshop-button.component.mjs +63 -0
  131. package/photoshop/esm2020/photoshop-fields.component.mjs +241 -0
  132. package/photoshop/esm2020/photoshop-previews.component.mjs +68 -0
  133. package/photoshop/esm2020/photoshop.component.mjs +258 -0
  134. package/photoshop/esm2020/public_api.mjs +5 -0
  135. package/photoshop/fesm2015/ngx-color-photoshop.mjs +626 -0
  136. package/photoshop/fesm2015/ngx-color-photoshop.mjs.map +1 -0
  137. package/photoshop/fesm2020/ngx-color-photoshop.mjs +626 -0
  138. package/photoshop/fesm2020/ngx-color-photoshop.mjs.map +1 -0
  139. package/photoshop/ngx-color-photoshop.d.ts +2 -4
  140. package/photoshop/package.json +19 -7
  141. package/photoshop/photoshop-button.component.d.ts +3 -0
  142. package/photoshop/photoshop-fields.component.d.ts +3 -0
  143. package/photoshop/photoshop-previews.component.d.ts +3 -0
  144. package/photoshop/photoshop.component.d.ts +11 -0
  145. package/photoshop/public_api.d.ts +4 -0
  146. package/raised.component.d.ts +7 -0
  147. package/saturation.component.d.ts +8 -0
  148. package/shade/{esm2015/ngx-color-shade.js → esm2020/ngx-color-shade.mjs} +2 -2
  149. package/shade/esm2020/public_api.mjs +2 -0
  150. package/shade/esm2020/shade-picker.component.mjs +105 -0
  151. package/shade/fesm2015/ngx-color-shade.mjs +112 -0
  152. package/shade/fesm2015/ngx-color-shade.mjs.map +1 -0
  153. package/shade/fesm2020/ngx-color-shade.mjs +112 -0
  154. package/shade/fesm2020/ngx-color-shade.mjs.map +1 -0
  155. package/shade/ngx-color-shade.d.ts +2 -1
  156. package/shade/package.json +19 -7
  157. package/shade/public_api.d.ts +1 -0
  158. package/shade/shade-picker.component.d.ts +8 -0
  159. package/shade.component.d.ts +8 -0
  160. package/sketch/esm2020/ngx-color-sketch.mjs +5 -0
  161. package/sketch/esm2020/public_api.mjs +4 -0
  162. package/sketch/esm2020/sketch-fields.component.mjs +243 -0
  163. package/sketch/esm2020/sketch-preset-colors.component.mjs +98 -0
  164. package/sketch/esm2020/sketch.component.mjs +283 -0
  165. package/sketch/fesm2015/ngx-color-sketch.mjs +620 -0
  166. package/sketch/fesm2015/ngx-color-sketch.mjs.map +1 -0
  167. package/sketch/fesm2020/ngx-color-sketch.mjs +620 -0
  168. package/sketch/fesm2020/ngx-color-sketch.mjs.map +1 -0
  169. package/sketch/ngx-color-sketch.d.ts +2 -3
  170. package/sketch/package.json +19 -7
  171. package/sketch/public_api.d.ts +3 -0
  172. package/sketch/sketch-fields.component.d.ts +3 -0
  173. package/sketch/sketch-preset-colors.component.d.ts +3 -0
  174. package/sketch/sketch.component.d.ts +10 -0
  175. package/slider/esm2020/ngx-color-slider.mjs +5 -0
  176. package/slider/esm2020/public_api.mjs +4 -0
  177. package/slider/esm2020/slider-swatch.component.mjs +80 -0
  178. package/slider/esm2020/slider-swatches.component.mjs +135 -0
  179. package/slider/esm2020/slider.component.mjs +116 -0
  180. package/slider/fesm2015/ngx-color-slider.mjs +331 -0
  181. package/slider/fesm2015/ngx-color-slider.mjs.map +1 -0
  182. package/slider/fesm2020/ngx-color-slider.mjs +331 -0
  183. package/slider/fesm2020/ngx-color-slider.mjs.map +1 -0
  184. package/slider/ngx-color-slider.d.ts +2 -3
  185. package/slider/package.json +19 -7
  186. package/slider/public_api.d.ts +3 -0
  187. package/slider/slider-swatch.component.d.ts +3 -0
  188. package/slider/slider-swatches.component.d.ts +3 -0
  189. package/slider/slider.component.d.ts +10 -0
  190. package/swatch.component.d.ts +8 -0
  191. package/swatches/esm2020/ngx-color-swatches.mjs +5 -0
  192. package/swatches/esm2020/public_api.mjs +4 -0
  193. package/swatches/esm2020/swatches-color.component.mjs +123 -0
  194. package/swatches/esm2020/swatches-group.component.mjs +64 -0
  195. package/swatches/esm2020/swatches.component.mjs +258 -0
  196. package/swatches/fesm2015/ngx-color-swatches.mjs +441 -0
  197. package/swatches/fesm2015/ngx-color-swatches.mjs.map +1 -0
  198. package/swatches/fesm2020/ngx-color-swatches.mjs +441 -0
  199. package/swatches/fesm2020/ngx-color-swatches.mjs.map +1 -0
  200. package/swatches/ngx-color-swatches.d.ts +2 -3
  201. package/swatches/package.json +19 -7
  202. package/swatches/public_api.d.ts +3 -0
  203. package/swatches/swatches-color.component.d.ts +3 -0
  204. package/swatches/swatches-group.component.d.ts +3 -0
  205. package/swatches/swatches.component.d.ts +10 -0
  206. package/twitter/{esm2015/ngx-color-twitter.js → esm2020/ngx-color-twitter.mjs} +2 -2
  207. package/twitter/esm2020/public_api.mjs +2 -0
  208. package/twitter/esm2020/twitter.component.mjs +255 -0
  209. package/twitter/fesm2015/ngx-color-twitter.mjs +262 -0
  210. package/twitter/fesm2015/ngx-color-twitter.mjs.map +1 -0
  211. package/twitter/fesm2020/ngx-color-twitter.mjs +262 -0
  212. package/twitter/fesm2020/ngx-color-twitter.mjs.map +1 -0
  213. package/twitter/ngx-color-twitter.d.ts +2 -1
  214. package/twitter/package.json +19 -7
  215. package/twitter/public_api.d.ts +1 -0
  216. package/twitter/twitter.component.d.ts +8 -0
  217. package/alpha/bundles/ngx-color-alpha.umd.js +0 -404
  218. package/alpha/bundles/ngx-color-alpha.umd.js.map +0 -1
  219. package/alpha/esm2015/alpha-picker.component.js +0 -84
  220. package/alpha/fesm2015/ngx-color-alpha.js +0 -91
  221. package/alpha/fesm2015/ngx-color-alpha.js.map +0 -1
  222. package/alpha/ngx-color-alpha.metadata.json +0 -1
  223. package/block/bundles/ngx-color-block.umd.js +0 -472
  224. package/block/bundles/ngx-color-block.umd.js.map +0 -1
  225. package/block/esm2015/block-swatches.component.js +0 -58
  226. package/block/esm2015/block.component.js +0 -151
  227. package/block/esm2015/ngx-color-block.js +0 -6
  228. package/block/fesm2015/ngx-color-block.js +0 -214
  229. package/block/fesm2015/ngx-color-block.js.map +0 -1
  230. package/block/ngx-color-block.metadata.json +0 -1
  231. package/bundles/ngx-color.umd.js +0 -1014
  232. package/bundles/ngx-color.umd.js.map +0 -1
  233. package/chrome/bundles/ngx-color-chrome.umd.js +0 -543
  234. package/chrome/bundles/ngx-color-chrome.umd.js.map +0 -1
  235. package/chrome/esm2015/chrome-fields.component.js +0 -255
  236. package/chrome/esm2015/chrome.component.js +0 -173
  237. package/chrome/esm2015/ngx-color-chrome.js +0 -6
  238. package/chrome/fesm2015/ngx-color-chrome.js +0 -432
  239. package/chrome/fesm2015/ngx-color-chrome.js.map +0 -1
  240. package/chrome/ngx-color-chrome.metadata.json +0 -1
  241. package/circle/bundles/ngx-color-circle.umd.js +0 -469
  242. package/circle/bundles/ngx-color-circle.umd.js.map +0 -1
  243. package/circle/esm2015/circle-swatch.component.js +0 -63
  244. package/circle/esm2015/circle.component.js +0 -109
  245. package/circle/esm2015/ngx-color-circle.js +0 -6
  246. package/circle/fesm2015/ngx-color-circle.js +0 -177
  247. package/circle/fesm2015/ngx-color-circle.js.map +0 -1
  248. package/circle/ngx-color-circle.metadata.json +0 -1
  249. package/compact/bundles/ngx-color-compact.umd.js +0 -579
  250. package/compact/bundles/ngx-color-compact.umd.js.map +0 -1
  251. package/compact/esm2015/compact-color.component.js +0 -70
  252. package/compact/esm2015/compact-fields.component.js +0 -142
  253. package/compact/esm2015/compact.component.js +0 -135
  254. package/compact/esm2015/ngx-color-compact.js +0 -7
  255. package/compact/fesm2015/ngx-color-compact.js +0 -348
  256. package/compact/fesm2015/ngx-color-compact.js.map +0 -1
  257. package/compact/ngx-color-compact.metadata.json +0 -1
  258. package/esm2015/alpha.component.js +0 -156
  259. package/esm2015/checkboard.component.js +0 -52
  260. package/esm2015/color-wrap.component.js +0 -145
  261. package/esm2015/coordinates.directive.js +0 -85
  262. package/esm2015/editable-input.component.js +0 -183
  263. package/esm2015/hue.component.js +0 -140
  264. package/esm2015/raised.component.js +0 -73
  265. package/esm2015/saturation.component.js +0 -111
  266. package/esm2015/shade.component.js +0 -127
  267. package/esm2015/swatch.component.js +0 -85
  268. package/fesm2015/ngx-color.js +0 -1228
  269. package/fesm2015/ngx-color.js.map +0 -1
  270. package/github/bundles/ngx-color-github.umd.js +0 -447
  271. package/github/bundles/ngx-color-github.umd.js.map +0 -1
  272. package/github/esm2015/github-swatch.component.js +0 -48
  273. package/github/esm2015/github.component.js +0 -146
  274. package/github/esm2015/ngx-color-github.js +0 -6
  275. package/github/fesm2015/ngx-color-github.js +0 -199
  276. package/github/fesm2015/ngx-color-github.js.map +0 -1
  277. package/github/ngx-color-github.metadata.json +0 -1
  278. package/hue/bundles/ngx-color-hue.umd.js +0 -407
  279. package/hue/bundles/ngx-color-hue.umd.js.map +0 -1
  280. package/hue/esm2015/hue-picker.component.js +0 -82
  281. package/hue/fesm2015/ngx-color-hue.js +0 -89
  282. package/hue/fesm2015/ngx-color-hue.js.map +0 -1
  283. package/hue/ngx-color-hue.metadata.json +0 -1
  284. package/material/bundles/ngx-color-material.umd.js +0 -455
  285. package/material/bundles/ngx-color-material.umd.js.map +0 -1
  286. package/material/esm2015/material.component.js +0 -161
  287. package/material/fesm2015/ngx-color-material.js +0 -168
  288. package/material/fesm2015/ngx-color-material.js.map +0 -1
  289. package/material/ngx-color-material.metadata.json +0 -1
  290. package/ngx-color.metadata.json +0 -1
  291. package/photoshop/bundles/ngx-color-photoshop.umd.js +0 -571
  292. package/photoshop/bundles/ngx-color-photoshop.umd.js.map +0 -1
  293. package/photoshop/esm2015/ngx-color-photoshop.js +0 -8
  294. package/photoshop/esm2015/photoshop-button.component.js +0 -50
  295. package/photoshop/esm2015/photoshop-fields.component.js +0 -180
  296. package/photoshop/esm2015/photoshop-previews.component.js +0 -53
  297. package/photoshop/esm2015/photoshop.component.js +0 -181
  298. package/photoshop/fesm2015/ngx-color-photoshop.js +0 -464
  299. package/photoshop/fesm2015/ngx-color-photoshop.js.map +0 -1
  300. package/photoshop/ngx-color-photoshop.metadata.json +0 -1
  301. package/shade/bundles/ngx-color-shade.umd.js +0 -399
  302. package/shade/bundles/ngx-color-shade.umd.js.map +0 -1
  303. package/shade/esm2015/shade-picker.component.js +0 -75
  304. package/shade/fesm2015/ngx-color-shade.js +0 -82
  305. package/shade/fesm2015/ngx-color-shade.js.map +0 -1
  306. package/shade/ngx-color-shade.metadata.json +0 -1
  307. package/sketch/bundles/ngx-color-sketch.umd.js +0 -585
  308. package/sketch/bundles/ngx-color-sketch.umd.js.map +0 -1
  309. package/sketch/esm2015/ngx-color-sketch.js +0 -7
  310. package/sketch/esm2015/sketch-fields.component.js +0 -181
  311. package/sketch/esm2015/sketch-preset-colors.component.js +0 -76
  312. package/sketch/esm2015/sketch.component.js +0 -203
  313. package/sketch/fesm2015/ngx-color-sketch.js +0 -462
  314. package/sketch/fesm2015/ngx-color-sketch.js.map +0 -1
  315. package/sketch/ngx-color-sketch.metadata.json +0 -1
  316. package/slider/bundles/ngx-color-slider.umd.js +0 -470
  317. package/slider/bundles/ngx-color-slider.umd.js.map +0 -1
  318. package/slider/esm2015/ngx-color-slider.js +0 -7
  319. package/slider/esm2015/slider-swatch.component.js +0 -65
  320. package/slider/esm2015/slider-swatches.component.js +0 -84
  321. package/slider/esm2015/slider.component.js +0 -81
  322. package/slider/fesm2015/ngx-color-slider.js +0 -233
  323. package/slider/fesm2015/ngx-color-slider.js.map +0 -1
  324. package/slider/ngx-color-slider.metadata.json +0 -1
  325. package/swatches/bundles/ngx-color-swatches.umd.js +0 -612
  326. package/swatches/bundles/ngx-color-swatches.umd.js.map +0 -1
  327. package/swatches/esm2015/ngx-color-swatches.js +0 -7
  328. package/swatches/esm2015/swatches-color.component.js +0 -90
  329. package/swatches/esm2015/swatches-group.component.js +0 -42
  330. package/swatches/esm2015/swatches.component.js +0 -217
  331. package/swatches/fesm2015/ngx-color-swatches.js +0 -351
  332. package/swatches/fesm2015/ngx-color-swatches.js.map +0 -1
  333. package/swatches/ngx-color-swatches.metadata.json +0 -1
  334. package/twitter/bundles/ngx-color-twitter.umd.js +0 -433
  335. package/twitter/bundles/ngx-color-twitter.umd.js.map +0 -1
  336. package/twitter/esm2015/twitter.component.js +0 -207
  337. package/twitter/fesm2015/ngx-color-twitter.js +0 -214
  338. package/twitter/fesm2015/ngx-color-twitter.js.map +0 -1
  339. package/twitter/ngx-color-twitter.metadata.json +0 -1
@@ -1,145 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, EventEmitter, forwardRef, Input, isDevMode, NgModule, Output, } from '@angular/core';
3
- import { Subscription } from 'rxjs';
4
- import { debounceTime, tap } from 'rxjs/operators';
5
- import { simpleCheckForValidColor, toState } from './helpers/color';
6
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
7
- export var ColorMode;
8
- (function (ColorMode) {
9
- ColorMode["HEX"] = "hex";
10
- ColorMode["HSL"] = "hsl";
11
- ColorMode["HSV"] = "hsv";
12
- ColorMode["RGB"] = "rgb";
13
- })(ColorMode || (ColorMode = {}));
14
- export class ColorWrap {
15
- constructor() {
16
- /**
17
- * Descriptors the return color format if the component is used with two-way binding
18
- */
19
- this.mode = ColorMode.HEX;
20
- this.color = {
21
- h: 250,
22
- s: 0.5,
23
- l: 0.2,
24
- a: 1,
25
- };
26
- this.colorChange = new EventEmitter();
27
- this.onChange = new EventEmitter();
28
- this.onChangeComplete = new EventEmitter();
29
- this.onSwatchHover = new EventEmitter();
30
- this._onChangeCompleteSubscription = new Subscription();
31
- this._onSwatchHoverSubscription = new Subscription();
32
- }
33
- ngOnInit() {
34
- this.changes = this.onChange
35
- .pipe(debounceTime(100), tap(event => {
36
- this.onChangeComplete.emit(event);
37
- switch (this.mode) {
38
- case ColorMode.HEX:
39
- this.colorChange.emit(event.color.hex);
40
- break;
41
- case ColorMode.HSL:
42
- this.colorChange.emit(event.color.hsl);
43
- break;
44
- case ColorMode.HSV:
45
- this.colorChange.emit(event.color.hsv);
46
- break;
47
- case ColorMode.RGB:
48
- this.colorChange.emit(event.color.rgb);
49
- break;
50
- default:
51
- const msg = `The mode '${this.mode}' is not supported`;
52
- if (isDevMode()) {
53
- throw new Error(msg);
54
- }
55
- else {
56
- console.warn(msg);
57
- }
58
- break;
59
- }
60
- }))
61
- .subscribe();
62
- this.setState(toState(this.color, 0));
63
- this.currentColor = this.hex;
64
- }
65
- ngOnChanges() {
66
- this.setState(toState(this.color, this.oldHue));
67
- }
68
- ngOnDestroy() {
69
- var _a;
70
- (_a = this.changes) === null || _a === void 0 ? void 0 : _a.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.decorators = [
114
- { type: Component, args: [{
115
- // create seletor base for test override property
116
- selector: 'color-wrap',
117
- template: ``,
118
- providers: [
119
- {
120
- provide: NG_VALUE_ACCESSOR,
121
- useExisting: forwardRef(() => ColorWrap),
122
- multi: true,
123
- }
124
- ]
125
- },] }
126
- ];
127
- ColorWrap.propDecorators = {
128
- className: [{ type: Input }],
129
- mode: [{ type: Input }],
130
- color: [{ type: Input }],
131
- colorChange: [{ type: Output }],
132
- onChange: [{ type: Output }],
133
- onChangeComplete: [{ type: Output }],
134
- onSwatchHover: [{ type: Output }]
135
- };
136
- export class ColorWrapModule {
137
- }
138
- ColorWrapModule.decorators = [
139
- { type: NgModule, args: [{
140
- declarations: [ColorWrap],
141
- exports: [ColorWrap],
142
- imports: [CommonModule],
143
- },] }
144
- ];
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3Itd3JhcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbW1vbi9jb2xvci13cmFwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUlSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBFLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU96RSxNQUFNLENBQU4sSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLHdCQUFXLENBQUE7SUFDWCx3QkFBVyxDQUFBO0lBQ1gsd0JBQVcsQ0FBQTtJQUNYLHdCQUFXLENBQUE7QUFDYixDQUFDLEVBTFcsU0FBUyxLQUFULFNBQVMsUUFLcEI7QUFjRCxNQUFNLE9BQU8sU0FBUztJQVp0QjtRQWVFOztXQUVHO1FBQ00sU0FBSSxHQUFjLFNBQVMsQ0FBQyxHQUFHLENBQUM7UUFFaEMsVUFBSyxHQUFnQztZQUM1QyxDQUFDLEVBQUUsR0FBRztZQUNOLENBQUMsRUFBRSxHQUFHO1lBQ04sQ0FBQyxFQUFFLEdBQUc7WUFDTixDQUFDLEVBQUUsQ0FBQztTQUNMLENBQUM7UUFDUSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUErQixDQUFDO1FBQzlELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzFDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFDbEQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBV2pELGtDQUE2QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkQsK0JBQTBCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQTRGMUQsQ0FBQztJQTFGQyxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUTthQUN6QixJQUFJLENBQ0gsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDakIsS0FBSyxTQUFTLENBQUMsR0FBRztvQkFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDdkMsTUFBTTtnQkFDUixLQUFLLFNBQVMsQ0FBQyxHQUFHO29CQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN2QyxNQUFNO2dCQUNSLEtBQUssU0FBUyxDQUFDLEdBQUc7b0JBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3ZDLE1BQU07Z0JBQ1IsS0FBSyxTQUFTLENBQUMsR0FBRztvQkFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDdkMsTUFBTTtnQkFDUjtvQkFDRSxNQUFNLEdBQUcsR0FBRyxhQUFhLElBQUksQ0FBQyxJQUFJLG9CQUFvQixDQUFDO29CQUN2RCxJQUFJLFNBQVMsRUFBRSxFQUFFO3dCQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ3RCO3lCQUFNO3dCQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ25CO29CQUNELE1BQU07YUFDVDtRQUNILENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQy9CLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsV0FBVzs7UUFDVCxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUNELFFBQVEsQ0FBQyxJQUFJO1FBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELFlBQVksQ0FBQyxJQUFJLEVBQUUsTUFBTTtRQUN2QixNQUFNLFlBQVksR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLFlBQVksRUFBRTtZQUNoQixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUNELGtEQUFrRDtJQUNsRCxnQkFBZ0IsS0FBSSxDQUFDO0lBRXJCLGlCQUFpQixDQUFDLElBQUksRUFBRSxNQUFNO1FBQzVCLE1BQU0sWUFBWSxHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksWUFBWSxFQUFFO1lBQ2hCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQzVDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQXlCO1FBQ3hDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDL0QsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDbEMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3pELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNoQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CLElBQVMsQ0FBQztJQUU5QyxVQUFVLENBQUMsR0FBVztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNuQixDQUFDOzs7WUFuSUYsU0FBUyxTQUFDO2dCQUNULGlEQUFpRDtnQkFDakQsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLFFBQVEsRUFBRSxFQUFFO2dCQUNaLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQzt3QkFDeEMsS0FBSyxFQUFFLElBQUk7cUJBQ1o7aUJBQ0Y7YUFDRjs7O3dCQUVFLEtBQUs7bUJBS0wsS0FBSztvQkFFTCxLQUFLOzBCQU1MLE1BQU07dUJBQ04sTUFBTTsrQkFDTixNQUFNOzRCQUNOLE1BQU07O0FBK0dULE1BQU0sT0FBTyxlQUFlOzs7WUFMM0IsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQztnQkFDekIsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO2dCQUNwQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBpc0Rldk1vZGUsXG4gIE5nTW9kdWxlLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBzaW1wbGVDaGVja0ZvclZhbGlkQ29sb3IsIHRvU3RhdGUgfSBmcm9tICcuL2hlbHBlcnMvY29sb3InO1xuaW1wb3J0IHsgQ29sb3IsIEhTTEEsIEhTVkEsIFJHQkEgfSBmcm9tICcuL2hlbHBlcnMvY29sb3IuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sb3JFdmVudCB7XG4gICRldmVudDogRXZlbnQ7XG4gIGNvbG9yOiBDb2xvcjtcbn1cblxuZXhwb3J0IGVudW0gQ29sb3JNb2RlIHtcbiAgSEVYID0gJ2hleCcsXG4gIEhTTCA9ICdoc2wnLFxuICBIU1YgPSAnaHN2JyxcbiAgUkdCID0gJ3JnYidcbn1cblxuQENvbXBvbmVudCh7XG4gIC8vIGNyZWF0ZSBzZWxldG9yIGJhc2UgZm9yIHRlc3Qgb3ZlcnJpZGUgcHJvcGVydHlcbiAgc2VsZWN0b3I6ICdjb2xvci13cmFwJyxcbiAgdGVtcGxhdGU6IGBgLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvbG9yV3JhcCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JXcmFwIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBjbGFzc05hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlc2NyaXB0b3JzIHRoZSByZXR1cm4gY29sb3IgZm9ybWF0IGlmIHRoZSBjb21wb25lbnQgaXMgdXNlZCB3aXRoIHR3by13YXkgYmluZGluZ1xuICAgKi9cbiAgQElucHV0KCkgbW9kZTogQ29sb3JNb2RlID0gQ29sb3JNb2RlLkhFWDtcblxuICBASW5wdXQoKSBjb2xvcjogSFNMQSB8IEhTVkEgfCBSR0JBIHwgc3RyaW5nID0ge1xuICAgIGg6IDI1MCxcbiAgICBzOiAwLjUsXG4gICAgbDogMC4yLFxuICAgIGE6IDEsXG4gIH07XG4gIEBPdXRwdXQoKSBjb2xvckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SFNMQSB8IEhTVkEgfCBSR0JBIHwgc3RyaW5nPigpO1xuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvbG9yRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZUNvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxDb2xvckV2ZW50PigpO1xuICBAT3V0cHV0KCkgb25Td2F0Y2hIb3ZlciA9IG5ldyBFdmVudEVtaXR0ZXI8Q29sb3JFdmVudD4oKTtcbiAgb2xkSHVlITogbnVtYmVyO1xuICBoc2whOiBIU0xBO1xuICBoc3YhOiBIU1ZBO1xuICByZ2IhOiBSR0JBO1xuICBoZXghOiBzdHJpbmc7XG4gIHNvdXJjZSE6IHN0cmluZztcbiAgY3VycmVudENvbG9yITogc3RyaW5nO1xuICBjaGFuZ2VzPzogU3Vic2NyaXB0aW9uO1xuICBkaXNhYmxlQWxwaGE/OiBib29sZWFuO1xuXG4gIHByaXZhdGUgX29uQ2hhbmdlQ29tcGxldGVTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgX29uU3dhdGNoSG92ZXJTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jaGFuZ2VzID0gdGhpcy5vbkNoYW5nZVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgICB0YXAoZXZlbnQgPT4ge1xuICAgICAgICAgIHRoaXMub25DaGFuZ2VDb21wbGV0ZS5lbWl0KGV2ZW50KTtcbiAgICAgICAgICBzd2l0Y2ggKHRoaXMubW9kZSkge1xuICAgICAgICAgICAgY2FzZSBDb2xvck1vZGUuSEVYOlxuICAgICAgICAgICAgICB0aGlzLmNvbG9yQ2hhbmdlLmVtaXQoZXZlbnQuY29sb3IuaGV4KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIENvbG9yTW9kZS5IU0w6XG4gICAgICAgICAgICAgIHRoaXMuY29sb3JDaGFuZ2UuZW1pdChldmVudC5jb2xvci5oc2wpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQ29sb3JNb2RlLkhTVjpcbiAgICAgICAgICAgICAgdGhpcy5jb2xvckNoYW5nZS5lbWl0KGV2ZW50LmNvbG9yLmhzdik7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBDb2xvck1vZGUuUkdCOlxuICAgICAgICAgICAgICB0aGlzLmNvbG9yQ2hhbmdlLmVtaXQoZXZlbnQuY29sb3IucmdiKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBjb25zdCBtc2cgPSBgVGhlIG1vZGUgJyR7dGhpcy5tb2RlfScgaXMgbm90IHN1cHBvcnRlZGA7XG4gICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybihtc2cpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnNldFN0YXRlKHRvU3RhdGUodGhpcy5jb2xvciwgMCkpO1xuICAgIHRoaXMuY3VycmVudENvbG9yID0gdGhpcy5oZXg7XG4gIH1cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh0b1N0YXRlKHRoaXMuY29sb3IsIHRoaXMub2xkSHVlKSk7XG4gIH1cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5jaGFuZ2VzPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX29uQ2hhbmdlQ29tcGxldGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9vblN3YXRjaEhvdmVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cbiAgc2V0U3RhdGUoZGF0YSkge1xuICAgIHRoaXMub2xkSHVlID0gZGF0YS5vbGRIdWU7XG4gICAgdGhpcy5oc2wgPSBkYXRhLmhzbDtcbiAgICB0aGlzLmhzdiA9IGRhdGEuaHN2O1xuICAgIHRoaXMucmdiID0gZGF0YS5yZ2I7XG4gICAgdGhpcy5oZXggPSBkYXRhLmhleDtcbiAgICB0aGlzLnNvdXJjZSA9IGRhdGEuc291cmNlO1xuICAgIHRoaXMuYWZ0ZXJWYWxpZENoYW5nZSgpO1xuICB9XG4gIGhhbmRsZUNoYW5nZShkYXRhLCAkZXZlbnQpIHtcbiAgICBjb25zdCBpc1ZhbGlkQ29sb3IgPSBzaW1wbGVDaGVja0ZvclZhbGlkQ29sb3IoZGF0YSk7XG4gICAgaWYgKGlzVmFsaWRDb2xvcikge1xuICAgICAgY29uc3QgY29sb3IgPSB0b1N0YXRlKGRhdGEsIGRhdGEuaCB8fCB0aGlzLm9sZEh1ZSwgdGhpcy5kaXNhYmxlQWxwaGEpO1xuICAgICAgdGhpcy5zZXRTdGF0ZShjb2xvcik7XG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoeyBjb2xvciwgJGV2ZW50IH0pO1xuICAgICAgdGhpcy5hZnRlclZhbGlkQ2hhbmdlKCk7XG4gICAgfVxuICB9XG4gIC8qKiBob29rIGZvciBjb21wb25lbnRzIGFmdGVyIGEgY29tcGxldGUgY2hhbmdlICovXG4gIGFmdGVyVmFsaWRDaGFuZ2UoKSB7fVxuXG4gIGhhbmRsZVN3YXRjaEhvdmVyKGRhdGEsICRldmVudCkge1xuICAgIGNvbnN0IGlzVmFsaWRDb2xvciA9IHNpbXBsZUNoZWNrRm9yVmFsaWRDb2xvcihkYXRhKTtcbiAgICBpZiAoaXNWYWxpZENvbG9yKSB7XG4gICAgICBjb25zdCBjb2xvciA9IHRvU3RhdGUoZGF0YSwgZGF0YS5oIHx8IHRoaXMub2xkSHVlKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoY29sb3IpO1xuICAgICAgdGhpcy5vblN3YXRjaEhvdmVyLmVtaXQoeyBjb2xvciwgJGV2ZW50IH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChoZXg6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlQ29tcGxldGVTdWJzY3JpcHRpb24uYWRkKHRoaXMub25DaGFuZ2VDb21wbGV0ZS5waXBlKFxuICAgICAgdGFwKGV2ZW50ID0+IGZuKGV2ZW50LmNvbG9yLmhleCkpLFxuICAgICkuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblN3YXRjaEhvdmVyU3Vic2NyaXB0aW9uLmFkZCh0aGlzLm9uU3dhdGNoSG92ZXIucGlwZShcbiAgICAgIHRhcCgoKSA9PiBmbigpKSxcbiAgICApLnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge31cblxuICB3cml0ZVZhbHVlKGhleDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jb2xvciA9IGhleDtcbiAgfVxuXG59XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0NvbG9yV3JhcF0sXG4gIGV4cG9ydHM6IFtDb2xvcldyYXBdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JXcmFwTW9kdWxlIHt9XG4iXX0=
@@ -1,85 +0,0 @@
1
- import { Directive, ElementRef, HostListener, NgModule, Output, } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { distinctUntilChanged } from 'rxjs/operators';
4
- export class CoordinatesDirective {
5
- constructor(el) {
6
- this.el = el;
7
- this.coordinatesChange = new Subject();
8
- this.mousechange = new Subject();
9
- this.mouseListening = false;
10
- }
11
- mousemove($event, x, y, isTouch = false) {
12
- if (this.mouseListening) {
13
- $event.preventDefault();
14
- this.mousechange.next({ $event, x, y, isTouch });
15
- }
16
- }
17
- mouseup() {
18
- this.mouseListening = false;
19
- }
20
- mousedown($event, x, y, isTouch = false) {
21
- $event.preventDefault();
22
- this.mouseListening = true;
23
- this.mousechange.next({ $event, x, y, isTouch });
24
- }
25
- ngOnInit() {
26
- this.sub = this.mousechange
27
- .pipe(
28
- // limit times it is updated for the same area
29
- distinctUntilChanged((p, q) => p.x === q.x && p.y === q.y))
30
- .subscribe(n => this.handleChange(n.x, n.y, n.$event, n.isTouch));
31
- }
32
- ngOnDestroy() {
33
- this.sub.unsubscribe();
34
- }
35
- handleChange(x, y, $event, isTouch) {
36
- const containerWidth = this.el.nativeElement.clientWidth;
37
- const containerHeight = this.el.nativeElement.clientHeight;
38
- const left = x -
39
- (this.el.nativeElement.getBoundingClientRect().left + window.pageXOffset);
40
- let top = y - this.el.nativeElement.getBoundingClientRect().top;
41
- if (!isTouch) {
42
- top = top - window.pageYOffset;
43
- }
44
- this.coordinatesChange.next({
45
- x,
46
- y,
47
- top,
48
- left,
49
- containerWidth,
50
- containerHeight,
51
- $event,
52
- });
53
- }
54
- }
55
- CoordinatesDirective.decorators = [
56
- { type: Directive, args: [{ selector: '[ngx-color-coordinates]' },] }
57
- ];
58
- CoordinatesDirective.ctorParameters = () => [
59
- { type: ElementRef }
60
- ];
61
- CoordinatesDirective.propDecorators = {
62
- coordinatesChange: [{ type: Output }],
63
- mousemove: [{ type: HostListener, args: ['window:mousemove', ['$event', '$event.pageX', '$event.pageY'],] }, { type: HostListener, args: ['window:touchmove', [
64
- '$event',
65
- '$event.touches[0].clientX',
66
- '$event.touches[0].clientY',
67
- 'true',
68
- ],] }],
69
- mouseup: [{ type: HostListener, args: ['window:mouseup',] }, { type: HostListener, args: ['window:touchend',] }],
70
- mousedown: [{ type: HostListener, args: ['mousedown', ['$event', '$event.pageX', '$event.pageY'],] }, { type: HostListener, args: ['touchstart', [
71
- '$event',
72
- '$event.touches[0].clientX',
73
- '$event.touches[0].clientY',
74
- 'true',
75
- ],] }]
76
- };
77
- export class CoordinatesModule {
78
- }
79
- CoordinatesModule.decorators = [
80
- { type: NgModule, args: [{
81
- declarations: [CoordinatesDirective],
82
- exports: [CoordinatesDirective],
83
- },] }
84
- ];
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRpbmF0ZXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21tb24vY29vcmRpbmF0ZXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixRQUFRLEVBR1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RELE1BQU0sT0FBTyxvQkFBb0I7SUFtRC9CLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBakRsQyxzQkFBaUIsR0FBRyxJQUFJLE9BQU8sRUFRM0IsQ0FBQztRQUNHLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBSzdCLENBQUM7UUFFRyxtQkFBYyxHQUFHLEtBQUssQ0FBQztJQWlDTSxDQUFDO0lBeEJ0QyxTQUFTLENBQUMsTUFBYSxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsT0FBTyxHQUFHLEtBQUs7UUFDNUQsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBR0QsT0FBTztRQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFRRCxTQUFTLENBQUMsTUFBYSxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsT0FBTyxHQUFHLEtBQUs7UUFDNUQsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBSUQsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVc7YUFDeEIsSUFBSTtRQUNILDhDQUE4QztRQUM5QyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDM0Q7YUFDQSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFBWSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsTUFBYSxFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztRQUN6RCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7UUFDM0QsTUFBTSxJQUFJLEdBQ1IsQ0FBQztZQUNELENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVFLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUVoRSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osR0FBRyxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztZQUMxQixDQUFDO1lBQ0QsQ0FBQztZQUNELEdBQUc7WUFDSCxJQUFJO1lBQ0osY0FBYztZQUNkLGVBQWU7WUFDZixNQUFNO1NBQ1AsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBdkZGLFNBQVMsU0FBQyxFQUFFLFFBQVEsRUFBRSx5QkFBeUIsRUFBRTs7O1lBWGhELFVBQVU7OztnQ0FhVCxNQUFNO3dCQW1CTixZQUFZLFNBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxjQUMzRSxZQUFZLFNBQUMsa0JBQWtCLEVBQUU7b0JBQ2hDLFFBQVE7b0JBQ1IsMkJBQTJCO29CQUMzQiwyQkFBMkI7b0JBQzNCLE1BQU07aUJBQ1A7c0JBT0EsWUFBWSxTQUFDLGdCQUFnQixjQUM3QixZQUFZLFNBQUMsaUJBQWlCO3dCQUk5QixZQUFZLFNBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxjQUFjLENBQUMsY0FDcEUsWUFBWSxTQUFDLFlBQVksRUFBRTtvQkFDMUIsUUFBUTtvQkFDUiwyQkFBMkI7b0JBQzNCLDJCQUEyQjtvQkFDM0IsTUFBTTtpQkFDUDs7QUFpREgsTUFBTSxPQUFPLGlCQUFpQjs7O1lBSjdCLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDcEMsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7YUFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgTmdNb2R1bGUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbbmd4LWNvbG9yLWNvb3JkaW5hdGVzXScgfSlcbmV4cG9ydCBjbGFzcyBDb29yZGluYXRlc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQE91dHB1dCgpXG4gIGNvb3JkaW5hdGVzQ2hhbmdlID0gbmV3IFN1YmplY3Q8e1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gICAgdG9wOiBudW1iZXI7XG4gICAgbGVmdDogbnVtYmVyO1xuICAgIGNvbnRhaW5lcldpZHRoOiBudW1iZXI7XG4gICAgY29udGFpbmVySGVpZ2h0OiBudW1iZXI7XG4gICAgJGV2ZW50OiBhbnk7XG4gIH0+KCk7XG4gIHByaXZhdGUgbW91c2VjaGFuZ2UgPSBuZXcgU3ViamVjdDx7XG4gICAgeDogbnVtYmVyO1xuICAgIHk6IG51bWJlcjtcbiAgICAkZXZlbnQ6IGFueTtcbiAgICBpc1RvdWNoOiBib29sZWFuO1xuICB9PigpO1xuXG4gIHByaXZhdGUgbW91c2VMaXN0ZW5pbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzdWIhOiBTdWJzY3JpcHRpb247XG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzptb3VzZW1vdmUnLCBbJyRldmVudCcsICckZXZlbnQucGFnZVgnLCAnJGV2ZW50LnBhZ2VZJ10pXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzp0b3VjaG1vdmUnLCBbXG4gICAgJyRldmVudCcsXG4gICAgJyRldmVudC50b3VjaGVzWzBdLmNsaWVudFgnLFxuICAgICckZXZlbnQudG91Y2hlc1swXS5jbGllbnRZJyxcbiAgICAndHJ1ZScsXG4gIF0pXG4gIG1vdXNlbW92ZSgkZXZlbnQ6IEV2ZW50LCB4OiBudW1iZXIsIHk6IG51bWJlciwgaXNUb3VjaCA9IGZhbHNlKSB7XG4gICAgaWYgKHRoaXMubW91c2VMaXN0ZW5pbmcpIHtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5tb3VzZWNoYW5nZS5uZXh0KHsgJGV2ZW50LCB4LCB5LCBpc1RvdWNoIH0pO1xuICAgIH1cbiAgfVxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bW91c2V1cCcpXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzp0b3VjaGVuZCcpXG4gIG1vdXNldXAoKSB7XG4gICAgdGhpcy5tb3VzZUxpc3RlbmluZyA9IGZhbHNlO1xuICB9XG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50JywgJyRldmVudC5wYWdlWCcsICckZXZlbnQucGFnZVknXSlcbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hzdGFydCcsIFtcbiAgICAnJGV2ZW50JyxcbiAgICAnJGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WCcsXG4gICAgJyRldmVudC50b3VjaGVzWzBdLmNsaWVudFknLFxuICAgICd0cnVlJyxcbiAgXSlcbiAgbW91c2Vkb3duKCRldmVudDogRXZlbnQsIHg6IG51bWJlciwgeTogbnVtYmVyLCBpc1RvdWNoID0gZmFsc2UpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLm1vdXNlTGlzdGVuaW5nID0gdHJ1ZTtcbiAgICB0aGlzLm1vdXNlY2hhbmdlLm5leHQoeyAkZXZlbnQsIHgsIHksIGlzVG91Y2ggfSk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3ViID0gdGhpcy5tb3VzZWNoYW5nZVxuICAgICAgLnBpcGUoXG4gICAgICAgIC8vIGxpbWl0IHRpbWVzIGl0IGlzIHVwZGF0ZWQgZm9yIHRoZSBzYW1lIGFyZWFcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHAsIHEpID0+IHAueCA9PT0gcS54ICYmIHAueSA9PT0gcS55KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUobiA9PiB0aGlzLmhhbmRsZUNoYW5nZShuLngsIG4ueSwgbi4kZXZlbnQsIG4uaXNUb3VjaCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGhhbmRsZUNoYW5nZSh4OiBudW1iZXIsIHk6IG51bWJlciwgJGV2ZW50OiBFdmVudCwgaXNUb3VjaDogYm9vbGVhbikge1xuICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IGNvbnRhaW5lckhlaWdodCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgY29uc3QgbGVmdCA9XG4gICAgICB4IC1cbiAgICAgICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCArIHdpbmRvdy5wYWdlWE9mZnNldCk7XG4gICAgbGV0IHRvcCA9IHkgLSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuXG4gICAgaWYgKCFpc1RvdWNoKSB7XG4gICAgICB0b3AgPSB0b3AgLSB3aW5kb3cucGFnZVlPZmZzZXQ7XG4gICAgfVxuICAgIHRoaXMuY29vcmRpbmF0ZXNDaGFuZ2UubmV4dCh7XG4gICAgICB4LFxuICAgICAgeSxcbiAgICAgIHRvcCxcbiAgICAgIGxlZnQsXG4gICAgICBjb250YWluZXJXaWR0aCxcbiAgICAgIGNvbnRhaW5lckhlaWdodCxcbiAgICAgICRldmVudCxcbiAgICB9KTtcbiAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtDb29yZGluYXRlc0RpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtDb29yZGluYXRlc0RpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIENvb3JkaW5hdGVzTW9kdWxlIHt9XG4iXX0=
@@ -1,183 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, NgModule, Output, } from '@angular/core';
3
- import { fromEvent } from 'rxjs';
4
- let nextUniqueId = 0;
5
- export class EditableInputComponent {
6
- constructor() {
7
- this.placeholder = '';
8
- this.onChange = new EventEmitter();
9
- this.focus = false;
10
- this.uniqueId = `editableInput-${++nextUniqueId}`;
11
- }
12
- ngOnInit() {
13
- this.wrapStyle = this.style && this.style.wrap ? this.style.wrap : {};
14
- this.inputStyle = this.style && this.style.input ? this.style.input : {};
15
- this.labelStyle = this.style && this.style.label ? this.style.label : {};
16
- if (this.dragLabel) {
17
- this.labelStyle.cursor = 'ew-resize';
18
- }
19
- }
20
- handleFocus($event) {
21
- this.focus = true;
22
- }
23
- handleFocusOut($event) {
24
- this.focus = false;
25
- this.currentValue = this.blurValue;
26
- }
27
- handleKeydown($event) {
28
- // In case `e.target.value` is a percentage remove the `%` character
29
- // and update accordingly with a percentage
30
- // https://github.com/casesandberg/react-color/issues/383
31
- const stringValue = String($event.target.value);
32
- const isPercentage = stringValue.indexOf('%') > -1;
33
- const num = Number(stringValue.replace(/%/g, ''));
34
- if (isNaN(num)) {
35
- return;
36
- }
37
- const amount = this.arrowOffset || 1;
38
- // Up
39
- if ($event.keyCode === 38) {
40
- if (this.label) {
41
- this.onChange.emit({
42
- data: { [this.label]: num + amount },
43
- $event,
44
- });
45
- }
46
- else {
47
- this.onChange.emit({ data: num + amount, $event });
48
- }
49
- if (isPercentage) {
50
- this.currentValue = `${num + amount}%`;
51
- }
52
- else {
53
- this.currentValue = num + amount;
54
- }
55
- }
56
- // Down
57
- if ($event.keyCode === 40) {
58
- if (this.label) {
59
- this.onChange.emit({
60
- data: { [this.label]: num - amount },
61
- $event,
62
- });
63
- }
64
- else {
65
- this.onChange.emit({ data: num - amount, $event });
66
- }
67
- if (isPercentage) {
68
- this.currentValue = `${num - amount}%`;
69
- }
70
- else {
71
- this.currentValue = num - amount;
72
- }
73
- }
74
- }
75
- handleKeyup($event) {
76
- if ($event.keyCode === 40 || $event.keyCode === 38) {
77
- return;
78
- }
79
- if (`${this.currentValue}` === $event.target.value) {
80
- return;
81
- }
82
- if (this.label) {
83
- this.onChange.emit({
84
- data: { [this.label]: $event.target.value },
85
- $event,
86
- });
87
- }
88
- else {
89
- this.onChange.emit({ data: $event.target.value, $event });
90
- }
91
- }
92
- ngOnChanges() {
93
- if (!this.focus) {
94
- this.currentValue = String(this.value).toUpperCase();
95
- this.blurValue = String(this.value).toUpperCase();
96
- }
97
- else {
98
- this.blurValue = String(this.value).toUpperCase();
99
- }
100
- }
101
- ngOnDestroy() {
102
- this.unsubscribe();
103
- }
104
- subscribe() {
105
- this.mousemove = fromEvent(document, 'mousemove').subscribe((ev) => this.handleDrag(ev));
106
- this.mouseup = fromEvent(document, 'mouseup').subscribe(() => this.unsubscribe());
107
- }
108
- unsubscribe() {
109
- if (this.mousemove) {
110
- this.mousemove.unsubscribe();
111
- }
112
- if (this.mouseup) {
113
- this.mouseup.unsubscribe();
114
- }
115
- }
116
- handleMousedown($event) {
117
- if (this.dragLabel) {
118
- $event.preventDefault();
119
- this.handleDrag($event);
120
- this.subscribe();
121
- }
122
- }
123
- handleDrag($event) {
124
- if (this.dragLabel) {
125
- const newValue = Math.round(this.value + $event.movementX);
126
- if (newValue >= 0 && newValue <= this.dragMax) {
127
- this.onChange.emit({ data: { [this.label]: newValue }, $event });
128
- }
129
- }
130
- }
131
- }
132
- EditableInputComponent.decorators = [
133
- { type: Component, args: [{
134
- selector: 'color-editable-input',
135
- template: `
136
- <div class="wrap" [ngStyle]="wrapStyle">
137
- <input
138
- [ngStyle]="inputStyle"
139
- spellCheck="false"
140
- [value]="currentValue"
141
- [placeholder]="placeholder"
142
- (keydown)="handleKeydown($event)"
143
- (keyup)="handleKeyup($event)"
144
- (focus)="handleFocus($event)"
145
- (focusout)="handleFocusOut($event)"
146
- [attr.aria-labelledby]="uniqueId"
147
- />
148
- <span [id]="uniqueId" *ngIf="label" [ngStyle]="labelStyle" (mousedown)="handleMousedown($event)">
149
- {{ label }}
150
- </span>
151
- </div>
152
- `,
153
- changeDetection: ChangeDetectionStrategy.OnPush,
154
- styles: [`
155
- :host {
156
- display: flex;
157
- }
158
- .wrap {
159
- position: relative;
160
- }
161
- `]
162
- },] }
163
- ];
164
- EditableInputComponent.propDecorators = {
165
- style: [{ type: Input }],
166
- label: [{ type: Input }],
167
- value: [{ type: Input }],
168
- arrowOffset: [{ type: Input }],
169
- dragLabel: [{ type: Input }],
170
- dragMax: [{ type: Input }],
171
- placeholder: [{ type: Input }],
172
- onChange: [{ type: Output }]
173
- };
174
- export class EditableInputModule {
175
- }
176
- EditableInputModule.decorators = [
177
- { type: NgModule, args: [{
178
- declarations: [EditableInputComponent],
179
- exports: [EditableInputComponent],
180
- imports: [CommonModule],
181
- },] }
182
- ];
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGFibGUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21tb24vZWRpdGFibGUtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFFBQVEsRUFJUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFL0MsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBa0NyQixNQUFNLE9BQU8sc0JBQXNCO0lBaENuQztRQTJDVyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNoQixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU14QyxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBR2QsYUFBUSxHQUFXLGlCQUFpQixFQUFFLFlBQVksRUFBRSxDQUFDO0lBd0h2RCxDQUFDO0lBdEhDLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFD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RSxLQUFLO29CQUtMLEtBQUs7b0JBQ0wsS0FBSzswQkFDTCxLQUFLO3dCQUNMLEtBQUs7c0JBQ0wsS0FBSzswQkFDTCxLQUFLO3VCQUNMLE1BQU07O0FBd0lULE1BQU0sT0FBTyxtQkFBbUI7OztZQUwvQixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsc0JBQXNCLENBQUM7Z0JBQ3RDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2dCQUNqQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgTmdNb2R1bGUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb2xvci1lZGl0YWJsZS1pbnB1dCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cIndyYXBcIiBbbmdTdHlsZV09XCJ3cmFwU3R5bGVcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICBbbmdTdHlsZV09XCJpbnB1dFN0eWxlXCJcbiAgICAgICAgc3BlbGxDaGVjaz1cImZhbHNlXCJcbiAgICAgICAgW3ZhbHVlXT1cImN1cnJlbnRWYWx1ZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIChrZXlkb3duKT1cImhhbmRsZUtleWRvd24oJGV2ZW50KVwiXG4gICAgICAgIChrZXl1cCk9XCJoYW5kbGVLZXl1cCgkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzKT1cImhhbmRsZUZvY3VzKCRldmVudClcIlxuICAgICAgICAoZm9jdXNvdXQpPVwiaGFuZGxlRm9jdXNPdXQoJGV2ZW50KVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJ1bmlxdWVJZFwiXG4gICAgICAvPlxuICAgICAgPHNwYW4gW2lkXT1cInVuaXF1ZUlkXCIgKm5nSWY9XCJsYWJlbFwiIFtuZ1N0eWxlXT1cImxhYmVsU3R5bGVcIiAobW91c2Vkb3duKT1cImhhbmRsZU1vdXNlZG93bigkZXZlbnQpXCI+XG4gICAgICAgIHt7IGxhYmVsIH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICAgIC53cmFwIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBFZGl0YWJsZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHN0eWxlIToge1xuICAgIHdyYXA/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGlucHV0PzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBsYWJlbD86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIH07XG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xuICBASW5wdXQoKSB2YWx1ZSE6IHN0cmluZyB8IG51bWJlcjtcbiAgQElucHV0KCkgYXJyb3dPZmZzZXQhOiBudW1iZXI7XG4gIEBJbnB1dCgpIGRyYWdMYWJlbCE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRyYWdNYXghOiBudW1iZXI7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgY3VycmVudFZhbHVlITogc3RyaW5nIHwgbnVtYmVyO1xuICBibHVyVmFsdWUhOiBzdHJpbmc7XG4gIHdyYXBTdHlsZSE6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGlucHV0U3R5bGUhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBsYWJlbFN0eWxlITogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgZm9jdXMgPSBmYWxzZTtcbiAgbW91c2Vtb3ZlITogU3Vic2NyaXB0aW9uO1xuICBtb3VzZXVwITogU3Vic2NyaXB0aW9uO1xuICB1bmlxdWVJZDogc3RyaW5nID0gYGVkaXRhYmxlSW5wdXQtJHsrK25leHRVbmlxdWVJZH1gO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMud3JhcFN0eWxlID0gdGhpcy5zdHlsZSAmJiB0aGlzLnN0eWxlLndyYXAgPyB0aGlzLnN0eWxlLndyYXAgOiB7fTtcbiAgICB0aGlzLmlucHV0U3R5bGUgPSB0aGlzLnN0eWxlICYmIHRoaXMuc3R5bGUuaW5wdXQgPyB0aGlzLnN0eWxlLmlucHV0IDoge307XG4gICAgdGhpcy5sYWJlbFN0eWxlID0gdGhpcy5zdHlsZSAmJiB0aGlzLnN0eWxlLmxhYmVsID8gdGhpcy5zdHlsZS5sYWJlbCA6IHt9O1xuICAgIGlmICh0aGlzLmRyYWdMYWJlbCkge1xuICAgICAgdGhpcy5sYWJlbFN0eWxlLmN1cnNvciA9ICdldy1yZXNpemUnO1xuICAgIH1cbiAgfVxuICBoYW5kbGVGb2N1cygkZXZlbnQpIHtcbiAgICB0aGlzLmZvY3VzID0gdHJ1ZTtcbiAgfVxuICBoYW5kbGVGb2N1c091dCgkZXZlbnQpIHtcbiAgICB0aGlzLmZvY3VzID0gZmFsc2U7XG4gICAgdGhpcy5jdXJyZW50VmFsdWUgPSB0aGlzLmJsdXJWYWx1ZTtcbiAgfVxuICBoYW5kbGVLZXlkb3duKCRldmVudCkge1xuICAgIC8vIEluIGNhc2UgYGUudGFyZ2V0LnZhbHVlYCBpcyBhIHBlcmNlbnRhZ2UgcmVtb3ZlIHRoZSBgJWAgY2hhcmFjdGVyXG4gICAgLy8gYW5kIHVwZGF0ZSBhY2NvcmRpbmdseSB3aXRoIGEgcGVyY2VudGFnZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jYXNlc2FuZGJlcmcvcmVhY3QtY29sb3IvaXNzdWVzLzM4M1xuICAgIGNvbnN0IHN0cmluZ1ZhbHVlID0gU3RyaW5nKCRldmVudC50YXJnZXQudmFsdWUpO1xuICAgIGNvbnN0IGlzUGVyY2VudGFnZSA9IHN0cmluZ1ZhbHVlLmluZGV4T2YoJyUnKSA+IC0xO1xuICAgIGNvbnN0IG51bSA9IE51bWJlcihzdHJpbmdWYWx1ZS5yZXBsYWNlKC8lL2csICcnKSk7XG4gICAgaWYgKGlzTmFOKG51bSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgYW1vdW50ID0gdGhpcy5hcnJvd09mZnNldCB8fCAxO1xuXG4gICAgLy8gVXBcbiAgICBpZiAoJGV2ZW50LmtleUNvZGUgPT09IDM4KSB7XG4gICAgICBpZiAodGhpcy5sYWJlbCkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgIGRhdGE6IHsgW3RoaXMubGFiZWxdOiBudW0gKyBhbW91bnQgfSxcbiAgICAgICAgICAkZXZlbnQsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHsgZGF0YTogbnVtICsgYW1vdW50LCAkZXZlbnQgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc1BlcmNlbnRhZ2UpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSBgJHtudW0gKyBhbW91bnR9JWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IG51bSArIGFtb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEb3duXG4gICAgaWYgKCRldmVudC5rZXlDb2RlID09PSA0MCkge1xuICAgICAgaWYgKHRoaXMubGFiZWwpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHtcbiAgICAgICAgICBkYXRhOiB7IFt0aGlzLmxhYmVsXTogbnVtIC0gYW1vdW50IH0sXG4gICAgICAgICAgJGV2ZW50LFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7IGRhdGE6IG51bSAtIGFtb3VudCwgJGV2ZW50IH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNQZXJjZW50YWdlKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlID0gYCR7bnVtIC0gYW1vdW50fSVgO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSBudW0gLSBhbW91bnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGhhbmRsZUtleXVwKCRldmVudCkge1xuICAgIGlmICgkZXZlbnQua2V5Q29kZSA9PT0gNDAgfHwgJGV2ZW50LmtleUNvZGUgPT09IDM4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChgJHt0aGlzLmN1cnJlbnRWYWx1ZX1gID09PSAkZXZlbnQudGFyZ2V0LnZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGFiZWwpIHtcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7XG4gICAgICAgIGRhdGE6IHsgW3RoaXMubGFiZWxdOiAkZXZlbnQudGFyZ2V0LnZhbHVlIH0sXG4gICAgICAgICRldmVudCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoeyBkYXRhOiAkZXZlbnQudGFyZ2V0LnZhbHVlLCAkZXZlbnQgfSk7XG4gICAgfVxuICB9XG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGlmICghdGhpcy5mb2N1cykge1xuICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSBTdHJpbmcodGhpcy52YWx1ZSkudG9VcHBlckNhc2UoKTtcbiAgICAgIHRoaXMuYmx1clZhbHVlID0gU3RyaW5nKHRoaXMudmFsdWUpLnRvVXBwZXJDYXNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYmx1clZhbHVlID0gU3RyaW5nKHRoaXMudmFsdWUpLnRvVXBwZXJDYXNlKCk7XG4gICAgfVxuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgfVxuICBzdWJzY3JpYmUoKSB7XG4gICAgdGhpcy5tb3VzZW1vdmUgPSBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZW1vdmUnKS5zdWJzY3JpYmUoKGV2OiBFdmVudCkgPT4gdGhpcy5oYW5kbGVEcmFnKGV2KSk7XG4gICAgdGhpcy5tb3VzZXVwID0gZnJvbUV2ZW50KGRvY3VtZW50LCAnbW91c2V1cCcpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG4gIHVuc3Vic2NyaWJlKCkge1xuICAgIGlmICh0aGlzLm1vdXNlbW92ZSkge1xuICAgICAgdGhpcy5tb3VzZW1vdmUudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubW91c2V1cCkge1xuICAgICAgdGhpcy5tb3VzZXVwLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG4gIGhhbmRsZU1vdXNlZG93bigkZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZHJhZ0xhYmVsKSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuaGFuZGxlRHJhZygkZXZlbnQpO1xuICAgICAgdGhpcy5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbiAgaGFuZGxlRHJhZygkZXZlbnQpIHtcbiAgICBpZiAodGhpcy5kcmFnTGFiZWwpIHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gTWF0aC5yb3VuZCh0aGlzLnZhbHVlICsgJGV2ZW50Lm1vdmVtZW50WCk7XG4gICAgICBpZiAobmV3VmFsdWUgPj0gMCAmJiBuZXdWYWx1ZSA8PSB0aGlzLmRyYWdNYXgpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHsgZGF0YTogeyBbdGhpcy5sYWJlbF06IG5ld1ZhbHVlIH0sICRldmVudCB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRWRpdGFibGVJbnB1dENvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtFZGl0YWJsZUlucHV0Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRhYmxlSW5wdXRNb2R1bGUge31cbiJdfQ==
@@ -1,140 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, NgModule, Output, } from '@angular/core';
3
- import { CoordinatesModule } from './coordinates.directive';
4
- export class HueComponent {
5
- constructor() {
6
- this.hidePointer = false;
7
- this.direction = 'horizontal';
8
- this.onChange = new EventEmitter();
9
- this.left = '0px';
10
- this.top = '';
11
- }
12
- ngOnChanges() {
13
- if (this.direction === 'horizontal') {
14
- this.left = `${this.hsl.h * 100 / 360}%`;
15
- }
16
- else {
17
- this.top = `${-(this.hsl.h * 100 / 360) + 100}%`;
18
- }
19
- }
20
- handleChange({ top, left, containerHeight, containerWidth, $event }) {
21
- let data;
22
- if (this.direction === 'vertical') {
23
- let h;
24
- if (top < 0) {
25
- h = 359;
26
- }
27
- else if (top > containerHeight) {
28
- h = 0;
29
- }
30
- else {
31
- const percent = -(top * 100 / containerHeight) + 100;
32
- h = 360 * percent / 100;
33
- }
34
- if (this.hsl.h !== h) {
35
- data = {
36
- h,
37
- s: this.hsl.s,
38
- l: this.hsl.l,
39
- a: this.hsl.a,
40
- source: 'rgb',
41
- };
42
- }
43
- }
44
- else {
45
- let h;
46
- if (left < 0) {
47
- h = 0;
48
- }
49
- else if (left > containerWidth) {
50
- h = 359;
51
- }
52
- else {
53
- const percent = left * 100 / containerWidth;
54
- h = 360 * percent / 100;
55
- }
56
- if (this.hsl.h !== h) {
57
- data = {
58
- h,
59
- s: this.hsl.s,
60
- l: this.hsl.l,
61
- a: this.hsl.a,
62
- source: 'rgb',
63
- };
64
- }
65
- }
66
- if (!data) {
67
- return;
68
- }
69
- this.onChange.emit({ data, $event });
70
- }
71
- }
72
- HueComponent.decorators = [
73
- { type: Component, args: [{
74
- selector: 'color-hue',
75
- template: `
76
- <div class="color-hue color-hue-{{direction}}" [style.border-radius.px]="radius" [style.box-shadow]="shadow">
77
- <div ngx-color-coordinates (coordinatesChange)="handleChange($event)" class="color-hue-container">
78
- <div class="color-hue-pointer" [style.left]="left" [style.top]="top" *ngIf="!hidePointer">
79
- <div class="color-hue-slider" [ngStyle]="pointer"></div>
80
- </div>
81
- </div>
82
- </div>
83
- `,
84
- preserveWhitespaces: false,
85
- changeDetection: ChangeDetectionStrategy.OnPush,
86
- styles: [`
87
- .color-hue {
88
- position: absolute;
89
- top: 0;
90
- bottom: 0;
91
- left: 0;
92
- right: 0;
93
- }
94
- .color-hue-container {
95
- margin: 0 2px;
96
- position: relative;
97
- height: 100%;
98
- }
99
- .color-hue-pointer {
100
- position: absolute;
101
- }
102
- .color-hue-slider {
103
- margin-top: 1px;
104
- width: 4px;
105
- border-radius: 1px;
106
- height: 8px;
107
- box-shadow: 0 0 2px rgba(0, 0, 0, .6);
108
- background: #fff;
109
- transform: translateX(-2px);
110
- }
111
- .color-hue-horizontal {
112
- background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0
113
- 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);
114
- }
115
- .color-hue-vertical {
116
- background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,
117
- #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);
118
- }
119
- `]
120
- },] }
121
- ];
122
- HueComponent.propDecorators = {
123
- hsl: [{ type: Input }],
124
- pointer: [{ type: Input }],
125
- radius: [{ type: Input }],
126
- shadow: [{ type: Input }],
127
- hidePointer: [{ type: Input }],
128
- direction: [{ type: Input }],
129
- onChange: [{ type: Output }]
130
- };
131
- export class HueModule {
132
- }
133
- HueModule.decorators = [
134
- { type: NgModule, args: [{
135
- declarations: [HueComponent],
136
- exports: [HueComponent],
137
- imports: [CommonModule, CoordinatesModule],
138
- },] }
139
- ];
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tbW9uL2h1ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsUUFBUSxFQUVSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQXFENUQsTUFBTSxPQUFPLFlBQVk7SUFsRHpCO1FBdURXLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGNBQVMsR0FBOEIsWUFBWSxDQUFDO1FBQ25ELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBdUMsQ0FBQztRQUM3RSxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsUUFBRyxHQUFHLEVBQUUsQ0FBQztJQTJEWCxDQUFDO0lBekRDLFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssWUFBWSxFQUFFO1lBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7U0FDMUM7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQztJQUNELFlBQVksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUU7UUFDakUsSUFBSSxJQUE0QixDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxVQUFVLEVBQUU7WUFDakMsSUFBSSxDQUFTLENBQUM7WUFDZCxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUU7Z0JBQ1gsQ0FBQyxHQUFHLEdBQUcsQ0FBQzthQUNUO2lCQUFNLElBQUksR0FBRyxHQUFHLGVBQWUsRUFBRTtnQkFDaEMsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNQO2lCQUFNO2dCQUNMLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLGVBQWUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztnQkFDckQsQ0FBQyxHQUFHLEdBQUcsR0FBRyxPQUFPLEdBQUcsR0FBRyxDQUFDO2FBQ3pCO1lBRUQsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksR0FBRztvQkFDTCxDQUFDO29CQUNELENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ2IsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDYixDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNiLE1BQU0sRUFBRSxLQUFLO2lCQUNkLENBQUM7YUFDSDtTQUNGO2FBQU07WUFDTCxJQUFJLENBQVMsQ0FBQztZQUNkLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRTtnQkFDWixDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ1A7aUJBQU0sSUFBSSxJQUFJLEdBQUcsY0FBYyxFQUFFO2dCQUNoQyxDQUFDLEdBQUcsR0FBRyxDQUFDO2FBQ1Q7aUJBQU07Z0JBQ0wsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxjQUFjLENBQUM7Z0JBQzVDLENBQUMsR0FBRyxHQUFHLEdBQUcsT0FBTyxHQUFHLEdBQUcsQ0FBQzthQUN6QjtZQUVELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNwQixJQUFJLEdBQUc7b0JBQ0wsQ0FBQztvQkFDRCxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNiLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ2IsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDYixNQUFNLEVBQUUsS0FBSztpQkFDZCxDQUFDO2FBQ0g7U0FDRjtRQUVELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OztZQXJIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLFFBQVEsRUFBRTs7Ozs7Ozs7R0FRVDtnQkFxQ0QsbUJBQW1CLEVBQUUsS0FBSztnQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07eUJBcEM3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNEO2FBSUY7OztrQkFFRSxLQUFLO3NCQUNMLEtBQUs7cUJBQ0wsS0FBSztxQkFDTCxLQUFLOzBCQUNMLEtBQUs7d0JBQ0wsS0FBSzt1QkFDTCxNQUFNOztBQW9FVCxNQUFNLE9BQU8sU0FBUzs7O1lBTHJCLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQzVCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztnQkFDdkIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDO2FBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE5nTW9kdWxlLFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvb3JkaW5hdGVzTW9kdWxlIH0gZnJvbSAnLi9jb29yZGluYXRlcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSFNMQSwgSFNMQXNvdXJjZSB9IGZyb20gJy4vaGVscGVycy9jb2xvci5pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY29sb3ItaHVlJyxcbiAgdGVtcGxhdGU6IGBcbiAgPGRpdiBjbGFzcz1cImNvbG9yLWh1ZSBjb2xvci1odWUte3tkaXJlY3Rpb259fVwiIFtzdHlsZS5ib3JkZXItcmFkaXVzLnB4XT1cInJhZGl1c1wiIFtzdHlsZS5ib3gtc2hhZG93XT1cInNoYWRvd1wiPlxuICAgIDxkaXYgbmd4LWNvbG9yLWNvb3JkaW5hdGVzIChjb29yZGluYXRlc0NoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiIGNsYXNzPVwiY29sb3ItaHVlLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLWh1ZS1wb2ludGVyXCIgW3N0eWxlLmxlZnRdPVwibGVmdFwiIFtzdHlsZS50b3BdPVwidG9wXCIgKm5nSWY9XCIhaGlkZVBvaW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLWh1ZS1zbGlkZXJcIiBbbmdTdHlsZV09XCJwb2ludGVyXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAuY29sb3ItaHVlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICB9XG4gICAgLmNvbG9yLWh1ZS1jb250YWluZXIge1xuICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gICAgLmNvbG9yLWh1ZS1wb2ludGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gICAgLmNvbG9yLWh1ZS1zbGlkZXIge1xuICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgICAgd2lkdGg6IDRweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgICAgIGhlaWdodDogOHB4O1xuICAgICAgYm94LXNoYWRvdzogMCAwIDJweCByZ2JhKDAsIDAsIDAsIC42KTtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCk7XG4gICAgfVxuICAgIC5jb2xvci1odWUtaG9yaXpvbnRhbCB7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNmMDAgMCUsICNmZjAgMTclLCAjMGYwXG4gICAgICAgIDMzJSwgIzBmZiA1MCUsICMwMGYgNjclLCAjZjBmIDgzJSwgI2YwMCAxMDAlKTtcbiAgICB9XG4gICAgLmNvbG9yLWh1ZS12ZXJ0aWNhbCB7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAjZjAwIDAlLCAjZmYwIDE3JSwgIzBmMCAzMyUsXG4gICAgICAgICMwZmYgNTAlLCAjMDBmIDY3JSwgI2YwZiA4MyUsICNmMDAgMTAwJSk7XG4gICAgfVxuICBgLFxuICBdLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEh1ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGhzbCE6IEhTTEE7XG4gIEBJbnB1dCgpIHBvaW50ZXIhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBASW5wdXQoKSByYWRpdXMhOiBudW1iZXI7XG4gIEBJbnB1dCgpIHNoYWRvdyE6IHN0cmluZztcbiAgQElucHV0KCkgaGlkZVBvaW50ZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ2hvcml6b250YWwnO1xuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZGF0YTogSFNMQXNvdXJjZTsgJGV2ZW50OiBFdmVudCB9PigpO1xuICBsZWZ0ID0gJzBweCc7XG4gIHRvcCA9ICcnO1xuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICB0aGlzLmxlZnQgPSBgJHt0aGlzLmhzbC5oICogMTAwIC8gMzYwfSVgO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRvcCA9IGAkey0odGhpcy5oc2wuaCAqIDEwMCAvIDM2MCkgKyAxMDB9JWA7XG4gICAgfVxuICB9XG4gIGhhbmRsZUNoYW5nZSh7IHRvcCwgbGVmdCwgY29udGFpbmVySGVpZ2h0LCBjb250YWluZXJXaWR0aCwgJGV2ZW50IH0pOiB2b2lkIHtcbiAgICBsZXQgZGF0YTogSFNMQXNvdXJjZSB8IHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5kaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgIGxldCBoOiBudW1iZXI7XG4gICAgICBpZiAodG9wIDwgMCkge1xuICAgICAgICBoID0gMzU5O1xuICAgICAgfSBlbHNlIGlmICh0b3AgPiBjb250YWluZXJIZWlnaHQpIHtcbiAgICAgICAgaCA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBwZXJjZW50ID0gLSh0b3AgKiAxMDAgLyBjb250YWluZXJIZWlnaHQpICsgMTAwO1xuICAgICAgICBoID0gMzYwICogcGVyY2VudCAvIDEwMDtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaHNsLmggIT09IGgpIHtcbiAgICAgICAgZGF0YSA9IHtcbiAgICAgICAgICBoLFxuICAgICAgICAgIHM6IHRoaXMuaHNsLnMsXG4gICAgICAgICAgbDogdGhpcy5oc2wubCxcbiAgICAgICAgICBhOiB0aGlzLmhzbC5hLFxuICAgICAgICAgIHNvdXJjZTogJ3JnYicsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBoOiBudW1iZXI7XG4gICAgICBpZiAobGVmdCA8IDApIHtcbiAgICAgICAgaCA9IDA7XG4gICAgICB9IGVsc2UgaWYgKGxlZnQgPiBjb250YWluZXJXaWR0aCkge1xuICAgICAgICBoID0gMzU5O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcGVyY2VudCA9IGxlZnQgKiAxMDAgLyBjb250YWluZXJXaWR0aDtcbiAgICAgICAgaCA9IDM2MCAqIHBlcmNlbnQgLyAxMDA7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmhzbC5oICE9PSBoKSB7XG4gICAgICAgIGRhdGEgPSB7XG4gICAgICAgICAgaCxcbiAgICAgICAgICBzOiB0aGlzLmhzbC5zLFxuICAgICAgICAgIGw6IHRoaXMuaHNsLmwsXG4gICAgICAgICAgYTogdGhpcy5oc2wuYSxcbiAgICAgICAgICBzb3VyY2U6ICdyZ2InLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7IGRhdGEsICRldmVudCB9KTtcbiAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtIdWVDb21wb25lbnRdLFxuICBleHBvcnRzOiBbSHVlQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ29vcmRpbmF0ZXNNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBIdWVNb2R1bGUge31cbiJdfQ==