cmat 0.0.87 → 0.0.88

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 (228) hide show
  1. package/fesm2022/cmat-components-adapter.mjs +9 -9
  2. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  3. package/fesm2022/cmat-components-breadcrumb.mjs +98 -80
  4. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  5. package/fesm2022/cmat-components-card.mjs +26 -34
  6. package/fesm2022/cmat-components-card.mjs.map +1 -1
  7. package/fesm2022/cmat-components-carousel.mjs +467 -556
  8. package/fesm2022/cmat-components-carousel.mjs.map +1 -1
  9. package/fesm2022/cmat-components-cascade.mjs +270 -259
  10. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  11. package/fesm2022/cmat-components-chip-input.mjs +200 -116
  12. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  13. package/fesm2022/cmat-components-code-editor.mjs +85 -38
  14. package/fesm2022/cmat-components-code-editor.mjs.map +1 -1
  15. package/fesm2022/cmat-components-color-picker.mjs +841 -0
  16. package/fesm2022/cmat-components-color-picker.mjs.map +1 -0
  17. package/fesm2022/cmat-components-custom-formly.mjs +1395 -838
  18. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  19. package/fesm2022/cmat-components-data-picker.mjs +996 -0
  20. package/fesm2022/cmat-components-data-picker.mjs.map +1 -0
  21. package/fesm2022/cmat-components-date-range.mjs +310 -264
  22. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  23. package/fesm2022/cmat-components-date-time-display.mjs +16 -20
  24. package/fesm2022/cmat-components-date-time-display.mjs.map +1 -1
  25. package/fesm2022/cmat-components-drawer.mjs +120 -137
  26. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  27. package/fesm2022/cmat-components-empty-state.mjs +17 -24
  28. package/fesm2022/cmat-components-empty-state.mjs.map +1 -1
  29. package/fesm2022/cmat-components-file-preview.mjs +18 -24
  30. package/fesm2022/cmat-components-file-preview.mjs.map +1 -1
  31. package/fesm2022/cmat-components-filter-toolbar.mjs +30 -39
  32. package/fesm2022/cmat-components-filter-toolbar.mjs.map +1 -1
  33. package/fesm2022/cmat-components-form-actions.mjs +12 -12
  34. package/fesm2022/cmat-components-form-actions.mjs.map +1 -1
  35. package/fesm2022/cmat-components-fullscreen.mjs +10 -10
  36. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  37. package/fesm2022/cmat-components-highlight.mjs +48 -41
  38. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  39. package/fesm2022/cmat-components-image-viewer.mjs +104 -107
  40. package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
  41. package/fesm2022/cmat-components-inline-loading.mjs +12 -15
  42. package/fesm2022/cmat-components-inline-loading.mjs.map +1 -1
  43. package/fesm2022/cmat-components-json-editor.mjs +118 -75
  44. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  45. package/fesm2022/cmat-components-knob-input.mjs +196 -178
  46. package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
  47. package/fesm2022/cmat-components-masonry.mjs +26 -41
  48. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  49. package/fesm2022/cmat-components-material-color-picker.mjs +81 -80
  50. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  51. package/fesm2022/cmat-components-material-datetimepicker.mjs +1212 -1287
  52. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  53. package/fesm2022/cmat-components-navigation.mjs +467 -450
  54. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  55. package/fesm2022/cmat-components-opt-input.mjs +143 -132
  56. package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
  57. package/fesm2022/cmat-components-org-chart.mjs +68 -83
  58. package/fesm2022/cmat-components-org-chart.mjs.map +1 -1
  59. package/fesm2022/cmat-components-page-header.mjs +18 -24
  60. package/fesm2022/cmat-components-page-header.mjs.map +1 -1
  61. package/fesm2022/cmat-components-pagination.mjs +220 -136
  62. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  63. package/fesm2022/cmat-components-password-strength.mjs +262 -215
  64. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  65. package/fesm2022/cmat-components-popover.mjs +227 -195
  66. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  67. package/fesm2022/cmat-components-progress-bar.mjs +15 -34
  68. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  69. package/fesm2022/cmat-components-qrcode.mjs +95 -88
  70. package/fesm2022/cmat-components-qrcode.mjs.map +1 -1
  71. package/fesm2022/cmat-components-rating.mjs +70 -67
  72. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  73. package/fesm2022/cmat-components-rich-text-editor.mjs +23 -26
  74. package/fesm2022/cmat-components-rich-text-editor.mjs.map +1 -1
  75. package/fesm2022/cmat-components-select-search.mjs +190 -159
  76. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  77. package/fesm2022/cmat-components-select-table.mjs +276 -213
  78. package/fesm2022/cmat-components-select-table.mjs.map +1 -1
  79. package/fesm2022/cmat-components-select-tree.mjs +178 -128
  80. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  81. package/fesm2022/cmat-components-skeleton.mjs +44 -28
  82. package/fesm2022/cmat-components-skeleton.mjs.map +1 -1
  83. package/fesm2022/cmat-components-speed-dial.mjs +107 -163
  84. package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
  85. package/fesm2022/cmat-components-status-tag.mjs +29 -36
  86. package/fesm2022/cmat-components-status-tag.mjs.map +1 -1
  87. package/fesm2022/cmat-components-table-toolbar.mjs +14 -18
  88. package/fesm2022/cmat-components-table-toolbar.mjs.map +1 -1
  89. package/fesm2022/cmat-components-timeline.mjs +111 -118
  90. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  91. package/fesm2022/cmat-components-toast.mjs +65 -66
  92. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  93. package/fesm2022/cmat-components-transfer-picker.mjs +130 -160
  94. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  95. package/fesm2022/cmat-components-treetable.mjs +32 -39
  96. package/fesm2022/cmat-components-treetable.mjs.map +1 -1
  97. package/fesm2022/cmat-components-upload.mjs +186 -176
  98. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  99. package/fesm2022/cmat-directives-animate-on-scroll.mjs +25 -28
  100. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  101. package/fesm2022/cmat-directives-arrow-cursor.mjs +85 -92
  102. package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -1
  103. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  104. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  105. package/fesm2022/cmat-directives-data-exporter.mjs +49 -50
  106. package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -1
  107. package/fesm2022/cmat-directives-debounce.mjs +16 -19
  108. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  109. package/fesm2022/cmat-directives-digit-only.mjs +60 -69
  110. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  111. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  112. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  113. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs +31 -30
  114. package/fesm2022/cmat-directives-seamless-auto-scroll.mjs.map +1 -1
  115. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  116. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  117. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  118. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
  119. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  120. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
  121. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  122. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  123. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  124. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  125. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  126. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  127. package/fesm2022/cmat-pipes-secure.mjs +7 -13
  128. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  129. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  130. package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
  131. package/fesm2022/cmat-services-alert.mjs +26 -27
  132. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  133. package/fesm2022/cmat-services-config.mjs +14 -23
  134. package/fesm2022/cmat-services-config.mjs.map +1 -1
  135. package/fesm2022/cmat-services-confirmation.mjs +8 -8
  136. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  137. package/fesm2022/cmat-services-data.mjs +6 -10
  138. package/fesm2022/cmat-services-data.mjs.map +1 -1
  139. package/fesm2022/cmat-services-export-as.mjs +3 -3
  140. package/fesm2022/cmat-services-export-as.mjs.map +1 -1
  141. package/fesm2022/cmat-services-loading.mjs +30 -47
  142. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  143. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  144. package/fesm2022/cmat-services-local-storage.mjs.map +1 -1
  145. package/fesm2022/cmat-services-media-watcher.mjs +43 -34
  146. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  147. package/fesm2022/cmat-services-platform.mjs +3 -3
  148. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  149. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  150. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  151. package/fesm2022/cmat-services-title.mjs +3 -3
  152. package/fesm2022/cmat-services-title.mjs.map +1 -1
  153. package/fesm2022/cmat-services-translation.mjs +11 -11
  154. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  155. package/fesm2022/cmat-services-utils.mjs +3 -3
  156. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  157. package/fesm2022/cmat.mjs +9228 -7507
  158. package/fesm2022/cmat.mjs.map +1 -1
  159. package/icons/material-icons/heroicons-outline.svg +3 -0
  160. package/icons/material-icons/heroicons-solid.svg +3 -0
  161. package/package.json +10 -1
  162. package/styles/components/bundle.scss +21 -0
  163. package/styles/overrides/angular-material.scss +22 -1
  164. package/tailwind/plugins/theming.js +183 -183
  165. package/types/cmat-components-breadcrumb.d.ts +40 -37
  166. package/types/cmat-components-card.d.ts +11 -13
  167. package/types/cmat-components-carousel.d.ts +87 -113
  168. package/types/cmat-components-cascade.d.ts +84 -65
  169. package/types/cmat-components-chip-input.d.ts +29 -24
  170. package/types/cmat-components-code-editor.d.ts +28 -12
  171. package/types/cmat-components-color-picker.d.ts +236 -0
  172. package/types/cmat-components-custom-formly.d.ts +316 -184
  173. package/types/cmat-components-data-picker.d.ts +372 -0
  174. package/types/cmat-components-date-range.d.ts +31 -36
  175. package/types/cmat-components-date-time-display.d.ts +8 -8
  176. package/types/cmat-components-drawer.d.ts +30 -32
  177. package/types/cmat-components-empty-state.d.ts +9 -10
  178. package/types/cmat-components-file-preview.d.ts +9 -9
  179. package/types/cmat-components-filter-toolbar.d.ts +15 -15
  180. package/types/cmat-components-form-actions.d.ts +5 -5
  181. package/types/cmat-components-fullscreen.d.ts +5 -5
  182. package/types/cmat-components-highlight.d.ts +13 -14
  183. package/types/cmat-components-image-viewer.d.ts +29 -33
  184. package/types/cmat-components-inline-loading.d.ts +6 -6
  185. package/types/cmat-components-json-editor.d.ts +15 -17
  186. package/types/cmat-components-knob-input.d.ts +58 -55
  187. package/types/cmat-components-masonry.d.ts +9 -12
  188. package/types/cmat-components-material-color-picker.d.ts +16 -21
  189. package/types/cmat-components-material-datetimepicker.d.ts +174 -216
  190. package/types/cmat-components-navigation.d.ts +34 -39
  191. package/types/cmat-components-opt-input.d.ts +35 -33
  192. package/types/cmat-components-org-chart.d.ts +8 -9
  193. package/types/cmat-components-page-header.d.ts +9 -9
  194. package/types/cmat-components-pagination.d.ts +36 -40
  195. package/types/cmat-components-password-strength.d.ts +58 -64
  196. package/types/cmat-components-popover.d.ts +22 -32
  197. package/types/cmat-components-progress-bar.d.ts +7 -10
  198. package/types/cmat-components-qrcode.d.ts +22 -22
  199. package/types/cmat-components-rating.d.ts +17 -19
  200. package/types/cmat-components-rich-text-editor.d.ts +11 -12
  201. package/types/cmat-components-select-search.d.ts +48 -36
  202. package/types/cmat-components-select-table.d.ts +38 -34
  203. package/types/cmat-components-select-tree.d.ts +17 -15
  204. package/types/cmat-components-skeleton.d.ts +27 -10
  205. package/types/cmat-components-speed-dial.d.ts +24 -33
  206. package/types/cmat-components-status-tag.d.ts +19 -9
  207. package/types/cmat-components-table-toolbar.d.ts +7 -7
  208. package/types/cmat-components-timeline.d.ts +33 -34
  209. package/types/cmat-components-toast.d.ts +26 -30
  210. package/types/cmat-components-transfer-picker.d.ts +51 -56
  211. package/types/cmat-components-treetable.d.ts +12 -13
  212. package/types/cmat-components-upload.d.ts +33 -38
  213. package/types/cmat-components-x6-angular-shape.d.ts +1 -1
  214. package/types/cmat-directives-animate-on-scroll.d.ts +7 -7
  215. package/types/cmat-directives-arrow-cursor.d.ts +18 -20
  216. package/types/cmat-directives-data-exporter.d.ts +10 -10
  217. package/types/cmat-directives-debounce.d.ts +5 -5
  218. package/types/cmat-directives-digit-only.d.ts +13 -13
  219. package/types/cmat-directives-seamless-auto-scroll.d.ts +7 -7
  220. package/types/cmat-pipes-secure.d.ts +1 -3
  221. package/types/cmat-services-alert.d.ts +11 -12
  222. package/types/cmat-services-config.d.ts +2 -7
  223. package/types/cmat-services-confirmation.d.ts +2 -2
  224. package/types/cmat-services-data.d.ts +0 -1
  225. package/types/cmat-services-loading.d.ts +14 -22
  226. package/types/cmat-services-media-watcher.d.ts +5 -5
  227. package/types/cmat-services-translation.d.ts +4 -5
  228. package/types/cmat.d.ts +2167 -1746
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmat-components-color-picker.mjs","sources":["../../../projects/cmat/components/color-picker/color-coordinates.ts","../../../projects/cmat/components/color-picker/color-alpha-slider/color-alpha-slider.ts","../../../projects/cmat/components/color-picker/color-alpha-slider/color-alpha-slider.html","../../../projects/cmat/components/color-picker/color-hue-slider/color-hue-slider.ts","../../../projects/cmat/components/color-picker/color-hue-slider/color-hue-slider.html","../../../projects/cmat/components/color-picker/color-icon-button/color-icon-button.ts","../../../projects/cmat/components/color-picker/color-input-field/color-input-field.ts","../../../projects/cmat/components/color-picker/color-input-field/color-input-field.html","../../../projects/cmat/components/color-picker/utils.ts","../../../projects/cmat/components/color-picker/color-input-fields/color-input-fields.ts","../../../projects/cmat/components/color-picker/color-input-fields/color-input-fields.html","../../../projects/cmat/components/color-picker/color-saturation-picker/color-saturation-picker.ts","../../../projects/cmat/components/color-picker/color-saturation-picker/color-saturation-picker.html","../../../projects/cmat/components/color-picker/color-picker.ts","../../../projects/cmat/components/color-picker/color-picker.html","../../../projects/cmat/components/color-picker/color-picker-button.ts","../../../projects/cmat/components/color-picker/color-picker-button.html","../../../projects/cmat/components/color-picker/cmat-components-color-picker.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\r\nimport { Directive, ElementRef, inject, input, output } from '@angular/core';\r\n\r\nexport interface CoordinatesChangeEvent {\r\n containerWidth: number;\r\n containerHeight: number;\r\n left: number;\r\n top: number;\r\n}\r\n\r\n@Directive({\r\n selector: '[cmat-color-coordinates], [cmatColorCoordinates]',\r\n host: {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n '(pointerdown)': 'onDragStart($event)',\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n '(keydown)': 'onKeyDown($event)',\r\n },\r\n})\r\nexport class CmatColorCoordinates {\r\n readonly percentX = input<number>(0);\r\n readonly percentY = input<number>(0);\r\n readonly coordinatesChange = output<CoordinatesChangeEvent>();\r\n\r\n private _document = inject(DOCUMENT);\r\n private _el = inject<ElementRef<HTMLElement>>(ElementRef);\r\n\r\n onDragStart(e: PointerEvent): void {\r\n this._document.addEventListener('pointermove', this.onDrag, { passive: false });\r\n this._document.addEventListener('pointerup', this.onDragEnd, { passive: false });\r\n\r\n e.preventDefault();\r\n\r\n this._handleChange(e);\r\n }\r\n\r\n onDrag = (e: PointerEvent): void => { \r\n e.preventDefault();\r\n\r\n this._handleChange(e);\r\n };\r\n\r\n onDragEnd = (): void => {\r\n this._document.removeEventListener('pointermove', this.onDrag);\r\n this._document.removeEventListener('pointerup', this.onDragEnd);\r\n };\r\n\r\n onKeyDown(e: KeyboardEvent): void {\r\n const arrowKeys = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\r\n if (!arrowKeys.includes(e.key)) return;\r\n\r\n e.preventDefault();\r\n\r\n const rect = this._el.nativeElement.getBoundingClientRect();\r\n\r\n const multiplier = e.shiftKey ? 10 : 1;\r\n const stepX = (rect.width / 100) * multiplier;\r\n const stepY = (rect.height / 100) * multiplier;\r\n\r\n let vX = 0;\r\n let vY = 0;\r\n\r\n if (this.percentX != null && this.percentY != null) {\r\n vX = rect.left + rect.width * (this.percentX() / 100);\r\n vY = rect.top + rect.height * (this.percentY() / 100);\r\n\r\n switch (e.key) {\r\n case 'ArrowLeft':\r\n vX -= stepX;\r\n break;\r\n case 'ArrowRight':\r\n vX += stepX;\r\n break;\r\n case 'ArrowUp':\r\n vY -= stepY;\r\n break;\r\n case 'ArrowDown':\r\n vY += stepY;\r\n break;\r\n }\r\n } else if (this.percentX != null) {\r\n vX = rect.left + rect.width * (this.percentX() / 100);\r\n\r\n switch (e.key) {\r\n case 'ArrowLeft':\r\n case 'ArrowDown':\r\n vX -= stepX;\r\n break;\r\n case 'ArrowRight':\r\n case 'ArrowUp':\r\n vX += stepX;\r\n break;\r\n }\r\n } else if (this.percentY != null) {\r\n vY = rect.top + rect.height * (this.percentY() / 100);\r\n\r\n switch (e.key) {\r\n case 'ArrowLeft':\r\n case 'ArrowDown':\r\n vY += stepY;\r\n break;\r\n case 'ArrowRight':\r\n case 'ArrowUp':\r\n vY -= stepY;\r\n break;\r\n }\r\n }\r\n\r\n this._handleChange({ clientX: vX, clientY: vY } as PointerEvent);\r\n }\r\n\r\n private _handleChange(e: PointerEvent): void {\r\n const containerRect = this._el.nativeElement.getBoundingClientRect();\r\n const containerWidth = containerRect.width;\r\n const containerHeight = containerRect.height;\r\n\r\n const { clientX, clientY } = e;\r\n const left = clientX - containerRect.left;\r\n const top = clientY - containerRect.top;\r\n\r\n this.coordinatesChange.emit({\r\n containerWidth,\r\n containerHeight,\r\n left,\r\n top,\r\n });\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n effect,\r\n input,\r\n output,\r\n signal,\r\n untracked,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { CmatColorCoordinates, CoordinatesChangeEvent } from '../color-coordinates';\r\nimport { Color, HSLA, HSLAsource, RGBA } from '../interfaces';\r\n\r\n@Component({\r\n selector: 'cmat-color-alpha-slider',\r\n imports: [CmatColorCoordinates],\r\n templateUrl: './color-alpha-slider.html',\r\n styleUrl: './color-alpha-slider.scss',\r\n host: {\r\n 'class': 'cmat-color-alpha-slider',\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n '[class.cmat-color-alpha-vertical]': 'direction()=== \"vertical\"',\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n '[class.cmat-color-alpha-horizontal]': 'direction() === \"horizontal\"',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CmatColorAlphaSlider {\r\n readonly color = input.required<Color>();\r\n readonly direction = input<'horizontal' | 'vertical'>('horizontal');\r\n readonly change = output<HSLAsource>();\r\n\r\n readonly hsl = signal<HSLA | null>(null);\r\n readonly rgb = signal<RGBA | null>(null);\r\n readonly gradient = signal<string>('');\r\n readonly posX = signal<number>(0);\r\n readonly posY = signal<number>(0);\r\n\r\n constructor() {\r\n effect(() => {\r\n const color = this.color();\r\n\r\n this.hsl.set(color.hsl);\r\n this.rgb.set(color.rgb);\r\n\r\n const rgb = this.rgb();\r\n if (rgb) {\r\n if (this.direction() === 'vertical') {\r\n untracked(() => {\r\n this.gradient.set(`linear-gradient(to top, rgba(${rgb.r},${rgb.g},${rgb.b}, 0) 0%, rgba(${rgb.r},${rgb.g},${rgb.b}, 1) 100%)`);\r\n this.posX.set(0);\r\n this.posY.set((1 - rgb.a) * 100);\r\n });\r\n } else {\r\n untracked(() => {\r\n this.gradient.set(`linear-gradient(to right, rgba(${rgb.r},${rgb.g},${rgb.b}, 0) 0%, rgba(${rgb.r},${rgb.g},${rgb.b}, 1) 100%)`);\r\n this.posY.set(0);\r\n this.posX.set(rgb.a * 100);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n handleChange(e: CoordinatesChangeEvent): void {\r\n const { top, left, containerHeight, containerWidth } = e;\r\n\r\n const isVertical = this.direction() === 'vertical';\r\n const pos = isVertical ? top : left;\r\n const size = isVertical ? containerHeight : containerWidth;\r\n\r\n const ratio = Math.max(0, Math.min(pos, size)) / size;\r\n const alpha = isVertical ? 1 - ratio : ratio;\r\n const a = Math.round(alpha * 100) / 100;\r\n\r\n const hsl = this.hsl();\r\n if (hsl && hsl.a !== a) {\r\n this.change.emit({ ...hsl, a, source: 'rgb' });\r\n }\r\n }\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<div class=\"cmat-color-alpha-slider-track\" cmatColorCoordinates [style.background-image]=\"gradient()\" [percentX]=\"posX()\"\r\n [percentY]=\"posY()\" (coordinatesChange)=\"handleChange($event)\">\r\n <div class=\"cmat-color-alpha-slider-pointer\" [style.left.%]=\"posX()\" [style.top.%]=\"posY()\">\r\n <button class=\"cmat-color-alpha-slider-thumb\" type=\"button\">\r\n <!-- -->\r\n </button>\r\n </div>\r\n</div>","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n effect,\r\n input,\r\n output,\r\n signal,\r\n untracked,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { CmatColorCoordinates, CoordinatesChangeEvent } from '../color-coordinates';\r\nimport { Color, HSLA, HSLAsource } from '../interfaces';\r\n\r\n@Component({\r\n selector: 'cmat-color-hue-slider',\r\n imports: [CmatColorCoordinates],\r\n templateUrl: './color-hue-slider.html',\r\n styleUrl: './color-hue-slider.scss',\r\n host: {\r\n 'class': 'cmat-color-hue-slider',\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n '[class.cmat-color-hue-vertical]': 'direction() === \"vertical\"',\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n '[class.cmat-color-hue-horizontal]': 'direction() === \"horizontal\"',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CmatColorHueSlider {\r\n readonly color = input.required<Color>();\r\n readonly direction = input<'horizontal' | 'vertical'>('horizontal');\r\n readonly change = output<HSLAsource>();\r\n\r\n readonly hsl = signal<HSLA | null>(null);\r\n readonly posX = signal<number>(0);\r\n readonly posY = signal<number>(0);\r\n\r\n constructor() {\r\n effect(() => {\r\n const color = this.color();\r\n\r\n this.hsl.set(color.hsl);\r\n\r\n if (!color.hsl) {\r\n return;\r\n }\r\n\r\n if (this.direction() === 'vertical') {\r\n untracked(() => {\r\n this.posX.set(0);\r\n this.posY.set(100 - (this.hsl()!.h * 100) / 360);\r\n });\r\n } else {\r\n untracked(() => {\r\n this.posY.set(0);\r\n this.posX.set((this.hsl()!.h * 100) / 360);\r\n });\r\n }\r\n\r\n });\r\n }\r\n\r\n handleChange(e: CoordinatesChangeEvent): void {\r\n const { top, left, containerHeight, containerWidth } = e;\r\n\r\n const isVertical = this.direction() === 'vertical';\r\n const pos = isVertical ? top : left;\r\n const size = isVertical ? containerHeight : containerWidth;\r\n\r\n const ratio = Math.max(0, Math.min(pos, size)) / size;\r\n const hue = isVertical ? (1 - ratio) * 360 : ratio * 360;\r\n const h = hue >= 360 ? 359 : hue;\r\n\r\n const hsl = this.hsl();\r\n if (hsl && hsl.h !== h) {\r\n this.change.emit({ ...hsl, h, source: 'rgb' });\r\n }\r\n }\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<div class=\"cmat-color-hue-slider-track\" cmatColorCoordinates [percentX]=\"posX()\" [percentY]=\"posY()\"\r\n (coordinatesChange)=\"handleChange($event)\">\r\n <div class=\"cmat-color-hue-slider-pointer\" [style.left.%]=\"posX()\" [style.top.%]=\"posY()\">\r\n <button class=\"cmat-color-hue-slider-thumb\" type=\"button\">\r\n <!-- -->\r\n </button>\r\n </div>\r\n</div>","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cmat-color-icon-button',\r\n imports: [],\r\n template: `\r\n <ng-content />\r\n `,\r\n styleUrl: './color-icon-button.scss',\r\n host: {\r\n class: 'cmat-color-icon-button',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CmatColorIconButton {}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n effect,\r\n input,\r\n output,\r\n signal,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { ColorFieldValue } from '../interfaces';\r\n\r\nlet nextUniqueId = 0;\r\n\r\n@Component({\r\n selector: 'cmat-color-input-field',\r\n templateUrl: './color-input-field.html',\r\n host: {\r\n class: 'cmat-color-input-field',\r\n },\r\n styleUrl: './color-input-field.scss',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CmatColorInputField {\r\n readonly label = input<string>('');\r\n readonly step = input<number>(1);\r\n readonly placeholder = input<string>('');\r\n readonly value = input<string | number>('');\r\n readonly valueChange = output<ColorFieldValue>();\r\n\r\n uniqueId = `cmat-color-input-${++nextUniqueId}`;\r\n\r\n readonly focus = signal(false);\r\n readonly currentValue = signal<string | number>('');\r\n readonly blurValue = signal('');\r\n constructor() {\r\n effect(() => {\r\n if (!this.focus()) {\r\n this.currentValue.set(String(this.value()));\r\n this.blurValue.set(String(this.value()));\r\n } else {\r\n this.blurValue.set(String(this.value()));\r\n }\r\n });\r\n }\r\n\r\n handleFocus(e: FocusEvent): void {\r\n this.focus.set(true);\r\n\r\n e.preventDefault();\r\n }\r\n\r\n handleFocusOut(e: FocusEvent): void {\r\n this.focus.set(false);\r\n this.currentValue.set(this.blurValue());\r\n\r\n e.preventDefault();\r\n }\r\n\r\n handleKeydown(e: KeyboardEvent): void {\r\n const target = e.target as HTMLInputElement;\r\n const inputValue = String(target.value);\r\n const isPercentage = inputValue.includes('%');\r\n const num = Number(inputValue.replace(/%/g, ''));\r\n if (isNaN(num)) {\r\n return;\r\n }\r\n\r\n const step = this.step() || 1;\r\n\r\n if (e.key === 'ArrowUp') {\r\n if (this.label()) {\r\n this.valueChange.emit({ [this.label()]: num + step });\r\n } else {\r\n this.valueChange.emit(num + step);\r\n }\r\n\r\n if (isPercentage) {\r\n this.currentValue.set(`${num + step}%`);\r\n } else {\r\n this.currentValue.set(num + step);\r\n }\r\n }\r\n\r\n if (e.key === 'ArrowDown') {\r\n if (this.label()) {\r\n this.valueChange.emit({ [this.label()]: num - step });\r\n } else {\r\n this.valueChange.emit(num - step);\r\n }\r\n\r\n if (isPercentage) {\r\n this.currentValue.set(`${num - step}%`);\r\n } else {\r\n this.currentValue.set(num - step);\r\n }\r\n }\r\n }\r\n\r\n handleKeyup(e: KeyboardEvent): void {\r\n const target = e.target as HTMLInputElement;\r\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\r\n return;\r\n }\r\n if (`${this.currentValue()}` === target.value) {\r\n return;\r\n }\r\n\r\n if (this.label()) {\r\n this.valueChange.emit({ [this.label()]: target.value });\r\n } else {\r\n this.valueChange.emit(target.value);\r\n }\r\n }\r\n}\r\n","<input spellCheck=\"false\" [value]=\"currentValue()\" [placeholder]=\"placeholder()\" [attr.aria-labelledby]=\"uniqueId\"\r\n (keydown)=\"handleKeydown($event)\" (keyup)=\"handleKeyup($event)\" (focus)=\"handleFocus($event)\"\r\n (focusout)=\"handleFocusOut($event)\" />\r\n@if (label()) {\r\n<span [id]=\"uniqueId\">{{ label() }}</span>\r\n}","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\r\nimport { TinyColor } from '@ctrl/tinycolor';\r\nimport { Color, HSLA, HSVA, RGBA, ColorSource } from './interfaces';\r\n\r\nexport function simpleCheckForValidColor(data: ColorSource): boolean {\r\n const keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'] as const;\r\n let checked = 0;\r\n let passed = 0;\r\n\r\n keysToCheck.forEach((letter) => {\r\n if (!(letter in data)) {\r\n return;\r\n }\r\n checked += 1;\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n const value = (data as any)[letter];\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\r\n if (!isNaN(value)) {\r\n passed += 1;\r\n }\r\n if (letter === 's' || letter === 'l') {\r\n const percentPatt = /^\\d+%$/;\r\n if (percentPatt.test(String(value))) {\r\n passed += 1;\r\n }\r\n }\r\n });\r\n return checked === passed;\r\n}\r\n\r\nexport function parseColor(data: ColorSource | string, oldHue = 0, hideAlpha = false): Color {\r\n const color: TinyColor = data && typeof data !== 'string' && 'hex' in data\r\n ? new TinyColor(data.hex)\r\n : new TinyColor(data);\r\n if (hideAlpha) {\r\n color.setAlpha(1);\r\n }\r\n\r\n const rgb: RGBA = color.toRgb();\r\n\r\n let hsl: HSLA;\r\n let hsv: HSVA;\r\n\r\n // Check if data is HSLAsource\r\n if (data && typeof data === 'object' && 's' in data && 'l' in data) {\r\n hsl = {\r\n h: data.h ?? oldHue,\r\n s: data.s,\r\n l: data.l,\r\n a: data.a ?? 1,\r\n };\r\n hsv = hslToHsv(hsl.h, hsl.s, hsl.l, hsl.a);\r\n } else if (data && typeof data === 'object'&& 's' in data && 'v' in data) {\r\n // Check if data is HSVAsource\r\n hsv = {\r\n h: data.h ?? oldHue,\r\n s: data.s,\r\n v: data.v,\r\n a: data.a ?? 1,\r\n };\r\n hsl = hsvToHsl(hsv.h, hsv.s, hsv.v, hsv.a);\r\n } else {\r\n hsl = color.toHsl();\r\n hsv = color.toHsv();\r\n }\r\n if (hsl.s === 0) {\r\n hsl.h = oldHue;\r\n hsv.h = oldHue;\r\n }\r\n\r\n return {\r\n hsl,\r\n hslString: toHslString(hsl),\r\n hsv,\r\n hsvString: toHsvString(hsv),\r\n rgb,\r\n rgbString: color.toRgbString(),\r\n hex: rgb.a === 1 ? color.toHexString() : color.toHex8String(),\r\n oldHue: data && typeof data === 'object' && 'h' in data ? (data.h ?? oldHue ?? hsl.h) : (oldHue ?? hsl.h),\r\n source: data && typeof data === 'object' ? data.source : '', \r\n };\r\n}\r\n\r\nexport function hslToHsv(h: number, s: number, l: number, a: number): HSVA {\r\n const v = l + s * Math.min(l, 1 - l);\r\n const sv = v === 0 ? 0 : 2 * (1 - l / v);\r\n return { h, s: sv, v, a };\r\n}\r\n\r\nexport function hsvToHsl(h: number, s: number, v: number, a: number): HSLA {\r\n const l = v * (1 - s / 2);\r\n const sl = l === 0 || l === 1 ? 0 : (v - l) / Math.min(l, 1 - l);\r\n return { h, s: sl, l, a };\r\n}\r\n\r\nexport function toHslString(hsl: HSLA): string {\r\n const h = Math.round(hsl.h);\r\n const s = Math.round(hsl.s * 100);\r\n const l = Math.round(hsl.l * 100);\r\n return hsl.a === 1 ? `hsl(${h}, ${s}%, ${l}%)` : `hsla(${h}, ${s}%, ${l}%, ${hsl.a})`;\r\n}\r\n\r\nexport function toHsvString(hsv: HSVA): string {\r\n const h = Math.round(hsv.h);\r\n const s = Math.round(hsv.s * 100);\r\n const v = Math.round(hsv.v * 100);\r\n return hsv.a === 1 ? `hsv(${h}, ${s}%, ${v}%)` : `hsva(${h}, ${s}%, ${v}%, ${hsv.a})`;\r\n}\r\n\r\nexport function isValidHex(hex: string): boolean { \r\n const tinyColor = new TinyColor(hex);\r\n return tinyColor.isValid;\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n effect,\r\n input,\r\n model,\r\n output,\r\n signal,\r\n untracked,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { TinyColor } from '@ctrl/tinycolor';\r\nimport { CmatColorIconButton } from '../color-icon-button/color-icon-button';\r\nimport { CmatColorInputField } from '../color-input-field/color-input-field';\r\nimport { Color, ColorFieldValue, ColorFormat, ColorSource, HSLA, RGBA } from '../interfaces';\r\nimport { isValidHex } from '../utils';\r\n\r\n@Component({\r\n selector: 'cmat-color-input-fields',\r\n imports: [CmatColorInputField, CmatColorIconButton],\r\n templateUrl: './color-input-fields.html',\r\n host: {\r\n class: 'cmat-color-input-fields',\r\n },\r\n styleUrl: './color-input-fields.scss',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CmatColorInputFields {\r\n readonly color = input.required<Color>();\r\n readonly format = model<ColorFormat>('hex');\r\n readonly hideAlpha = input<boolean>(false);\r\n\r\n readonly formatChanged = output<ColorFormat>();\r\n readonly valueChange = output<ColorSource>();\r\n\r\n readonly hsl = signal<HSLA | null>(null);\r\n readonly rgb = signal<RGBA | null>(null);\r\n readonly hex = signal('');\r\n\r\n constructor() {\r\n effect(() => {\r\n const color = this.color();\r\n\r\n this.hsl.set(color.hsl);\r\n this.rgb.set(color.rgb);\r\n this.hex.set(color.hex);\r\n\r\n untracked(() => {\r\n if (!this.format()) {\r\n this.format.set('hex');\r\n } else if (this.format() === 'hsv') {\r\n this.format.set('hsl');\r\n }\r\n });\r\n });\r\n }\r\n\r\n round(value: number): number {\r\n return Math.round(value);\r\n }\r\n\r\n toggleColorFormat(): void {\r\n let format: ColorFormat | undefined;\r\n let fieldVal: ColorFieldValue = {};\r\n if (this.format() === 'hex') {\r\n format = 'rgb';\r\n fieldVal = { ...this.rgb() };\r\n } else if (this.format() === 'rgb') {\r\n format = 'hsl';\r\n fieldVal = { ...this.hsl(), s: this.hsl()!.s * 100, l: this.hsl()!.l * 100 };\r\n } else if (this.format() === 'hsl') {\r\n format = 'hex';\r\n fieldVal = { hex: this.hex() };\r\n }\r\n this.format.set(format!);\r\n this.formatChanged.emit(format!);\r\n this.handleChange(fieldVal);\r\n }\r\n\r\n handleChange(e: ColorFieldValue): void {\r\n if (typeof e === 'string' || typeof e === 'number') {\r\n return;\r\n }\r\n if (e.hex) {\r\n if (isValidHex(e.hex)) {\r\n const color = new TinyColor(e.hex);\r\n this.valueChange.emit({ \r\n hex: this.hideAlpha() ? color.toHex() : color.toHex8(),\r\n source: 'hex',\r\n });\r\n }\r\n } else if (e.r || e.g || e.b) {\r\n this.valueChange.emit({\r\n r: e.r ?? this.rgb()!.r,\r\n g: e.g ?? this.rgb()!.g,\r\n b: e.b ?? this.rgb()!.b,\r\n a: Math.round((e.a ?? this.rgb()!.a) * 100) / 100,\r\n source: 'rgb',\r\n });\r\n } else if (e.h || e.s || e.l) {\r\n const s = (typeof e.s === 'string' ? Number(e.s.replace('%', '')) : e.s ?? 0) / 100;\r\n const l = (typeof e.l === 'string' ? Number(e.l.replace('%', '')) : e.l ?? 0) / 100;\r\n this.valueChange.emit({\r\n h: e.h ?? this.hsl()!.h,\r\n s: s ?? this.hsl()!.s,\r\n l: l ?? this.hsl()!.l,\r\n a: Math.round((e.a ?? this.hsl()!.a) * 100) / 100,\r\n source: 'hsl',\r\n });\r\n } else if (e.a) {\r\n let a = Math.max(0, Math.min(1, e.a));\r\n if (this.hideAlpha()) {\r\n a = 1;\r\n }\r\n\r\n this.valueChange.emit({\r\n h: this.hsl()!.h,\r\n s: this.hsl()!.s,\r\n l: this.hsl()!.l,\r\n a: Math.round(a * 100) / 100,\r\n source: 'rgb',\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"cmat-color-input-field-wrapper\">\r\n @if (format() === 'hex') {\r\n <cmat-color-input-field label=\"hex\" [value]=\"hex()\" (valueChange)=\"handleChange($event)\" />\r\n }\r\n @if (format() === 'rgb') {\r\n <cmat-color-input-field label=\"r\" [value]=\"rgb()!.r\" (valueChange)=\"handleChange($event)\" />\r\n <cmat-color-input-field label=\"g\" [value]=\"rgb()!.g\" (valueChange)=\"handleChange($event)\" />\r\n <cmat-color-input-field label=\"b\" [value]=\"rgb()!.b\" (valueChange)=\"handleChange($event)\" />\r\n\r\n @if (!hideAlpha()) {\r\n <cmat-color-input-field label=\"a\" [step]=\"0.01\" [value]=\"rgb()!.a\" (valueChange)=\"handleChange($event)\" />\r\n }\r\n }\r\n @if (format() === 'hsl') {\r\n <cmat-color-input-field label=\"h\" [value]=\"round(hsl()!.h)\" (valueChange)=\"handleChange($event)\" />\r\n <cmat-color-input-field label=\"s\" [value]=\"round(hsl()!.s * 100) + '%'\" (valueChange)=\"handleChange($event)\" />\r\n <cmat-color-input-field label=\"l\" [value]=\"round(hsl()!.l * 100) + '%'\" (valueChange)=\"handleChange($event)\" />\r\n\r\n @if (!hideAlpha()) {\r\n <cmat-color-input-field label=\"a\" [step]=\"0.01\" [value]=\"hsl()!.a\" (valueChange)=\"handleChange($event)\" />\r\n }\r\n }\r\n</div>\r\n\r\n<cmat-color-icon-button>\r\n <button type=\"button\" (click)=\"toggleColorFormat()\">\r\n <svg viewBox=\"0 0 24 24\">\r\n <path fill=\"currentColor\"\r\n d=\"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z\" />\r\n </svg>\r\n </button>\r\n</cmat-color-icon-button>","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n effect,\r\n ElementRef,\r\n inject,\r\n input,\r\n output,\r\n signal,\r\n untracked,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { CmatColorCoordinates, CoordinatesChangeEvent } from '../color-coordinates';\r\nimport { Color, HSLA, HSVA, HSVAsource } from '../interfaces';\r\n\r\n@Component({\r\n selector: 'cmat-color-saturation-picker',\r\n imports: [CmatColorCoordinates],\r\n templateUrl: './color-saturation-picker.html',\r\n styleUrl: './color-saturation-picker.scss',\r\n host: {\r\n 'class': 'cmat-color-saturation-picker',\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n '(scroll)': 'onScroll()',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CmatColorSaturationPicker {\r\n readonly color = input.required<Color>();\r\n readonly change = output<HSVAsource>();\r\n\r\n readonly hsl = signal<HSLA | null>(null);\r\n readonly hsv = signal<HSVA | null>(null);\r\n readonly bgColor = signal('');\r\n readonly posX = signal<number>(0);\r\n readonly posY = signal<number>(0);\r\n\r\n private _el = inject<ElementRef<HTMLElement>>(ElementRef);\r\n\r\n constructor() {\r\n effect(() => {\r\n const color = this.color();\r\n this.hsl.set(color.hsl);\r\n this.hsv.set(color.hsv);\r\n\r\n untracked(() => {\r\n if (this.hsl()) {\r\n this.bgColor.set(`hsl(${this.hsl()!.h}, 100%, 50%)`);\r\n }\r\n\r\n if (this.hsv()) {\r\n this.posX.set(this.hsv()!.s * 100);\r\n this.posY.set(100 - this.hsv()!.v * 100);\r\n }\r\n });\r\n });\r\n }\r\n\r\n handleChange(e: CoordinatesChangeEvent): void {\r\n const { top, left, containerHeight, containerWidth } = e;\r\n\r\n const s = Math.max(0, Math.min(left, containerWidth)) / containerWidth;\r\n const v = 1 - Math.max(0, Math.min(top, containerHeight)) / containerHeight;\r\n\r\n\r\n const hsv = this.hsv();\r\n if (hsv) {\r\n this.change.emit({ ...hsv, s, v, source: 'hsva' });\r\n }\r\n }\r\n\r\n onScroll(): void {\r\n const el = this._el.nativeElement;\r\n if (el.scrollTop !== 0 || el.scrollLeft !== 0) {\r\n el.scrollTop = 0;\r\n el.scrollLeft = 0;\r\n }\r\n }\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<div class=\"cmat-color-saturation-picker-content\" cmatColorCoordinates [percentX]=\"posX()\" [percentY]=\"posY()\"\r\n [style.background-color]=\"bgColor()\" (coordinatesChange)=\"handleChange($event)\">\r\n <div class=\"cmat-color-saturation-picker-pointer\"\r\n [style.left.%]=\"posX()\" [style.top.%]=\"posY()\">\r\n <button class=\"cmat-color-saturation-picker-thumb\" type=\"button\">\r\n <!-- -->\r\n </button>\r\n </div>\r\n</div>","import { NgStyle } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n effect,\r\n forwardRef,\r\n input,\r\n model,\r\n OnInit,\r\n output,\r\n signal,\r\n untracked,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { TinyColor } from '@ctrl/tinycolor';\r\nimport { CmatColorAlphaSlider } from './color-alpha-slider/color-alpha-slider';\r\nimport { CmatColorHueSlider } from './color-hue-slider/color-hue-slider';\r\nimport { CmatColorIconButton } from './color-icon-button/color-icon-button';\r\nimport { CmatColorInputFields } from './color-input-fields/color-input-fields';\r\nimport { CmatColorSaturationPicker } from './color-saturation-picker/color-saturation-picker';\r\nimport { Color, ColorChange, ColorFormat, ColorSource, HSLA } from './interfaces';\r\nimport { parseColor, simpleCheckForValidColor } from './utils';\r\n\r\n@Component({\r\n selector: 'cmat-color-picker',\r\n imports: [\r\n CmatColorSaturationPicker,\r\n CmatColorHueSlider,\r\n CmatColorAlphaSlider,\r\n CmatColorInputFields,\r\n CmatColorIconButton,\r\n NgStyle\r\n ],\r\n templateUrl: './color-picker.html',\r\n styleUrl: './color-picker.scss',\r\n host: {\r\n class: 'cmat-color-picker',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CmatColorPickerComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class CmatColorPickerComponent implements OnInit, ControlValueAccessor {\r\n readonly format = model<ColorFormat>('hex');\r\n readonly value = model<string>('#000');\r\n readonly hideAlpha = input<boolean>(false);\r\n readonly disabled = model<boolean>(false);\r\n\r\n readonly formatChanged = output<ColorFormat>();\r\n readonly valueChanged = output<string>();\r\n readonly colorChanged = output<ColorChange>();\r\n\r\n readonly parsedColor = signal<Color | null>(null);\r\n readonly isCopied = signal(false);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/naming-convention, @typescript-eslint/no-unsafe-member-access\r\n EyeDropper = (window as any).EyeDropper;\r\n supportEyeDropper = !!this.EyeDropper;\r\n\r\n private readonly _oldHue = signal<number>(0);\r\n\r\n private readonly _oldValue = signal<string>('');\r\n\r\n constructor() {\r\n effect(() => {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const format = this.format();\r\n\r\n untracked(() => {\r\n this.getColorFormat();\r\n });\r\n });\r\n\r\n effect(() => {\r\n const value = this.value();\r\n\r\n untracked(() => {\r\n if (value !== this._oldValue()) {\r\n this.getParsedColor(this.value(), this._oldHue());\r\n }\r\n });\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getParsedColor(this.value());\r\n }\r\n\r\n writeValue(value: string): void {\r\n if (value) {\r\n this.value.set(value);\r\n this.getColorFormat();\r\n this.getParsedColor(value, this._oldHue());\r\n }\r\n }\r\n\r\n registerOnChange(fn: (value: string) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled.set(isDisabled);\r\n }\r\n\r\n getParsedColor(data: string | ColorSource, oldHue = 0): void {\r\n this.parsedColor.set(parseColor(data, oldHue, this.hideAlpha()));\r\n this._oldHue.set(this.parsedColor()!.oldHue);\r\n }\r\n\r\n handleChange(e: ColorSource): void {\r\n const isValidColor = simpleCheckForValidColor(e);\r\n if (isValidColor) {\r\n this.getParsedColor(e, (e as HSLA).h || this._oldHue());\r\n this.getColorString(this.parsedColor()!);\r\n\r\n this.onChange(this.value());\r\n\r\n this.valueChanged.emit(this.value());\r\n\r\n this.colorChanged.emit({ value: this.value(), color: this.parsedColor()! });\r\n }\r\n }\r\n\r\n getColorFormat(): void {\r\n if (!this.format()) {\r\n const color = new TinyColor(this.value());\r\n if (color.format === 'rgb' || color.format === 'hsl' || color.format === 'hsv') {\r\n this.format.set(color.format);\r\n } else {\r\n this.format.set('hex');\r\n }\r\n }\r\n }\r\n\r\n getColorString(color: Color): void {\r\n switch (this.format()) {\r\n case 'rgb':\r\n this.value.set(color.rgbString);\r\n break;\r\n case 'hsl':\r\n this.value.set(color.hslString);\r\n break;\r\n case 'hsv':\r\n this.value.set(color.hsvString);\r\n break;\r\n default:\r\n this.value.set(color.hex);\r\n break;\r\n }\r\n this._oldValue.set(this.value());\r\n }\r\n\r\n handleFormatChange(): void {\r\n this.formatChanged.emit(this.format());\r\n }\r\n\r\n async openEyeDropper(e: MouseEvent): Promise<void> {\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call\r\n const eyeDropper = new this.EyeDropper();\r\n try {\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\r\n const result = await eyeDropper.open();\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\r\n this.handleChange({ hex: result.sRGBHex, source: 'rgb' });\r\n\r\n e.preventDefault();\r\n } catch (err) {\r\n console.warn(err);\r\n }\r\n }\r\n\r\n async copyColor(): Promise<void> {\r\n try {\r\n await navigator.clipboard.writeText(this.value());\r\n\r\n this.isCopied.set(true);\r\n setTimeout(() => {\r\n this.isCopied.set(false);\r\n }, 1000);\r\n } catch (err) {\r\n console.warn(err);\r\n }\r\n }\r\n\r\n private onChange: (value: string) => void = () => { //empty function\r\n };\r\n private onTouched: () => void = () => {//empty function\r\n };\r\n}\r\n","<cmat-color-saturation-picker [color]=\"parsedColor()!\" (change)=\"handleChange($event)\" />\r\n\r\n<div class=\"cmat-color-picker-controls\">\r\n @if (supportEyeDropper) {\r\n <cmat-color-icon-button>\r\n <button type=\"button\" (click)=\"openEyeDropper($event)\">\r\n <svg viewBox=\"0 0 24 24\">\r\n <path fill=\"currentColor\"\r\n d=\"M19.35,11.72L17.22,13.85L15.81,12.43L8.1,20.14L3.5,22L2,20.5L3.86,15.9L11.57,8.19L10.15,6.78L12.28,4.65L19.35,11.72M16.76,3C17.93,1.83 19.83,1.83 21,3C22.17,4.17 22.17,6.07 21,7.24L19.08,9.16L14.84,4.92L16.76,3M5.56,17.03L4.5,19.5L6.97,18.44L14.4,11L13,9.6L5.56,17.03Z\" />\r\n </svg>\r\n </button>\r\n </cmat-color-icon-button>\r\n }\r\n\r\n <button class=\"cmat-color-preview\" type=\"button\" (click)=\"copyColor()\">\r\n <div class=\"cmat-color-preview-bg\" [ngStyle]=\"{'background-color':value()}\"></div>\r\n <div class=\"cmat-color-preview-backdrop\">\r\n @if (this.isCopied()) {\r\n <svg viewBox=\"0 0 24 24\">\r\n <path fill=\"currentColor\" d=\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\" />\r\n </svg>\r\n } @else {\r\n <svg viewBox=\"0 0 24 24\">\r\n <path fill=\"currentColor\"\r\n d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\" />\r\n </svg>\r\n }\r\n </div>\r\n </button>\r\n\r\n <div class=\"cmat-color-hue-alpha\">\r\n <cmat-color-hue-slider [color]=\"parsedColor()!\" (change)=\"handleChange($event)\" />\r\n\r\n @if (!hideAlpha()) {\r\n <cmat-color-alpha-slider [color]=\"parsedColor()!\" (change)=\"handleChange($event)\" />\r\n }\r\n </div>\r\n</div>\r\n\r\n<div class=\"cmat-color-picker-controls\">\r\n <cmat-color-input-fields [color]=\"parsedColor()!\" [hideAlpha]=\"hideAlpha()\" [(format)]=\"format\"\r\n (valueChange)=\"handleChange($event)\" (formatChange)=\"handleFormatChange()\" />\r\n</div>","import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\r\nimport { NgClass } from '@angular/common';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n input,\r\n model,\r\n output,\r\n signal,\r\n} from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { CmatColorPickerComponent } from './color-picker';\r\nimport { ColorFormat, ColorChange } from './interfaces';\r\n\r\n@Component({\r\n selector: 'cmat-color-picker-button',\r\n imports: [\r\n FormsModule, CmatColorPickerComponent, CdkConnectedOverlay, CdkOverlayOrigin, \r\n MatInputModule,ReactiveFormsModule,NgClass\r\n ],\r\n templateUrl: './color-picker-button.html',\r\n styleUrls: ['./color-picker-button.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CmatColorPickerButtonComponent {\r\n readonly format = model<ColorFormat>('hex');\r\n readonly value = model<string>('#000');\r\n readonly hideAlpha = input<boolean>(false);\r\n readonly disabled = model<boolean>(false);\r\n readonly placeholder = input<string>('请输入');\r\n readonly label = input<string>('颜色');\r\n\r\n readonly formatChanged = output<ColorFormat>();\r\n readonly valueChanged = output<string>();\r\n readonly colorChanged = output<ColorChange>();\r\n\r\n isOpen = signal(false);\r\n\r\n toggleMenu(): void {\r\n this.isOpen.update(v => !v);\r\n }\r\n\r\n closeMenu(): void {\r\n this.isOpen.set(false);\r\n }\r\n}","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<section>\r\n <mat-form-field class=\"w-full\">\r\n <mat-label>{{ label() }}</mat-label>\r\n <input matInput type=\"text\" [placeholder]=\"placeholder()\" [disabled]=\"disabled()\" [(ngModel)]=\"value\"\r\n (ngModelChange)=\"valueChanged.emit($event);colorChanged.emit($event);\" />\r\n <button #trigger=\"cdkOverlayOrigin\" matPrefix cdkOverlayOrigin class=\"ml-2\"\r\n [ngClass]=\"{'pointer-events-none':disabled()}\"\r\n [style.color]=\"value()\" (click)=\"toggleMenu()\">\r\n <span></span>\r\n </button>\r\n </mat-form-field>\r\n</section>\r\n\r\n<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"isOpen()\"\r\n (overlayOutsideClick)=\"closeMenu()\" (detach)=\"closeMenu()\">\r\n <cmat-color-picker [format]=\"format()\" [hideAlpha]=\"hideAlpha()\" [disabled]=\"disabled()\" [(value)]=\"value\"\r\n (formatChanged)=\"formatChanged.emit($event)\" (valueChanged)=\"valueChanged.emit($event)\"\r\n (colorChanged)=\"colorChanged.emit($event)\" />\r\n</ng-template>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}