@ngbase/adk 0.1.16 → 0.1.18

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 (203) hide show
  1. package/fesm2022/ngbase-adk-a11y.mjs +42 -42
  2. package/fesm2022/ngbase-adk-a11y.mjs.map +1 -1
  3. package/fesm2022/ngbase-adk-accordion.mjs +20 -26
  4. package/fesm2022/ngbase-adk-accordion.mjs.map +1 -1
  5. package/fesm2022/ngbase-adk-autocomplete.mjs +11 -11
  6. package/fesm2022/ngbase-adk-autocomplete.mjs.map +1 -1
  7. package/fesm2022/ngbase-adk-avatar.mjs +13 -13
  8. package/fesm2022/ngbase-adk-avatar.mjs.map +1 -1
  9. package/fesm2022/ngbase-adk-bidi.mjs +3 -3
  10. package/fesm2022/ngbase-adk-bidi.mjs.map +1 -1
  11. package/fesm2022/ngbase-adk-breadcrumb.mjs +14 -14
  12. package/fesm2022/ngbase-adk-breadcrumb.mjs.map +1 -1
  13. package/fesm2022/ngbase-adk-cache.mjs +3 -3
  14. package/fesm2022/ngbase-adk-cache.mjs.map +1 -1
  15. package/fesm2022/ngbase-adk-carousel.mjs +18 -18
  16. package/fesm2022/ngbase-adk-carousel.mjs.map +1 -1
  17. package/fesm2022/ngbase-adk-checkbox.mjs +15 -21
  18. package/fesm2022/ngbase-adk-checkbox.mjs.map +1 -1
  19. package/fesm2022/ngbase-adk-chip.mjs +12 -12
  20. package/fesm2022/ngbase-adk-chip.mjs.map +1 -1
  21. package/fesm2022/ngbase-adk-clipboard.mjs +7 -5
  22. package/fesm2022/ngbase-adk-clipboard.mjs.map +1 -1
  23. package/fesm2022/ngbase-adk-collections.mjs.map +1 -1
  24. package/fesm2022/ngbase-adk-color-picker.mjs +44 -53
  25. package/fesm2022/ngbase-adk-color-picker.mjs.map +1 -1
  26. package/fesm2022/ngbase-adk-cookies.mjs +3 -3
  27. package/fesm2022/ngbase-adk-cookies.mjs.map +1 -1
  28. package/fesm2022/ngbase-adk-datepicker.mjs +70 -89
  29. package/fesm2022/ngbase-adk-datepicker.mjs.map +1 -1
  30. package/fesm2022/ngbase-adk-dialog.mjs +17 -39
  31. package/fesm2022/ngbase-adk-dialog.mjs.map +1 -1
  32. package/fesm2022/ngbase-adk-drag.mjs +20 -20
  33. package/fesm2022/ngbase-adk-drag.mjs.map +1 -1
  34. package/fesm2022/ngbase-adk-form-field.mjs +65 -118
  35. package/fesm2022/ngbase-adk-form-field.mjs.map +1 -1
  36. package/fesm2022/ngbase-adk-hover-card.mjs +5 -5
  37. package/fesm2022/ngbase-adk-hover-card.mjs.map +1 -1
  38. package/fesm2022/ngbase-adk-icon.mjs +9 -11
  39. package/fesm2022/ngbase-adk-icon.mjs.map +1 -1
  40. package/fesm2022/ngbase-adk-inline-edit.mjs +27 -35
  41. package/fesm2022/ngbase-adk-inline-edit.mjs.map +1 -1
  42. package/fesm2022/ngbase-adk-jwt.mjs +319 -41
  43. package/fesm2022/ngbase-adk-jwt.mjs.map +1 -1
  44. package/fesm2022/ngbase-adk-keys.mjs +6 -6
  45. package/fesm2022/ngbase-adk-keys.mjs.map +1 -1
  46. package/fesm2022/ngbase-adk-layout.mjs.map +1 -1
  47. package/fesm2022/ngbase-adk-list.mjs +10 -10
  48. package/fesm2022/ngbase-adk-list.mjs.map +1 -1
  49. package/fesm2022/ngbase-adk-mask.mjs +8 -8
  50. package/fesm2022/ngbase-adk-mask.mjs.map +1 -1
  51. package/fesm2022/ngbase-adk-menu.mjs +69 -79
  52. package/fesm2022/ngbase-adk-menu.mjs.map +1 -1
  53. package/fesm2022/ngbase-adk-network.mjs +3 -3
  54. package/fesm2022/ngbase-adk-network.mjs.map +1 -1
  55. package/fesm2022/ngbase-adk-otp.mjs +24 -45
  56. package/fesm2022/ngbase-adk-otp.mjs.map +1 -1
  57. package/fesm2022/ngbase-adk-pagination.mjs +9 -9
  58. package/fesm2022/ngbase-adk-pagination.mjs.map +1 -1
  59. package/fesm2022/ngbase-adk-popover.mjs +120 -89
  60. package/fesm2022/ngbase-adk-popover.mjs.map +1 -1
  61. package/fesm2022/ngbase-adk-portal.mjs +134 -47
  62. package/fesm2022/ngbase-adk-portal.mjs.map +1 -1
  63. package/fesm2022/ngbase-adk-progress.mjs +7 -7
  64. package/fesm2022/ngbase-adk-progress.mjs.map +1 -1
  65. package/fesm2022/ngbase-adk-radio.mjs +20 -27
  66. package/fesm2022/ngbase-adk-radio.mjs.map +1 -1
  67. package/fesm2022/ngbase-adk-resizable.mjs +138 -48
  68. package/fesm2022/ngbase-adk-resizable.mjs.map +1 -1
  69. package/fesm2022/ngbase-adk-scroll-area.mjs +28 -20
  70. package/fesm2022/ngbase-adk-scroll-area.mjs.map +1 -1
  71. package/fesm2022/ngbase-adk-select.mjs +58 -80
  72. package/fesm2022/ngbase-adk-select.mjs.map +1 -1
  73. package/fesm2022/ngbase-adk-selectable.mjs +19 -30
  74. package/fesm2022/ngbase-adk-selectable.mjs.map +1 -1
  75. package/fesm2022/ngbase-adk-sheet.mjs +6 -20
  76. package/fesm2022/ngbase-adk-sheet.mjs.map +1 -1
  77. package/fesm2022/ngbase-adk-sidenav.mjs +65 -46
  78. package/fesm2022/ngbase-adk-sidenav.mjs.map +1 -1
  79. package/fesm2022/ngbase-adk-slider.mjs +40 -53
  80. package/fesm2022/ngbase-adk-slider.mjs.map +1 -1
  81. package/fesm2022/ngbase-adk-sonner.mjs +12 -19
  82. package/fesm2022/ngbase-adk-sonner.mjs.map +1 -1
  83. package/fesm2022/ngbase-adk-stepper.mjs +17 -25
  84. package/fesm2022/ngbase-adk-stepper.mjs.map +1 -1
  85. package/fesm2022/ngbase-adk-switch.mjs +25 -32
  86. package/fesm2022/ngbase-adk-switch.mjs.map +1 -1
  87. package/fesm2022/ngbase-adk-table.mjs +581 -83
  88. package/fesm2022/ngbase-adk-table.mjs.map +1 -1
  89. package/fesm2022/ngbase-adk-tabs.mjs +37 -35
  90. package/fesm2022/ngbase-adk-tabs.mjs.map +1 -1
  91. package/fesm2022/ngbase-adk-test.mjs.map +1 -1
  92. package/fesm2022/ngbase-adk-toggle-group.mjs +20 -34
  93. package/fesm2022/ngbase-adk-toggle-group.mjs.map +1 -1
  94. package/fesm2022/ngbase-adk-toggle.mjs +14 -19
  95. package/fesm2022/ngbase-adk-toggle.mjs.map +1 -1
  96. package/fesm2022/ngbase-adk-tooltip.mjs +12 -19
  97. package/fesm2022/ngbase-adk-tooltip.mjs.map +1 -1
  98. package/fesm2022/ngbase-adk-tour.mjs +52 -52
  99. package/fesm2022/ngbase-adk-tour.mjs.map +1 -1
  100. package/fesm2022/ngbase-adk-translate.mjs +8 -10
  101. package/fesm2022/ngbase-adk-translate.mjs.map +1 -1
  102. package/fesm2022/ngbase-adk-tree.mjs +20 -20
  103. package/fesm2022/ngbase-adk-tree.mjs.map +1 -1
  104. package/fesm2022/ngbase-adk-utils.mjs +30 -43
  105. package/fesm2022/ngbase-adk-utils.mjs.map +1 -1
  106. package/fesm2022/ngbase-adk-virtualizer.mjs +9 -9
  107. package/fesm2022/ngbase-adk-virtualizer.mjs.map +1 -1
  108. package/package.json +91 -91
  109. package/schematics/components/files/accordion/accordion.ts.template +9 -6
  110. package/schematics/components/files/audio/AudioPlayer.ts.template +245 -0
  111. package/schematics/components/files/audio/AudioRecorder.ts.template +377 -0
  112. package/schematics/components/files/audio/AudioVisualizer.ts.template +175 -0
  113. package/schematics/components/files/audio/index.ts.template +3 -0
  114. package/schematics/components/files/button/button-llm.md.template +3 -2
  115. package/schematics/components/files/charts/area-chart.component.ts.template +278 -0
  116. package/schematics/components/files/charts/bar-chart.component.ts.template +262 -0
  117. package/schematics/components/files/charts/chart-tooltip.component.ts.template +168 -0
  118. package/schematics/components/files/charts/index.ts.template +4 -0
  119. package/schematics/components/files/charts/line-chart.component.ts.template +238 -0
  120. package/schematics/components/files/charts/pie-chart.component.ts.template +283 -0
  121. package/schematics/components/files/checkbox/checkbox.ts.template +2 -2
  122. package/schematics/components/files/color-picker/color-picker.ts.template +2 -2
  123. package/schematics/components/files/dialog/dialog.ts.template +18 -14
  124. package/schematics/components/files/drawer/drawer.ts.template +30 -27
  125. package/schematics/components/files/form-field/form-field.ts.template +51 -23
  126. package/schematics/components/files/pagination/pagination.ts.template +4 -4
  127. package/schematics/components/files/picasa/picasa-base.component.ts.template +15 -30
  128. package/schematics/components/files/popover/popover.ts.template +15 -4
  129. package/schematics/components/files/select/list-selection.ts.template +0 -2
  130. package/schematics/components/files/select/option.ts.template +1 -1
  131. package/schematics/components/files/selectable/selectable.ts.template +2 -2
  132. package/schematics/components/files/sheet/sheet.ts.template +26 -14
  133. package/schematics/components/files/sidenav/sidenav.ts.template +7 -5
  134. package/schematics/components/files/sonner/sonner.ts.template +1 -2
  135. package/schematics/components/files/stepper/stepper.ts.template +2 -4
  136. package/schematics/components/files/switch/switch.ts.template +2 -2
  137. package/schematics/components/files/table/table.ts.template +43 -3
  138. package/schematics/components/files/tabs/tab.ts.template +3 -3
  139. package/schematics/components/files/theme/theme.service.ts.template +3 -3
  140. package/schematics/components/files/toggle/toggle.ts.template +1 -1
  141. package/schematics/components/files/toggle-group/toggle-group.ts.template +1 -1
  142. package/schematics/components/files/tooltip/tooltip.ts.template +2 -3
  143. package/schematics/components/schema.json +2 -0
  144. package/{accordion/index.d.ts → types/ngbase-adk-accordion.d.ts} +1 -3
  145. package/{autocomplete/index.d.ts → types/ngbase-adk-autocomplete.d.ts} +2 -7
  146. package/{checkbox/index.d.ts → types/ngbase-adk-checkbox.d.ts} +8 -14
  147. package/types/ngbase-adk-clipboard.d.ts +12 -0
  148. package/{color-picker/index.d.ts → types/ngbase-adk-color-picker.d.ts} +14 -26
  149. package/{datepicker/index.d.ts → types/ngbase-adk-datepicker.d.ts} +9 -18
  150. package/{dialog/index.d.ts → types/ngbase-adk-dialog.d.ts} +3 -8
  151. package/types/ngbase-adk-form-field.d.ts +88 -0
  152. package/{inline-edit/index.d.ts → types/ngbase-adk-inline-edit.d.ts} +8 -16
  153. package/types/ngbase-adk-jwt.d.ts +64 -0
  154. package/{menu/index.d.ts → types/ngbase-adk-menu.d.ts} +6 -5
  155. package/{otp/index.d.ts → types/ngbase-adk-otp.d.ts} +8 -16
  156. package/{popover/index.d.ts → types/ngbase-adk-popover.d.ts} +14 -2
  157. package/{portal/index.d.ts → types/ngbase-adk-portal.d.ts} +29 -8
  158. package/{radio/index.d.ts → types/ngbase-adk-radio.d.ts} +9 -12
  159. package/{resizable/index.d.ts → types/ngbase-adk-resizable.d.ts} +4 -4
  160. package/{scroll-area/index.d.ts → types/ngbase-adk-scroll-area.d.ts} +2 -1
  161. package/{select/index.d.ts → types/ngbase-adk-select.d.ts} +8 -22
  162. package/{selectable/index.d.ts → types/ngbase-adk-selectable.d.ts} +6 -10
  163. package/{sheet/index.d.ts → types/ngbase-adk-sheet.d.ts} +4 -3
  164. package/{sidenav/index.d.ts → types/ngbase-adk-sidenav.d.ts} +6 -6
  165. package/{slider/index.d.ts → types/ngbase-adk-slider.d.ts} +8 -17
  166. package/{sonner/index.d.ts → types/ngbase-adk-sonner.d.ts} +1 -3
  167. package/{stepper/index.d.ts → types/ngbase-adk-stepper.d.ts} +1 -4
  168. package/{switch/index.d.ts → types/ngbase-adk-switch.d.ts} +7 -14
  169. package/{table/index.d.ts → types/ngbase-adk-table.d.ts} +126 -3
  170. package/{test/index.d.ts → types/ngbase-adk-test.d.ts} +1 -1
  171. package/{toggle-group/index.d.ts → types/ngbase-adk-toggle-group.d.ts} +5 -10
  172. package/types/ngbase-adk-toggle.d.ts +14 -0
  173. package/{tooltip/index.d.ts → types/ngbase-adk-tooltip.d.ts} +9 -11
  174. package/{tour/index.d.ts → types/ngbase-adk-tour.d.ts} +4 -6
  175. package/{utils/index.d.ts → types/ngbase-adk-utils.d.ts} +15 -11
  176. package/clipboard/index.d.ts +0 -11
  177. package/form-field/index.d.ts +0 -97
  178. package/jwt/index.d.ts +0 -20
  179. package/toggle/index.d.ts +0 -16
  180. /package/{a11y/index.d.ts → types/ngbase-adk-a11y.d.ts} +0 -0
  181. /package/{avatar/index.d.ts → types/ngbase-adk-avatar.d.ts} +0 -0
  182. /package/{bidi/index.d.ts → types/ngbase-adk-bidi.d.ts} +0 -0
  183. /package/{breadcrumb/index.d.ts → types/ngbase-adk-breadcrumb.d.ts} +0 -0
  184. /package/{cache/index.d.ts → types/ngbase-adk-cache.d.ts} +0 -0
  185. /package/{carousel/index.d.ts → types/ngbase-adk-carousel.d.ts} +0 -0
  186. /package/{chip/index.d.ts → types/ngbase-adk-chip.d.ts} +0 -0
  187. /package/{collections/index.d.ts → types/ngbase-adk-collections.d.ts} +0 -0
  188. /package/{cookies/index.d.ts → types/ngbase-adk-cookies.d.ts} +0 -0
  189. /package/{drag/index.d.ts → types/ngbase-adk-drag.d.ts} +0 -0
  190. /package/{hover-card/index.d.ts → types/ngbase-adk-hover-card.d.ts} +0 -0
  191. /package/{icon/index.d.ts → types/ngbase-adk-icon.d.ts} +0 -0
  192. /package/{keys/index.d.ts → types/ngbase-adk-keys.d.ts} +0 -0
  193. /package/{layout/index.d.ts → types/ngbase-adk-layout.d.ts} +0 -0
  194. /package/{list/index.d.ts → types/ngbase-adk-list.d.ts} +0 -0
  195. /package/{mask/index.d.ts → types/ngbase-adk-mask.d.ts} +0 -0
  196. /package/{network/index.d.ts → types/ngbase-adk-network.d.ts} +0 -0
  197. /package/{pagination/index.d.ts → types/ngbase-adk-pagination.d.ts} +0 -0
  198. /package/{progress/index.d.ts → types/ngbase-adk-progress.d.ts} +0 -0
  199. /package/{tabs/index.d.ts → types/ngbase-adk-tabs.d.ts} +0 -0
  200. /package/{translate/index.d.ts → types/ngbase-adk-translate.d.ts} +0 -0
  201. /package/{tree/index.d.ts → types/ngbase-adk-tree.d.ts} +0 -0
  202. /package/{virtualizer/index.d.ts → types/ngbase-adk-virtualizer.d.ts} +0 -0
  203. /package/{index.d.ts → types/ngbase-adk.d.ts} +0 -0
@@ -4,7 +4,6 @@ import * as i1 from '@ngbase/adk/drag';
4
4
  import { Drag } from '@ngbase/adk/drag';
5
5
  import { DialogRef } from '@ngbase/adk/portal';
6
6
  import { ngbPopoverPortal } from '@ngbase/adk/popover';
7
- import { provideValueAccessor } from '@ngbase/adk/utils';
8
7
 
9
8
  const MAX_RGB = 255;
10
9
  const MAX_HUE = 360;
@@ -211,10 +210,10 @@ function roundTo2Decimals(num) {
211
210
  }
212
211
 
213
212
  class ColorSpectrum {
214
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ColorSpectrum, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
215
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: ColorSpectrum, isStandalone: true, selector: "[ngbColorSpectrum]", host: { styleAttribute: "background-image: linear-gradient(0deg, rgb(0, 0, 0), transparent), linear-gradient(90deg, rgb(255, 255, 255), rgba(255, 255, 255, 0)); background-color: var(--hue-color);" }, hostDirectives: [{ directive: i1.Drag }], ngImport: i0 }); }
213
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorSpectrum, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
214
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: ColorSpectrum, isStandalone: true, selector: "[ngbColorSpectrum]", host: { styleAttribute: "background-image: linear-gradient(0deg, rgb(0, 0, 0), transparent), linear-gradient(90deg, rgb(255, 255, 255), rgba(255, 255, 255, 0)); background-color: var(--hue-color);" }, hostDirectives: [{ directive: i1.Drag }], ngImport: i0 }); }
216
215
  }
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ColorSpectrum, decorators: [{
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorSpectrum, decorators: [{
218
217
  type: Directive,
219
218
  args: [{
220
219
  selector: '[ngbColorSpectrum]',
@@ -225,10 +224,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
225
224
  }]
226
225
  }] });
227
226
  class ColorSpectrumSelector {
228
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ColorSpectrumSelector, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
229
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: ColorSpectrumSelector, isStandalone: true, selector: "[ngbColorSpectrumSelector]", host: { attributes: { "type": "button" } }, ngImport: i0 }); }
227
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorSpectrumSelector, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
228
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: ColorSpectrumSelector, isStandalone: true, selector: "[ngbColorSpectrumSelector]", host: { attributes: { "type": "button" } }, ngImport: i0 }); }
230
229
  }
231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ColorSpectrumSelector, decorators: [{
230
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorSpectrumSelector, decorators: [{
232
231
  type: Directive,
233
232
  args: [{
234
233
  selector: '[ngbColorSpectrumSelector]',
@@ -238,18 +237,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
238
237
  }]
239
238
  }] });
240
239
  class ColorSelected {
241
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ColorSelected, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
242
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: ColorSelected, isStandalone: true, selector: "[ngbColorSelected]", ngImport: i0 }); }
240
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorSelected, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
241
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: ColorSelected, isStandalone: true, selector: "[ngbColorSelected]", ngImport: i0 }); }
243
242
  }
244
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ColorSelected, decorators: [{
243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorSelected, decorators: [{
245
244
  type: Directive,
246
245
  args: [{ selector: '[ngbColorSelected]' }]
247
246
  }] });
248
247
  class ColorHue {
249
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ColorHue, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
250
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: ColorHue, isStandalone: true, selector: "[ngbColorHue]", host: { styleAttribute: "inset: 0px; background: linear-gradient(to right, rgb(255, 0, 0), rgb(255, 255, 0), rgb(0, 255, 0), rgb(0, 255, 255), rgb(0, 0, 255), rgb(255, 0, 255), rgb(255, 0, 0));" }, hostDirectives: [{ directive: i1.Drag }], ngImport: i0 }); }
248
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorHue, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
249
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: ColorHue, isStandalone: true, selector: "[ngbColorHue]", host: { styleAttribute: "inset: 0px; background: linear-gradient(to right, rgb(255, 0, 0), rgb(255, 255, 0), rgb(0, 255, 0), rgb(0, 255, 255), rgb(0, 0, 255), rgb(255, 0, 255), rgb(255, 0, 0));" }, hostDirectives: [{ directive: i1.Drag }], ngImport: i0 }); }
251
250
  }
252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ColorHue, decorators: [{
251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorHue, decorators: [{
253
252
  type: Directive,
254
253
  args: [{
255
254
  selector: '[ngbColorHue]',
@@ -260,10 +259,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
260
259
  }]
261
260
  }] });
262
261
  class ColorHueThumb {
263
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ColorHueThumb, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
264
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: ColorHueThumb, isStandalone: true, selector: "[ngbColorHueThumb]", host: { attributes: { "type": "button" } }, ngImport: i0 }); }
262
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorHueThumb, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
263
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: ColorHueThumb, isStandalone: true, selector: "[ngbColorHueThumb]", host: { attributes: { "type": "button" } }, ngImport: i0 }); }
265
264
  }
266
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ColorHueThumb, decorators: [{
265
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorHueThumb, decorators: [{
267
266
  type: Directive,
268
267
  args: [{
269
268
  selector: '[ngbColorHueThumb]',
@@ -273,14 +272,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
273
272
  }]
274
273
  }] });
275
274
  class ColorAlpha {
276
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ColorAlpha, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
277
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.0", type: ColorAlpha, isStandalone: true, selector: "[ngbColorAlpha]", host: { styleAttribute: "\n background-image: conic-gradient(\n rgba(0, 0, 0, 0.06) 0 25%,\n transparent 0 50%,\n rgba(0, 0, 0, 0.06) 0 75%,\n transparent 0\n );\n background-size: 8px 8px;\n " }, hostDirectives: [{ directive: i1.Drag }], ngImport: i0, template: ` <div
275
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorAlpha, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
276
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: ColorAlpha, isStandalone: true, selector: "[ngbColorAlpha]", host: { styleAttribute: "\n background-image: conic-gradient(\n rgba(0, 0, 0, 0.06) 0 25%,\n transparent 0 50%,\n rgba(0, 0, 0, 0.06) 0 75%,\n transparent 0\n );\n background-size: 8px 8px;\n " }, hostDirectives: [{ directive: i1.Drag }], ngImport: i0, template: ` <div
278
277
  style="height: 100%; inset: 0px; background: linear-gradient(to right, rgba(255, 0, 4, 0), var(--hue-color));"
279
278
  >
280
279
  <ng-content />
281
280
  </div>`, isInline: true }); }
282
281
  }
283
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ColorAlpha, decorators: [{
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorAlpha, decorators: [{
284
283
  type: Component,
285
284
  args: [{
286
285
  selector: '[ngbColorAlpha]',
@@ -304,10 +303,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
304
303
  }]
305
304
  }] });
306
305
  class ColorAlphaThumb {
307
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ColorAlphaThumb, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
308
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0", type: ColorAlphaThumb, isStandalone: true, selector: "[ngbColorAlphaThumb]", host: { attributes: { "type": "button" } }, ngImport: i0 }); }
306
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorAlphaThumb, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
307
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: ColorAlphaThumb, isStandalone: true, selector: "[ngbColorAlphaThumb]", host: { attributes: { "type": "button" } }, ngImport: i0 }); }
309
308
  }
310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ColorAlphaThumb, decorators: [{
309
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorAlphaThumb, decorators: [{
311
310
  type: Directive,
312
311
  args: [{
313
312
  selector: '[ngbColorAlphaThumb]',
@@ -470,10 +469,10 @@ class NgbColorPicker {
470
469
  };
471
470
  return formatters[this.format()]?.() || '';
472
471
  }
473
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbColorPicker, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
474
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.2.0", type: NgbColorPicker, isStandalone: true, selector: "ngb-color-picker-container", inputs: { format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, presetColors: { classPropertyName: "presetColors", publicName: "presetColors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { styleAttribute: "\n --hue-color: rgb(255, 0, 0);\n --spectrum-color: rgb(0, 0, 0);\n " }, viewQueries: [{ propertyName: "hueDiv", first: true, predicate: ColorHue, descendants: true, read: Drag, isSignal: true }, { propertyName: "hueSelector", first: true, predicate: ColorHueThumb, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "spectrumDiv", first: true, predicate: ColorSpectrum, descendants: true, read: Drag, isSignal: true }, { propertyName: "spectrumSelector", first: true, predicate: ColorSpectrumSelector, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "selectedColor", first: true, predicate: ColorSelected, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "alphaDiv", first: true, predicate: ColorAlpha, descendants: true, read: Drag, isSignal: true }, { propertyName: "alphaSelector", first: true, predicate: ColorAlphaThumb, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0 }); }
472
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbColorPicker, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
473
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.1.0", type: NgbColorPicker, isStandalone: true, selector: "ngb-color-picker-container", inputs: { format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, presetColors: { classPropertyName: "presetColors", publicName: "presetColors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { styleAttribute: "\n --hue-color: rgb(255, 0, 0);\n --spectrum-color: rgb(0, 0, 0);\n " }, viewQueries: [{ propertyName: "hueDiv", first: true, predicate: ColorHue, descendants: true, read: Drag, isSignal: true }, { propertyName: "hueSelector", first: true, predicate: ColorHueThumb, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "spectrumDiv", first: true, predicate: ColorSpectrum, descendants: true, read: Drag, isSignal: true }, { propertyName: "spectrumSelector", first: true, predicate: ColorSpectrumSelector, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "selectedColor", first: true, predicate: ColorSelected, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "alphaDiv", first: true, predicate: ColorAlpha, descendants: true, read: Drag, isSignal: true }, { propertyName: "alphaSelector", first: true, predicate: ColorAlphaThumb, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0 }); }
475
474
  }
476
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbColorPicker, decorators: [{
475
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbColorPicker, decorators: [{
477
476
  type: Directive,
478
477
  args: [{
479
478
  selector: 'ngb-color-picker-container',
@@ -484,12 +483,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
484
483
  `,
485
484
  },
486
485
  }]
487
- }], ctorParameters: () => [] });
486
+ }], ctorParameters: () => [], propDecorators: { hueDiv: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ColorHue), { ...{ read: Drag }, isSignal: true }] }], hueSelector: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ColorHueThumb), { ...{ read: ElementRef }, isSignal: true }] }], spectrumDiv: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ColorSpectrum), { ...{
487
+ read: Drag,
488
+ }, isSignal: true }] }], spectrumSelector: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ColorSpectrumSelector), { ...{ read: ElementRef }, isSignal: true }] }], selectedColor: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ColorSelected), { ...{ read: ElementRef }, isSignal: true }] }], alphaDiv: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ColorAlpha), { ...{ read: Drag }, isSignal: true }] }], alphaSelector: [{ type: i0.ViewChild, args: [i0.forwardRef(() => ColorAlphaThumb), { ...{ read: ElementRef }, isSignal: true }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], presetColors: [{ type: i0.Input, args: [{ isSignal: true, alias: "presetColors", required: false }] }] } });
488
489
 
489
490
  const ColorPicker = new InjectionToken('ColorPicker');
490
- const registerColorPicker = ({ picker, accessor }) => [
491
+ const registerColorPicker = (picker) => [
491
492
  { provide: ColorPicker, useValue: picker },
492
- provideValueAccessor(accessor),
493
493
  ];
494
494
  class ColorPickerTrigger {
495
495
  constructor() {
@@ -520,12 +520,12 @@ class ColorPickerTrigger {
520
520
  });
521
521
  });
522
522
  }
523
- }, ...(ngDevMode ? [{ debugName: "effectRef", injector: this.injector }] : [{ injector: this.injector }]));
523
+ }, { ...(ngDevMode ? { debugName: "effectRef" } : {}), injector: this.injector });
524
524
  }
525
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ColorPickerTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
526
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0", type: ColorPickerTrigger, isStandalone: true, selector: "[ngbColorPickerTrigger]", inputs: { format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, presetColors: { classPropertyName: "presetColors", publicName: "presetColors", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "click": "open()" } }, ngImport: i0 }); }
525
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorPickerTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
526
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: ColorPickerTrigger, isStandalone: true, selector: "[ngbColorPickerTrigger]", inputs: { format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, presetColors: { classPropertyName: "presetColors", publicName: "presetColors", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "click": "open()" } }, ngImport: i0 }); }
527
527
  }
528
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: ColorPickerTrigger, decorators: [{
528
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ColorPickerTrigger, decorators: [{
529
529
  type: Directive,
530
530
  args: [{
531
531
  selector: '[ngbColorPickerTrigger]',
@@ -533,40 +533,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
533
533
  '(click)': 'open()',
534
534
  },
535
535
  }]
536
- }] });
536
+ }], propDecorators: { format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], presetColors: [{ type: i0.Input, args: [{ isSignal: true, alias: "presetColors", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }] } });
537
537
 
538
538
  class NgbColorInput {
539
539
  constructor() {
540
540
  this.format = input('hex', ...(ngDevMode ? [{ debugName: "format" }] : []));
541
541
  this.presetColors = input(...(ngDevMode ? [undefined, { debugName: "presetColors" }] : []));
542
542
  this.value = model('', ...(ngDevMode ? [{ debugName: "value" }] : []));
543
- this.onChange = (_) => { };
544
- this.onTouched = () => { };
545
- }
546
- updateValue(value = '') {
547
- this.value.set(value);
548
- this.onChange(value);
549
- this.onTouched();
550
- }
551
- writeValue(value) {
552
- this.value.set(value);
543
+ this.touched = model(false, ...(ngDevMode ? [{ debugName: "touched" }] : []));
544
+ this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
553
545
  }
554
- registerOnChange(fn) {
555
- this.onChange = fn;
556
- }
557
- registerOnTouched(fn) {
558
- this.onTouched = fn;
546
+ updateValue(val = '') {
547
+ if (this.disabled())
548
+ return;
549
+ this.value.set(val);
550
+ this.touched.set(true);
559
551
  }
560
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbColorInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
561
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0", type: NgbColorInput, isStandalone: true, selector: "[ngbColorInput]", inputs: { format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, presetColors: { classPropertyName: "presetColors", publicName: "presetColors", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, providers: [provideValueAccessor(NgbColorInput)], ngImport: i0 }); }
552
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbColorInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
553
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: NgbColorInput, isStandalone: true, selector: "[ngbColorInput]", inputs: { format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, presetColors: { classPropertyName: "presetColors", publicName: "presetColors", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", touched: "touchedChange" }, ngImport: i0 }); }
562
554
  }
563
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbColorInput, decorators: [{
555
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbColorInput, decorators: [{
564
556
  type: Directive,
565
557
  args: [{
566
558
  selector: '[ngbColorInput]',
567
- providers: [provideValueAccessor(NgbColorInput)],
568
559
  }]
569
- }] });
560
+ }], propDecorators: { format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], presetColors: [{ type: i0.Input, args: [{ isSignal: true, alias: "presetColors", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }, { type: i0.Output, args: ["touchedChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
570
561
 
571
562
  /*
572
563
  * Public API Surface of color-picker
@@ -1 +1 @@
1
- {"version":3,"file":"ngbase-adk-color-picker.mjs","sources":["../../../projects/adk/color-picker/utils.ts","../../../projects/adk/color-picker/color-picker.ts","../../../projects/adk/color-picker/color-picker-trigger.ts","../../../projects/adk/color-picker/color-input.ts","../../../projects/adk/color-picker/public-api.ts","../../../projects/adk/color-picker/ngbase-adk-color-picker.ts"],"sourcesContent":["const MAX_RGB = 255;\nconst MAX_HUE = 360;\nconst MAX_PERCENTAGE = 100;\n\nexport function hexToRgb(hex: string): [number, number, number, number] {\n // Remove the hash at the start if it's there\n hex = hex.replace(/^#/, '');\n\n // Check for valid hex formats\n if (!/^([0-9A-Fa-f]{3}|[0-9A-Fa-f]{4}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/.test(hex)) {\n throw new Error('Invalid hex color format');\n }\n\n let r: number,\n g: number,\n b: number,\n a: number = 1;\n\n if (hex.length === 3 || hex.length === 4) {\n r = parseInt(hex[0] + hex[0], 16);\n g = parseInt(hex[1] + hex[1], 16);\n b = parseInt(hex[2] + hex[2], 16);\n if (hex.length === 4) {\n a = parseInt(hex[3] + hex[3], 16) / 255;\n }\n } else if (hex.length === 6 || hex.length === 8) {\n r = parseInt(hex.slice(0, 2), 16);\n g = parseInt(hex.slice(2, 4), 16);\n b = parseInt(hex.slice(4, 6), 16);\n if (hex.length === 8) {\n a = parseInt(hex.slice(6, 8), 16) / 255;\n }\n } else {\n throw new Error('Invalid hex color format');\n }\n\n return [r, g, b, roundTo2Decimals(a)];\n}\n\nexport function rgbaToHsb(\n r: number,\n g: number,\n b: number,\n a: number = 1,\n): { h: number; s: number; b: number; a: number } {\n validateRgba(r, g, b, a);\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n const d = max - min;\n const s = max === 0 ? 0 : d / max;\n const v = max;\n\n if (max !== min) {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n return {\n h: roundNum(h * 360),\n s: roundNum(s * 100),\n b: roundNum(v * 100),\n a: roundTo2Decimals(a),\n };\n}\n\nexport function hexToHsb(hex: string): [number, number, number, number] {\n const [r, g, b, a] = hexToRgb(hex);\n const { h, s, b: brightness, a: alpha } = rgbaToHsb(r, g, b, a);\n return [roundNum(h), roundNum(s), roundNum(brightness), roundTo2Decimals(alpha)];\n}\n\nexport function rgbToHsl(r: number, g: number, b: number): { h: number; s: number; l: number } {\n validateRgb(r, g, b);\n\n r /= MAX_RGB;\n g /= MAX_RGB;\n b /= MAX_RGB;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n let s = 0;\n const l = (max + min) / 2;\n const d = max - min;\n\n if (d) {\n s = d / (1 - Math.abs(2 * l - 1));\n switch (max) {\n case r:\n h = ((g - b) / d + (g < b ? 6 : 0)) / 6;\n break;\n case g:\n h = ((b - r) / d + 2) / 6;\n break;\n case b:\n h = ((r - g) / d + 4) / 6;\n break;\n }\n }\n\n return {\n h: roundNum(h * MAX_HUE),\n s: roundNum(s * MAX_PERCENTAGE),\n l: roundNum(l * MAX_PERCENTAGE),\n };\n}\n\nexport function parseRgba(rgba: string): [number, number, number, number] {\n const matches = rgba.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/);\n if (!matches) {\n throw new Error('Invalid RGBA string format');\n }\n const [, r, g, b, a] = matches;\n return [parseInt(r, 10), parseInt(g, 10), parseInt(b, 10), a ? parseFloat(a) : 1];\n}\n\nexport function parseHsba(hsb: string): [number, number, number, number] {\n const matches = hsb.match(/^hsba?\\((\\d+),\\s*(\\d+)%,\\s*(\\d+)%(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/);\n if (!matches) {\n throw new Error('Invalid HSBA string format');\n }\n const [, h, s, b, a] = matches;\n return [parseInt(h, 10), parseInt(s, 10), parseInt(b, 10), a ? parseFloat(a) : 1];\n}\n\nexport function hsbToHsl(h: number, s: number, b: number): [number, number, number] {\n validateHsb(h, s, b);\n\n s /= MAX_PERCENTAGE;\n b /= MAX_PERCENTAGE;\n\n const l = b * (1 - s / 2);\n const saturation = l === 0 || l === 1 ? 0 : (b - l) / Math.min(l, 1 - l);\n\n return [roundNum(h), roundNum(saturation * MAX_PERCENTAGE), roundNum(l * MAX_PERCENTAGE)];\n}\n\nexport function hslaToHsba(\n h: number,\n s: number,\n l: number,\n a: number = 1,\n): [number, number, number, number] {\n validateHsl(h, s, l);\n validateAlpha(a);\n\n s /= MAX_PERCENTAGE;\n l /= MAX_PERCENTAGE;\n\n const brightness = l + s * Math.min(l, 1 - l);\n const saturation = brightness === 0 ? 0 : 2 * (1 - l / brightness);\n\n return [\n roundNum(h),\n roundNum(saturation * MAX_PERCENTAGE),\n roundNum(brightness * MAX_PERCENTAGE),\n roundTo2Decimals(a),\n ];\n}\n\nexport function hsbaToRgba(\n h: number,\n s: number,\n b: number,\n a: number = 1,\n): [number, number, number, number] {\n validateHsb(h, s, b);\n validateAlpha(a);\n\n s /= MAX_PERCENTAGE;\n b /= MAX_PERCENTAGE;\n\n const k = (n: number) => (n + h / 60) % 6;\n const f = (n: number) => b * (1 - s * Math.max(0, Math.min(k(n), 4 - k(n), 1)));\n\n return [\n roundNum(f(5) * MAX_RGB),\n roundNum(f(3) * MAX_RGB),\n roundNum(f(1) * MAX_RGB),\n roundTo2Decimals(a),\n ];\n}\n\nexport function rgbToHsba(\n r: number,\n g: number,\n b: number,\n a: number = 1,\n): [number, number, number, number] {\n const { h, s, b: br, a: alpha } = rgbaToHsb(r, g, b, a);\n return [h, s, br, alpha];\n}\n\nexport function hsbaToHex(h: number, s: number, b: number, a: number = 1): string {\n const [r, g, b_, a_] = hsbaToRgba(h, s, b, a);\n return rgbToHex(r, g, b_, a_);\n}\n\nexport function rgbToHex(r: number, g: number, b: number, a: number = 1): string {\n validateRgb(r, g, b);\n validateAlpha(a);\n\n let rgba = [r, g, b];\n if (a < 1) {\n rgba.push(Math.round(a * 255));\n }\n\n return (\n '#' +\n rgba\n .map(x => Math.round(x).toString(16).padStart(2, '0'))\n .join('')\n .toUpperCase()\n );\n}\n\nfunction validateRgb(r: number, g: number, b: number): void {\n if (r < 0 || r > MAX_RGB || g < 0 || g > MAX_RGB || b < 0 || b > MAX_RGB) {\n throw new Error('Invalid RGB values');\n }\n}\n\nfunction validateRgba(r: number, g: number, b: number, a: number): void {\n validateRgb(r, g, b);\n validateAlpha(a);\n}\n\nfunction validateHsb(h: number, s: number, b: number): void {\n if (h < 0 || h > MAX_HUE || s < 0 || s > MAX_PERCENTAGE || b < 0 || b > MAX_PERCENTAGE) {\n throw new Error('Invalid HSB values');\n }\n}\n\nfunction validateHsl(h: number, s: number, l: number): void {\n if (h < 0 || h >= MAX_HUE || s < 0 || s > MAX_PERCENTAGE || l < 0 || l > MAX_PERCENTAGE) {\n throw new Error('Invalid HSL values');\n }\n}\n\nfunction validateAlpha(a: number): void {\n if (a < 0 || a > 1) {\n throw new Error('Invalid alpha value');\n }\n}\n\nfunction roundNum(num: number): number {\n return Math.round(num);\n}\n\nfunction roundTo2Decimals(num: number): number {\n return Math.round(num * 100) / 100;\n}\n","import {\n afterNextRender,\n Component,\n Directive,\n ElementRef,\n inject,\n input,\n output,\n viewChild,\n} from '@angular/core';\nimport { Drag } from '@ngbase/adk/drag';\nimport { DialogRef } from '@ngbase/adk/portal';\nimport {\n hexToHsb,\n hsbaToHex,\n hsbaToRgba,\n hsbToHsl,\n hslaToHsba,\n parseHsba,\n parseRgba,\n rgbToHsba,\n} from './utils';\n\nexport type ColorFormat = 'hex' | 'rgb' | 'hsl' | 'hsb';\n\n@Directive({\n selector: '[ngbColorSpectrum]',\n hostDirectives: [Drag],\n host: {\n style:\n 'background-image: linear-gradient(0deg, rgb(0, 0, 0), transparent), linear-gradient(90deg, rgb(255, 255, 255), rgba(255, 255, 255, 0)); background-color: var(--hue-color);',\n },\n})\nexport class ColorSpectrum {}\n\n@Directive({\n selector: '[ngbColorSpectrumSelector]',\n host: {\n type: 'button',\n },\n})\nexport class ColorSpectrumSelector {}\n\n@Directive({ selector: '[ngbColorSelected]' })\nexport class ColorSelected {}\n\n@Directive({\n selector: '[ngbColorHue]',\n hostDirectives: [Drag],\n host: {\n style:\n 'inset: 0px; background: linear-gradient(to right, rgb(255, 0, 0), rgb(255, 255, 0), rgb(0, 255, 0), rgb(0, 255, 255), rgb(0, 0, 255), rgb(255, 0, 255), rgb(255, 0, 0));',\n },\n})\nexport class ColorHue {}\n\n@Directive({\n selector: '[ngbColorHueThumb]',\n host: {\n type: 'button',\n },\n})\nexport class ColorHueThumb {}\n\n@Component({\n selector: '[ngbColorAlpha]',\n hostDirectives: [Drag],\n template: ` <div\n style=\"height: 100%; inset: 0px; background: linear-gradient(to right, rgba(255, 0, 4, 0), var(--hue-color));\"\n >\n <ng-content />\n </div>`,\n host: {\n style: `\n background-image: conic-gradient(\n rgba(0, 0, 0, 0.06) 0 25%,\n transparent 0 50%,\n rgba(0, 0, 0, 0.06) 0 75%,\n transparent 0\n );\n background-size: 8px 8px;\n `,\n },\n})\nexport class ColorAlpha {}\n\n@Directive({\n selector: '[ngbColorAlphaThumb]',\n host: {\n type: 'button',\n },\n})\nexport class ColorAlphaThumb {}\n\n@Directive({\n selector: 'ngb-color-picker-container',\n host: {\n style: `\n --hue-color: rgb(255, 0, 0);\n --spectrum-color: rgb(0, 0, 0);\n `,\n },\n})\nexport class NgbColorPicker {\n private readonly el = inject(ElementRef);\n private readonly dialogRef = inject(DialogRef, { optional: true });\n private readonly hueDiv = viewChild.required<ColorHue, Drag>(ColorHue, { read: Drag });\n private readonly hueSelector = viewChild.required<ColorHueThumb, ElementRef<HTMLButtonElement>>(\n ColorHueThumb,\n { read: ElementRef },\n );\n\n private readonly spectrumDiv = viewChild.required<ColorSpectrum, Drag>(ColorSpectrum, {\n read: Drag,\n });\n private readonly spectrumSelector = viewChild.required<\n ColorSpectrumSelector,\n ElementRef<HTMLButtonElement>\n >(ColorSpectrumSelector, { read: ElementRef });\n\n private readonly selectedColor = viewChild.required<ColorSelected, ElementRef<HTMLDivElement>>(\n ColorSelected,\n { read: ElementRef },\n );\n\n private alpha = 100; // 0-100\n private readonly alphaDiv = viewChild.required<ColorAlpha, Drag>(ColorAlpha, { read: Drag });\n private readonly alphaSelector = viewChild.required<\n ColorAlphaThumb,\n ElementRef<HTMLButtonElement>\n >(ColorAlphaThumb, { read: ElementRef });\n\n readonly valueChange = output<string>();\n readonly format = input<ColorFormat>(this.dialogRef?.data.format || 'hex');\n readonly presetColors = input<string[]>(this.dialogRef?.data.presetColors || []);\n\n private hue = 0;\n private saturation = 0;\n private brightness = 0;\n private lastSpectrumEvent?: MouseEvent;\n private localValue = '';\n\n private colorParsers = new Map<ColorFormat, (value: string) => [number, number, number, number]>([\n ['hsb', parseHsba],\n ['hex', hexToHsb],\n ['rgb', (value: string) => rgbToHsba(...parseRgba(value))],\n ['hsl', (value: string) => hslaToHsba(...parseHsba(value))],\n ]);\n\n constructor() {\n afterNextRender(() => {\n this.setupEventListeners();\n });\n }\n\n private calculateCoordinates(e: MouseEvent, el: ElementRef) {\n const rect = el.nativeElement.getBoundingClientRect();\n\n let x = Math.round(e.clientX - rect.left);\n let y = Math.round(e.clientY - rect.top);\n\n // Constrain x and y within the bounds of the spectrum box\n x = Math.max(0, Math.min(x, rect.width));\n y = Math.max(0, Math.min(y, rect.height));\n return { x, y, rect };\n }\n\n private setupEventListeners() {\n this.setupDragListener(this.hueDiv(), (x, y, w, h) => this.updateHue(x, 0, w, h));\n this.setupDragListener(this.spectrumDiv(), this.updateSpectrum.bind(this));\n this.setupDragListener(this.alphaDiv(), (x, y, w) => this.updateAlpha(x, 0, w));\n }\n\n private setupDragListener(\n dragElement: Drag,\n updateFunction: (x: number, y: number, width: number, height: number) => void,\n ) {\n dragElement.events.subscribe(event => {\n if (event.type === 'start' || event.type === 'move') {\n this.handleColorEvent(event.event! as PointerEvent, dragElement.el, updateFunction);\n // If we want to avoid emitting the value on every move,\n // we can add a flag to emit only when the event is 'end'\n this.valueChange.emit(this.localValue);\n }\n });\n }\n\n private handleColorEvent(\n event: PointerEvent,\n element: ElementRef,\n updateFunction: (x: number, y: number, width: number, height: number) => void,\n ) {\n const { x, y, rect } = this.calculateCoordinates(event, element);\n updateFunction(x, y, rect.width, rect.height);\n this.updateValue();\n }\n\n private updateHue(x: number, y: number, width: number, height: number) {\n this.hue = Math.round((x / width) * 360);\n this.el.nativeElement.style.setProperty('--hue-color', `hsl(${this.hue}, 100%, 50%)`);\n const hueSelector = this.hueSelector()!.nativeElement;\n hueSelector.style.left = `${x}px`;\n if (this.lastSpectrumEvent) this.updateValue();\n }\n\n private updateSpectrum(x: number, y: number, width: number, height: number) {\n const { s, b } = this.calculateSaturationAndLuminous(x, y!, width, height);\n this.saturation = s;\n this.brightness = b;\n this.lastSpectrumEvent = { clientX: x, clientY: y } as PointerEvent;\n const spectrumSelector = this.spectrumSelector()!.nativeElement;\n spectrumSelector.style.left = `${x - spectrumSelector.offsetWidth / 2}px`;\n spectrumSelector.style.top = `${y! - spectrumSelector.offsetHeight / 2}px`;\n }\n\n private updateAlpha(x: number, y: number, width: number) {\n this.alpha = Math.round((x / width) * 100);\n const alphaSelector = this.alphaSelector()!.nativeElement;\n alphaSelector.style.left = `${x}px`;\n }\n\n setValue(value: string, emit = false): void {\n if (!value) return;\n this.parse(value);\n this.updateValue(emit);\n this.el.nativeElement.style.setProperty('--hue-color', this.getColor(this.hue, 100, 100, 100));\n this.updateSelectorPositions();\n }\n\n private updateSelectorPositions() {\n this.updateSelectorPosition(this.hueDiv().el, this.hueSelector(), this.hue / 360);\n this.updateSelectorPosition(this.alphaDiv().el, this.alphaSelector(), this.alpha / 100);\n this.updateSpectrumSelectorPosition();\n }\n\n private updateSelectorPosition(\n containerEl: ElementRef<HTMLElement>,\n selectorEl: ElementRef<HTMLButtonElement>,\n ratio: number,\n ) {\n selectorEl.nativeElement.style.left = ratio * containerEl.nativeElement.clientWidth + 'px';\n }\n\n private updateSpectrumSelectorPosition() {\n const spectrumRect = this.spectrumDiv().el.nativeElement.getBoundingClientRect();\n const spectrumSelector = this.spectrumSelector()!.nativeElement;\n const { x, y } = this.calculateSpectrumPosition(\n this.saturation,\n this.brightness,\n spectrumRect.width,\n spectrumRect.height,\n );\n spectrumSelector.style.left = `${x}px`;\n spectrumSelector.style.top = `${y}px`;\n }\n\n // Simplified function to calculate the x and y based on the saturation and lightness\n private calculateSpectrumPosition(\n s: number,\n l: number,\n spectrumWidth: number,\n spectrumHeight: number,\n ): { x: number; y: number } {\n const handlerSize = 16;\n const half = handlerSize / 2;\n const x = (spectrumWidth * s) / 100 - half;\n const y = (spectrumHeight * (100 - l)) / 100 - half;\n return { x, y };\n }\n\n private calculateSaturationAndLuminous(\n x: number,\n y: number,\n sw: number,\n sh: number,\n ): { s: number; b: number } {\n const s = Math.round((x / sw) * 100);\n const b = Math.round(100 - (y / sh) * 100);\n return { s, b };\n }\n\n private updateValue(emit = false) {\n this.localValue = this.toString();\n const hsla = this.getColor(this.hue, this.saturation, this.brightness, this.alpha);\n this.el.nativeElement.style.setProperty('--spectrum-color', hsla);\n this.selectedColor()!.nativeElement.style.backgroundColor = hsla;\n this.spectrumSelector()!.nativeElement.style.backgroundColor = hsla;\n if (emit) this.valueChange.emit(this.localValue);\n }\n\n private getColor(h: number, s: number, b: number, a: number) {\n const [hh, ss, l] = hsbToHsl(h, s, b);\n return `hsla(${hh}, ${ss}%, ${l}%, ${a / 100})`;\n }\n\n private parse(value: string) {\n const parser = this.colorParsers.get(this.format());\n if (parser) {\n [this.hue, this.saturation, this.brightness, this.alpha] = parser(value);\n this.alpha = Math.round(this.alpha * 100);\n }\n }\n\n private toString() {\n const alpha = this.alpha / 100;\n const formatters = {\n hsb: () => `hsba(${this.hue}, ${this.saturation}%, ${this.brightness}%, ${alpha})`,\n hex: () => hsbaToHex(this.hue, this.saturation, this.brightness, alpha),\n rgb: () => {\n const [r, g, b, a] = hsbaToRgba(this.hue, this.saturation, this.brightness, alpha);\n return a === 1 ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`;\n },\n hsl: () => {\n const [h, s, l] = hsbToHsl(this.hue, this.saturation, this.brightness);\n return `hsla(${h}, ${s}%, ${l}%, ${alpha})`;\n },\n };\n return formatters[this.format()]?.() || '';\n }\n}\n","import {\n Directive,\n effect,\n EffectRef,\n ElementRef,\n inject,\n InjectionToken,\n Injector,\n input,\n model,\n untracked,\n} from '@angular/core';\nimport { ngbPopoverPortal } from '@ngbase/adk/popover';\nimport { provideValueAccessor } from '@ngbase/adk/utils';\nimport { NgbColorInput } from './color-input';\nimport { ColorFormat, NgbColorPicker } from './color-picker';\n\nconst ColorPicker = new InjectionToken<typeof NgbColorPicker>('ColorPicker');\n\ninterface ColorPickerOptions {\n picker: typeof NgbColorPicker;\n accessor: typeof NgbColorInput;\n}\n\nexport const registerColorPicker = ({ picker, accessor }: ColorPickerOptions) => [\n { provide: ColorPicker, useValue: picker },\n provideValueAccessor(accessor),\n];\n\n@Directive({\n selector: '[ngbColorPickerTrigger]',\n host: {\n '(click)': 'open()',\n },\n})\nexport class ColorPickerTrigger {\n private el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private colorPicker =\n inject<typeof NgbColorPicker>(ColorPicker, { optional: true }) ?? NgbColorPicker;\n private popover = ngbPopoverPortal();\n private injector = inject(Injector);\n\n readonly format = input<ColorFormat>('hex');\n readonly presetColors = input<string[]>();\n readonly value = model<string>();\n effectRef?: EffectRef;\n\n open() {\n const { childSignal } = this.popover.open(this.colorPicker, {\n target: this.el.nativeElement,\n position: 'bl',\n offset: 0,\n data: { format: this.format(), presetColors: this.presetColors() },\n width: '255px',\n });\n this.effectRef?.destroy();\n\n this.effectRef = effect(\n () => {\n const colorPicker = childSignal()?.instance as NgbColorPicker;\n if (colorPicker) {\n untracked(() => {\n colorPicker.setValue(this.value() || '#000000');\n colorPicker.valueChange.subscribe(res => {\n this.value.set(res);\n });\n });\n }\n },\n { injector: this.injector },\n );\n }\n}\n","import { Directive, input, model } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { provideValueAccessor } from '@ngbase/adk/utils';\nimport { ColorFormat } from './color-picker';\n\n@Directive({\n selector: '[ngbColorInput]',\n providers: [provideValueAccessor(NgbColorInput)],\n})\nexport class NgbColorInput implements ControlValueAccessor {\n readonly format = input<ColorFormat>('hex');\n readonly presetColors = input<string[]>();\n readonly value = model<string>('');\n\n onChange = (_: string) => {};\n onTouched = () => {};\n\n updateValue(value = ''): void {\n this.value.set(value);\n this.onChange(value);\n this.onTouched();\n }\n\n writeValue(value: string): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","/*\n * Public API Surface of color-picker\n */\n\nexport * from './color-picker';\nexport * from './color-picker-trigger';\nexport * from './color-input';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngbase-adk-color-picker.mjs","sources":["../../../projects/adk/color-picker/utils.ts","../../../projects/adk/color-picker/color-picker.ts","../../../projects/adk/color-picker/color-picker-trigger.ts","../../../projects/adk/color-picker/color-input.ts","../../../projects/adk/color-picker/public-api.ts","../../../projects/adk/color-picker/ngbase-adk-color-picker.ts"],"sourcesContent":["const MAX_RGB = 255;\nconst MAX_HUE = 360;\nconst MAX_PERCENTAGE = 100;\n\nexport function hexToRgb(hex: string): [number, number, number, number] {\n // Remove the hash at the start if it's there\n hex = hex.replace(/^#/, '');\n\n // Check for valid hex formats\n if (!/^([0-9A-Fa-f]{3}|[0-9A-Fa-f]{4}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/.test(hex)) {\n throw new Error('Invalid hex color format');\n }\n\n let r: number,\n g: number,\n b: number,\n a: number = 1;\n\n if (hex.length === 3 || hex.length === 4) {\n r = parseInt(hex[0] + hex[0], 16);\n g = parseInt(hex[1] + hex[1], 16);\n b = parseInt(hex[2] + hex[2], 16);\n if (hex.length === 4) {\n a = parseInt(hex[3] + hex[3], 16) / 255;\n }\n } else if (hex.length === 6 || hex.length === 8) {\n r = parseInt(hex.slice(0, 2), 16);\n g = parseInt(hex.slice(2, 4), 16);\n b = parseInt(hex.slice(4, 6), 16);\n if (hex.length === 8) {\n a = parseInt(hex.slice(6, 8), 16) / 255;\n }\n } else {\n throw new Error('Invalid hex color format');\n }\n\n return [r, g, b, roundTo2Decimals(a)];\n}\n\nexport function rgbaToHsb(\n r: number,\n g: number,\n b: number,\n a: number = 1,\n): { h: number; s: number; b: number; a: number } {\n validateRgba(r, g, b, a);\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n const d = max - min;\n const s = max === 0 ? 0 : d / max;\n const v = max;\n\n if (max !== min) {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n return {\n h: roundNum(h * 360),\n s: roundNum(s * 100),\n b: roundNum(v * 100),\n a: roundTo2Decimals(a),\n };\n}\n\nexport function hexToHsb(hex: string): [number, number, number, number] {\n const [r, g, b, a] = hexToRgb(hex);\n const { h, s, b: brightness, a: alpha } = rgbaToHsb(r, g, b, a);\n return [roundNum(h), roundNum(s), roundNum(brightness), roundTo2Decimals(alpha)];\n}\n\nexport function rgbToHsl(r: number, g: number, b: number): { h: number; s: number; l: number } {\n validateRgb(r, g, b);\n\n r /= MAX_RGB;\n g /= MAX_RGB;\n b /= MAX_RGB;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n let s = 0;\n const l = (max + min) / 2;\n const d = max - min;\n\n if (d) {\n s = d / (1 - Math.abs(2 * l - 1));\n switch (max) {\n case r:\n h = ((g - b) / d + (g < b ? 6 : 0)) / 6;\n break;\n case g:\n h = ((b - r) / d + 2) / 6;\n break;\n case b:\n h = ((r - g) / d + 4) / 6;\n break;\n }\n }\n\n return {\n h: roundNum(h * MAX_HUE),\n s: roundNum(s * MAX_PERCENTAGE),\n l: roundNum(l * MAX_PERCENTAGE),\n };\n}\n\nexport function parseRgba(rgba: string): [number, number, number, number] {\n const matches = rgba.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/);\n if (!matches) {\n throw new Error('Invalid RGBA string format');\n }\n const [, r, g, b, a] = matches;\n return [parseInt(r, 10), parseInt(g, 10), parseInt(b, 10), a ? parseFloat(a) : 1];\n}\n\nexport function parseHsba(hsb: string): [number, number, number, number] {\n const matches = hsb.match(/^hsba?\\((\\d+),\\s*(\\d+)%,\\s*(\\d+)%(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/);\n if (!matches) {\n throw new Error('Invalid HSBA string format');\n }\n const [, h, s, b, a] = matches;\n return [parseInt(h, 10), parseInt(s, 10), parseInt(b, 10), a ? parseFloat(a) : 1];\n}\n\nexport function hsbToHsl(h: number, s: number, b: number): [number, number, number] {\n validateHsb(h, s, b);\n\n s /= MAX_PERCENTAGE;\n b /= MAX_PERCENTAGE;\n\n const l = b * (1 - s / 2);\n const saturation = l === 0 || l === 1 ? 0 : (b - l) / Math.min(l, 1 - l);\n\n return [roundNum(h), roundNum(saturation * MAX_PERCENTAGE), roundNum(l * MAX_PERCENTAGE)];\n}\n\nexport function hslaToHsba(\n h: number,\n s: number,\n l: number,\n a: number = 1,\n): [number, number, number, number] {\n validateHsl(h, s, l);\n validateAlpha(a);\n\n s /= MAX_PERCENTAGE;\n l /= MAX_PERCENTAGE;\n\n const brightness = l + s * Math.min(l, 1 - l);\n const saturation = brightness === 0 ? 0 : 2 * (1 - l / brightness);\n\n return [\n roundNum(h),\n roundNum(saturation * MAX_PERCENTAGE),\n roundNum(brightness * MAX_PERCENTAGE),\n roundTo2Decimals(a),\n ];\n}\n\nexport function hsbaToRgba(\n h: number,\n s: number,\n b: number,\n a: number = 1,\n): [number, number, number, number] {\n validateHsb(h, s, b);\n validateAlpha(a);\n\n s /= MAX_PERCENTAGE;\n b /= MAX_PERCENTAGE;\n\n const k = (n: number) => (n + h / 60) % 6;\n const f = (n: number) => b * (1 - s * Math.max(0, Math.min(k(n), 4 - k(n), 1)));\n\n return [\n roundNum(f(5) * MAX_RGB),\n roundNum(f(3) * MAX_RGB),\n roundNum(f(1) * MAX_RGB),\n roundTo2Decimals(a),\n ];\n}\n\nexport function rgbToHsba(\n r: number,\n g: number,\n b: number,\n a: number = 1,\n): [number, number, number, number] {\n const { h, s, b: br, a: alpha } = rgbaToHsb(r, g, b, a);\n return [h, s, br, alpha];\n}\n\nexport function hsbaToHex(h: number, s: number, b: number, a: number = 1): string {\n const [r, g, b_, a_] = hsbaToRgba(h, s, b, a);\n return rgbToHex(r, g, b_, a_);\n}\n\nexport function rgbToHex(r: number, g: number, b: number, a: number = 1): string {\n validateRgb(r, g, b);\n validateAlpha(a);\n\n let rgba = [r, g, b];\n if (a < 1) {\n rgba.push(Math.round(a * 255));\n }\n\n return (\n '#' +\n rgba\n .map(x => Math.round(x).toString(16).padStart(2, '0'))\n .join('')\n .toUpperCase()\n );\n}\n\nfunction validateRgb(r: number, g: number, b: number): void {\n if (r < 0 || r > MAX_RGB || g < 0 || g > MAX_RGB || b < 0 || b > MAX_RGB) {\n throw new Error('Invalid RGB values');\n }\n}\n\nfunction validateRgba(r: number, g: number, b: number, a: number): void {\n validateRgb(r, g, b);\n validateAlpha(a);\n}\n\nfunction validateHsb(h: number, s: number, b: number): void {\n if (h < 0 || h > MAX_HUE || s < 0 || s > MAX_PERCENTAGE || b < 0 || b > MAX_PERCENTAGE) {\n throw new Error('Invalid HSB values');\n }\n}\n\nfunction validateHsl(h: number, s: number, l: number): void {\n if (h < 0 || h >= MAX_HUE || s < 0 || s > MAX_PERCENTAGE || l < 0 || l > MAX_PERCENTAGE) {\n throw new Error('Invalid HSL values');\n }\n}\n\nfunction validateAlpha(a: number): void {\n if (a < 0 || a > 1) {\n throw new Error('Invalid alpha value');\n }\n}\n\nfunction roundNum(num: number): number {\n return Math.round(num);\n}\n\nfunction roundTo2Decimals(num: number): number {\n return Math.round(num * 100) / 100;\n}\n","import {\n afterNextRender,\n Component,\n Directive,\n ElementRef,\n inject,\n input,\n output,\n viewChild,\n} from '@angular/core';\nimport { Drag } from '@ngbase/adk/drag';\nimport { DialogRef } from '@ngbase/adk/portal';\nimport {\n hexToHsb,\n hsbaToHex,\n hsbaToRgba,\n hsbToHsl,\n hslaToHsba,\n parseHsba,\n parseRgba,\n rgbToHsba,\n} from './utils';\n\nexport type ColorFormat = 'hex' | 'rgb' | 'hsl' | 'hsb';\n\n@Directive({\n selector: '[ngbColorSpectrum]',\n hostDirectives: [Drag],\n host: {\n style:\n 'background-image: linear-gradient(0deg, rgb(0, 0, 0), transparent), linear-gradient(90deg, rgb(255, 255, 255), rgba(255, 255, 255, 0)); background-color: var(--hue-color);',\n },\n})\nexport class ColorSpectrum {}\n\n@Directive({\n selector: '[ngbColorSpectrumSelector]',\n host: {\n type: 'button',\n },\n})\nexport class ColorSpectrumSelector {}\n\n@Directive({ selector: '[ngbColorSelected]' })\nexport class ColorSelected {}\n\n@Directive({\n selector: '[ngbColorHue]',\n hostDirectives: [Drag],\n host: {\n style:\n 'inset: 0px; background: linear-gradient(to right, rgb(255, 0, 0), rgb(255, 255, 0), rgb(0, 255, 0), rgb(0, 255, 255), rgb(0, 0, 255), rgb(255, 0, 255), rgb(255, 0, 0));',\n },\n})\nexport class ColorHue {}\n\n@Directive({\n selector: '[ngbColorHueThumb]',\n host: {\n type: 'button',\n },\n})\nexport class ColorHueThumb {}\n\n@Component({\n selector: '[ngbColorAlpha]',\n hostDirectives: [Drag],\n template: ` <div\n style=\"height: 100%; inset: 0px; background: linear-gradient(to right, rgba(255, 0, 4, 0), var(--hue-color));\"\n >\n <ng-content />\n </div>`,\n host: {\n style: `\n background-image: conic-gradient(\n rgba(0, 0, 0, 0.06) 0 25%,\n transparent 0 50%,\n rgba(0, 0, 0, 0.06) 0 75%,\n transparent 0\n );\n background-size: 8px 8px;\n `,\n },\n})\nexport class ColorAlpha {}\n\n@Directive({\n selector: '[ngbColorAlphaThumb]',\n host: {\n type: 'button',\n },\n})\nexport class ColorAlphaThumb {}\n\n@Directive({\n selector: 'ngb-color-picker-container',\n host: {\n style: `\n --hue-color: rgb(255, 0, 0);\n --spectrum-color: rgb(0, 0, 0);\n `,\n },\n})\nexport class NgbColorPicker {\n private readonly el = inject(ElementRef);\n private readonly dialogRef = inject(DialogRef, { optional: true });\n private readonly hueDiv = viewChild.required<ColorHue, Drag>(ColorHue, { read: Drag });\n private readonly hueSelector = viewChild.required<ColorHueThumb, ElementRef<HTMLButtonElement>>(\n ColorHueThumb,\n { read: ElementRef },\n );\n\n private readonly spectrumDiv = viewChild.required<ColorSpectrum, Drag>(ColorSpectrum, {\n read: Drag,\n });\n private readonly spectrumSelector = viewChild.required<\n ColorSpectrumSelector,\n ElementRef<HTMLButtonElement>\n >(ColorSpectrumSelector, { read: ElementRef });\n\n private readonly selectedColor = viewChild.required<ColorSelected, ElementRef<HTMLDivElement>>(\n ColorSelected,\n { read: ElementRef },\n );\n\n private alpha = 100; // 0-100\n private readonly alphaDiv = viewChild.required<ColorAlpha, Drag>(ColorAlpha, { read: Drag });\n private readonly alphaSelector = viewChild.required<\n ColorAlphaThumb,\n ElementRef<HTMLButtonElement>\n >(ColorAlphaThumb, { read: ElementRef });\n\n readonly valueChange = output<string>();\n readonly format = input<ColorFormat>(this.dialogRef?.data.format || 'hex');\n readonly presetColors = input<string[]>(this.dialogRef?.data.presetColors || []);\n\n private hue = 0;\n private saturation = 0;\n private brightness = 0;\n private lastSpectrumEvent?: MouseEvent;\n private localValue = '';\n\n private colorParsers = new Map<ColorFormat, (value: string) => [number, number, number, number]>([\n ['hsb', parseHsba],\n ['hex', hexToHsb],\n ['rgb', (value: string) => rgbToHsba(...parseRgba(value))],\n ['hsl', (value: string) => hslaToHsba(...parseHsba(value))],\n ]);\n\n constructor() {\n afterNextRender(() => {\n this.setupEventListeners();\n });\n }\n\n private calculateCoordinates(e: MouseEvent, el: ElementRef) {\n const rect = el.nativeElement.getBoundingClientRect();\n\n let x = Math.round(e.clientX - rect.left);\n let y = Math.round(e.clientY - rect.top);\n\n // Constrain x and y within the bounds of the spectrum box\n x = Math.max(0, Math.min(x, rect.width));\n y = Math.max(0, Math.min(y, rect.height));\n return { x, y, rect };\n }\n\n private setupEventListeners() {\n this.setupDragListener(this.hueDiv(), (x, y, w, h) => this.updateHue(x, 0, w, h));\n this.setupDragListener(this.spectrumDiv(), this.updateSpectrum.bind(this));\n this.setupDragListener(this.alphaDiv(), (x, y, w) => this.updateAlpha(x, 0, w));\n }\n\n private setupDragListener(\n dragElement: Drag,\n updateFunction: (x: number, y: number, width: number, height: number) => void,\n ) {\n dragElement.events.subscribe(event => {\n if (event.type === 'start' || event.type === 'move') {\n this.handleColorEvent(event.event! as PointerEvent, dragElement.el, updateFunction);\n // If we want to avoid emitting the value on every move,\n // we can add a flag to emit only when the event is 'end'\n this.valueChange.emit(this.localValue);\n }\n });\n }\n\n private handleColorEvent(\n event: PointerEvent,\n element: ElementRef,\n updateFunction: (x: number, y: number, width: number, height: number) => void,\n ) {\n const { x, y, rect } = this.calculateCoordinates(event, element);\n updateFunction(x, y, rect.width, rect.height);\n this.updateValue();\n }\n\n private updateHue(x: number, y: number, width: number, height: number) {\n this.hue = Math.round((x / width) * 360);\n this.el.nativeElement.style.setProperty('--hue-color', `hsl(${this.hue}, 100%, 50%)`);\n const hueSelector = this.hueSelector()!.nativeElement;\n hueSelector.style.left = `${x}px`;\n if (this.lastSpectrumEvent) this.updateValue();\n }\n\n private updateSpectrum(x: number, y: number, width: number, height: number) {\n const { s, b } = this.calculateSaturationAndLuminous(x, y!, width, height);\n this.saturation = s;\n this.brightness = b;\n this.lastSpectrumEvent = { clientX: x, clientY: y } as PointerEvent;\n const spectrumSelector = this.spectrumSelector()!.nativeElement;\n spectrumSelector.style.left = `${x - spectrumSelector.offsetWidth / 2}px`;\n spectrumSelector.style.top = `${y! - spectrumSelector.offsetHeight / 2}px`;\n }\n\n private updateAlpha(x: number, y: number, width: number) {\n this.alpha = Math.round((x / width) * 100);\n const alphaSelector = this.alphaSelector()!.nativeElement;\n alphaSelector.style.left = `${x}px`;\n }\n\n setValue(value: string, emit = false): void {\n if (!value) return;\n this.parse(value);\n this.updateValue(emit);\n this.el.nativeElement.style.setProperty('--hue-color', this.getColor(this.hue, 100, 100, 100));\n this.updateSelectorPositions();\n }\n\n private updateSelectorPositions() {\n this.updateSelectorPosition(this.hueDiv().el, this.hueSelector(), this.hue / 360);\n this.updateSelectorPosition(this.alphaDiv().el, this.alphaSelector(), this.alpha / 100);\n this.updateSpectrumSelectorPosition();\n }\n\n private updateSelectorPosition(\n containerEl: ElementRef<HTMLElement>,\n selectorEl: ElementRef<HTMLButtonElement>,\n ratio: number,\n ) {\n selectorEl.nativeElement.style.left = ratio * containerEl.nativeElement.clientWidth + 'px';\n }\n\n private updateSpectrumSelectorPosition() {\n const spectrumRect = this.spectrumDiv().el.nativeElement.getBoundingClientRect();\n const spectrumSelector = this.spectrumSelector()!.nativeElement;\n const { x, y } = this.calculateSpectrumPosition(\n this.saturation,\n this.brightness,\n spectrumRect.width,\n spectrumRect.height,\n );\n spectrumSelector.style.left = `${x}px`;\n spectrumSelector.style.top = `${y}px`;\n }\n\n // Simplified function to calculate the x and y based on the saturation and lightness\n private calculateSpectrumPosition(\n s: number,\n l: number,\n spectrumWidth: number,\n spectrumHeight: number,\n ): { x: number; y: number } {\n const handlerSize = 16;\n const half = handlerSize / 2;\n const x = (spectrumWidth * s) / 100 - half;\n const y = (spectrumHeight * (100 - l)) / 100 - half;\n return { x, y };\n }\n\n private calculateSaturationAndLuminous(\n x: number,\n y: number,\n sw: number,\n sh: number,\n ): { s: number; b: number } {\n const s = Math.round((x / sw) * 100);\n const b = Math.round(100 - (y / sh) * 100);\n return { s, b };\n }\n\n private updateValue(emit = false) {\n this.localValue = this.toString();\n const hsla = this.getColor(this.hue, this.saturation, this.brightness, this.alpha);\n this.el.nativeElement.style.setProperty('--spectrum-color', hsla);\n this.selectedColor()!.nativeElement.style.backgroundColor = hsla;\n this.spectrumSelector()!.nativeElement.style.backgroundColor = hsla;\n if (emit) this.valueChange.emit(this.localValue);\n }\n\n private getColor(h: number, s: number, b: number, a: number) {\n const [hh, ss, l] = hsbToHsl(h, s, b);\n return `hsla(${hh}, ${ss}%, ${l}%, ${a / 100})`;\n }\n\n private parse(value: string) {\n const parser = this.colorParsers.get(this.format());\n if (parser) {\n [this.hue, this.saturation, this.brightness, this.alpha] = parser(value);\n this.alpha = Math.round(this.alpha * 100);\n }\n }\n\n private toString() {\n const alpha = this.alpha / 100;\n const formatters = {\n hsb: () => `hsba(${this.hue}, ${this.saturation}%, ${this.brightness}%, ${alpha})`,\n hex: () => hsbaToHex(this.hue, this.saturation, this.brightness, alpha),\n rgb: () => {\n const [r, g, b, a] = hsbaToRgba(this.hue, this.saturation, this.brightness, alpha);\n return a === 1 ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`;\n },\n hsl: () => {\n const [h, s, l] = hsbToHsl(this.hue, this.saturation, this.brightness);\n return `hsla(${h}, ${s}%, ${l}%, ${alpha})`;\n },\n };\n return formatters[this.format()]?.() || '';\n }\n}\n","import {\n Directive,\n effect,\n EffectRef,\n ElementRef,\n inject,\n InjectionToken,\n Injector,\n input,\n model,\n untracked,\n} from '@angular/core';\nimport { ngbPopoverPortal } from '@ngbase/adk/popover';\nimport { ColorFormat, NgbColorPicker } from './color-picker';\n\nconst ColorPicker = new InjectionToken<typeof NgbColorPicker>('ColorPicker');\n\nexport const registerColorPicker = (picker: typeof NgbColorPicker) => [\n { provide: ColorPicker, useValue: picker },\n];\n\n@Directive({\n selector: '[ngbColorPickerTrigger]',\n host: {\n '(click)': 'open()',\n },\n})\nexport class ColorPickerTrigger {\n private el = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private colorPicker =\n inject<typeof NgbColorPicker>(ColorPicker, { optional: true }) ?? NgbColorPicker;\n private popover = ngbPopoverPortal();\n private injector = inject(Injector);\n\n readonly format = input<ColorFormat>('hex');\n readonly presetColors = input<string[]>();\n readonly value = model<string>();\n effectRef?: EffectRef;\n\n open() {\n const { childSignal } = this.popover.open(this.colorPicker, {\n target: this.el.nativeElement,\n position: 'bl',\n offset: 0,\n data: { format: this.format(), presetColors: this.presetColors() },\n width: '255px',\n });\n this.effectRef?.destroy();\n\n this.effectRef = effect(\n () => {\n const colorPicker = childSignal()?.instance as NgbColorPicker;\n if (colorPicker) {\n untracked(() => {\n colorPicker.setValue(this.value() || '#000000');\n colorPicker.valueChange.subscribe(res => {\n this.value.set(res);\n });\n });\n }\n },\n { injector: this.injector },\n );\n }\n}\n","import { Directive, input, model } from '@angular/core';\nimport { FormValueControl } from '@angular/forms/signals';\nimport { ColorFormat } from './color-picker';\n\n@Directive({\n selector: '[ngbColorInput]',\n})\nexport class NgbColorInput implements FormValueControl<string> {\n readonly format = input<ColorFormat>('hex');\n readonly presetColors = input<string[]>();\n readonly value = model<string>('');\n readonly touched = model(false);\n readonly disabled = input(false);\n\n updateValue(val = ''): void {\n if (this.disabled()) return;\n this.value.set(val);\n this.touched.set(true);\n }\n}\n","/*\n * Public API Surface of color-picker\n */\n\nexport * from './color-picker';\nexport * from './color-picker-trigger';\nexport * from './color-input';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -64,10 +64,10 @@ class CookieService {
64
64
  }
65
65
  return false;
66
66
  }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: CookieService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
68
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: CookieService, providedIn: 'root' }); }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CookieService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
68
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CookieService, providedIn: 'root' }); }
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: CookieService, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CookieService, decorators: [{
71
71
  type: Injectable,
72
72
  args: [{ providedIn: 'root' }]
73
73
  }], ctorParameters: () => [] });
@@ -1 +1 @@
1
- {"version":3,"file":"ngbase-adk-cookies.mjs","sources":["../../../projects/adk/cookies/cookie.service.ts","../../../projects/adk/cookies/ngbase-adk-cookies.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class CookieService {\n private readonly sameSite: 'Lax' | 'Strict' | 'None' = 'Lax';\n\n constructor() {}\n\n set(\n name: string,\n value: string,\n options: {\n expires?: number | Date;\n path?: string;\n domain?: string;\n secure?: boolean;\n sameSite?: 'Lax' | 'Strict' | 'None';\n } = {},\n ): void {\n let cookieString = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;\n\n if (options.expires) {\n if (typeof options.expires === 'number') {\n const date = new Date();\n date.setTime(date.getTime() + options.expires * 24 * 60 * 60 * 1000);\n options.expires = date;\n }\n cookieString += `; expires=${options.expires.toUTCString()}`;\n }\n\n if (options.path) {\n cookieString += `; path=${options.path}`;\n }\n\n if (options.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n\n if (options.secure) {\n cookieString += '; secure';\n }\n\n cookieString += `; samesite=${options.sameSite || this.sameSite}`;\n\n document.cookie = cookieString;\n }\n\n get(name: string): string | null {\n const decodedName = decodeURIComponent(name);\n const cookies = document.cookie.split(';');\n for (let cookie of cookies) {\n cookie = cookie.trim();\n if (cookie.startsWith(decodedName + '=')) {\n return decodeURIComponent(cookie.substring(name.length + 1));\n }\n }\n return null;\n }\n\n delete(name: string, options: { path?: string; domain?: string } = {}): void {\n this.set(name, '', { ...options, expires: new Date(0) });\n }\n\n getAll(): { [key: string]: string } {\n return document.cookie.split(';').reduce(\n (cookies, cookie) => {\n const [name, value] = cookie.split('=').map(c => c.trim());\n cookies[decodeURIComponent(name)] = decodeURIComponent(value);\n return cookies;\n },\n {} as { [key: string]: string },\n );\n }\n\n clearAll(): void {\n const cookies = this.getAll();\n for (const name in cookies) {\n this.delete(name);\n }\n }\n\n has(name: string): boolean {\n return this.get(name) !== null;\n }\n\n update(\n name: string,\n newValue: string,\n options: {\n expires?: number | Date;\n path?: string;\n domain?: string;\n secure?: boolean;\n sameSite?: 'Lax' | 'Strict' | 'None';\n } = {},\n ): boolean {\n if (this.has(name)) {\n this.set(name, newValue, options);\n return true;\n }\n return false;\n }\n}\n\nexport const injectCookie = () => inject(CookieService);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAGa,aAAa,CAAA;AAGxB,IAAA,WAAA,GAAA;QAFiB,IAAQ,CAAA,QAAA,GAA8B,KAAK;;AAI5D,IAAA,GAAG,CACD,IAAY,EACZ,KAAa,EACb,UAMI,EAAE,EAAA;AAEN,QAAA,IAAI,YAAY,GAAG,CAAG,EAAA,kBAAkB,CAAC,IAAI,CAAC,CAAA,CAAA,EAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;AAE7E,QAAA,IAAI,OAAO,CAAC,OAAO,EAAE;AACnB,YAAA,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE;AACvC,gBAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACpE,gBAAA,OAAO,CAAC,OAAO,GAAG,IAAI;;YAExB,YAAY,IAAI,aAAa,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA,CAAE;;AAG9D,QAAA,IAAI,OAAO,CAAC,IAAI,EAAE;AAChB,YAAA,YAAY,IAAI,CAAU,OAAA,EAAA,OAAO,CAAC,IAAI,EAAE;;AAG1C,QAAA,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,YAAA,YAAY,IAAI,CAAY,SAAA,EAAA,OAAO,CAAC,MAAM,EAAE;;AAG9C,QAAA,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,YAAY,IAAI,UAAU;;QAG5B,YAAY,IAAI,CAAc,WAAA,EAAA,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAA,CAAE;AAEjE,QAAA,QAAQ,CAAC,MAAM,GAAG,YAAY;;AAGhC,IAAA,GAAG,CAAC,IAAY,EAAA;AACd,QAAA,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AAC1C,QAAA,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;AAC1B,YAAA,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE;YACtB,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE;AACxC,gBAAA,OAAO,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;;;AAGhE,QAAA,OAAO,IAAI;;AAGb,IAAA,MAAM,CAAC,IAAY,EAAE,OAAA,GAA8C,EAAE,EAAA;QACnE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;;IAG1D,MAAM,GAAA;AACJ,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CACtC,CAAC,OAAO,EAAE,MAAM,KAAI;YAClB,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1D,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC;AAC7D,YAAA,OAAO,OAAO;SACf,EACD,EAA+B,CAChC;;IAGH,QAAQ,GAAA;AACN,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE;AAC7B,QAAA,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;;;AAIrB,IAAA,GAAG,CAAC,IAAY,EAAA;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI;;AAGhC,IAAA,MAAM,CACJ,IAAY,EACZ,QAAgB,EAChB,UAMI,EAAE,EAAA;AAEN,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC;AACjC,YAAA,OAAO,IAAI;;AAEb,QAAA,OAAO,KAAK;;8GAjGH,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADA,MAAM,EAAA,CAAA,CAAA;;2FACnB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;AAsGrB,MAAA,YAAY,GAAG,MAAM,MAAM,CAAC,aAAa;;ACxGtD;;AAEG;;;;"}
1
+ {"version":3,"file":"ngbase-adk-cookies.mjs","sources":["../../../projects/adk/cookies/cookie.service.ts","../../../projects/adk/cookies/ngbase-adk-cookies.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class CookieService {\n private readonly sameSite: 'Lax' | 'Strict' | 'None' = 'Lax';\n\n constructor() {}\n\n set(\n name: string,\n value: string,\n options: {\n expires?: number | Date;\n path?: string;\n domain?: string;\n secure?: boolean;\n sameSite?: 'Lax' | 'Strict' | 'None';\n } = {},\n ): void {\n let cookieString = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;\n\n if (options.expires) {\n if (typeof options.expires === 'number') {\n const date = new Date();\n date.setTime(date.getTime() + options.expires * 24 * 60 * 60 * 1000);\n options.expires = date;\n }\n cookieString += `; expires=${options.expires.toUTCString()}`;\n }\n\n if (options.path) {\n cookieString += `; path=${options.path}`;\n }\n\n if (options.domain) {\n cookieString += `; domain=${options.domain}`;\n }\n\n if (options.secure) {\n cookieString += '; secure';\n }\n\n cookieString += `; samesite=${options.sameSite || this.sameSite}`;\n\n document.cookie = cookieString;\n }\n\n get(name: string): string | null {\n const decodedName = decodeURIComponent(name);\n const cookies = document.cookie.split(';');\n for (let cookie of cookies) {\n cookie = cookie.trim();\n if (cookie.startsWith(decodedName + '=')) {\n return decodeURIComponent(cookie.substring(name.length + 1));\n }\n }\n return null;\n }\n\n delete(name: string, options: { path?: string; domain?: string } = {}): void {\n this.set(name, '', { ...options, expires: new Date(0) });\n }\n\n getAll(): { [key: string]: string } {\n return document.cookie.split(';').reduce(\n (cookies, cookie) => {\n const [name, value] = cookie.split('=').map(c => c.trim());\n cookies[decodeURIComponent(name)] = decodeURIComponent(value);\n return cookies;\n },\n {} as { [key: string]: string },\n );\n }\n\n clearAll(): void {\n const cookies = this.getAll();\n for (const name in cookies) {\n this.delete(name);\n }\n }\n\n has(name: string): boolean {\n return this.get(name) !== null;\n }\n\n update(\n name: string,\n newValue: string,\n options: {\n expires?: number | Date;\n path?: string;\n domain?: string;\n secure?: boolean;\n sameSite?: 'Lax' | 'Strict' | 'None';\n } = {},\n ): boolean {\n if (this.has(name)) {\n this.set(name, newValue, options);\n return true;\n }\n return false;\n }\n}\n\nexport const injectCookie = () => inject(CookieService);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}