@elementar-rt/components 0.6.55

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 (259) hide show
  1. package/README.md +49 -0
  2. package/action-required/index.d.ts +13 -0
  3. package/alert/index.d.ts +51 -0
  4. package/announcement/index.d.ts +45 -0
  5. package/avatar/index.d.ts +67 -0
  6. package/block-loader/index.d.ts +21 -0
  7. package/block-state/index.d.ts +33 -0
  8. package/brand-colors/index.d.ts +27 -0
  9. package/breadcrumbs/index.d.ts +104 -0
  10. package/card-overlay/index.d.ts +20 -0
  11. package/carousel/index.d.ts +75 -0
  12. package/code-highlighter/index.d.ts +18 -0
  13. package/color-picker/index.d.ts +92 -0
  14. package/color-scheme/index.d.ts +44 -0
  15. package/command-bar/index.d.ts +28 -0
  16. package/comment-editor/index.d.ts +194 -0
  17. package/comparison-slider/index.d.ts +51 -0
  18. package/confirm/index.d.ts +35 -0
  19. package/content-fade/index.d.ts +17 -0
  20. package/cookie-popup/index.d.ts +41 -0
  21. package/core/index.d.ts +252 -0
  22. package/country-select/index.d.ts +76 -0
  23. package/crop/index.d.ts +59 -0
  24. package/currency-select/index.d.ts +78 -0
  25. package/dashboard/index.d.ts +48 -0
  26. package/data-view/index.d.ts +127 -0
  27. package/date-format-select/index.d.ts +56 -0
  28. package/divider/index.d.ts +13 -0
  29. package/drawer/index.d.ts +35 -0
  30. package/emoji-picker/index.d.ts +49 -0
  31. package/expand/index.d.ts +26 -0
  32. package/fesm2022/elementar-rt-components-action-required.mjs +30 -0
  33. package/fesm2022/elementar-rt-components-action-required.mjs.map +1 -0
  34. package/fesm2022/elementar-rt-components-alert.mjs +139 -0
  35. package/fesm2022/elementar-rt-components-alert.mjs.map +1 -0
  36. package/fesm2022/elementar-rt-components-announcement.mjs +73 -0
  37. package/fesm2022/elementar-rt-components-announcement.mjs.map +1 -0
  38. package/fesm2022/elementar-rt-components-avatar.mjs +234 -0
  39. package/fesm2022/elementar-rt-components-avatar.mjs.map +1 -0
  40. package/fesm2022/elementar-rt-components-block-loader.mjs +54 -0
  41. package/fesm2022/elementar-rt-components-block-loader.mjs.map +1 -0
  42. package/fesm2022/elementar-rt-components-block-state.mjs +75 -0
  43. package/fesm2022/elementar-rt-components-block-state.mjs.map +1 -0
  44. package/fesm2022/elementar-rt-components-brand-colors.mjs +78 -0
  45. package/fesm2022/elementar-rt-components-brand-colors.mjs.map +1 -0
  46. package/fesm2022/elementar-rt-components-breadcrumbs.mjs +213 -0
  47. package/fesm2022/elementar-rt-components-breadcrumbs.mjs.map +1 -0
  48. package/fesm2022/elementar-rt-components-card-overlay.mjs +55 -0
  49. package/fesm2022/elementar-rt-components-card-overlay.mjs.map +1 -0
  50. package/fesm2022/elementar-rt-components-carousel.mjs +605 -0
  51. package/fesm2022/elementar-rt-components-carousel.mjs.map +1 -0
  52. package/fesm2022/elementar-rt-components-code-highlighter.mjs +57 -0
  53. package/fesm2022/elementar-rt-components-code-highlighter.mjs.map +1 -0
  54. package/fesm2022/elementar-rt-components-color-picker.mjs +708 -0
  55. package/fesm2022/elementar-rt-components-color-picker.mjs.map +1 -0
  56. package/fesm2022/elementar-rt-components-color-scheme.mjs +106 -0
  57. package/fesm2022/elementar-rt-components-color-scheme.mjs.map +1 -0
  58. package/fesm2022/elementar-rt-components-command-bar.mjs +59 -0
  59. package/fesm2022/elementar-rt-components-command-bar.mjs.map +1 -0
  60. package/fesm2022/elementar-rt-components-comment-editor.mjs +1039 -0
  61. package/fesm2022/elementar-rt-components-comment-editor.mjs.map +1 -0
  62. package/fesm2022/elementar-rt-components-comparison-slider.mjs +193 -0
  63. package/fesm2022/elementar-rt-components-comparison-slider.mjs.map +1 -0
  64. package/fesm2022/elementar-rt-components-confirm.mjs +86 -0
  65. package/fesm2022/elementar-rt-components-confirm.mjs.map +1 -0
  66. package/fesm2022/elementar-rt-components-content-fade.mjs +35 -0
  67. package/fesm2022/elementar-rt-components-content-fade.mjs.map +1 -0
  68. package/fesm2022/elementar-rt-components-cookie-popup.mjs +109 -0
  69. package/fesm2022/elementar-rt-components-cookie-popup.mjs.map +1 -0
  70. package/fesm2022/elementar-rt-components-core.mjs +837 -0
  71. package/fesm2022/elementar-rt-components-core.mjs.map +1 -0
  72. package/fesm2022/elementar-rt-components-country-select.mjs +477 -0
  73. package/fesm2022/elementar-rt-components-country-select.mjs.map +1 -0
  74. package/fesm2022/elementar-rt-components-crop.mjs +183 -0
  75. package/fesm2022/elementar-rt-components-crop.mjs.map +1 -0
  76. package/fesm2022/elementar-rt-components-currency-select.mjs +384 -0
  77. package/fesm2022/elementar-rt-components-currency-select.mjs.map +1 -0
  78. package/fesm2022/elementar-rt-components-dashboard.mjs +96 -0
  79. package/fesm2022/elementar-rt-components-dashboard.mjs.map +1 -0
  80. package/fesm2022/elementar-rt-components-data-view.mjs +302 -0
  81. package/fesm2022/elementar-rt-components-data-view.mjs.map +1 -0
  82. package/fesm2022/elementar-rt-components-date-format-select.mjs +136 -0
  83. package/fesm2022/elementar-rt-components-date-format-select.mjs.map +1 -0
  84. package/fesm2022/elementar-rt-components-divider.mjs +31 -0
  85. package/fesm2022/elementar-rt-components-divider.mjs.map +1 -0
  86. package/fesm2022/elementar-rt-components-drawer.mjs +131 -0
  87. package/fesm2022/elementar-rt-components-drawer.mjs.map +1 -0
  88. package/fesm2022/elementar-rt-components-emoji-picker.mjs +249 -0
  89. package/fesm2022/elementar-rt-components-emoji-picker.mjs.map +1 -0
  90. package/fesm2022/elementar-rt-components-expand.mjs +60 -0
  91. package/fesm2022/elementar-rt-components-expand.mjs.map +1 -0
  92. package/fesm2022/elementar-rt-components-filter-builder.mjs +333 -0
  93. package/fesm2022/elementar-rt-components-filter-builder.mjs.map +1 -0
  94. package/fesm2022/elementar-rt-components-form-renderer-autocomplete-many-field.component-AqEghjO_.mjs +123 -0
  95. package/fesm2022/elementar-rt-components-form-renderer-autocomplete-many-field.component-AqEghjO_.mjs.map +1 -0
  96. package/fesm2022/elementar-rt-components-form-renderer-checkbox-field.component-CUKmZGFq.mjs +22 -0
  97. package/fesm2022/elementar-rt-components-form-renderer-checkbox-field.component-CUKmZGFq.mjs.map +1 -0
  98. package/fesm2022/elementar-rt-components-form-renderer-datepicker-field.component-DihIRWMt.mjs +40 -0
  99. package/fesm2022/elementar-rt-components-form-renderer-datepicker-field.component-DihIRWMt.mjs.map +1 -0
  100. package/fesm2022/elementar-rt-components-form-renderer-divider-content.component-CjlGcU3B.mjs +17 -0
  101. package/fesm2022/elementar-rt-components-form-renderer-divider-content.component-CjlGcU3B.mjs.map +1 -0
  102. package/fesm2022/elementar-rt-components-form-renderer-image-content.component-0pL2Fk0H.mjs +17 -0
  103. package/fesm2022/elementar-rt-components-form-renderer-image-content.component-0pL2Fk0H.mjs.map +1 -0
  104. package/fesm2022/elementar-rt-components-form-renderer-input-field.component-X2sKvj6J.mjs +33 -0
  105. package/fesm2022/elementar-rt-components-form-renderer-input-field.component-X2sKvj6J.mjs.map +1 -0
  106. package/fesm2022/elementar-rt-components-form-renderer-radio-group-field.component-DWXZAA3F.mjs +38 -0
  107. package/fesm2022/elementar-rt-components-form-renderer-radio-group-field.component-DWXZAA3F.mjs.map +1 -0
  108. package/fesm2022/elementar-rt-components-form-renderer-select-field.component-Cx9DZoD6.mjs +39 -0
  109. package/fesm2022/elementar-rt-components-form-renderer-select-field.component-Cx9DZoD6.mjs.map +1 -0
  110. package/fesm2022/elementar-rt-components-form-renderer-text-content.component-BmFyUG06.mjs +24 -0
  111. package/fesm2022/elementar-rt-components-form-renderer-text-content.component-BmFyUG06.mjs.map +1 -0
  112. package/fesm2022/elementar-rt-components-form-renderer-textarea-field.component-D9KmE049.mjs +37 -0
  113. package/fesm2022/elementar-rt-components-form-renderer-textarea-field.component-D9KmE049.mjs.map +1 -0
  114. package/fesm2022/elementar-rt-components-form-renderer-timezone-field.component-BroP_Q4P.mjs +35 -0
  115. package/fesm2022/elementar-rt-components-form-renderer-timezone-field.component-BroP_Q4P.mjs.map +1 -0
  116. package/fesm2022/elementar-rt-components-form-renderer-toggle-field.component-nGbtVi1_.mjs +22 -0
  117. package/fesm2022/elementar-rt-components-form-renderer-toggle-field.component-nGbtVi1_.mjs.map +1 -0
  118. package/fesm2022/elementar-rt-components-form-renderer.mjs +321 -0
  119. package/fesm2022/elementar-rt-components-form-renderer.mjs.map +1 -0
  120. package/fesm2022/elementar-rt-components-gauge.mjs +50 -0
  121. package/fesm2022/elementar-rt-components-gauge.mjs.map +1 -0
  122. package/fesm2022/elementar-rt-components-icon.mjs +62 -0
  123. package/fesm2022/elementar-rt-components-icon.mjs.map +1 -0
  124. package/fesm2022/elementar-rt-components-image-resizer.mjs +159 -0
  125. package/fesm2022/elementar-rt-components-image-resizer.mjs.map +1 -0
  126. package/fesm2022/elementar-rt-components-image-viewer.mjs +349 -0
  127. package/fesm2022/elementar-rt-components-image-viewer.mjs.map +1 -0
  128. package/fesm2022/elementar-rt-components-incidents.mjs +259 -0
  129. package/fesm2022/elementar-rt-components-incidents.mjs.map +1 -0
  130. package/fesm2022/elementar-rt-components-inline-text-edit.mjs +181 -0
  131. package/fesm2022/elementar-rt-components-inline-text-edit.mjs.map +1 -0
  132. package/fesm2022/elementar-rt-components-input-mask.mjs +180 -0
  133. package/fesm2022/elementar-rt-components-input-mask.mjs.map +1 -0
  134. package/fesm2022/elementar-rt-components-input-validator.mjs +24 -0
  135. package/fesm2022/elementar-rt-components-input-validator.mjs.map +1 -0
  136. package/fesm2022/elementar-rt-components-kanban-board.mjs +156 -0
  137. package/fesm2022/elementar-rt-components-kanban-board.mjs.map +1 -0
  138. package/fesm2022/elementar-rt-components-layout.mjs +188 -0
  139. package/fesm2022/elementar-rt-components-layout.mjs.map +1 -0
  140. package/fesm2022/elementar-rt-components-logo.mjs +43 -0
  141. package/fesm2022/elementar-rt-components-logo.mjs.map +1 -0
  142. package/fesm2022/elementar-rt-components-marquee.mjs +79 -0
  143. package/fesm2022/elementar-rt-components-marquee.mjs.map +1 -0
  144. package/fesm2022/elementar-rt-components-micro-chart.mjs +950 -0
  145. package/fesm2022/elementar-rt-components-micro-chart.mjs.map +1 -0
  146. package/fesm2022/elementar-rt-components-navigation.mjs +379 -0
  147. package/fesm2022/elementar-rt-components-navigation.mjs.map +1 -0
  148. package/fesm2022/elementar-rt-components-notifications.mjs +190 -0
  149. package/fesm2022/elementar-rt-components-notifications.mjs.map +1 -0
  150. package/fesm2022/elementar-rt-components-number-input.mjs +288 -0
  151. package/fesm2022/elementar-rt-components-number-input.mjs.map +1 -0
  152. package/fesm2022/elementar-rt-components-overlay-scrollbar.mjs +455 -0
  153. package/fesm2022/elementar-rt-components-overlay-scrollbar.mjs.map +1 -0
  154. package/fesm2022/elementar-rt-components-overlay.mjs +112 -0
  155. package/fesm2022/elementar-rt-components-overlay.mjs.map +1 -0
  156. package/fesm2022/elementar-rt-components-page-loading-bar.mjs +79 -0
  157. package/fesm2022/elementar-rt-components-page-loading-bar.mjs.map +1 -0
  158. package/fesm2022/elementar-rt-components-panel.mjs +105 -0
  159. package/fesm2022/elementar-rt-components-panel.mjs.map +1 -0
  160. package/fesm2022/elementar-rt-components-password-strength.mjs +474 -0
  161. package/fesm2022/elementar-rt-components-password-strength.mjs.map +1 -0
  162. package/fesm2022/elementar-rt-components-phone-input.mjs +637 -0
  163. package/fesm2022/elementar-rt-components-phone-input.mjs.map +1 -0
  164. package/fesm2022/elementar-rt-components-pin-input.mjs +197 -0
  165. package/fesm2022/elementar-rt-components-pin-input.mjs.map +1 -0
  166. package/fesm2022/elementar-rt-components-popover.mjs +262 -0
  167. package/fesm2022/elementar-rt-components-popover.mjs.map +1 -0
  168. package/fesm2022/elementar-rt-components-radio-card.mjs +102 -0
  169. package/fesm2022/elementar-rt-components-radio-card.mjs.map +1 -0
  170. package/fesm2022/elementar-rt-components-rail-nav.mjs +84 -0
  171. package/fesm2022/elementar-rt-components-rail-nav.mjs.map +1 -0
  172. package/fesm2022/elementar-rt-components-resizable-container.mjs +69 -0
  173. package/fesm2022/elementar-rt-components-resizable-container.mjs.map +1 -0
  174. package/fesm2022/elementar-rt-components-screen-loader.mjs +27 -0
  175. package/fesm2022/elementar-rt-components-screen-loader.mjs.map +1 -0
  176. package/fesm2022/elementar-rt-components-scroll-spy.mjs +165 -0
  177. package/fesm2022/elementar-rt-components-scroll-spy.mjs.map +1 -0
  178. package/fesm2022/elementar-rt-components-segmented.mjs +153 -0
  179. package/fesm2022/elementar-rt-components-segmented.mjs.map +1 -0
  180. package/fesm2022/elementar-rt-components-side-panel.mjs +110 -0
  181. package/fesm2022/elementar-rt-components-side-panel.mjs.map +1 -0
  182. package/fesm2022/elementar-rt-components-sidebar.mjs +423 -0
  183. package/fesm2022/elementar-rt-components-sidebar.mjs.map +1 -0
  184. package/fesm2022/elementar-rt-components-signature-pad.mjs +452 -0
  185. package/fesm2022/elementar-rt-components-signature-pad.mjs.map +1 -0
  186. package/fesm2022/elementar-rt-components-skeleton.mjs +56 -0
  187. package/fesm2022/elementar-rt-components-skeleton.mjs.map +1 -0
  188. package/fesm2022/elementar-rt-components-splash-screen.mjs +91 -0
  189. package/fesm2022/elementar-rt-components-splash-screen.mjs.map +1 -0
  190. package/fesm2022/elementar-rt-components-stepper.mjs +194 -0
  191. package/fesm2022/elementar-rt-components-stepper.mjs.map +1 -0
  192. package/fesm2022/elementar-rt-components-suggestions.mjs +76 -0
  193. package/fesm2022/elementar-rt-components-suggestions.mjs.map +1 -0
  194. package/fesm2022/elementar-rt-components-tab-panel.mjs +270 -0
  195. package/fesm2022/elementar-rt-components-tab-panel.mjs.map +1 -0
  196. package/fesm2022/elementar-rt-components-text-editor.mjs +1025 -0
  197. package/fesm2022/elementar-rt-components-text-editor.mjs.map +1 -0
  198. package/fesm2022/elementar-rt-components-thumbnail-maker.mjs +214 -0
  199. package/fesm2022/elementar-rt-components-thumbnail-maker.mjs.map +1 -0
  200. package/fesm2022/elementar-rt-components-timeline.mjs +122 -0
  201. package/fesm2022/elementar-rt-components-timeline.mjs.map +1 -0
  202. package/fesm2022/elementar-rt-components-timezone-select.mjs +351 -0
  203. package/fesm2022/elementar-rt-components-timezone-select.mjs.map +1 -0
  204. package/fesm2022/elementar-rt-components-upload.mjs +340 -0
  205. package/fesm2022/elementar-rt-components-upload.mjs.map +1 -0
  206. package/fesm2022/elementar-rt-components.mjs +6 -0
  207. package/fesm2022/elementar-rt-components.mjs.map +1 -0
  208. package/filter-builder/index.d.ts +107 -0
  209. package/form-renderer/index.d.ts +121 -0
  210. package/gauge/index.d.ts +21 -0
  211. package/icon/index.d.ts +17 -0
  212. package/image-resizer/index.d.ts +35 -0
  213. package/image-viewer/index.d.ts +63 -0
  214. package/incidents/index.d.ts +119 -0
  215. package/index.d.ts +2 -0
  216. package/inline-text-edit/index.d.ts +39 -0
  217. package/input-mask/index.d.ts +36 -0
  218. package/input-validator/index.d.ts +5 -0
  219. package/kanban-board/index.d.ts +68 -0
  220. package/layout/index.d.ts +75 -0
  221. package/logo/index.d.ts +21 -0
  222. package/marquee/index.d.ts +26 -0
  223. package/micro-chart/index.d.ts +193 -0
  224. package/navigation/index.d.ts +119 -0
  225. package/notifications/index.d.ts +84 -0
  226. package/number-input/index.d.ts +93 -0
  227. package/overlay/index.d.ts +12 -0
  228. package/overlay-scrollbar/index.d.ts +66 -0
  229. package/package.json +356 -0
  230. package/page-loading-bar/index.d.ts +20 -0
  231. package/panel/index.d.ts +43 -0
  232. package/password-strength/index.d.ts +109 -0
  233. package/phone-input/index.d.ts +94 -0
  234. package/pin-input/index.d.ts +48 -0
  235. package/popover/index.d.ts +75 -0
  236. package/radio-card/index.d.ts +37 -0
  237. package/rail-nav/index.d.ts +36 -0
  238. package/resizable-container/index.d.ts +21 -0
  239. package/screen-loader/index.d.ts +9 -0
  240. package/scroll-spy/index.d.ts +48 -0
  241. package/segmented/index.d.ts +54 -0
  242. package/side-panel/index.d.ts +42 -0
  243. package/sidebar/index.d.ts +143 -0
  244. package/signature-pad/index.d.ts +49 -0
  245. package/skeleton/index.d.ts +24 -0
  246. package/splash-screen/index.d.ts +31 -0
  247. package/stepper/index.d.ts +65 -0
  248. package/styles/_common.scss +776 -0
  249. package/styles/themes/cyan-orange.scss +41 -0
  250. package/styles/themes/default.scss +5 -0
  251. package/styles/themes/magenta-violet.scss +41 -0
  252. package/styles/themes/rose-red.scss +41 -0
  253. package/suggestions/index.d.ts +32 -0
  254. package/tab-panel/index.d.ts +96 -0
  255. package/text-editor/index.d.ts +191 -0
  256. package/thumbnail-maker/index.d.ts +35 -0
  257. package/timeline/index.d.ts +57 -0
  258. package/timezone-select/index.d.ts +72 -0
  259. package/upload/index.d.ts +134 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementar-rt-components-color-picker.mjs","sources":["../../../projects/components/color-picker/src/base.component.ts","../../../projects/components/color-picker/src/saturation/saturation.component.ts","../../../projects/components/color-picker/src/saturation/saturation.component.html","../../../projects/components/color-picker/src/hue/hue.component.ts","../../../projects/components/color-picker/src/hue/hue.component.html","../../../projects/components/color-picker/src/alpha/alpha.component.ts","../../../projects/components/color-picker/src/alpha/alpha.component.html","../../../projects/components/color-picker/src/color-picker/color-picker.component.ts","../../../projects/components/color-picker/src/color-picker/color-picker.component.html","../../../projects/components/color-picker/src/color-picker-thumbnail/color-picker-thumbnail.component.ts","../../../projects/components/color-picker/src/color-picker-thumbnail/color-picker-thumbnail.component.html","../../../projects/components/color-picker/src/position-manager.ts","../../../projects/components/color-picker/src/color-picker-trigger-for.directive.ts","../../../projects/components/color-picker/elementar-rt-components-color-picker.ts"],"sourcesContent":["import { afterNextRender, Directive, ElementRef, inject, DOCUMENT } from '@angular/core';\r\nimport { fromEvent, merge, Subject, takeUntil } from 'rxjs';\r\n\r\n\r\n@Directive()\r\nexport abstract class BaseComponent {\r\n private readonly subscriptions: any[] = [];\r\n private window: any = { pageXOffset: 0, pageYOffset: 0 };\r\n private readonly requestAnimationFrame: any;\r\n private mouseup = new Subject<void>();\r\n private readonly document = inject(DOCUMENT);\r\n protected readonly elementRef: ElementRef = inject(ElementRef);\r\n\r\n constructor() {\r\n this.window = this.document.defaultView;\r\n this.requestAnimationFrame = this.getRequestAnimationFrame();\r\n this.addEventListeners();\r\n }\r\n\r\n public abstract movePointer(coordinates: { x: number; y: number; height: number; width: number; }): void;\r\n\r\n private addEventListeners(): void {\r\n this.subscriptions.push(\r\n merge(\r\n fromEvent(this.elementRef.nativeElement, 'touchstart', { passive: true }),\r\n fromEvent(this.elementRef.nativeElement, 'mousedown')\r\n )\r\n // @ts-ignore\r\n .subscribe((e: TouchEvent | MouseEvent) => this.onEventChange(e))\r\n );\r\n }\r\n\r\n private onEventChange(event: MouseEvent | TouchEvent): void {\r\n this.calculate(event);\r\n\r\n merge(\r\n fromEvent(this.document, 'mouseup'),\r\n fromEvent(this.document, 'touchend')\r\n )\r\n .pipe(takeUntil(this.mouseup))\r\n .subscribe(() => this.mouseup.next());\r\n\r\n merge(\r\n fromEvent(this.document, 'mousemove'),\r\n fromEvent(this.document, 'touchmove', { passive: true })\r\n )\r\n .pipe(takeUntil(this.mouseup))\r\n // @ts-ignore\r\n .subscribe((e: MouseEvent | TouchEvent) => this.calculate(e));\r\n }\r\n\r\n private calculateCoordinates(event: MouseEvent | TouchEvent): void {\r\n const { width: elWidth, height: elHeight, top: elTop, left: elLeft } = this.elementRef.nativeElement.getBoundingClientRect();\r\n const pageX = typeof (event as MouseEvent).pageX === 'number'\r\n ? (event as MouseEvent).pageX : (event as TouchEvent).touches[0].pageX\r\n ;\r\n const pageY = typeof (event as MouseEvent).pageY === 'number'\r\n ? (event as MouseEvent).pageY : (event as TouchEvent).touches[0].pageY\r\n ;\r\n const x = Math.max(0, Math.min(pageX - (elLeft + this.window.pageXOffset), elWidth));\r\n const y = Math.max(0, Math.min(pageY - (elTop + this.window.pageYOffset), elHeight));\r\n this.movePointer({ x, y, height: elHeight, width: elWidth });\r\n }\r\n\r\n private calculate(event: MouseEvent | TouchEvent): void {\r\n if (!event.type.includes('touch')) {\r\n // event.preventDefault();\r\n }\r\n\r\n if (!this.requestAnimationFrame) {\r\n return this.calculateCoordinates(event);\r\n }\r\n\r\n // @ts-ignore\r\n this.requestAnimationFrame(() => this.calculateCoordinates(event));\r\n }\r\n\r\n private getRequestAnimationFrame(): () => void {\r\n return this.window.requestAnimationFrame ||\r\n this.window.webkitRequestAnimationFrame ||\r\n this.window.mozRequestAnimationFrame ||\r\n this.window.oRequestAnimationFrame ||\r\n this.window.msRequestAnimationFrame;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.mouseup.next();\r\n this.mouseup.complete();\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n this.subscriptions.length = 0;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n inject,\r\n input, model,\r\n OnInit,\r\n output,\r\n Renderer2,\r\n SimpleChanges,\r\n viewChild\r\n} from '@angular/core';\r\nimport { BaseComponent } from '../base.component';\r\nimport { TinyColor } from '@ctrl/tinycolor';\r\n\r\n@Component({\r\n selector: 'emr-saturation',\r\n exportAs: 'emrSaturation',\r\n templateUrl: './saturation.component.html',\r\n styleUrl: './saturation.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n 'class': 'emr-saturation'\r\n }\r\n})\r\nexport class SaturationComponent extends BaseComponent implements OnInit {\r\n private _renderer = inject(Renderer2);\r\n readonly pointer = viewChild.required<ElementRef>('pointer');\r\n\r\n tinyColor = model.required<TinyColor>();\r\n colorFromHue = input<TinyColor | undefined | null>();\r\n\r\n private tmpColor!: TinyColor;\r\n private pointerColor!: TinyColor;\r\n\r\n readonly colorChange = output<any>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.tmpColor = this.tinyColor();\r\n this._renderer.setStyle(\r\n this.elementRef.nativeElement, 'background-color', this.getBackgroundColor(this.tinyColor())\r\n );\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['colorFromHue']) {\r\n const prevColor = changes['colorFromHue'].previousValue;\r\n const currentColor = changes['colorFromHue'].currentValue;\r\n\r\n if (!currentColor || prevColor?.equals(currentColor)) {\r\n return;\r\n }\r\n\r\n const oldColorHsv = this.pointerColor ? this.pointerColor.toHsv() : this.tmpColor.toHsv();\r\n const newColorHsv = currentColor.toHsv();\r\n const newColor = new TinyColor({\r\n h: newColorHsv.h,\r\n s: oldColorHsv.s,\r\n v: oldColorHsv.v,\r\n a: 1,\r\n format: 'hsv'\r\n });\r\n this.tmpColor = newColor;\r\n this._renderer.setStyle(\r\n this.elementRef.nativeElement, 'background-color', this.getBackgroundColor(changes['colorFromHue'].currentValue)\r\n );\r\n this._setPointerBgColor(newColor);\r\n this.colorChange.emit(newColor);\r\n }\r\n\r\n if (changes['tinyColor']) {\r\n const prevColor = changes['tinyColor'].previousValue;\r\n const currentColor = changes['tinyColor'].currentValue;\r\n\r\n if (prevColor?.equals(currentColor)) {\r\n return;\r\n }\r\n\r\n this.tmpColor = currentColor.clone();\r\n const hsv = this.tmpColor.toHsv();\r\n this._renderer.setStyle(\r\n this.elementRef.nativeElement, 'background-color', this.getBackgroundColor(this.tmpColor)\r\n );\r\n this.changePointerPosition(hsv.s * 100, hsv.v * 100);\r\n this._setPointerBgColor(this.tmpColor);\r\n }\r\n }\r\n\r\n // @ts-ignore\r\n movePointer({ x, y, height, width }): void {\r\n const saturationX = (x * 100) / width;\r\n const bright = -((y * 100) / height) + 100;\r\n this.changePointerPosition(saturationX, bright);\r\n const hsv = this.tmpColor.toHsv();\r\n\r\n const normalizedX = Math.max(0, Math.min(x / width, 1));\r\n const normalizedY = Math.max(0, Math.min(y / height, 1));\r\n\r\n const saturation = normalizedX;\r\n const value = 1 - normalizedY; // Y=0 (верх) это Value=1, Y=height (низ) это Value=0\r\n\r\n // Убедимся, что hue в пределах 0-360\r\n const validHue = ((hsv.h % 360) + 360) % 360;\r\n const newColor = new TinyColor({\r\n h: validHue,\r\n s: saturation,\r\n v: value,\r\n a: 1,\r\n format: 'hsv'\r\n });\r\n this._renderer.setStyle(this.pointer().nativeElement, 'background-color', newColor.toRgbString());\r\n this.pointerColor = newColor;\r\n this.colorChange.emit(newColor);\r\n }\r\n\r\n private getBackgroundColor(tinyColor: TinyColor) {\r\n const hsl = tinyColor.toHsl();\r\n return new TinyColor({\r\n h: hsl.h,\r\n s: 1,\r\n l: 0.5,\r\n a: 1,\r\n format: 'hsl'\r\n }).toRgbString();\r\n }\r\n\r\n private changePointerPosition(x: number, y: number): void {\r\n const pointer = this.pointer();\r\n this._renderer.setStyle(pointer.nativeElement, 'top', `${100 - y}%`);\r\n this._renderer.setStyle(pointer.nativeElement, 'left', `${x}%`);\r\n }\r\n\r\n private _setPointerBgColor(tinyColor: TinyColor) {\r\n this.pointerColor = tinyColor;\r\n this._renderer.setStyle(this.pointer().nativeElement, 'background-color', tinyColor.toRgbString());\r\n }\r\n}\r\n","<div #pointer class=\"pointer\"></div>\r\n","import {\r\n ChangeDetectionStrategy, ChangeDetectorRef,\r\n Component, ElementRef,\r\n inject, input,\r\n OnChanges, output,\r\n Renderer2, SimpleChanges,\r\n viewChild\r\n} from '@angular/core';\r\nimport { BaseComponent } from '../base.component';\r\nimport { TinyColor } from '@ctrl/tinycolor';\r\n\r\n@Component({\r\n selector: 'emr-hue',\r\n exportAs: 'emrHue',\r\n templateUrl: './hue.component.html',\r\n styleUrl: './hue.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n 'class': 'emr-hue',\r\n }\r\n})\r\nexport class HueComponent extends BaseComponent implements OnChanges {\r\n private cdr = inject(ChangeDetectorRef);\r\n private _renderer = inject(Renderer2);\r\n readonly pointer = viewChild.required<ElementRef>('pointer');\r\n\r\n tinyColor = input.required<TinyColor>();\r\n\r\n readonly colorChange = output<TinyColor>();\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['tinyColor'] && changes['tinyColor'].previousValue !== changes['tinyColor'].currentValue) {\r\n this.changePointerPosition(changes['tinyColor'].currentValue);\r\n this._setPointerBgColor(changes['tinyColor'].currentValue);\r\n }\r\n }\r\n\r\n // @ts-ignore\r\n public movePointer({ x, y, height, width }): void {\r\n let h = (x / width) * 360;\r\n\r\n if (h >= 360) {\r\n h = 359;\r\n }\r\n\r\n const newColor = new TinyColor(`hsv(${h}, 100%, 100%)`).setAlpha(1);\r\n this.changePointerPosition(newColor);\r\n this._renderer.setStyle(this.pointer().nativeElement, 'background-color', newColor.toRgbString());\r\n this.colorChange.emit(newColor);\r\n }\r\n\r\n /**\r\n * hue value is in range from 0 to 360°\r\n */\r\n private changePointerPosition(tinyColor: TinyColor): void {\r\n const x = tinyColor.toHsl().h / 360 * 100;\r\n this._renderer.setStyle(this.pointer().nativeElement, 'left', `${x}%`);\r\n }\r\n\r\n private _setPointerBgColor(tinyColor: TinyColor) {\r\n const hsv = tinyColor.toHsv();\r\n const newColor = new TinyColor(`hsv(${hsv.h}, 100%, 100%)`).setAlpha(1);\r\n this._renderer.setStyle(this.pointer().nativeElement, 'background-color', newColor.toRgbString());\r\n }\r\n}\r\n","<div #pointer class=\"pointer\"></div>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n inject, input,\r\n OnChanges, OnInit, output,\r\n Renderer2, SimpleChanges,\r\n viewChild\r\n} from '@angular/core';\r\nimport { BaseComponent } from '../base.component';\r\nimport { NgStyle } from '@angular/common';\r\nimport { TinyColor } from '@ctrl/tinycolor';\r\n\r\n@Component({\r\n selector: 'emr-alpha',\r\n exportAs: 'emrAlpha',\r\n imports: [\r\n NgStyle\r\n ],\r\n templateUrl: './alpha.component.html',\r\n styleUrl: './alpha.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n 'class': 'emr-alpha'\r\n }\r\n})\r\nexport class AlphaComponent extends BaseComponent implements OnChanges, OnInit {\r\n private _renderer = inject(Renderer2);\r\n private _pointer = viewChild.required<ElementRef>('pointer');\r\n private _pointerBg = viewChild.required<ElementRef>('pointerBg');\r\n\r\n tinyColor = input.required<TinyColor>();\r\n colorFromHue = input<TinyColor | undefined | null>();\r\n\r\n private tmpColor!: TinyColor;\r\n private alpha = 1;\r\n\r\n readonly alphaChange = output<any>();\r\n\r\n ngOnInit() {\r\n this.tmpColor = this.tinyColor();\r\n this.alpha = this.tmpColor.getAlpha();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['tinyColor'] && changes['tinyColor'].previousValue !== changes['tinyColor'].currentValue) {\r\n if (!changes['tinyColor'].currentValue) {\r\n return;\r\n }\r\n\r\n this.tmpColor = changes['tinyColor'].currentValue.clone();\r\n this.alpha = this.tmpColor.getAlpha();\r\n this.changePointerPosition(this.tmpColor.getAlpha());\r\n this._setPointerBgColor(this.tmpColor);\r\n }\r\n\r\n if (changes['colorFromHue'] && changes['colorFromHue'].previousValue !== changes['colorFromHue'].currentValue) {\r\n if (!changes['colorFromHue'].currentValue) {\r\n return;\r\n }\r\n\r\n this.tmpColor = changes['colorFromHue'].currentValue.clone().setAlpha(this.alpha);\r\n this._setPointerBgColor(this.tmpColor);\r\n }\r\n }\r\n\r\n // @ts-ignore\r\n movePointer({ x, y, height, width }): void {\r\n const alpha = x / width;\r\n this.changePointerPosition(alpha);\r\n const newColor = this.tmpColor.clone().setAlpha(alpha);\r\n this._renderer.setStyle(this._pointerBg().nativeElement, 'background-color', newColor.toRgbString());\r\n this.alphaChange.emit(alpha);\r\n }\r\n\r\n get gradient(): string {\r\n const rgba = this.tmpColor.toRgb();\r\n const orientation = 'right';\r\n return `linear-gradient(to ${orientation}, rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, 0) 0%, rgb(${rgba.r}, ${rgba.g}, ${rgba.b}) 100%)`;\r\n }\r\n\r\n /**\r\n * hue value is in range from 0 to 360°\r\n */\r\n private changePointerPosition(alpha: number): void {\r\n const x = alpha * 100;\r\n const orientation = 'left';\r\n this._renderer.setStyle(this._pointer().nativeElement, orientation, `${x}%`);\r\n this.alpha = alpha;\r\n }\r\n\r\n private _setPointerBgColor(tinyColor: TinyColor) {\r\n this._renderer.setStyle(\r\n this._pointerBg().nativeElement, 'background-color', tinyColor.clone().setAlpha(this.alpha).toRgbString()\r\n );\r\n }\r\n}\r\n","<div #pointer class=\"pointer\">\r\n <div #pointerBg class=\"pointer-bg\"></div>\r\n</div>\r\n<div class=\"gradient\" [ngStyle]=\"{ 'background': gradient }\"></div>\r\n","import {\r\n booleanAttribute,\r\n ChangeDetectionStrategy, ChangeDetectorRef,\r\n Component,\r\n forwardRef, inject,\r\n input, OnChanges,\r\n OnInit, output, signal, SimpleChanges\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { ColorPickerResultFormat } from '../properties';\r\nimport { SaturationComponent } from '../saturation/saturation.component';\r\nimport { HueComponent } from '../hue/hue.component';\r\nimport { AlphaComponent } from '../alpha/alpha.component';\r\nimport { TinyColor } from '@ctrl/tinycolor';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { MatIcon } from '@angular/material/icon';\r\n\r\n@Component({\r\n selector: 'emr-color-picker',\r\n exportAs: 'emrColorPicker',\r\n imports: [\r\n FormsModule,\r\n AlphaComponent,\r\n SaturationComponent,\r\n HueComponent,\r\n MatIconButton,\r\n MatIcon\r\n ],\r\n templateUrl: './color-picker.component.html',\r\n styleUrl: './color-picker.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ColorPickerComponent),\r\n multi: true\r\n }\r\n ],\r\n host: {\r\n 'class': 'emr-color-picker',\r\n '[class.is-disabled]': '_disabled()',\r\n '[class.as-dropdown]': 'asDropdown()',\r\n '(contextmenu)': '_handleContextMenu($event)'\r\n }\r\n})\r\nexport class ColorPickerComponent implements OnInit, OnChanges, ControlValueAccessor {\r\n private cdr = inject(ChangeDetectorRef);\r\n\r\n color = input<string>('');\r\n disabled = input(false, {\r\n transform: booleanAttribute\r\n });\r\n asDropdown = input(true, {\r\n transform: booleanAttribute\r\n });\r\n showOpacity = input(true, {\r\n transform: booleanAttribute\r\n });\r\n resultFormat = input<ColorPickerResultFormat>('rgb');\r\n\r\n readonly colorChange = output<string>();\r\n readonly rawColorChange = output<TinyColor>();\r\n\r\n private tmpColor!: TinyColor;\r\n protected hexColor!: string;\r\n\r\n protected _color = signal<TinyColor>(new TinyColor('red'));\r\n protected _colorFromHue = signal<TinyColor | undefined | null>(null);\r\n protected _disabled = signal(false);\r\n protected alpha = signal(1);\r\n\r\n ngOnInit() {\r\n if (this.color()) {\r\n this._setColor(this.color());\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['color'] && changes['color'].previousValue !== changes['color'].currentValue) {\r\n this._setColor(changes['color'].currentValue);\r\n }\r\n\r\n if (changes['disabled'] && changes['disabled'].previousValue !== changes['disabled'].currentValue) {\r\n this._disabled.set(coerceBooleanProperty(changes['disabled'].currentValue));\r\n }\r\n }\r\n\r\n onChange: any = () => {};\r\n onTouched: any = () => {};\r\n\r\n writeValue(color: string) {\r\n this._setColor(color);\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: BooleanInput) {\r\n this._disabled.set(coerceBooleanProperty(isDisabled));\r\n }\r\n\r\n protected async copyToClipboard(event: MouseEvent, hexInput: HTMLInputElement) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n const color = new TinyColor(this.hexColor);\r\n\r\n if (color.isValid) {\r\n await navigator.clipboard.writeText(color.toHexString());\r\n }\r\n\r\n hexInput.blur();\r\n }\r\n\r\n protected onSaturationColorChange(tinyColor: TinyColor) {\r\n this.tmpColor = tinyColor.clone();\r\n const newColor = tinyColor.clone().setAlpha(this.alpha());\r\n this.rawColorChange.emit(newColor);\r\n this.emitEvent(newColor);\r\n this._setHexColor(newColor);\r\n }\r\n\r\n protected _handleContextMenu(event: Event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n protected onAlphaChange(alpha: number) {\r\n this.alpha.set(alpha);\r\n const newColor = this.tmpColor.clone();\r\n newColor.setAlpha(alpha);\r\n this.rawColorChange.emit(newColor.clone().setAlpha(this.alpha()));\r\n this.emitEvent(newColor);\r\n }\r\n\r\n protected onHueColorChange(color: TinyColor) {\r\n this._colorFromHue.set(color);\r\n }\r\n\r\n protected onHexColorChange(color: string) {\r\n if (!color.startsWith('#')) {\r\n return;\r\n }\r\n\r\n if (color.length === 4 || color.length === 7) {\r\n const hexColor = new TinyColor(color);\r\n\r\n if (!hexColor.isValid || hexColor.equals(this._color())) {\r\n return;\r\n }\r\n\r\n this._setColor(color, false);\r\n this.emitEvent(hexColor);\r\n }\r\n }\r\n\r\n protected onHexColorBlur() {\r\n if (!this.hexColor.trim()) {\r\n this.hexColor = this.tmpColor.toHexString();\r\n }\r\n }\r\n\r\n protected _setHexColor(tinyColor: TinyColor) {\r\n if (!tinyColor.isValid) {\r\n return;\r\n }\r\n\r\n const hexColor = new TinyColor(this.hexColor);\r\n\r\n if (hexColor.isValid && hexColor.equals(tinyColor)) {\r\n return;\r\n }\r\n\r\n this.hexColor = tinyColor.toHexString();\r\n }\r\n\r\n private _setColor(color: string, isSetHexColor = true) {\r\n if (!color) {\r\n color = 'red';\r\n }\r\n\r\n let newColor = new TinyColor(color);\r\n\r\n if (!newColor.isValid) {\r\n return;\r\n }\r\n\r\n if (!newColor.equals(this._color())) {\r\n this._color.set(newColor);\r\n this.tmpColor = this._color().clone();\r\n\r\n if (isSetHexColor) {\r\n this.hexColor = this.tmpColor.toHexString();\r\n }\r\n }\r\n }\r\n\r\n private emitEvent(newColor: TinyColor) {\r\n let format = newColor.toRgbString();\r\n\r\n if (this.resultFormat() === 'hex') {\r\n format = newColor.toHexString();\r\n } else if (this.resultFormat() === 'hsl') {\r\n format = newColor.toHslString();\r\n } else if (this.resultFormat() === 'hsv') {\r\n format = newColor.toHsvString();\r\n }\r\n\r\n this.colorChange.emit(format);\r\n this.onChange(format);\r\n }\r\n}\r\n","<emr-saturation [colorFromHue]=\"_colorFromHue()\"\r\n [tinyColor]=\"_color()\"\r\n (colorChange)=\"onSaturationColorChange($event)\"/>\r\n<emr-hue [tinyColor]=\"_color()\"\r\n (colorChange)=\"onHueColorChange($event)\"/>\r\n@if (showOpacity()) {\r\n <emr-alpha [colorFromHue]=\"_colorFromHue()\"\r\n [tinyColor]=\"_color()\"\r\n (alphaChange)=\"onAlphaChange($event)\"/>\r\n}\r\n<div class=\"relative h-12 bg-surface-container-highest\r\n has-[:focus]:bg-surface-container-lowest has-[:focus]:shadow-sm rounded-lg\">\r\n <div class=\"text-4xs absolute start-3 top-1\">HEX</div>\r\n <input #hexInput\r\n type=\"text\" maxlength=\"7\"\r\n class=\"h-10 mt-2 px-3 focus:outline-none w-full\"\r\n [(ngModel)]=\"hexColor\"\r\n (ngModelChange)=\"onHexColorChange($event)\"\r\n (blur)=\"onHexColorBlur()\">\r\n <div class=\"absolute right-0 top-1/2 -translate-y-1/2 z-1\">\r\n <button mat-icon-button (mousedown)=\"copyToClipboard($event, hexInput)\">\r\n <mat-icon>content_copy</mat-icon>\r\n </button>\r\n </div>\r\n</div>\r\n","import { Component, ElementRef, inject, input, SimpleChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'emr-color-picker-thumbnail,[emr-color-picker-thumbnail]',\r\n exportAs: 'emrColorPickerThumbnail',\r\n templateUrl: './color-picker-thumbnail.component.html',\r\n styleUrl: './color-picker-thumbnail.component.scss',\r\n host: {\r\n 'class': 'emr-color-picker-thumbnail'\r\n }\r\n})\r\nexport class ColorPickerThumbnailComponent {\r\n private _elementRef = inject(ElementRef);\r\n\r\n color = input('');\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (!this.color()) {\r\n return;\r\n }\r\n\r\n this._elementRef.nativeElement.style.setProperty('--emr-color-picker-thumbnail-bg', this.color());\r\n }\r\n}\r\n","","import { ConnectedPosition } from '@angular/cdk/overlay';\r\nimport { ColorPickerPosition } from './properties';\r\n\r\nexport class PositionManager {\r\n private _positions: { [prop: string]: ConnectedPosition } = {\r\n 'below-start': {\r\n originY: 'bottom',\r\n overlayY: 'top',\r\n originX: 'start',\r\n overlayX: 'start',\r\n panelClass: ['emr-color-picker-below', 'emr-color-picker-below-start']\r\n },\r\n 'below-center': {\r\n originY: 'bottom',\r\n overlayY: 'top',\r\n originX: 'center',\r\n overlayX: 'center',\r\n panelClass: ['emr-color-picker-below', 'emr-color-picker-below-center']\r\n },\r\n 'below-end': {\r\n originY: 'bottom',\r\n overlayY: 'top',\r\n originX: 'end',\r\n overlayX: 'end',\r\n panelClass: ['emr-color-picker-below', 'emr-color-picker-below-end']\r\n },\r\n 'above-start': {\r\n originY: 'top',\r\n overlayY: 'bottom',\r\n originX: 'start',\r\n overlayX: 'start',\r\n panelClass: ['emr-color-picker-above', 'emr-color-picker-above-start']\r\n },\r\n 'above-center': {\r\n originY: 'top',\r\n overlayY: 'bottom',\r\n originX: 'center',\r\n overlayX: 'center',\r\n panelClass: ['emr-color-picker-above', 'emr-color-picker-above-center']\r\n },\r\n 'above-end': {\r\n originY: 'top',\r\n overlayY: 'bottom',\r\n originX: 'end',\r\n overlayX: 'end',\r\n panelClass: ['emr-color-picker-above', 'emr-color-picker-above-end']\r\n },\r\n 'before-start': {\r\n originY: 'top',\r\n overlayY: 'top',\r\n originX: 'start',\r\n overlayX: 'end',\r\n panelClass: ['emr-color-picker-before', 'emr-color-picker-before-start']\r\n },\r\n 'before-center': {\r\n originY: 'center',\r\n overlayY: 'center',\r\n originX: 'start',\r\n overlayX: 'end',\r\n panelClass: ['emr-color-picker-before', 'emr-color-picker-before-center']\r\n },\r\n 'before-end': {\r\n originY: 'bottom',\r\n overlayY: 'bottom',\r\n originX: 'start',\r\n overlayX: 'end',\r\n panelClass: ['emr-color-picker-before', 'emr-color-picker-before-end']\r\n },\r\n 'after-end': {\r\n originY: 'bottom',\r\n overlayY: 'bottom',\r\n originX: 'end',\r\n overlayX: 'start',\r\n panelClass: ['emr-color-picker-after', 'emr-color-picker-after-end']\r\n },\r\n 'after-center': {\r\n originY: 'center',\r\n overlayY: 'center',\r\n originX: 'end',\r\n overlayX: 'start',\r\n panelClass: ['emr-color-picker-after', 'emr-color-picker-after-center']\r\n },\r\n 'after-start': {\r\n originY: 'top',\r\n overlayY: 'top',\r\n originX: 'end',\r\n overlayX: 'start',\r\n panelClass: ['emr-color-picker-after', 'emr-color-picker-after-start']\r\n }\r\n };\r\n\r\n private _positionPairs: any = {\r\n 'below-start': 'above-start',\r\n 'below-center': 'above-center',\r\n 'below-end': 'above-end',\r\n 'above-start': 'below-start',\r\n 'above-center': 'below-center',\r\n 'above-end': 'below-end',\r\n 'before-end': 'before-start',\r\n 'before-center': 'after-center',\r\n 'before-start': 'before-end',\r\n 'after-end': 'after-start',\r\n 'after-center': 'before-center',\r\n 'after-start': 'after-end'\r\n };\r\n\r\n build(position: ColorPickerPosition): ConnectedPosition[] {\r\n return [this._positions[position], this._positions[this._positionPairs[position]]];\r\n }\r\n}\r\n","import {\r\n DestroyRef,\r\n Directive,\r\n ElementRef,\r\n inject, Injector, input, OnDestroy,\r\n output,\r\n TemplateRef,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport {\r\n ConnectedPosition,\r\n FlexibleConnectedPositionStrategy,\r\n Overlay,\r\n OverlayConfig,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { _getEventTarget } from '@angular/cdk/platform';\r\nimport { PositionManager } from './position-manager';\r\nimport { ColorPickerPosition } from './properties';\r\n\r\n@Directive({\r\n selector: '[emrColorPickerTriggerFor]',\r\n exportAs: 'emrColorPickerTriggerFor',\r\n host: {\r\n 'class': 'emr-color-picker-trigger-for',\r\n '(click)': '_handleClick($event)'\r\n }\r\n})\r\nexport class ColorPickerTriggerForDirective implements OnDestroy{\r\n private _overlay = inject(Overlay);\r\n private _elementRef: ElementRef<HTMLElement> = inject(ElementRef);\r\n private _directionality = inject(Directionality, { optional: true });\r\n private _viewContainerRef = inject(ViewContainerRef);\r\n private _injector = inject(Injector);\r\n private _destroyRef = inject(DestroyRef);\r\n\r\n colorPickerTemplateRef = input.required<TemplateRef<any>>({\r\n alias: 'emrColorPickerTriggerFor'\r\n });\r\n position = input<ColorPickerPosition>('below-center');\r\n\r\n readonly opened = output<void>();\r\n readonly closed = output<void>();\r\n\r\n private _portal!: TemplatePortal;\r\n private _overlayRef: OverlayRef | null = null;\r\n private _destroy$: Subject<void> = new Subject();\r\n\r\n constructor() {\r\n this._setType();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._close();\r\n this._destroyOverlay();\r\n }\r\n\r\n get api() {\r\n return {\r\n isOpen: () => this._isOpen(),\r\n open: () => this._open(),\r\n close: () => this._close(),\r\n };\r\n }\r\n\r\n protected _handleClick(event: MouseEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n !this._isOpen() ? this._open() : this._close();\r\n }\r\n\r\n private _isOpen() {\r\n return !!this._overlayRef?.hasAttached();\r\n }\r\n\r\n private _open() {\r\n if (!this._isOpen() && this.colorPickerTemplateRef() != null) {\r\n this.opened.emit();\r\n this._overlayRef = this._overlay.create(this._getOverlayConfig());\r\n this._overlayRef.attach(this._getPopoverContentPortal());\r\n this._subscribeToOutsideClicks();\r\n }\r\n }\r\n\r\n private _close() {\r\n this.closed.emit();\r\n this._overlayRef!?.detach();\r\n }\r\n\r\n private _destroyOverlay() {\r\n this._overlayRef?.dispose();\r\n this._overlayRef = null;\r\n }\r\n\r\n private _subscribeToOutsideClicks(): void {\r\n if (this._overlayRef) {\r\n this._overlayRef\r\n .outsidePointerEvents()\r\n .pipe(\r\n takeUntil(this._destroy$)\r\n )\r\n .subscribe(event => {\r\n const target = _getEventTarget(event) as Element;\r\n const element = this._elementRef.nativeElement;\r\n\r\n if (target !== element && !element.contains(target)) {\r\n this._close();\r\n }\r\n })\r\n ;\r\n }\r\n }\r\n\r\n private _getPopoverContentPortal() {\r\n this._portal = new TemplatePortal(\r\n this.colorPickerTemplateRef(),\r\n this._viewContainerRef,\r\n null,\r\n this._injector\r\n );\r\n\r\n return this._portal;\r\n }\r\n\r\n private _getOverlayConfig() {\r\n return new OverlayConfig({\r\n positionStrategy: this._getOverlayPositionStrategy(),\r\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\r\n direction: this._directionality || undefined,\r\n panelClass: 'emr-color-picker-overlay-panel'\r\n });\r\n }\r\n\r\n private _getOverlayPositionStrategy(): FlexibleConnectedPositionStrategy {\r\n return this._overlay\r\n .position()\r\n .flexibleConnectedTo(this._elementRef)\r\n .withLockedPosition()\r\n .withGrowAfterOpen()\r\n .withPositions(this._getOverlayPositions());\r\n }\r\n\r\n private _getOverlayPositions(): ConnectedPosition[] {\r\n return (new PositionManager()).build(this.position());\r\n }\r\n\r\n private _setType() {\r\n const element = this._elementRef.nativeElement;\r\n\r\n if (element.nodeName === 'BUTTON' && !element.getAttribute('type')) {\r\n // Prevents form submissions.\r\n element.setAttribute('type', 'button');\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, PLATFORM_ID, DOCUMENT, effect, TemplateRef, Directive, ViewContainerRef, contentChild, computed, output, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { MatIconButton } from '@angular/material/button';
4
+ import { isPlatformBrowser } from '@angular/common';
5
+ import { signalStore, withState, withMethods, patchState, withHooks } from '@ngrx/signals';
6
+ import { TemplatePortal, CdkPortalOutlet } from '@angular/cdk/portal';
7
+
8
+ const COLOR_SCHEME_LOCAL_KEY = 'elementar-ui-color-scheme';
9
+
10
+ const initialState = {
11
+ theme: 'light',
12
+ };
13
+ const ColorSchemeStore = signalStore(withState(initialState), withMethods((store) => {
14
+ const platformId = inject(PLATFORM_ID);
15
+ return {
16
+ setScheme(scheme) {
17
+ patchState(store, { theme: scheme });
18
+ if (isPlatformBrowser(platformId)) {
19
+ localStorage.setItem(COLOR_SCHEME_LOCAL_KEY, scheme);
20
+ }
21
+ },
22
+ };
23
+ }), withHooks({
24
+ onInit(store) {
25
+ const document = inject(DOCUMENT);
26
+ effect(() => {
27
+ const scheme = store.theme();
28
+ if (scheme === 'dark') {
29
+ document.documentElement.classList.add('dark');
30
+ }
31
+ else if (scheme === 'light') {
32
+ document.documentElement.classList.remove('dark');
33
+ }
34
+ });
35
+ },
36
+ }));
37
+
38
+ class ColorSchemeLightDirective {
39
+ templateRef = inject(TemplateRef);
40
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ColorSchemeLightDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
41
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.10", type: ColorSchemeLightDirective, isStandalone: true, selector: "[emrColorSchemeLight]", ngImport: i0 });
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ColorSchemeLightDirective, decorators: [{
44
+ type: Directive,
45
+ args: [{
46
+ selector: '[emrColorSchemeLight]'
47
+ }]
48
+ }] });
49
+
50
+ class ColorSchemeDarkDirective {
51
+ templateRef = inject(TemplateRef);
52
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ColorSchemeDarkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
53
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.10", type: ColorSchemeDarkDirective, isStandalone: true, selector: "[emrColorSchemeDark]", ngImport: i0 });
54
+ }
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ColorSchemeDarkDirective, decorators: [{
56
+ type: Directive,
57
+ args: [{
58
+ selector: '[emrColorSchemeDark]'
59
+ }]
60
+ }] });
61
+
62
+ class ColorSchemeSwitcherComponent {
63
+ store = inject(ColorSchemeStore);
64
+ viewContainerRef = inject(ViewContainerRef);
65
+ lightRef = contentChild.required(ColorSchemeLightDirective);
66
+ darkRef = contentChild.required(ColorSchemeDarkDirective);
67
+ colorScheme = computed(() => this.store.theme(), ...(ngDevMode ? [{ debugName: "colorScheme" }] : []));
68
+ colorSchemeChanged = output();
69
+ portal;
70
+ ngOnInit() {
71
+ this.setPortal();
72
+ }
73
+ toggleScheme() {
74
+ const newScheme = this.store.theme() === 'dark' ? 'light' : 'dark';
75
+ this.store.setScheme(newScheme);
76
+ this.setPortal();
77
+ this.colorSchemeChanged.emit(this.store.theme());
78
+ }
79
+ setPortal() {
80
+ if (this.colorScheme() === 'light') {
81
+ this.portal = new TemplatePortal(this.lightRef().templateRef, this.viewContainerRef);
82
+ }
83
+ else if (this.colorScheme() === 'dark') {
84
+ this.portal = new TemplatePortal(this.darkRef().templateRef, this.viewContainerRef);
85
+ }
86
+ }
87
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ColorSchemeSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
88
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.10", type: ColorSchemeSwitcherComponent, isStandalone: true, selector: "emr-color-scheme-switcher", outputs: { colorSchemeChanged: "colorSchemeChanged" }, host: { attributes: { "ngSkipHydration": "true" }, classAttribute: "emr-color-scheme-switcher" }, queries: [{ propertyName: "lightRef", first: true, predicate: ColorSchemeLightDirective, descendants: true, isSignal: true }, { propertyName: "darkRef", first: true, predicate: ColorSchemeDarkDirective, descendants: true, isSignal: true }], exportAs: ["emrColorSchemeSwitcher"], ngImport: i0, template: "<button mat-icon-button (click)=\"toggleScheme()\">\r\n <ng-container [cdkPortalOutlet]=\"portal\"/>\r\n</button>\r\n", styles: [":host{display:block;width:max-content}\n"], dependencies: [{ kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
89
+ }
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: ColorSchemeSwitcherComponent, decorators: [{
91
+ type: Component,
92
+ args: [{ selector: 'emr-color-scheme-switcher', exportAs: 'emrColorSchemeSwitcher', imports: [
93
+ MatIconButton,
94
+ CdkPortalOutlet,
95
+ ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
96
+ 'class': 'emr-color-scheme-switcher',
97
+ ngSkipHydration: 'true' // important! to prevent double render for icons
98
+ }, template: "<button mat-icon-button (click)=\"toggleScheme()\">\r\n <ng-container [cdkPortalOutlet]=\"portal\"/>\r\n</button>\r\n", styles: [":host{display:block;width:max-content}\n"] }]
99
+ }], propDecorators: { lightRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ColorSchemeLightDirective), { isSignal: true }] }], darkRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ColorSchemeDarkDirective), { isSignal: true }] }], colorSchemeChanged: [{ type: i0.Output, args: ["colorSchemeChanged"] }] } });
100
+
101
+ /**
102
+ * Generated bundle index. Do not edit.
103
+ */
104
+
105
+ export { COLOR_SCHEME_LOCAL_KEY, ColorSchemeDarkDirective, ColorSchemeLightDirective, ColorSchemeStore, ColorSchemeSwitcherComponent };
106
+ //# sourceMappingURL=elementar-rt-components-color-scheme.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementar-rt-components-color-scheme.mjs","sources":["../../../projects/components/color-scheme/src/color-scheme.model.ts","../../../projects/components/color-scheme/src/color-scheme.store.ts","../../../projects/components/color-scheme/src/color-scheme-light.directive.ts","../../../projects/components/color-scheme/src/color-scheme-dark.directive.ts","../../../projects/components/color-scheme/src/color-scheme-switcher/color-scheme-switcher.component.ts","../../../projects/components/color-scheme/src/color-scheme-switcher/color-scheme-switcher.component.html","../../../projects/components/color-scheme/elementar-rt-components-color-scheme.ts"],"sourcesContent":["export const COLOR_SCHEME_LOCAL_KEY = 'elementar-ui-color-scheme';\r\nexport type ColorScheme = 'light' | 'dark';\r\n","import { effect, inject, PLATFORM_ID, DOCUMENT } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { patchState, signalStore, withHooks, withMethods, withState } from '@ngrx/signals';\r\nimport { COLOR_SCHEME_LOCAL_KEY, ColorScheme } from './color-scheme.model';\r\n\r\ntype ColorSchemeState = {\r\n theme: ColorScheme;\r\n};\r\n\r\nconst initialState: ColorSchemeState = {\r\n theme: 'light',\r\n};\r\n\r\nexport const ColorSchemeStore = signalStore(\r\n withState(initialState),\r\n withMethods((store) => {\r\n const platformId = inject(PLATFORM_ID);\r\n return {\r\n setScheme(scheme: ColorScheme): void {\r\n patchState(store, { theme: scheme });\r\n if (isPlatformBrowser(platformId)) {\r\n localStorage.setItem(COLOR_SCHEME_LOCAL_KEY, scheme);\r\n }\r\n },\r\n };\r\n }),\r\n withHooks({\r\n onInit(store) {\r\n const document = inject(DOCUMENT);\r\n\r\n effect(() => {\r\n const scheme = store.theme();\r\n\r\n if (scheme === 'dark') {\r\n document.documentElement.classList.add('dark');\r\n } else if (scheme === 'light') {\r\n document.documentElement.classList.remove('dark');\r\n }\r\n });\r\n },\r\n }),\r\n);\r\n","import { Directive, inject, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[emrColorSchemeLight]'\r\n})\r\nexport class ColorSchemeLightDirective {\r\n readonly templateRef = inject(TemplateRef);\r\n}\r\n","import { Directive, inject, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[emrColorSchemeDark]'\r\n})\r\nexport class ColorSchemeDarkDirective {\r\n readonly templateRef = inject(TemplateRef);\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component, computed,\r\n contentChild,\r\n inject,\r\n OnInit, output,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { MatIconButton } from '@angular/material/button';\r\nimport { ColorSchemeStore } from '../color-scheme.store';\r\nimport { CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\r\nimport { ColorSchemeLightDirective } from '../color-scheme-light.directive';\r\nimport { ColorSchemeDarkDirective } from '../color-scheme-dark.directive';\r\nimport { ColorScheme } from '../color-scheme.model';\r\n\r\n@Component({\r\n selector: 'emr-color-scheme-switcher',\r\n exportAs: 'emrColorSchemeSwitcher',\r\n imports: [\r\n MatIconButton,\r\n CdkPortalOutlet,\r\n ],\r\n templateUrl: './color-scheme-switcher.component.html',\r\n styleUrl: './color-scheme-switcher.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n host: {\r\n 'class': 'emr-color-scheme-switcher',\r\n ngSkipHydration: 'true' // important! to prevent double render for icons\r\n }\r\n})\r\nexport class ColorSchemeSwitcherComponent implements OnInit {\r\n private store = inject(ColorSchemeStore);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n\r\n private lightRef = contentChild.required(ColorSchemeLightDirective);\r\n private darkRef = contentChild.required(ColorSchemeDarkDirective);\r\n\r\n readonly colorScheme = computed(() => this.store.theme());\r\n readonly colorSchemeChanged = output<ColorScheme>();\r\n\r\n protected portal!: TemplatePortal<any>;\r\n\r\n ngOnInit() {\r\n this.setPortal();\r\n }\r\n\r\n protected toggleScheme() {\r\n const newScheme = this.store.theme() === 'dark' ? 'light' : 'dark';\r\n this.store.setScheme(newScheme);\r\n this.setPortal();\r\n this.colorSchemeChanged.emit(this.store.theme());\r\n }\r\n\r\n private setPortal() {\r\n if (this.colorScheme() === 'light') {\r\n this.portal = new TemplatePortal(this.lightRef().templateRef, this.viewContainerRef);\r\n } else if (this.colorScheme() === 'dark') {\r\n this.portal = new TemplatePortal(this.darkRef().templateRef, this.viewContainerRef);\r\n }\r\n }\r\n}\r\n","<button mat-icon-button (click)=\"toggleScheme()\">\r\n <ng-container [cdkPortalOutlet]=\"portal\"/>\r\n</button>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, ElementRef, Renderer2, input, booleanAttribute, effect, Component } from '@angular/core';
3
+ import * as i1 from '@angular/material/core';
4
+ import { MatRipple } from '@angular/material/core';
5
+
6
+ class CommandBarComponent {
7
+ _elementRef = inject(ElementRef);
8
+ _renderer = inject(Renderer2);
9
+ open = input(false, ...(ngDevMode ? [{ debugName: "open", transform: booleanAttribute }] : [{
10
+ transform: booleanAttribute
11
+ }]));
12
+ position = input('bottom', ...(ngDevMode ? [{ debugName: "position" }] : []));
13
+ constructor() {
14
+ effect(() => {
15
+ this._renderer.setAttribute(this._elementRef.nativeElement, 'emr-command-bar-position', this.position());
16
+ });
17
+ }
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: CommandBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.10", type: CommandBarComponent, isStandalone: true, selector: "emr-command-bar", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.is-open": "open()" }, classAttribute: "emr-command-bar" }, exportAs: ["emrCommandBar"], ngImport: i0, template: "<div class=\"content\"><ng-content/></div>\r\n<ng-content select=\"emr-command-bar-command,[emr-command-bar-command],emr-command-bar-divider\"></ng-content>\r\n", styles: [":host{--emr-command-bar-height: calc(var(--spacing) * 12);--emr-command-bar-padding: 0 calc(var(--spacing) * 1);--emr-command-bar-margin: calc(var(--spacing) * 8) 0;--emr-command-bar-zindex: 50;--emr-command-bar-bg: var(--color-neutral-950);--emr-command-bar-color: var(--color-neutral-200);--emr-command-bar-border: 1px solid var(--color-neutral-700);--emr-command-bar-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--emr-command-bar-border-radius: calc(infinity * 1px);--emr-command-bar-command-height: calc(var(--spacing) * 10);--emr-command-bar-command-padding: 0 calc(var(--spacing) * 3.5);--emr-command-bar-command-font-size: .875rem;--emr-command-bar-command-color: var(--color-neutral-200);--emr-command-bar-command-hover-color: var(--color-neutral-100);--emr-command-bar-command-hover-bg: var(--color-neutral-800);--emr-command-bar-value-color: var(--color-neutral-200);--emr-command-bar-command-gap: calc(var(--spacing) * 3);--emr-command-bar-content-padding: 0 calc(var(--spacing) * 4);--emr-command-bar-font-size: .875rem;--emr-command-bar-divider-width: 1px;--emr-command-bar-divider-height: calc(var(--spacing) * 6);--emr-command-bar-divider-bg: var(--color-neutral-600);--emr-command-bar-command-shortcut-bg: var(--color-neutral-700);--emr-command-bar-command-shortcut-border-radius: .5rem;--emr-command-bar-command-shortcut-font-size: var(--text-xs);--emr-command-bar-command-shortcut-color: var(--color-neutral-300);--emr-command-bar-command-shortcut-padding: 0 5px;--emr-command-bar-command-shortcut-border: 1px solid var(--color-neutral-600);--emr-command-bar-command-shortcut-size: calc(var(--spacing) * 5);left:50%;translate:-50% 0;height:var(--emr-command-bar-height);border:var(--emr-command-bar-border);box-shadow:var(--emr-command-bar-shadow);border-radius:var(--emr-command-bar-border-radius);z-index:-1;font-size:var(--emr-command-bar-font-size);color:var(--emr-command-bar-color);padding:var(--emr-command-bar-padding);overflow:hidden;opacity:0;display:flex;align-items:center;width:min-content;position:fixed;background-color:var(--emr-command-bar-bg);margin:var(--emr-command-bar-margin);gap:calc(var(--spacing) * 1)}:host .content{white-space:nowrap;padding:var(--emr-command-bar-content-padding)}:host .content:empty{display:none}:host.is-open{opacity:1;z-index:var(--emr-command-bar-zindex)}:host[emr-command-bar-position=top]{top:0}:host[emr-command-bar-position=top].is-open{animation:.3s emr-command-bar-animation-from-top}:host[emr-command-bar-position=bottom]{bottom:0}:host[emr-command-bar-position=bottom].is-open{animation:.3s emr-command-bar-animation-from-bottom}@keyframes emr-command-bar-animation-from-top{0%{transform:translateY(-150%) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes emr-command-bar-animation-from-bottom{0%{transform:translateY(150%) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}:host-context(html.dark){--emr-command-bar-bg: var(--color-primary-200);--emr-command-bar-color: var(--color-neutral-950);--emr-command-bar-command-color: var(--color-neutral-950)}\n/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */\n"] });
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: CommandBarComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'emr-command-bar', exportAs: 'emrCommandBar', standalone: true, host: {
24
+ 'class': 'emr-command-bar',
25
+ '[class.is-open]': 'open()',
26
+ }, template: "<div class=\"content\"><ng-content/></div>\r\n<ng-content select=\"emr-command-bar-command,[emr-command-bar-command],emr-command-bar-divider\"></ng-content>\r\n", styles: [":host{--emr-command-bar-height: calc(var(--spacing) * 12);--emr-command-bar-padding: 0 calc(var(--spacing) * 1);--emr-command-bar-margin: calc(var(--spacing) * 8) 0;--emr-command-bar-zindex: 50;--emr-command-bar-bg: var(--color-neutral-950);--emr-command-bar-color: var(--color-neutral-200);--emr-command-bar-border: 1px solid var(--color-neutral-700);--emr-command-bar-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--emr-command-bar-border-radius: calc(infinity * 1px);--emr-command-bar-command-height: calc(var(--spacing) * 10);--emr-command-bar-command-padding: 0 calc(var(--spacing) * 3.5);--emr-command-bar-command-font-size: .875rem;--emr-command-bar-command-color: var(--color-neutral-200);--emr-command-bar-command-hover-color: var(--color-neutral-100);--emr-command-bar-command-hover-bg: var(--color-neutral-800);--emr-command-bar-value-color: var(--color-neutral-200);--emr-command-bar-command-gap: calc(var(--spacing) * 3);--emr-command-bar-content-padding: 0 calc(var(--spacing) * 4);--emr-command-bar-font-size: .875rem;--emr-command-bar-divider-width: 1px;--emr-command-bar-divider-height: calc(var(--spacing) * 6);--emr-command-bar-divider-bg: var(--color-neutral-600);--emr-command-bar-command-shortcut-bg: var(--color-neutral-700);--emr-command-bar-command-shortcut-border-radius: .5rem;--emr-command-bar-command-shortcut-font-size: var(--text-xs);--emr-command-bar-command-shortcut-color: var(--color-neutral-300);--emr-command-bar-command-shortcut-padding: 0 5px;--emr-command-bar-command-shortcut-border: 1px solid var(--color-neutral-600);--emr-command-bar-command-shortcut-size: calc(var(--spacing) * 5);left:50%;translate:-50% 0;height:var(--emr-command-bar-height);border:var(--emr-command-bar-border);box-shadow:var(--emr-command-bar-shadow);border-radius:var(--emr-command-bar-border-radius);z-index:-1;font-size:var(--emr-command-bar-font-size);color:var(--emr-command-bar-color);padding:var(--emr-command-bar-padding);overflow:hidden;opacity:0;display:flex;align-items:center;width:min-content;position:fixed;background-color:var(--emr-command-bar-bg);margin:var(--emr-command-bar-margin);gap:calc(var(--spacing) * 1)}:host .content{white-space:nowrap;padding:var(--emr-command-bar-content-padding)}:host .content:empty{display:none}:host.is-open{opacity:1;z-index:var(--emr-command-bar-zindex)}:host[emr-command-bar-position=top]{top:0}:host[emr-command-bar-position=top].is-open{animation:.3s emr-command-bar-animation-from-top}:host[emr-command-bar-position=bottom]{bottom:0}:host[emr-command-bar-position=bottom].is-open{animation:.3s emr-command-bar-animation-from-bottom}@keyframes emr-command-bar-animation-from-top{0%{transform:translateY(-150%) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes emr-command-bar-animation-from-bottom{0%{transform:translateY(150%) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}:host-context(html.dark){--emr-command-bar-bg: var(--color-primary-200);--emr-command-bar-color: var(--color-neutral-950);--emr-command-bar-command-color: var(--color-neutral-950)}\n/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */\n"] }]
27
+ }], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }] } });
28
+
29
+ class CommandBarDividerComponent {
30
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: CommandBarDividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.10", type: CommandBarDividerComponent, isStandalone: true, selector: "emr-command-bar-divider", host: { classAttribute: "emr-command-bar-divider" }, exportAs: ["emrCommandBarDivider"], ngImport: i0, template: "\r\n", styles: [":host{display:block;width:var(--emr-command-bar-divider-width);height:var(--emr-command-bar-divider-height);background:var(--emr-command-bar-divider-bg)}\n/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */\n"] });
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: CommandBarDividerComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'emr-command-bar-divider', exportAs: 'emrCommandBarDivider', host: {
36
+ 'class': 'emr-command-bar-divider'
37
+ }, template: "\r\n", styles: [":host{display:block;width:var(--emr-command-bar-divider-width);height:var(--emr-command-bar-divider-height);background:var(--emr-command-bar-divider-bg)}\n/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */\n"] }]
38
+ }] });
39
+
40
+ class CommandBarCommandComponent {
41
+ shortcut = input('', ...(ngDevMode ? [{ debugName: "shortcut" }] : []));
42
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: CommandBarCommandComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
43
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.10", type: CommandBarCommandComponent, isStandalone: true, selector: "emr-command-bar-command,[emr-command-bar-command]", inputs: { shortcut: { classPropertyName: "shortcut", publicName: "shortcut", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "emr-command-bar-command" }, exportAs: ["emrCommandBarCommand"], hostDirectives: [{ directive: i1.MatRipple }], ngImport: i0, template: "<ng-content/>\r\n@if (shortcut()) {\r\n <div class=\"shortcut\">{{ shortcut() }}</div>\r\n}\r\n", styles: [":host{display:flex;align-items:center;justify-content:space-between;white-space:nowrap;padding:var(--emr-command-bar-command-padding);font-size:var(--emr-command-bar-command-font-size);cursor:pointer;gap:var(--emr-command-bar-command-gap);color:var(--emr-command-bar-command-color);-webkit-user-select:none;user-select:none;border-radius:calc(infinity * 1px);height:var(--emr-command-bar-command-height)}:host:hover{color:var(--emr-command-bar-command-hover-color);background:var(--emr-command-bar-command-hover-bg)}:host .shortcut{text-transform:uppercase;display:flex;align-items:center;justify-content:center;background:var(--emr-command-bar-command-shortcut-bg);border-radius:var(--emr-command-bar-command-shortcut-border-radius);font-size:var(--emr-command-bar-command-shortcut-font-size);color:var(--emr-command-bar-command-shortcut-color);padding:var(--emr-command-bar-command-shortcut-padding);border:var(--emr-command-bar-command-shortcut-border);flex:none;width:var(--emr-command-bar-command-shortcut-size);height:var(--emr-command-bar-command-shortcut-size)}\n/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */\n"] });
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.10", ngImport: i0, type: CommandBarCommandComponent, decorators: [{
46
+ type: Component,
47
+ args: [{ selector: 'emr-command-bar-command,[emr-command-bar-command]', exportAs: 'emrCommandBarCommand', standalone: true, hostDirectives: [
48
+ MatRipple,
49
+ ], host: {
50
+ 'class': 'emr-command-bar-command'
51
+ }, template: "<ng-content/>\r\n@if (shortcut()) {\r\n <div class=\"shortcut\">{{ shortcut() }}</div>\r\n}\r\n", styles: [":host{display:flex;align-items:center;justify-content:space-between;white-space:nowrap;padding:var(--emr-command-bar-command-padding);font-size:var(--emr-command-bar-command-font-size);cursor:pointer;gap:var(--emr-command-bar-command-gap);color:var(--emr-command-bar-command-color);-webkit-user-select:none;user-select:none;border-radius:calc(infinity * 1px);height:var(--emr-command-bar-command-height)}:host:hover{color:var(--emr-command-bar-command-hover-color);background:var(--emr-command-bar-command-hover-bg)}:host .shortcut{text-transform:uppercase;display:flex;align-items:center;justify-content:center;background:var(--emr-command-bar-command-shortcut-bg);border-radius:var(--emr-command-bar-command-shortcut-border-radius);font-size:var(--emr-command-bar-command-shortcut-font-size);color:var(--emr-command-bar-command-shortcut-color);padding:var(--emr-command-bar-command-shortcut-padding);border:var(--emr-command-bar-command-shortcut-border);flex:none;width:var(--emr-command-bar-command-shortcut-size);height:var(--emr-command-bar-command-shortcut-size)}\n/*! tailwindcss v4.1.14 | MIT License | https://tailwindcss.com */\n"] }]
52
+ }], propDecorators: { shortcut: [{ type: i0.Input, args: [{ isSignal: true, alias: "shortcut", required: false }] }] } });
53
+
54
+ /**
55
+ * Generated bundle index. Do not edit.
56
+ */
57
+
58
+ export { CommandBarCommandComponent, CommandBarComponent, CommandBarDividerComponent };
59
+ //# sourceMappingURL=elementar-rt-components-command-bar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementar-rt-components-command-bar.mjs","sources":["../../../projects/components/command-bar/src/command-bar/command-bar.component.ts","../../../projects/components/command-bar/src/command-bar/command-bar.component.html","../../../projects/components/command-bar/src/command-bar-divider/command-bar-divider.component.ts","../../../projects/components/command-bar/src/command-bar-divider/command-bar-divider.component.html","../../../projects/components/command-bar/src/command-bar-command/command-bar-command.component.ts","../../../projects/components/command-bar/src/command-bar-command/command-bar-command.component.html","../../../projects/components/command-bar/elementar-rt-components-command-bar.ts"],"sourcesContent":["import {\r\n booleanAttribute,\r\n Component,\r\n effect,\r\n ElementRef,\r\n inject,\r\n input,\r\n Renderer2\r\n} from '@angular/core';\r\nimport { CommandBarPosition } from '../types';\r\n\r\n@Component({\r\n selector: 'emr-command-bar',\r\n exportAs: 'emrCommandBar',\r\n standalone: true,\r\n templateUrl: './command-bar.component.html',\r\n styleUrl: './command-bar.component.scss',\r\n host: {\r\n 'class': 'emr-command-bar',\r\n '[class.is-open]': 'open()',\r\n }\r\n})\r\nexport class CommandBarComponent {\r\n private _elementRef = inject(ElementRef);\r\n private _renderer = inject(Renderer2);\r\n\r\n open = input(false, {\r\n transform: booleanAttribute\r\n });\r\n position = input<CommandBarPosition>('bottom');\r\n\r\n constructor() {\r\n effect(() => {\r\n this._renderer.setAttribute(this._elementRef.nativeElement, 'emr-command-bar-position', this.position());\r\n });\r\n }\r\n}\r\n","<div class=\"content\"><ng-content/></div>\r\n<ng-content select=\"emr-command-bar-command,[emr-command-bar-command],emr-command-bar-divider\"></ng-content>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'emr-command-bar-divider',\r\n exportAs: 'emrCommandBarDivider',\r\n templateUrl: './command-bar-divider.component.html',\r\n styleUrl: './command-bar-divider.component.scss',\r\n host: {\r\n 'class': 'emr-command-bar-divider'\r\n }\r\n})\r\nexport class CommandBarDividerComponent {\r\n}\r\n","\r\n","import { Component, input, Input } from '@angular/core';\r\nimport { MatRipple } from '@angular/material/core';\r\n\r\n@Component({\r\n selector: 'emr-command-bar-command,[emr-command-bar-command]',\r\n exportAs: 'emrCommandBarCommand',\r\n standalone: true,\r\n templateUrl: './command-bar-command.component.html',\r\n styleUrl: './command-bar-command.component.scss',\r\n hostDirectives: [\r\n MatRipple,\r\n ],\r\n host: {\r\n 'class': 'emr-command-bar-command'\r\n }\r\n})\r\nexport class CommandBarCommandComponent {\r\n shortcut = input('');\r\n}\r\n","<ng-content/>\r\n@if (shortcut()) {\r\n <div class=\"shortcut\">{{ shortcut() }}</div>\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}