@elementar-rt/components 0.6.58 → 0.7.1

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 (414) hide show
  1. package/README.md +7 -2
  2. package/fesm2022/elementar-rt-components-action-required.mjs +8 -8
  3. package/fesm2022/elementar-rt-components-action-required.mjs.map +1 -1
  4. package/fesm2022/elementar-rt-components-alert.mjs +21 -25
  5. package/fesm2022/elementar-rt-components-alert.mjs.map +1 -1
  6. package/fesm2022/elementar-rt-components-announcement.mjs +12 -14
  7. package/fesm2022/elementar-rt-components-announcement.mjs.map +1 -1
  8. package/fesm2022/elementar-rt-components-avatar.mjs +34 -38
  9. package/fesm2022/elementar-rt-components-avatar.mjs.map +1 -1
  10. package/fesm2022/elementar-rt-components-badge.mjs +10 -10
  11. package/fesm2022/elementar-rt-components-badge.mjs.map +1 -1
  12. package/fesm2022/elementar-rt-components-block-loader.mjs +10 -16
  13. package/fesm2022/elementar-rt-components-block-loader.mjs.map +1 -1
  14. package/fesm2022/elementar-rt-components-block-state.mjs +24 -24
  15. package/fesm2022/elementar-rt-components-block-state.mjs.map +1 -1
  16. package/fesm2022/elementar-rt-components-bottom-sheet.mjs +12 -12
  17. package/fesm2022/elementar-rt-components-bottom-sheet.mjs.map +1 -1
  18. package/fesm2022/elementar-rt-components-brand-colors.mjs +9 -13
  19. package/fesm2022/elementar-rt-components-brand-colors.mjs.map +1 -1
  20. package/fesm2022/elementar-rt-components-breadcrumbs.mjs +49 -53
  21. package/fesm2022/elementar-rt-components-breadcrumbs.mjs.map +1 -1
  22. package/fesm2022/elementar-rt-components-button-toggle.mjs +16 -16
  23. package/fesm2022/elementar-rt-components-button-toggle.mjs.map +1 -1
  24. package/fesm2022/elementar-rt-components-calendar.mjs +10 -10
  25. package/fesm2022/elementar-rt-components-calendar.mjs.map +1 -1
  26. package/fesm2022/elementar-rt-components-card-overlay.mjs +10 -16
  27. package/fesm2022/elementar-rt-components-card-overlay.mjs.map +1 -1
  28. package/fesm2022/elementar-rt-components-card.mjs +18 -18
  29. package/fesm2022/elementar-rt-components-card.mjs.map +1 -1
  30. package/fesm2022/elementar-rt-components-carousel.mjs +48 -50
  31. package/fesm2022/elementar-rt-components-carousel.mjs.map +1 -1
  32. package/fesm2022/elementar-rt-components-chips.mjs +12 -12
  33. package/fesm2022/elementar-rt-components-chips.mjs.map +1 -1
  34. package/fesm2022/elementar-rt-components-clipboard-copy.mjs +17 -17
  35. package/fesm2022/elementar-rt-components-clipboard-copy.mjs.map +1 -1
  36. package/fesm2022/elementar-rt-components-code-highlighter.mjs +12 -12
  37. package/fesm2022/elementar-rt-components-code-highlighter.mjs.map +1 -1
  38. package/fesm2022/elementar-rt-components-color-picker.mjs +44 -52
  39. package/fesm2022/elementar-rt-components-color-picker.mjs.map +1 -1
  40. package/fesm2022/elementar-rt-components-color-scheme.mjs +10 -10
  41. package/fesm2022/elementar-rt-components-color-scheme.mjs.map +1 -1
  42. package/fesm2022/elementar-rt-components-combobox.mjs +13 -13
  43. package/fesm2022/elementar-rt-components-combobox.mjs.map +1 -1
  44. package/fesm2022/elementar-rt-components-command-bar.mjs +15 -17
  45. package/fesm2022/elementar-rt-components-command-bar.mjs.map +1 -1
  46. package/fesm2022/elementar-rt-components-comment-editor.mjs +106 -106
  47. package/fesm2022/elementar-rt-components-comment-editor.mjs.map +1 -1
  48. package/fesm2022/elementar-rt-components-comparison-slider.mjs +16 -16
  49. package/fesm2022/elementar-rt-components-comparison-slider.mjs.map +1 -1
  50. package/fesm2022/elementar-rt-components-confirm.mjs +7 -7
  51. package/fesm2022/elementar-rt-components-confirm.mjs.map +1 -1
  52. package/fesm2022/elementar-rt-components-content-editor.mjs +7 -7
  53. package/fesm2022/elementar-rt-components-content-editor.mjs.map +1 -1
  54. package/fesm2022/elementar-rt-components-content-fade.mjs +7 -7
  55. package/fesm2022/elementar-rt-components-content-fade.mjs.map +1 -1
  56. package/fesm2022/elementar-rt-components-cookie-popup.mjs +15 -17
  57. package/fesm2022/elementar-rt-components-cookie-popup.mjs.map +1 -1
  58. package/fesm2022/elementar-rt-components-core.mjs +68 -75
  59. package/fesm2022/elementar-rt-components-core.mjs.map +1 -1
  60. package/fesm2022/elementar-rt-components-country-select.mjs +15 -17
  61. package/fesm2022/elementar-rt-components-country-select.mjs.map +1 -1
  62. package/fesm2022/elementar-rt-components-crop.mjs +12 -12
  63. package/fesm2022/elementar-rt-components-crop.mjs.map +1 -1
  64. package/fesm2022/elementar-rt-components-currency-select.mjs +15 -17
  65. package/fesm2022/elementar-rt-components-currency-select.mjs.map +1 -1
  66. package/fesm2022/elementar-rt-components-dashboard.mjs +15 -19
  67. package/fesm2022/elementar-rt-components-dashboard.mjs.map +1 -1
  68. package/fesm2022/elementar-rt-components-data-grid.mjs +20 -20
  69. package/fesm2022/elementar-rt-components-data-grid.mjs.map +1 -1
  70. package/fesm2022/elementar-rt-components-data-view.mjs +38 -52
  71. package/fesm2022/elementar-rt-components-data-view.mjs.map +1 -1
  72. package/fesm2022/elementar-rt-components-date-format-select.mjs +8 -8
  73. package/fesm2022/elementar-rt-components-date-format-select.mjs.map +1 -1
  74. package/fesm2022/elementar-rt-components-datepicker.mjs +12 -12
  75. package/fesm2022/elementar-rt-components-datepicker.mjs.map +1 -1
  76. package/fesm2022/elementar-rt-components-dialog.mjs +19 -19
  77. package/fesm2022/elementar-rt-components-dialog.mjs.map +1 -1
  78. package/fesm2022/elementar-rt-components-digit-roller.mjs +10 -10
  79. package/fesm2022/elementar-rt-components-digit-roller.mjs.map +1 -1
  80. package/fesm2022/elementar-rt-components-divider.mjs +8 -8
  81. package/fesm2022/elementar-rt-components-divider.mjs.map +1 -1
  82. package/fesm2022/elementar-rt-components-drawer.mjs +14 -14
  83. package/fesm2022/elementar-rt-components-drawer.mjs.map +1 -1
  84. package/fesm2022/elementar-rt-components-emoji-picker.mjs +15 -17
  85. package/fesm2022/elementar-rt-components-emoji-picker.mjs.map +1 -1
  86. package/fesm2022/elementar-rt-components-empty-state.mjs +8 -8
  87. package/fesm2022/elementar-rt-components-empty-state.mjs.map +1 -1
  88. package/fesm2022/elementar-rt-components-expand.mjs +10 -14
  89. package/fesm2022/elementar-rt-components-expand.mjs.map +1 -1
  90. package/fesm2022/elementar-rt-components-expansion-panel.mjs +6 -6
  91. package/fesm2022/elementar-rt-components-expansion-panel.mjs.map +1 -1
  92. package/fesm2022/elementar-rt-components-filter-builder.mjs +24 -26
  93. package/fesm2022/elementar-rt-components-filter-builder.mjs.map +1 -1
  94. package/fesm2022/elementar-rt-components-filter-select.mjs +19 -19
  95. package/fesm2022/elementar-rt-components-filter-select.mjs.map +1 -1
  96. package/fesm2022/{elementar-rt-components-form-renderer-autocomplete-many-field.component-C2Ai6F2X.mjs → elementar-rt-components-form-renderer-autocomplete-many-field.component-DYDAWUBL.mjs} +6 -6
  97. package/fesm2022/{elementar-rt-components-form-renderer-autocomplete-many-field.component-C2Ai6F2X.mjs.map → elementar-rt-components-form-renderer-autocomplete-many-field.component-DYDAWUBL.mjs.map} +1 -1
  98. package/fesm2022/{elementar-rt-components-form-renderer-checkbox-field.component-a0XAs0-_.mjs → elementar-rt-components-form-renderer-checkbox-field.component-DCdtWKHi.mjs} +7 -7
  99. package/fesm2022/{elementar-rt-components-form-renderer-checkbox-field.component-a0XAs0-_.mjs.map → elementar-rt-components-form-renderer-checkbox-field.component-DCdtWKHi.mjs.map} +1 -1
  100. package/fesm2022/{elementar-rt-components-form-renderer-datepicker-field.component-CTVrrf43.mjs → elementar-rt-components-form-renderer-datepicker-field.component-D9gAkq6u.mjs} +6 -6
  101. package/fesm2022/{elementar-rt-components-form-renderer-datepicker-field.component-CTVrrf43.mjs.map → elementar-rt-components-form-renderer-datepicker-field.component-D9gAkq6u.mjs.map} +1 -1
  102. package/fesm2022/{elementar-rt-components-form-renderer-divider-content.component-CkYa0MOQ.mjs → elementar-rt-components-form-renderer-divider-content.component-DB4F4Av6.mjs} +4 -4
  103. package/fesm2022/{elementar-rt-components-form-renderer-divider-content.component-CkYa0MOQ.mjs.map → elementar-rt-components-form-renderer-divider-content.component-DB4F4Av6.mjs.map} +1 -1
  104. package/fesm2022/{elementar-rt-components-form-renderer-image-content.component-B5uj3hoV.mjs → elementar-rt-components-form-renderer-image-content.component-BvxbVzag.mjs} +5 -5
  105. package/fesm2022/{elementar-rt-components-form-renderer-image-content.component-B5uj3hoV.mjs.map → elementar-rt-components-form-renderer-image-content.component-BvxbVzag.mjs.map} +1 -1
  106. package/fesm2022/{elementar-rt-components-form-renderer-input-field.component-DnaWJIK9.mjs → elementar-rt-components-form-renderer-input-field.component-BPOCpB7i.mjs} +7 -7
  107. package/fesm2022/{elementar-rt-components-form-renderer-input-field.component-DnaWJIK9.mjs.map → elementar-rt-components-form-renderer-input-field.component-BPOCpB7i.mjs.map} +1 -1
  108. package/fesm2022/{elementar-rt-components-form-renderer-radio-group-field.component-9BLv1MsP.mjs → elementar-rt-components-form-renderer-radio-group-field.component-D65JtgyW.mjs} +7 -7
  109. package/fesm2022/{elementar-rt-components-form-renderer-radio-group-field.component-9BLv1MsP.mjs.map → elementar-rt-components-form-renderer-radio-group-field.component-D65JtgyW.mjs.map} +1 -1
  110. package/fesm2022/{elementar-rt-components-form-renderer-select-field.component-C97pIEdh.mjs → elementar-rt-components-form-renderer-select-field.component-HgwzMHVU.mjs} +6 -6
  111. package/fesm2022/{elementar-rt-components-form-renderer-select-field.component-C97pIEdh.mjs.map → elementar-rt-components-form-renderer-select-field.component-HgwzMHVU.mjs.map} +1 -1
  112. package/fesm2022/{elementar-rt-components-form-renderer-text-content.component-CJxCc5vX.mjs → elementar-rt-components-form-renderer-text-content.component-fHh_BaZl.mjs} +5 -5
  113. package/fesm2022/{elementar-rt-components-form-renderer-text-content.component-CJxCc5vX.mjs.map → elementar-rt-components-form-renderer-text-content.component-fHh_BaZl.mjs.map} +1 -1
  114. package/fesm2022/{elementar-rt-components-form-renderer-textarea-field.component-CCtWiJOk.mjs → elementar-rt-components-form-renderer-textarea-field.component-CQ68jF7W.mjs} +6 -6
  115. package/fesm2022/{elementar-rt-components-form-renderer-textarea-field.component-CCtWiJOk.mjs.map → elementar-rt-components-form-renderer-textarea-field.component-CQ68jF7W.mjs.map} +1 -1
  116. package/fesm2022/{elementar-rt-components-form-renderer-timezone-field.component-GvZgdvUX.mjs → elementar-rt-components-form-renderer-timezone-field.component-CgS9fcCV.mjs} +7 -7
  117. package/fesm2022/{elementar-rt-components-form-renderer-timezone-field.component-GvZgdvUX.mjs.map → elementar-rt-components-form-renderer-timezone-field.component-CgS9fcCV.mjs.map} +1 -1
  118. package/fesm2022/{elementar-rt-components-form-renderer-toggle-field.component-DBiIiV-9.mjs → elementar-rt-components-form-renderer-toggle-field.component-nj0FmsWA.mjs} +7 -7
  119. package/fesm2022/{elementar-rt-components-form-renderer-toggle-field.component-DBiIiV-9.mjs.map → elementar-rt-components-form-renderer-toggle-field.component-nj0FmsWA.mjs.map} +1 -1
  120. package/fesm2022/elementar-rt-components-form-renderer.mjs +36 -36
  121. package/fesm2022/elementar-rt-components-form-renderer.mjs.map +1 -1
  122. package/fesm2022/elementar-rt-components-gauge.mjs +11 -17
  123. package/fesm2022/elementar-rt-components-gauge.mjs.map +1 -1
  124. package/fesm2022/elementar-rt-components-grid.mjs +12 -12
  125. package/fesm2022/elementar-rt-components-grid.mjs.map +1 -1
  126. package/fesm2022/elementar-rt-components-guided-tour.mjs +12 -12
  127. package/fesm2022/elementar-rt-components-guided-tour.mjs.map +1 -1
  128. package/fesm2022/elementar-rt-components-headless-stepper.mjs +10 -10
  129. package/fesm2022/elementar-rt-components-headless-stepper.mjs.map +1 -1
  130. package/fesm2022/elementar-rt-components-icon.mjs +6 -6
  131. package/fesm2022/elementar-rt-components-icon.mjs.map +1 -1
  132. package/fesm2022/elementar-rt-components-image-placeholder.mjs +10 -10
  133. package/fesm2022/elementar-rt-components-image-placeholder.mjs.map +1 -1
  134. package/fesm2022/elementar-rt-components-image-resizer.mjs +17 -25
  135. package/fesm2022/elementar-rt-components-image-resizer.mjs.map +1 -1
  136. package/fesm2022/elementar-rt-components-image-viewer.mjs +29 -29
  137. package/fesm2022/elementar-rt-components-image-viewer.mjs.map +1 -1
  138. package/fesm2022/elementar-rt-components-image-zoom-viewer.mjs +16 -16
  139. package/fesm2022/elementar-rt-components-image-zoom-viewer.mjs.map +1 -1
  140. package/fesm2022/elementar-rt-components-incidents.mjs +55 -57
  141. package/fesm2022/elementar-rt-components-incidents.mjs.map +1 -1
  142. package/fesm2022/elementar-rt-components-inline-text-edit.mjs +8 -10
  143. package/fesm2022/elementar-rt-components-inline-text-edit.mjs.map +1 -1
  144. package/fesm2022/elementar-rt-components-input-mask.mjs +12 -12
  145. package/fesm2022/elementar-rt-components-input-mask.mjs.map +1 -1
  146. package/fesm2022/elementar-rt-components-input-validator.mjs.map +1 -1
  147. package/fesm2022/elementar-rt-components-kanban-board.mjs +10 -10
  148. package/fesm2022/elementar-rt-components-kanban-board.mjs.map +1 -1
  149. package/fesm2022/elementar-rt-components-keyboard.mjs +9 -9
  150. package/fesm2022/elementar-rt-components-keyboard.mjs.map +1 -1
  151. package/fesm2022/elementar-rt-components-layout.mjs +36 -40
  152. package/fesm2022/elementar-rt-components-layout.mjs.map +1 -1
  153. package/fesm2022/elementar-rt-components-list.mjs +13 -13
  154. package/fesm2022/elementar-rt-components-list.mjs.map +1 -1
  155. package/fesm2022/elementar-rt-components-logo.mjs +12 -12
  156. package/fesm2022/elementar-rt-components-logo.mjs.map +1 -1
  157. package/fesm2022/elementar-rt-components-marquee.mjs +9 -13
  158. package/fesm2022/elementar-rt-components-marquee.mjs.map +1 -1
  159. package/fesm2022/elementar-rt-components-menu.mjs +19 -19
  160. package/fesm2022/elementar-rt-components-menu.mjs.map +1 -1
  161. package/fesm2022/elementar-rt-components-micro-chart.mjs +65 -111
  162. package/fesm2022/elementar-rt-components-micro-chart.mjs.map +1 -1
  163. package/fesm2022/elementar-rt-components-multi-select.mjs +13 -13
  164. package/fesm2022/elementar-rt-components-multi-select.mjs.map +1 -1
  165. package/fesm2022/elementar-rt-components-navigation.mjs +56 -66
  166. package/fesm2022/elementar-rt-components-navigation.mjs.map +1 -1
  167. package/fesm2022/elementar-rt-components-notifications.mjs +47 -53
  168. package/fesm2022/elementar-rt-components-notifications.mjs.map +1 -1
  169. package/fesm2022/elementar-rt-components-number-input.mjs +23 -31
  170. package/fesm2022/elementar-rt-components-number-input.mjs.map +1 -1
  171. package/fesm2022/elementar-rt-components-overlay-scrollbar.mjs +34 -34
  172. package/fesm2022/elementar-rt-components-overlay-scrollbar.mjs.map +1 -1
  173. package/fesm2022/elementar-rt-components-overlay.mjs.map +1 -1
  174. package/fesm2022/elementar-rt-components-page-loading-bar.mjs +5 -7
  175. package/fesm2022/elementar-rt-components-page-loading-bar.mjs.map +1 -1
  176. package/fesm2022/elementar-rt-components-paginator.mjs +12 -12
  177. package/fesm2022/elementar-rt-components-paginator.mjs.map +1 -1
  178. package/fesm2022/elementar-rt-components-panel.mjs +25 -27
  179. package/fesm2022/elementar-rt-components-panel.mjs.map +1 -1
  180. package/fesm2022/elementar-rt-components-password-strength.mjs +35 -59
  181. package/fesm2022/elementar-rt-components-password-strength.mjs.map +1 -1
  182. package/fesm2022/elementar-rt-components-phone-input.mjs +23 -26
  183. package/fesm2022/elementar-rt-components-phone-input.mjs.map +1 -1
  184. package/fesm2022/elementar-rt-components-pin-input.mjs +17 -21
  185. package/fesm2022/elementar-rt-components-pin-input.mjs.map +1 -1
  186. package/fesm2022/elementar-rt-components-popover.mjs +18 -28
  187. package/fesm2022/elementar-rt-components-popover.mjs.map +1 -1
  188. package/fesm2022/elementar-rt-components-progress-bar.mjs +10 -10
  189. package/fesm2022/elementar-rt-components-progress-bar.mjs.map +1 -1
  190. package/fesm2022/elementar-rt-components-progress-spinner.mjs +14 -14
  191. package/fesm2022/elementar-rt-components-progress-spinner.mjs.map +1 -1
  192. package/fesm2022/elementar-rt-components-radio-card.mjs +21 -21
  193. package/fesm2022/elementar-rt-components-radio-card.mjs.map +1 -1
  194. package/fesm2022/elementar-rt-components-rail-nav.mjs +14 -14
  195. package/fesm2022/elementar-rt-components-rail-nav.mjs.map +1 -1
  196. package/fesm2022/elementar-rt-components-rating.mjs +15 -15
  197. package/fesm2022/elementar-rt-components-rating.mjs.map +1 -1
  198. package/fesm2022/elementar-rt-components-resizable-container.mjs +5 -7
  199. package/fesm2022/elementar-rt-components-resizable-container.mjs.map +1 -1
  200. package/fesm2022/elementar-rt-components-screen-loader.mjs +5 -7
  201. package/fesm2022/elementar-rt-components-screen-loader.mjs.map +1 -1
  202. package/fesm2022/elementar-rt-components-scroll-spy.mjs +18 -18
  203. package/fesm2022/elementar-rt-components-scroll-spy.mjs.map +1 -1
  204. package/fesm2022/elementar-rt-components-segmented.mjs +18 -24
  205. package/fesm2022/elementar-rt-components-segmented.mjs.map +1 -1
  206. package/fesm2022/elementar-rt-components-side-panel.mjs +18 -18
  207. package/fesm2022/elementar-rt-components-side-panel.mjs.map +1 -1
  208. package/fesm2022/elementar-rt-components-sidebar.mjs +71 -77
  209. package/fesm2022/elementar-rt-components-sidebar.mjs.map +1 -1
  210. package/fesm2022/elementar-rt-components-sidenav.mjs +15 -15
  211. package/fesm2022/elementar-rt-components-sidenav.mjs.map +1 -1
  212. package/fesm2022/elementar-rt-components-signature-pad.mjs +17 -17
  213. package/fesm2022/elementar-rt-components-signature-pad.mjs.map +1 -1
  214. package/fesm2022/elementar-rt-components-skeleton.mjs +17 -17
  215. package/fesm2022/elementar-rt-components-skeleton.mjs.map +1 -1
  216. package/fesm2022/elementar-rt-components-slider.mjs +13 -13
  217. package/fesm2022/elementar-rt-components-slider.mjs.map +1 -1
  218. package/fesm2022/elementar-rt-components-snackbar.mjs +10 -10
  219. package/fesm2022/elementar-rt-components-snackbar.mjs.map +1 -1
  220. package/fesm2022/elementar-rt-components-sort.mjs +11 -11
  221. package/fesm2022/elementar-rt-components-sort.mjs.map +1 -1
  222. package/fesm2022/elementar-rt-components-splash-screen.mjs +6 -10
  223. package/fesm2022/elementar-rt-components-splash-screen.mjs.map +1 -1
  224. package/fesm2022/elementar-rt-components-split-pane.mjs +10 -10
  225. package/fesm2022/elementar-rt-components-split-pane.mjs.map +1 -1
  226. package/fesm2022/elementar-rt-components-stat-card.mjs +10 -10
  227. package/fesm2022/elementar-rt-components-stat-card.mjs.map +1 -1
  228. package/fesm2022/elementar-rt-components-step-tracker.mjs +8 -8
  229. package/fesm2022/elementar-rt-components-step-tracker.mjs.map +1 -1
  230. package/fesm2022/elementar-rt-components-stepper.mjs +21 -23
  231. package/fesm2022/elementar-rt-components-stepper.mjs.map +1 -1
  232. package/fesm2022/elementar-rt-components-suggestions.mjs +21 -25
  233. package/fesm2022/elementar-rt-components-suggestions.mjs.map +1 -1
  234. package/fesm2022/elementar-rt-components-tab-panel.mjs +54 -60
  235. package/fesm2022/elementar-rt-components-tab-panel.mjs.map +1 -1
  236. package/fesm2022/elementar-rt-components-table.mjs +16 -16
  237. package/fesm2022/elementar-rt-components-table.mjs.map +1 -1
  238. package/fesm2022/elementar-rt-components-tabs.mjs +14 -14
  239. package/fesm2022/elementar-rt-components-tabs.mjs.map +1 -1
  240. package/fesm2022/elementar-rt-components-tag.mjs +9 -9
  241. package/fesm2022/elementar-rt-components-tag.mjs.map +1 -1
  242. package/fesm2022/elementar-rt-components-text-editor.mjs +97 -96
  243. package/fesm2022/elementar-rt-components-text-editor.mjs.map +1 -1
  244. package/fesm2022/elementar-rt-components-thumbnail-maker.mjs +11 -13
  245. package/fesm2022/elementar-rt-components-thumbnail-maker.mjs.map +1 -1
  246. package/fesm2022/elementar-rt-components-tiles.mjs +9 -9
  247. package/fesm2022/elementar-rt-components-tiles.mjs.map +1 -1
  248. package/fesm2022/elementar-rt-components-timeline.mjs +39 -39
  249. package/fesm2022/elementar-rt-components-timeline.mjs.map +1 -1
  250. package/fesm2022/elementar-rt-components-timepicker.mjs +11 -11
  251. package/fesm2022/elementar-rt-components-timepicker.mjs.map +1 -1
  252. package/fesm2022/elementar-rt-components-timezone-select.mjs +23 -29
  253. package/fesm2022/elementar-rt-components-timezone-select.mjs.map +1 -1
  254. package/fesm2022/elementar-rt-components-toast.mjs +14 -14
  255. package/fesm2022/elementar-rt-components-toast.mjs.map +1 -1
  256. package/fesm2022/elementar-rt-components-toolbar.mjs +6 -6
  257. package/fesm2022/elementar-rt-components-toolbar.mjs.map +1 -1
  258. package/fesm2022/elementar-rt-components-tooltip.mjs +14 -14
  259. package/fesm2022/elementar-rt-components-tooltip.mjs.map +1 -1
  260. package/fesm2022/elementar-rt-components-tree.mjs +17 -17
  261. package/fesm2022/elementar-rt-components-tree.mjs.map +1 -1
  262. package/fesm2022/elementar-rt-components-upload.mjs +77 -87
  263. package/fesm2022/elementar-rt-components-upload.mjs.map +1 -1
  264. package/fesm2022/elementar-rt-components-video-player.mjs +22 -22
  265. package/fesm2022/elementar-rt-components-video-player.mjs.map +1 -1
  266. package/fesm2022/elementar-rt-components-video-viewer.mjs +16 -16
  267. package/fesm2022/elementar-rt-components-video-viewer.mjs.map +1 -1
  268. package/package.json +136 -135
  269. package/schematics/collection.json +16 -0
  270. package/schematics/ng-add/actions/add-fonts.d.ts +2 -0
  271. package/schematics/ng-add/actions/add-fonts.js +70 -0
  272. package/schematics/ng-add/actions/add-fonts.js.map +1 -0
  273. package/schematics/ng-add/actions/add-styles.d.ts +3 -0
  274. package/schematics/ng-add/actions/add-styles.js +70 -0
  275. package/schematics/ng-add/actions/add-styles.js.map +1 -0
  276. package/schematics/ng-add/index.d.ts +3 -0
  277. package/schematics/ng-add/index.js +83 -0
  278. package/schematics/ng-add/index.js.map +1 -0
  279. package/schematics/ng-add/schema.d.ts +3 -0
  280. package/schematics/ng-add/schema.js +3 -0
  281. package/schematics/ng-add/schema.js.map +1 -0
  282. package/schematics/ng-add/schema.json +8 -0
  283. package/schematics/ng-add/setup-project.d.ts +3 -0
  284. package/schematics/ng-add/setup-project.js +14 -0
  285. package/schematics/ng-add/setup-project.js.map +1 -0
  286. package/schematics/utils/package-config.d.ts +3 -0
  287. package/schematics/utils/package-config.js +36 -0
  288. package/schematics/utils/package-config.js.map +1 -0
  289. package/schematics/utils/project.d.ts +10 -0
  290. package/schematics/utils/project.js +46 -0
  291. package/schematics/utils/project.js.map +1 -0
  292. package/{country-select/index.d.ts → types/elementar-rt-components-country-select.d.ts} +1 -1
  293. package/{currency-select/index.d.ts → types/elementar-rt-components-currency-select.d.ts} +1 -1
  294. /package/{action-required/index.d.ts → types/elementar-rt-components-action-required.d.ts} +0 -0
  295. /package/{alert/index.d.ts → types/elementar-rt-components-alert.d.ts} +0 -0
  296. /package/{announcement/index.d.ts → types/elementar-rt-components-announcement.d.ts} +0 -0
  297. /package/{avatar/index.d.ts → types/elementar-rt-components-avatar.d.ts} +0 -0
  298. /package/{badge/index.d.ts → types/elementar-rt-components-badge.d.ts} +0 -0
  299. /package/{block-loader/index.d.ts → types/elementar-rt-components-block-loader.d.ts} +0 -0
  300. /package/{block-state/index.d.ts → types/elementar-rt-components-block-state.d.ts} +0 -0
  301. /package/{bottom-sheet/index.d.ts → types/elementar-rt-components-bottom-sheet.d.ts} +0 -0
  302. /package/{brand-colors/index.d.ts → types/elementar-rt-components-brand-colors.d.ts} +0 -0
  303. /package/{breadcrumbs/index.d.ts → types/elementar-rt-components-breadcrumbs.d.ts} +0 -0
  304. /package/{button-toggle/index.d.ts → types/elementar-rt-components-button-toggle.d.ts} +0 -0
  305. /package/{calendar/index.d.ts → types/elementar-rt-components-calendar.d.ts} +0 -0
  306. /package/{card-overlay/index.d.ts → types/elementar-rt-components-card-overlay.d.ts} +0 -0
  307. /package/{card/index.d.ts → types/elementar-rt-components-card.d.ts} +0 -0
  308. /package/{carousel/index.d.ts → types/elementar-rt-components-carousel.d.ts} +0 -0
  309. /package/{chips/index.d.ts → types/elementar-rt-components-chips.d.ts} +0 -0
  310. /package/{clipboard-copy/index.d.ts → types/elementar-rt-components-clipboard-copy.d.ts} +0 -0
  311. /package/{code-highlighter/index.d.ts → types/elementar-rt-components-code-highlighter.d.ts} +0 -0
  312. /package/{color-picker/index.d.ts → types/elementar-rt-components-color-picker.d.ts} +0 -0
  313. /package/{color-scheme/index.d.ts → types/elementar-rt-components-color-scheme.d.ts} +0 -0
  314. /package/{combobox/index.d.ts → types/elementar-rt-components-combobox.d.ts} +0 -0
  315. /package/{command-bar/index.d.ts → types/elementar-rt-components-command-bar.d.ts} +0 -0
  316. /package/{comment-editor/index.d.ts → types/elementar-rt-components-comment-editor.d.ts} +0 -0
  317. /package/{comparison-slider/index.d.ts → types/elementar-rt-components-comparison-slider.d.ts} +0 -0
  318. /package/{confirm/index.d.ts → types/elementar-rt-components-confirm.d.ts} +0 -0
  319. /package/{content-editor/index.d.ts → types/elementar-rt-components-content-editor.d.ts} +0 -0
  320. /package/{content-fade/index.d.ts → types/elementar-rt-components-content-fade.d.ts} +0 -0
  321. /package/{cookie-popup/index.d.ts → types/elementar-rt-components-cookie-popup.d.ts} +0 -0
  322. /package/{core/index.d.ts → types/elementar-rt-components-core.d.ts} +0 -0
  323. /package/{crop/index.d.ts → types/elementar-rt-components-crop.d.ts} +0 -0
  324. /package/{dashboard/index.d.ts → types/elementar-rt-components-dashboard.d.ts} +0 -0
  325. /package/{data-grid/index.d.ts → types/elementar-rt-components-data-grid.d.ts} +0 -0
  326. /package/{data-view/index.d.ts → types/elementar-rt-components-data-view.d.ts} +0 -0
  327. /package/{date-format-select/index.d.ts → types/elementar-rt-components-date-format-select.d.ts} +0 -0
  328. /package/{datepicker/index.d.ts → types/elementar-rt-components-datepicker.d.ts} +0 -0
  329. /package/{dialog/index.d.ts → types/elementar-rt-components-dialog.d.ts} +0 -0
  330. /package/{digit-roller/index.d.ts → types/elementar-rt-components-digit-roller.d.ts} +0 -0
  331. /package/{divider/index.d.ts → types/elementar-rt-components-divider.d.ts} +0 -0
  332. /package/{drawer/index.d.ts → types/elementar-rt-components-drawer.d.ts} +0 -0
  333. /package/{emoji-picker/index.d.ts → types/elementar-rt-components-emoji-picker.d.ts} +0 -0
  334. /package/{empty-state/index.d.ts → types/elementar-rt-components-empty-state.d.ts} +0 -0
  335. /package/{expand/index.d.ts → types/elementar-rt-components-expand.d.ts} +0 -0
  336. /package/{expansion-panel/index.d.ts → types/elementar-rt-components-expansion-panel.d.ts} +0 -0
  337. /package/{filter-builder/index.d.ts → types/elementar-rt-components-filter-builder.d.ts} +0 -0
  338. /package/{filter-select/index.d.ts → types/elementar-rt-components-filter-select.d.ts} +0 -0
  339. /package/{form-renderer/index.d.ts → types/elementar-rt-components-form-renderer.d.ts} +0 -0
  340. /package/{gauge/index.d.ts → types/elementar-rt-components-gauge.d.ts} +0 -0
  341. /package/{grid/index.d.ts → types/elementar-rt-components-grid.d.ts} +0 -0
  342. /package/{guided-tour/index.d.ts → types/elementar-rt-components-guided-tour.d.ts} +0 -0
  343. /package/{headless-stepper/index.d.ts → types/elementar-rt-components-headless-stepper.d.ts} +0 -0
  344. /package/{icon/index.d.ts → types/elementar-rt-components-icon.d.ts} +0 -0
  345. /package/{image-placeholder/index.d.ts → types/elementar-rt-components-image-placeholder.d.ts} +0 -0
  346. /package/{image-resizer/index.d.ts → types/elementar-rt-components-image-resizer.d.ts} +0 -0
  347. /package/{image-viewer/index.d.ts → types/elementar-rt-components-image-viewer.d.ts} +0 -0
  348. /package/{image-zoom-viewer/index.d.ts → types/elementar-rt-components-image-zoom-viewer.d.ts} +0 -0
  349. /package/{incidents/index.d.ts → types/elementar-rt-components-incidents.d.ts} +0 -0
  350. /package/{inline-text-edit/index.d.ts → types/elementar-rt-components-inline-text-edit.d.ts} +0 -0
  351. /package/{input-mask/index.d.ts → types/elementar-rt-components-input-mask.d.ts} +0 -0
  352. /package/{input-validator/index.d.ts → types/elementar-rt-components-input-validator.d.ts} +0 -0
  353. /package/{kanban-board/index.d.ts → types/elementar-rt-components-kanban-board.d.ts} +0 -0
  354. /package/{keyboard/index.d.ts → types/elementar-rt-components-keyboard.d.ts} +0 -0
  355. /package/{layout/index.d.ts → types/elementar-rt-components-layout.d.ts} +0 -0
  356. /package/{list/index.d.ts → types/elementar-rt-components-list.d.ts} +0 -0
  357. /package/{logo/index.d.ts → types/elementar-rt-components-logo.d.ts} +0 -0
  358. /package/{marquee/index.d.ts → types/elementar-rt-components-marquee.d.ts} +0 -0
  359. /package/{menu/index.d.ts → types/elementar-rt-components-menu.d.ts} +0 -0
  360. /package/{micro-chart/index.d.ts → types/elementar-rt-components-micro-chart.d.ts} +0 -0
  361. /package/{multi-select/index.d.ts → types/elementar-rt-components-multi-select.d.ts} +0 -0
  362. /package/{navigation/index.d.ts → types/elementar-rt-components-navigation.d.ts} +0 -0
  363. /package/{notifications/index.d.ts → types/elementar-rt-components-notifications.d.ts} +0 -0
  364. /package/{number-input/index.d.ts → types/elementar-rt-components-number-input.d.ts} +0 -0
  365. /package/{overlay-scrollbar/index.d.ts → types/elementar-rt-components-overlay-scrollbar.d.ts} +0 -0
  366. /package/{overlay/index.d.ts → types/elementar-rt-components-overlay.d.ts} +0 -0
  367. /package/{page-loading-bar/index.d.ts → types/elementar-rt-components-page-loading-bar.d.ts} +0 -0
  368. /package/{paginator/index.d.ts → types/elementar-rt-components-paginator.d.ts} +0 -0
  369. /package/{panel/index.d.ts → types/elementar-rt-components-panel.d.ts} +0 -0
  370. /package/{password-strength/index.d.ts → types/elementar-rt-components-password-strength.d.ts} +0 -0
  371. /package/{phone-input/index.d.ts → types/elementar-rt-components-phone-input.d.ts} +0 -0
  372. /package/{pin-input/index.d.ts → types/elementar-rt-components-pin-input.d.ts} +0 -0
  373. /package/{popover/index.d.ts → types/elementar-rt-components-popover.d.ts} +0 -0
  374. /package/{progress-bar/index.d.ts → types/elementar-rt-components-progress-bar.d.ts} +0 -0
  375. /package/{progress-spinner/index.d.ts → types/elementar-rt-components-progress-spinner.d.ts} +0 -0
  376. /package/{radio-card/index.d.ts → types/elementar-rt-components-radio-card.d.ts} +0 -0
  377. /package/{rail-nav/index.d.ts → types/elementar-rt-components-rail-nav.d.ts} +0 -0
  378. /package/{rating/index.d.ts → types/elementar-rt-components-rating.d.ts} +0 -0
  379. /package/{resizable-container/index.d.ts → types/elementar-rt-components-resizable-container.d.ts} +0 -0
  380. /package/{screen-loader/index.d.ts → types/elementar-rt-components-screen-loader.d.ts} +0 -0
  381. /package/{scroll-spy/index.d.ts → types/elementar-rt-components-scroll-spy.d.ts} +0 -0
  382. /package/{segmented/index.d.ts → types/elementar-rt-components-segmented.d.ts} +0 -0
  383. /package/{side-panel/index.d.ts → types/elementar-rt-components-side-panel.d.ts} +0 -0
  384. /package/{sidebar/index.d.ts → types/elementar-rt-components-sidebar.d.ts} +0 -0
  385. /package/{sidenav/index.d.ts → types/elementar-rt-components-sidenav.d.ts} +0 -0
  386. /package/{signature-pad/index.d.ts → types/elementar-rt-components-signature-pad.d.ts} +0 -0
  387. /package/{skeleton/index.d.ts → types/elementar-rt-components-skeleton.d.ts} +0 -0
  388. /package/{slider/index.d.ts → types/elementar-rt-components-slider.d.ts} +0 -0
  389. /package/{snackbar/index.d.ts → types/elementar-rt-components-snackbar.d.ts} +0 -0
  390. /package/{sort/index.d.ts → types/elementar-rt-components-sort.d.ts} +0 -0
  391. /package/{splash-screen/index.d.ts → types/elementar-rt-components-splash-screen.d.ts} +0 -0
  392. /package/{split-pane/index.d.ts → types/elementar-rt-components-split-pane.d.ts} +0 -0
  393. /package/{stat-card/index.d.ts → types/elementar-rt-components-stat-card.d.ts} +0 -0
  394. /package/{step-tracker/index.d.ts → types/elementar-rt-components-step-tracker.d.ts} +0 -0
  395. /package/{stepper/index.d.ts → types/elementar-rt-components-stepper.d.ts} +0 -0
  396. /package/{suggestions/index.d.ts → types/elementar-rt-components-suggestions.d.ts} +0 -0
  397. /package/{tab-panel/index.d.ts → types/elementar-rt-components-tab-panel.d.ts} +0 -0
  398. /package/{table/index.d.ts → types/elementar-rt-components-table.d.ts} +0 -0
  399. /package/{tabs/index.d.ts → types/elementar-rt-components-tabs.d.ts} +0 -0
  400. /package/{tag/index.d.ts → types/elementar-rt-components-tag.d.ts} +0 -0
  401. /package/{text-editor/index.d.ts → types/elementar-rt-components-text-editor.d.ts} +0 -0
  402. /package/{thumbnail-maker/index.d.ts → types/elementar-rt-components-thumbnail-maker.d.ts} +0 -0
  403. /package/{tiles/index.d.ts → types/elementar-rt-components-tiles.d.ts} +0 -0
  404. /package/{timeline/index.d.ts → types/elementar-rt-components-timeline.d.ts} +0 -0
  405. /package/{timepicker/index.d.ts → types/elementar-rt-components-timepicker.d.ts} +0 -0
  406. /package/{timezone-select/index.d.ts → types/elementar-rt-components-timezone-select.d.ts} +0 -0
  407. /package/{toast/index.d.ts → types/elementar-rt-components-toast.d.ts} +0 -0
  408. /package/{toolbar/index.d.ts → types/elementar-rt-components-toolbar.d.ts} +0 -0
  409. /package/{tooltip/index.d.ts → types/elementar-rt-components-tooltip.d.ts} +0 -0
  410. /package/{tree/index.d.ts → types/elementar-rt-components-tree.d.ts} +0 -0
  411. /package/{upload/index.d.ts → types/elementar-rt-components-upload.d.ts} +0 -0
  412. /package/{video-player/index.d.ts → types/elementar-rt-components-video-player.d.ts} +0 -0
  413. /package/{video-viewer/index.d.ts → types/elementar-rt-components-video-viewer.d.ts} +0 -0
  414. /package/{index.d.ts → types/elementar-rt-components.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"elementar-rt-components-image-resizer.mjs","sources":["../../../projects/components/image-resizer/src/image-resize-handler.directive.ts","../../../projects/components/image-resizer/src/image-resizer-image.directive.ts","../../../projects/components/image-resizer/src/image-resizer/image-resizer.component.ts","../../../projects/components/image-resizer/src/image-resizer/image-resizer.component.html","../../../projects/components/image-resizer/elementar-rt-components-image-resizer.ts"],"sourcesContent":["import {\n ChangeDetectorRef, DestroyRef,\n Directive,\n ElementRef,\n inject,\n input,\n NgZone, numberAttribute, output,\n PLATFORM_ID,\n Renderer2,\n DOCUMENT\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { fromEvent, throttleTime } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Directive({\n selector: '[emrImageResizeHandler]'\n})\nexport class ImageResizeHandlerDirective {\n private _platformId = inject(PLATFORM_ID);\n private _elementRef = inject(ElementRef);\n private _renderer = inject(Renderer2);\n private _cdr = inject(ChangeDetectorRef);\n private _ngZone = inject(NgZone);\n private _destroyRef = inject(DestroyRef);\n private _document = inject(DOCUMENT);\n private _resizing = false;\n private _width: number;\n private _clientX: number;\n\n maxWidth = input.required({\n transform: numberAttribute\n });\n minWidth = input.required({\n transform: numberAttribute\n });\n targetElement = input.required<HTMLElement>();\n direction = input.required<'left' | 'right'>();\n\n readonly dimensionsChanged = output();\n\n ngOnInit() {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n\n const targetElement = this.targetElement();\n\n this._ngZone.runOutsideAngular(() => {\n fromEvent<MouseEvent>(this._elementRef.nativeElement, 'mousedown')\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((event: MouseEvent) => {\n this._resizing = true;\n this._width = targetElement.getBoundingClientRect().width;\n this._clientX = event.clientX;\n this._cdr.detectChanges();\n })\n ;\n fromEvent<MouseEvent>(this._document, 'mousemove')\n .pipe(\n throttleTime(5),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event: MouseEvent) => {\n if (this._resizing) {\n let width = this._width;\n\n if (this.direction() === 'left') {\n width = this._width - (this._clientX - event.clientX);\n } else if (this.direction() === 'right') {\n width = (this._width - (event.clientX - this._clientX));\n }\n\n if (width <= this.minWidth()) {\n width = this.minWidth();\n } else if (width >= this.maxWidth()) {\n width = this.maxWidth();\n }\n\n this._renderer.setStyle(targetElement, 'width', width + 'px');\n this.dimensionsChanged.emit();\n }\n })\n ;\n fromEvent(this._document, 'mouseup')\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(event => {\n this._resizing = false;\n this._cdr.detectChanges();\n })\n ;\n });\n }\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[emrImageResizerImage]',\n exportAs: 'emrImageResizerImage',\n host: {\n '(dragstart)': '_onDragStart($event)'\n }\n})\nexport class ImageResizerImageDirective {\n readonly elementRef = inject<ElementRef<HTMLImageElement>>(ElementRef);\n\n protected _onDragStart(event: Event) {\n event.stopPropagation();\n event.preventDefault();\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component, contentChild, effect,\n ElementRef,\n inject, input, numberAttribute,\n output,\n PLATFORM_ID,\n Renderer2,\n signal,\n} from '@angular/core';\nimport { ImageResizeHandlerDirective } from '../image-resize-handler.directive';\nimport { isPlatformServer } from '@angular/common';\nimport { ImageResizedEvent } from '../types';\nimport { ImageResizerImageDirective } from '../image-resizer-image.directive';\n\n@Component({\n selector: 'emr-image-resizer',\n exportAs: 'emrImageResizer',\n imports: [\n ImageResizeHandlerDirective\n ],\n templateUrl: './image-resizer.component.html',\n styleUrl: './image-resizer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'emr-image-resizer'\n }\n})\nexport class ImageResizerComponent implements AfterContentInit {\n protected _platformId = inject(PLATFORM_ID);\n protected _elementRef = inject(ElementRef);\n protected _renderer = inject(Renderer2);\n\n readonly imageRef = contentChild.required(ImageResizerImageDirective);\n\n imageMaxWidth = input(null, {\n transform: numberAttribute\n });\n imageMinWidth = input(100, {\n transform: numberAttribute\n });\n\n readonly imageResized = output<ImageResizedEvent>();\n\n protected _maxWidth = signal<number | null>(null);\n\n constructor() {\n effect(() => {\n this._maxWidth.set(this.imageMaxWidth());\n });\n }\n\n ngAfterContentInit() {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n\n this.imageRef().elementRef.nativeElement\n .onload = () => {\n setTimeout(() => {\n const { width } = this.imageRef().elementRef.nativeElement.getBoundingClientRect();\n\n if (this.imageMaxWidth() === null) {\n this._maxWidth.set(width);\n }\n }, 100);\n };\n }\n\n onDimensionsChanged() {\n const { width, height } = this.imageRef().elementRef.nativeElement.getBoundingClientRect();\n const { naturalWidth, naturalHeight } = this.imageRef().elementRef.nativeElement;\n this.imageResized.emit({\n width,\n height,\n naturalWidth,\n naturalHeight\n });\n }\n}\n","<div emrImageResizeHandler direction=\"right\"\n [maxWidth]=\"_maxWidth()\"\n [minWidth]=\"imageMinWidth()\"\n [targetElement]=\"imageRef().elementRef.nativeElement\" class=\"handler handler-start\"\n (dimensionsChanged)=\"onDimensionsChanged()\"></div>\n<ng-content select=\"[emrImageResizerImage]\"/>\n<div emrImageResizeHandler direction=\"left\"\n [maxWidth]=\"_maxWidth()\"\n [minWidth]=\"imageMinWidth()\"\n [targetElement]=\"imageRef().elementRef.nativeElement\" class=\"handler handler-end\"\n (dimensionsChanged)=\"onDimensionsChanged()\"></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elementar-rt-components-image-resizer.mjs","sources":["../../../projects/components/image-resizer/src/image-resize-handler.directive.ts","../../../projects/components/image-resizer/src/image-resizer-image.directive.ts","../../../projects/components/image-resizer/src/image-resizer/image-resizer.component.ts","../../../projects/components/image-resizer/src/image-resizer/image-resizer.component.html","../../../projects/components/image-resizer/elementar-rt-components-image-resizer.ts"],"sourcesContent":["import {\n ChangeDetectorRef, DestroyRef,\n Directive,\n ElementRef,\n inject,\n input,\n NgZone, numberAttribute, output,\n PLATFORM_ID,\n Renderer2,\n DOCUMENT\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { fromEvent, throttleTime } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Directive({\n selector: '[emrImageResizeHandler]'\n})\nexport class ImageResizeHandlerDirective {\n private _platformId = inject(PLATFORM_ID);\n private _elementRef = inject(ElementRef);\n private _renderer = inject(Renderer2);\n private _cdr = inject(ChangeDetectorRef);\n private _ngZone = inject(NgZone);\n private _destroyRef = inject(DestroyRef);\n private _document = inject(DOCUMENT);\n private _resizing = false;\n private _width: number;\n private _clientX: number;\n\n maxWidth = input.required({\n transform: numberAttribute\n });\n minWidth = input.required({\n transform: numberAttribute\n });\n targetElement = input.required<HTMLElement>();\n direction = input.required<'left' | 'right'>();\n\n readonly dimensionsChanged = output();\n\n ngOnInit() {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n\n const targetElement = this.targetElement();\n\n this._ngZone.runOutsideAngular(() => {\n fromEvent<MouseEvent>(this._elementRef.nativeElement, 'mousedown')\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((event: MouseEvent) => {\n this._resizing = true;\n this._width = targetElement.getBoundingClientRect().width;\n this._clientX = event.clientX;\n this._cdr.detectChanges();\n })\n ;\n fromEvent<MouseEvent>(this._document, 'mousemove')\n .pipe(\n throttleTime(5),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event: MouseEvent) => {\n if (this._resizing) {\n let width = this._width;\n\n if (this.direction() === 'left') {\n width = this._width - (this._clientX - event.clientX);\n } else if (this.direction() === 'right') {\n width = (this._width - (event.clientX - this._clientX));\n }\n\n if (width <= this.minWidth()) {\n width = this.minWidth();\n } else if (width >= this.maxWidth()) {\n width = this.maxWidth();\n }\n\n this._renderer.setStyle(targetElement, 'width', width + 'px');\n this.dimensionsChanged.emit();\n }\n })\n ;\n fromEvent(this._document, 'mouseup')\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(event => {\n this._resizing = false;\n this._cdr.detectChanges();\n })\n ;\n });\n }\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[emrImageResizerImage]',\n exportAs: 'emrImageResizerImage',\n host: {\n '(dragstart)': '_onDragStart($event)'\n }\n})\nexport class ImageResizerImageDirective {\n readonly elementRef = inject<ElementRef<HTMLImageElement>>(ElementRef);\n\n protected _onDragStart(event: Event) {\n event.stopPropagation();\n event.preventDefault();\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component, contentChild, effect,\n ElementRef,\n inject, input, numberAttribute,\n output,\n PLATFORM_ID,\n Renderer2,\n signal,\n} from '@angular/core';\nimport { ImageResizeHandlerDirective } from '../image-resize-handler.directive';\nimport { isPlatformServer } from '@angular/common';\nimport { ImageResizedEvent } from '../types';\nimport { ImageResizerImageDirective } from '../image-resizer-image.directive';\n\n@Component({\n selector: 'emr-image-resizer',\n exportAs: 'emrImageResizer',\n imports: [\n ImageResizeHandlerDirective\n ],\n templateUrl: './image-resizer.component.html',\n styleUrl: './image-resizer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'emr-image-resizer'\n }\n})\nexport class ImageResizerComponent implements AfterContentInit {\n protected _platformId = inject(PLATFORM_ID);\n protected _elementRef = inject(ElementRef);\n protected _renderer = inject(Renderer2);\n\n readonly imageRef = contentChild.required(ImageResizerImageDirective);\n\n imageMaxWidth = input(null, {\n transform: numberAttribute\n });\n imageMinWidth = input(100, {\n transform: numberAttribute\n });\n\n readonly imageResized = output<ImageResizedEvent>();\n\n protected _maxWidth = signal<number | null>(null);\n\n constructor() {\n effect(() => {\n this._maxWidth.set(this.imageMaxWidth());\n });\n }\n\n ngAfterContentInit() {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n\n this.imageRef().elementRef.nativeElement\n .onload = () => {\n setTimeout(() => {\n const { width } = this.imageRef().elementRef.nativeElement.getBoundingClientRect();\n\n if (this.imageMaxWidth() === null) {\n this._maxWidth.set(width);\n }\n }, 100);\n };\n }\n\n onDimensionsChanged() {\n const { width, height } = this.imageRef().elementRef.nativeElement.getBoundingClientRect();\n const { naturalWidth, naturalHeight } = this.imageRef().elementRef.nativeElement;\n this.imageResized.emit({\n width,\n height,\n naturalWidth,\n naturalHeight\n });\n }\n}\n","<div emrImageResizeHandler direction=\"right\"\n [maxWidth]=\"_maxWidth()\"\n [minWidth]=\"imageMinWidth()\"\n [targetElement]=\"imageRef().elementRef.nativeElement\" class=\"handler handler-start\"\n (dimensionsChanged)=\"onDimensionsChanged()\"></div>\n<ng-content select=\"[emrImageResizerImage]\"/>\n<div emrImageResizeHandler direction=\"left\"\n [maxWidth]=\"_maxWidth()\"\n [minWidth]=\"imageMinWidth()\"\n [targetElement]=\"imageRef().elementRef.nativeElement\" class=\"handler handler-end\"\n (dimensionsChanged)=\"onDimensionsChanged()\"></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -42,13 +42,13 @@ class ImageViewerComponent {
42
42
  padding = 30;
43
43
  scaled = computed(() => {
44
44
  return this.scale !== 1;
45
- }, ...(ngDevMode ? [{ debugName: "scaled" }] : []));
45
+ }, ...(ngDevMode ? [{ debugName: "scaled" }] : /* istanbul ignore next */ []));
46
46
  hasTitle = computed(() => {
47
47
  return !!(this.data.title || this.data.titleTplRef);
48
- }, ...(ngDevMode ? [{ debugName: "hasTitle" }] : []));
48
+ }, ...(ngDevMode ? [{ debugName: "hasTitle" }] : /* istanbul ignore next */ []));
49
49
  hasAside = computed(() => {
50
50
  return !!(this.data.caption || this.data.description || this.data.captionTplRef || this.data.descriptionTplRef);
51
- }, ...(ngDevMode ? [{ debugName: "hasAside" }] : []));
51
+ }, ...(ngDevMode ? [{ debugName: "hasAside" }] : /* istanbul ignore next */ []));
52
52
  onLoad(event) {
53
53
  this.loading = false;
54
54
  this.image = event.target;
@@ -186,10 +186,10 @@ class ImageViewerComponent {
186
186
  this._tmpOffsetX = translateX;
187
187
  this._renderer.setStyle(image, 'transform', `translate(${translateX}px,${translateY}px)`);
188
188
  }
189
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ImageViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
190
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: ImageViewerComponent, isStandalone: true, selector: "emr-image-viewer", host: { properties: { "class.loading": "loading", "class.dragging": "_dragging", "class.scaled": "scale !== 1" }, classAttribute: "emr-image-viewer" }, exportAs: ["emrImageViewer"], ngImport: i0, template: "<div class=\"title-container\">\n @if (hasTitle()) {\n <div class=\"title\">\n @if (data.titleTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.titleTplRef\"></ng-container>\n } @else if (data.caption) {\n {{ data.title }}\n }\n </div>\n }\n</div>\n<div class=\"controls\" (click)=\"onPreventClick($event)\">\n <div class=\"w-max\">\n <button (click)=\"pictureRef.close()\" class=\"close\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <div class=\"w-max\">\n <button class=\"zoom\" (click)=\"toggleZoom()\" [disabled]=\"scaleMax === 1 || null\">\n @if (scale === this.scaleMin) {\n <mat-icon>zoom_in</mat-icon>\n } @else {\n <mat-icon>zoom_out</mat-icon>\n }\n </button>\n </div>\n</div>\n<div class=\"content\" (click)=\"onBackdropClick()\">\n <div class=\"image\" (dragstart)=\"onDragStart($event)\">\n @if (loading) {\n <div class=\"spinner\">\n <mat-spinner/>\n </div>\n }\n <img [src]=\"data.sourceUrl\" alt=\"\" (load)=\"onLoad($event)\" (click)=\"onPreventClick($event)\" class=\"img\">\n </div>\n @if (hasAside()) {\n <aside class=\"aside\" (click)=\"onPreventClick($event)\">\n <div class=\"aside-header\">\n @if (data.captionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.captionTplRef\"></ng-container>\n } @else if (data.caption) {\n {{ data.caption }}\n }\n </div>\n <div class=\"aside-body\">\n <div class=\"aside-body-scroll\">\n @if (data.descriptionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.descriptionTplRef\"></ng-container>\n } @else if (data.description) {\n {{ data.description }}\n }\n </div>\n </div>\n </aside>\n }\n</div>\n", styles: [":host{width:100vw;height:100vh;display:flex;flex-direction:column}:host .title-container{position:absolute;inset-inline-start:calc(var(--spacing, .25rem) * 4);top:calc(var(--spacing, .25rem) * 4);z-index:3}:host .controls{position:absolute;inset-inline-end:calc(var(--spacing, .25rem) * 4);top:calc(var(--spacing, .25rem) * 4);z-index:3;display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}:host .header{position:absolute;top:0;inset-inline-start:0;inset-inline-end:0;height:calc(var(--spacing, .25rem) * 20);flex:none;padding-left:calc(var(--spacing, .25rem) * 4);padding-right:calc(var(--spacing, .25rem) * 4);z-index:3;display:flex;align-items:center;justify-content:space-between}:host .content{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;z-index:2;display:flex;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 8);width:100vw;height:100vh}:host.scaled img{cursor:grab}:host.dragging img{cursor:grabbing}:host:has(.aside) .content{padding-inline-end:420px}:host .img{-webkit-user-select:none;user-select:none;scale:var(--emr-image-viewer-picture-scale, 1);transition:scale .15s linear}:host:not(.dragging) img{transition:transform .15s linear,scale .15s linear}:host .title{background-color:var(--color-neutral-700);font-weight:500;height:calc(var(--spacing, .25rem) * 10);border-radius:calc(infinity * 1px);padding-left:calc(var(--spacing, .25rem) * 4);padding-right:calc(var(--spacing, .25rem) * 4);font-size:var(--text-tiny);display:flex;align-items:center;background:var(--color-neutral-700);color:var(--color-neutral-300)}:host .close,:host .zoom{width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10);border-radius:calc(infinity * 1px);cursor:pointer;display:flex;flex:none;align-items:center;justify-content:center;background:var(--color-neutral-700);color:var(--color-neutral-300)}:host .close:hover,:host .zoom:hover{background:var(--color-neutral-800);color:var(--color-neutral-200)}:host .close:active,:host .zoom:active{background:var(--color-neutral-950);color:var(--color-neutral-100)}:host .aside{width:420px;position:absolute;inset-inline-end:0;top:0;bottom:0;flex:none;background:var(--color-neutral-50);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 5);height:100%;padding-inline-end:calc(var(--spacing, .25rem) * 10)}:host .aside-header{font-weight:700;padding-left:calc(var(--spacing, .25rem) * 8);padding-right:calc(var(--spacing, .25rem) * 8);padding-top:calc(var(--spacing, .25rem) * 8)}:host .aside-body{position:relative;flex-grow:1;font-size:.875rem;color:var(--color-neutral-600);line-height:var(--leading-relaxed)}:host .aside-body-scroll{position:absolute;inset:0;overflow-y:auto;padding-left:calc(var(--spacing, .25rem) * 8);padding-right:calc(var(--spacing, .25rem) * 8);padding-bottom:calc(var(--spacing, .25rem) * 8)}:host .image{position:relative;display:flex;align-items:center;justify-content:flex-end;height:100%;max-width:90%;max-height:90%}:host .image img{max-height:100%;max-width:100%}:host .spinner{visibility:hidden;width:max-content;position:absolute;top:50%;left:50%;z-index:-1;--tw-translate-y: -50%;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:host.loading .spinner{visibility:visible;z-index:1}:host.loading img{visibility:hidden;position:relative;z-index:-50}:host-context(html.dark) .title{background:var(--color-neutral-100);color:var(--color-neutral-600)}:host-context(html.dark) .close{background:var(--color-neutral-100);color:var(--color-neutral-600)}:host-context(html.dark) .close:hover{background:var(--color-neutral-200);color:var(--color-neutral-700)}:host-context(html.dark) .close:active{background:var(--color-neutral-300);color:var(--color-neutral-900)}:host-context(html.dark) .aside{background:var(--color-neutral-900)}:host-context(html.dark) .aside-body{color:var(--color-neutral-400)}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
189
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ImageViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
190
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ImageViewerComponent, isStandalone: true, selector: "emr-image-viewer", host: { properties: { "class.loading": "loading", "class.dragging": "_dragging", "class.scaled": "scale !== 1" }, classAttribute: "emr-image-viewer" }, exportAs: ["emrImageViewer"], ngImport: i0, template: "<div class=\"title-container\">\n @if (hasTitle()) {\n <div class=\"title\">\n @if (data.titleTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.titleTplRef\"></ng-container>\n } @else if (data.caption) {\n {{ data.title }}\n }\n </div>\n }\n</div>\n<div class=\"controls\" (click)=\"onPreventClick($event)\">\n <div class=\"w-max\">\n <button (click)=\"pictureRef.close()\" class=\"close\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <div class=\"w-max\">\n <button class=\"zoom\" (click)=\"toggleZoom()\" [disabled]=\"scaleMax === 1 || null\">\n @if (scale === this.scaleMin) {\n <mat-icon>zoom_in</mat-icon>\n } @else {\n <mat-icon>zoom_out</mat-icon>\n }\n </button>\n </div>\n</div>\n<div class=\"content\" (click)=\"onBackdropClick()\">\n <div class=\"image\" (dragstart)=\"onDragStart($event)\">\n @if (loading) {\n <div class=\"spinner\">\n <mat-spinner/>\n </div>\n }\n <img [src]=\"data.sourceUrl\" alt=\"\" (load)=\"onLoad($event)\" (click)=\"onPreventClick($event)\" class=\"img\">\n </div>\n @if (hasAside()) {\n <aside class=\"aside\" (click)=\"onPreventClick($event)\">\n <div class=\"aside-header\">\n @if (data.captionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.captionTplRef\"></ng-container>\n } @else if (data.caption) {\n {{ data.caption }}\n }\n </div>\n <div class=\"aside-body\">\n <div class=\"aside-body-scroll\">\n @if (data.descriptionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.descriptionTplRef\"></ng-container>\n } @else if (data.description) {\n {{ data.description }}\n }\n </div>\n </div>\n </aside>\n }\n</div>\n", styles: [":host{width:100vw;height:100vh;display:flex;flex-direction:column}:host .title-container{position:absolute;inset-inline-start:calc(var(--spacing, .25rem) * 4);top:calc(var(--spacing, .25rem) * 4);z-index:3}:host .controls{position:absolute;inset-inline-end:calc(var(--spacing, .25rem) * 4);top:calc(var(--spacing, .25rem) * 4);z-index:3;display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}:host .header{position:absolute;top:0;inset-inline-start:0;inset-inline-end:0;height:calc(var(--spacing, .25rem) * 20);flex:none;padding-left:calc(var(--spacing, .25rem) * 4);padding-right:calc(var(--spacing, .25rem) * 4);z-index:3;display:flex;align-items:center;justify-content:space-between}:host .content{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;z-index:2;display:flex;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 8);width:100vw;height:100vh}:host.scaled img{cursor:grab}:host.dragging img{cursor:grabbing}:host:has(.aside) .content{padding-inline-end:420px}:host .img{-webkit-user-select:none;user-select:none;scale:var(--emr-image-viewer-picture-scale, 1);transition:scale .15s linear}:host:not(.dragging) img{transition:transform .15s linear,scale .15s linear}:host .title{background-color:var(--color-neutral-700);font-weight:500;height:calc(var(--spacing, .25rem) * 10);border-radius:calc(infinity * 1px);padding-left:calc(var(--spacing, .25rem) * 4);padding-right:calc(var(--spacing, .25rem) * 4);font-size:var(--text-tiny);display:flex;align-items:center;background:var(--color-neutral-700);color:var(--color-neutral-300)}:host .close,:host .zoom{width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10);border-radius:calc(infinity * 1px);cursor:pointer;display:flex;flex:none;align-items:center;justify-content:center;background:var(--color-neutral-700);color:var(--color-neutral-300)}:host .close:hover,:host .zoom:hover{background:var(--color-neutral-800);color:var(--color-neutral-200)}:host .close:active,:host .zoom:active{background:var(--color-neutral-950);color:var(--color-neutral-100)}:host .aside{width:420px;position:absolute;inset-inline-end:0;top:0;bottom:0;flex:none;background:var(--color-neutral-50);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 5);height:100%;padding-inline-end:calc(var(--spacing, .25rem) * 10)}:host .aside-header{font-weight:700;padding-left:calc(var(--spacing, .25rem) * 8);padding-right:calc(var(--spacing, .25rem) * 8);padding-top:calc(var(--spacing, .25rem) * 8)}:host .aside-body{position:relative;flex-grow:1;font-size:.875rem;color:var(--color-neutral-600);line-height:var(--leading-relaxed)}:host .aside-body-scroll{position:absolute;inset:0;overflow-y:auto;padding-left:calc(var(--spacing, .25rem) * 8);padding-right:calc(var(--spacing, .25rem) * 8);padding-bottom:calc(var(--spacing, .25rem) * 8)}:host .image{position:relative;display:flex;align-items:center;justify-content:flex-end;height:100%;max-width:90%;max-height:90%}:host .image img{max-height:100%;max-width:100%}:host .spinner{visibility:hidden;width:max-content;position:absolute;top:50%;left:50%;z-index:-1;--tw-translate-y: -50%;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:host.loading .spinner{visibility:visible;z-index:1}:host.loading img{visibility:hidden;position:relative;z-index:-50}:host-context(html.dark) .title{background:var(--color-neutral-100);color:var(--color-neutral-600)}:host-context(html.dark) .close{background:var(--color-neutral-100);color:var(--color-neutral-600)}:host-context(html.dark) .close:hover{background:var(--color-neutral-200);color:var(--color-neutral-700)}:host-context(html.dark) .close:active{background:var(--color-neutral-300);color:var(--color-neutral-900)}:host-context(html.dark) .aside{background:var(--color-neutral-900)}:host-context(html.dark) .aside-body{color:var(--color-neutral-400)}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
191
191
  }
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ImageViewerComponent, decorators: [{
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ImageViewerComponent, decorators: [{
193
193
  type: Component,
194
194
  args: [{ selector: 'emr-image-viewer', exportAs: 'emrImageViewer', imports: [
195
195
  MatIcon,
@@ -200,7 +200,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
200
200
  '[class.loading]': 'loading',
201
201
  '[class.dragging]': '_dragging',
202
202
  '[class.scaled]': 'scale !== 1'
203
- }, template: "<div class=\"title-container\">\n @if (hasTitle()) {\n <div class=\"title\">\n @if (data.titleTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.titleTplRef\"></ng-container>\n } @else if (data.caption) {\n {{ data.title }}\n }\n </div>\n }\n</div>\n<div class=\"controls\" (click)=\"onPreventClick($event)\">\n <div class=\"w-max\">\n <button (click)=\"pictureRef.close()\" class=\"close\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <div class=\"w-max\">\n <button class=\"zoom\" (click)=\"toggleZoom()\" [disabled]=\"scaleMax === 1 || null\">\n @if (scale === this.scaleMin) {\n <mat-icon>zoom_in</mat-icon>\n } @else {\n <mat-icon>zoom_out</mat-icon>\n }\n </button>\n </div>\n</div>\n<div class=\"content\" (click)=\"onBackdropClick()\">\n <div class=\"image\" (dragstart)=\"onDragStart($event)\">\n @if (loading) {\n <div class=\"spinner\">\n <mat-spinner/>\n </div>\n }\n <img [src]=\"data.sourceUrl\" alt=\"\" (load)=\"onLoad($event)\" (click)=\"onPreventClick($event)\" class=\"img\">\n </div>\n @if (hasAside()) {\n <aside class=\"aside\" (click)=\"onPreventClick($event)\">\n <div class=\"aside-header\">\n @if (data.captionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.captionTplRef\"></ng-container>\n } @else if (data.caption) {\n {{ data.caption }}\n }\n </div>\n <div class=\"aside-body\">\n <div class=\"aside-body-scroll\">\n @if (data.descriptionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.descriptionTplRef\"></ng-container>\n } @else if (data.description) {\n {{ data.description }}\n }\n </div>\n </div>\n </aside>\n }\n</div>\n", styles: [":host{width:100vw;height:100vh;display:flex;flex-direction:column}:host .title-container{position:absolute;inset-inline-start:calc(var(--spacing, .25rem) * 4);top:calc(var(--spacing, .25rem) * 4);z-index:3}:host .controls{position:absolute;inset-inline-end:calc(var(--spacing, .25rem) * 4);top:calc(var(--spacing, .25rem) * 4);z-index:3;display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}:host .header{position:absolute;top:0;inset-inline-start:0;inset-inline-end:0;height:calc(var(--spacing, .25rem) * 20);flex:none;padding-left:calc(var(--spacing, .25rem) * 4);padding-right:calc(var(--spacing, .25rem) * 4);z-index:3;display:flex;align-items:center;justify-content:space-between}:host .content{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;z-index:2;display:flex;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 8);width:100vw;height:100vh}:host.scaled img{cursor:grab}:host.dragging img{cursor:grabbing}:host:has(.aside) .content{padding-inline-end:420px}:host .img{-webkit-user-select:none;user-select:none;scale:var(--emr-image-viewer-picture-scale, 1);transition:scale .15s linear}:host:not(.dragging) img{transition:transform .15s linear,scale .15s linear}:host .title{background-color:var(--color-neutral-700);font-weight:500;height:calc(var(--spacing, .25rem) * 10);border-radius:calc(infinity * 1px);padding-left:calc(var(--spacing, .25rem) * 4);padding-right:calc(var(--spacing, .25rem) * 4);font-size:var(--text-tiny);display:flex;align-items:center;background:var(--color-neutral-700);color:var(--color-neutral-300)}:host .close,:host .zoom{width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10);border-radius:calc(infinity * 1px);cursor:pointer;display:flex;flex:none;align-items:center;justify-content:center;background:var(--color-neutral-700);color:var(--color-neutral-300)}:host .close:hover,:host .zoom:hover{background:var(--color-neutral-800);color:var(--color-neutral-200)}:host .close:active,:host .zoom:active{background:var(--color-neutral-950);color:var(--color-neutral-100)}:host .aside{width:420px;position:absolute;inset-inline-end:0;top:0;bottom:0;flex:none;background:var(--color-neutral-50);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 5);height:100%;padding-inline-end:calc(var(--spacing, .25rem) * 10)}:host .aside-header{font-weight:700;padding-left:calc(var(--spacing, .25rem) * 8);padding-right:calc(var(--spacing, .25rem) * 8);padding-top:calc(var(--spacing, .25rem) * 8)}:host .aside-body{position:relative;flex-grow:1;font-size:.875rem;color:var(--color-neutral-600);line-height:var(--leading-relaxed)}:host .aside-body-scroll{position:absolute;inset:0;overflow-y:auto;padding-left:calc(var(--spacing, .25rem) * 8);padding-right:calc(var(--spacing, .25rem) * 8);padding-bottom:calc(var(--spacing, .25rem) * 8)}:host .image{position:relative;display:flex;align-items:center;justify-content:flex-end;height:100%;max-width:90%;max-height:90%}:host .image img{max-height:100%;max-width:100%}:host .spinner{visibility:hidden;width:max-content;position:absolute;top:50%;left:50%;z-index:-1;--tw-translate-y: -50%;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:host.loading .spinner{visibility:visible;z-index:1}:host.loading img{visibility:hidden;position:relative;z-index:-50}:host-context(html.dark) .title{background:var(--color-neutral-100);color:var(--color-neutral-600)}:host-context(html.dark) .close{background:var(--color-neutral-100);color:var(--color-neutral-600)}:host-context(html.dark) .close:hover{background:var(--color-neutral-200);color:var(--color-neutral-700)}:host-context(html.dark) .close:active{background:var(--color-neutral-300);color:var(--color-neutral-900)}:host-context(html.dark) .aside{background:var(--color-neutral-900)}:host-context(html.dark) .aside-body{color:var(--color-neutral-400)}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] }]
203
+ }, template: "<div class=\"title-container\">\n @if (hasTitle()) {\n <div class=\"title\">\n @if (data.titleTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.titleTplRef\"></ng-container>\n } @else if (data.caption) {\n {{ data.title }}\n }\n </div>\n }\n</div>\n<div class=\"controls\" (click)=\"onPreventClick($event)\">\n <div class=\"w-max\">\n <button (click)=\"pictureRef.close()\" class=\"close\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <div class=\"w-max\">\n <button class=\"zoom\" (click)=\"toggleZoom()\" [disabled]=\"scaleMax === 1 || null\">\n @if (scale === this.scaleMin) {\n <mat-icon>zoom_in</mat-icon>\n } @else {\n <mat-icon>zoom_out</mat-icon>\n }\n </button>\n </div>\n</div>\n<div class=\"content\" (click)=\"onBackdropClick()\">\n <div class=\"image\" (dragstart)=\"onDragStart($event)\">\n @if (loading) {\n <div class=\"spinner\">\n <mat-spinner/>\n </div>\n }\n <img [src]=\"data.sourceUrl\" alt=\"\" (load)=\"onLoad($event)\" (click)=\"onPreventClick($event)\" class=\"img\">\n </div>\n @if (hasAside()) {\n <aside class=\"aside\" (click)=\"onPreventClick($event)\">\n <div class=\"aside-header\">\n @if (data.captionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.captionTplRef\"></ng-container>\n } @else if (data.caption) {\n {{ data.caption }}\n }\n </div>\n <div class=\"aside-body\">\n <div class=\"aside-body-scroll\">\n @if (data.descriptionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.descriptionTplRef\"></ng-container>\n } @else if (data.description) {\n {{ data.description }}\n }\n </div>\n </div>\n </aside>\n }\n</div>\n", styles: [":host{width:100vw;height:100vh;display:flex;flex-direction:column}:host .title-container{position:absolute;inset-inline-start:calc(var(--spacing, .25rem) * 4);top:calc(var(--spacing, .25rem) * 4);z-index:3}:host .controls{position:absolute;inset-inline-end:calc(var(--spacing, .25rem) * 4);top:calc(var(--spacing, .25rem) * 4);z-index:3;display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4)}:host .header{position:absolute;top:0;inset-inline-start:0;inset-inline-end:0;height:calc(var(--spacing, .25rem) * 20);flex:none;padding-left:calc(var(--spacing, .25rem) * 4);padding-right:calc(var(--spacing, .25rem) * 4);z-index:3;display:flex;align-items:center;justify-content:space-between}:host .content{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;z-index:2;display:flex;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 8);width:100vw;height:100vh}:host.scaled img{cursor:grab}:host.dragging img{cursor:grabbing}:host:has(.aside) .content{padding-inline-end:420px}:host .img{-webkit-user-select:none;user-select:none;scale:var(--emr-image-viewer-picture-scale, 1);transition:scale .15s linear}:host:not(.dragging) img{transition:transform .15s linear,scale .15s linear}:host .title{background-color:var(--color-neutral-700);font-weight:500;height:calc(var(--spacing, .25rem) * 10);border-radius:calc(infinity * 1px);padding-left:calc(var(--spacing, .25rem) * 4);padding-right:calc(var(--spacing, .25rem) * 4);font-size:var(--text-tiny);display:flex;align-items:center;background:var(--color-neutral-700);color:var(--color-neutral-300)}:host .close,:host .zoom{width:calc(var(--spacing, .25rem) * 10);height:calc(var(--spacing, .25rem) * 10);border-radius:calc(infinity * 1px);cursor:pointer;display:flex;flex:none;align-items:center;justify-content:center;background:var(--color-neutral-700);color:var(--color-neutral-300)}:host .close:hover,:host .zoom:hover{background:var(--color-neutral-800);color:var(--color-neutral-200)}:host .close:active,:host .zoom:active{background:var(--color-neutral-950);color:var(--color-neutral-100)}:host .aside{width:420px;position:absolute;inset-inline-end:0;top:0;bottom:0;flex:none;background:var(--color-neutral-50);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 5);height:100%;padding-inline-end:calc(var(--spacing, .25rem) * 10)}:host .aside-header{font-weight:700;padding-left:calc(var(--spacing, .25rem) * 8);padding-right:calc(var(--spacing, .25rem) * 8);padding-top:calc(var(--spacing, .25rem) * 8)}:host .aside-body{position:relative;flex-grow:1;font-size:.875rem;color:var(--color-neutral-600);line-height:var(--leading-relaxed)}:host .aside-body-scroll{position:absolute;inset:0;overflow-y:auto;padding-left:calc(var(--spacing, .25rem) * 8);padding-right:calc(var(--spacing, .25rem) * 8);padding-bottom:calc(var(--spacing, .25rem) * 8)}:host .image{position:relative;display:flex;align-items:center;justify-content:flex-end;height:100%;max-width:90%;max-height:90%}:host .image img{max-height:100%;max-width:100%}:host .spinner{visibility:hidden;width:max-content;position:absolute;top:50%;left:50%;z-index:-1;--tw-translate-y: -50%;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:host.loading .spinner{visibility:visible;z-index:1}:host.loading img{visibility:hidden;position:relative;z-index:-50}:host-context(html.dark) .title{background:var(--color-neutral-100);color:var(--color-neutral-600)}:host-context(html.dark) .close{background:var(--color-neutral-100);color:var(--color-neutral-600)}:host-context(html.dark) .close:hover{background:var(--color-neutral-200);color:var(--color-neutral-700)}:host-context(html.dark) .close:active{background:var(--color-neutral-300);color:var(--color-neutral-900)}:host-context(html.dark) .aside{background:var(--color-neutral-900)}:host-context(html.dark) .aside-body{color:var(--color-neutral-400)}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
204
204
  }] });
205
205
 
206
206
  class ImageViewerDirective {
@@ -238,10 +238,10 @@ class ImageViewerDirective {
238
238
  });
239
239
  return pictureRef;
240
240
  }
241
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ImageViewerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
242
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: ImageViewerDirective, isStandalone: true, selector: "[emrImageViewer]", host: { classAttribute: "emr-image-viewer" }, exportAs: ["emrImageViewer"], ngImport: i0 });
241
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ImageViewerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
242
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: ImageViewerDirective, isStandalone: true, selector: "[emrImageViewer]", host: { classAttribute: "emr-image-viewer" }, exportAs: ["emrImageViewer"], ngImport: i0 });
243
243
  }
244
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ImageViewerDirective, decorators: [{
244
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ImageViewerDirective, decorators: [{
245
245
  type: Directive,
246
246
  args: [{
247
247
  selector: '[emrImageViewer]',
@@ -255,10 +255,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
255
255
 
256
256
  class ImageViewerPictureCaptionDirective {
257
257
  templateRef = inject(TemplateRef);
258
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ImageViewerPictureCaptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
259
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: ImageViewerPictureCaptionDirective, isStandalone: true, selector: "[emrImageViewerPictureCaption]", ngImport: i0 });
258
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ImageViewerPictureCaptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
259
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: ImageViewerPictureCaptionDirective, isStandalone: true, selector: "[emrImageViewerPictureCaption]", ngImport: i0 });
260
260
  }
261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ImageViewerPictureCaptionDirective, decorators: [{
261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ImageViewerPictureCaptionDirective, decorators: [{
262
262
  type: Directive,
263
263
  args: [{
264
264
  selector: '[emrImageViewerPictureCaption]',
@@ -268,10 +268,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
268
268
 
269
269
  class ImageViewerPictureDescriptionDirective {
270
270
  templateRef = inject(TemplateRef);
271
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ImageViewerPictureDescriptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
272
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: ImageViewerPictureDescriptionDirective, isStandalone: true, selector: "[emrImageViewerPictureDescription]", ngImport: i0 });
271
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ImageViewerPictureDescriptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
272
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: ImageViewerPictureDescriptionDirective, isStandalone: true, selector: "[emrImageViewerPictureDescription]", ngImport: i0 });
273
273
  }
274
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ImageViewerPictureDescriptionDirective, decorators: [{
274
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ImageViewerPictureDescriptionDirective, decorators: [{
275
275
  type: Directive,
276
276
  args: [{
277
277
  selector: '[emrImageViewerPictureDescription]',
@@ -281,10 +281,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
281
281
 
282
282
  class ImageViewerPictureTitleDirective {
283
283
  templateRef = inject(TemplateRef);
284
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ImageViewerPictureTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
285
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: ImageViewerPictureTitleDirective, isStandalone: true, selector: "[emrImageViewerPictureTitle]", ngImport: i0 });
284
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ImageViewerPictureTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
285
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: ImageViewerPictureTitleDirective, isStandalone: true, selector: "[emrImageViewerPictureTitle]", ngImport: i0 });
286
286
  }
287
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ImageViewerPictureTitleDirective, decorators: [{
287
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ImageViewerPictureTitleDirective, decorators: [{
288
288
  type: Directive,
289
289
  args: [{
290
290
  selector: '[emrImageViewerPictureTitle]',
@@ -294,13 +294,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
294
294
 
295
295
  class ImageViewerPictureDirective {
296
296
  _imageViewer = inject(ImageViewerDirective);
297
- _titleTplRef = contentChild(ImageViewerPictureTitleDirective, ...(ngDevMode ? [{ debugName: "_titleTplRef" }] : []));
298
- _captionTplRef = contentChild(ImageViewerPictureCaptionDirective, ...(ngDevMode ? [{ debugName: "_captionTplRef" }] : []));
299
- _descriptionTplRef = contentChild(ImageViewerPictureDescriptionDirective, ...(ngDevMode ? [{ debugName: "_descriptionTplRef" }] : []));
300
- sourceUrl = input.required(...(ngDevMode ? [{ debugName: "sourceUrl" }] : []));
301
- caption = input(...(ngDevMode ? [undefined, { debugName: "caption" }] : []));
302
- title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : []));
303
- description = input(...(ngDevMode ? [undefined, { debugName: "description" }] : []));
297
+ _titleTplRef = contentChild(ImageViewerPictureTitleDirective, ...(ngDevMode ? [{ debugName: "_titleTplRef" }] : /* istanbul ignore next */ []));
298
+ _captionTplRef = contentChild(ImageViewerPictureCaptionDirective, ...(ngDevMode ? [{ debugName: "_captionTplRef" }] : /* istanbul ignore next */ []));
299
+ _descriptionTplRef = contentChild(ImageViewerPictureDescriptionDirective, ...(ngDevMode ? [{ debugName: "_descriptionTplRef" }] : /* istanbul ignore next */ []));
300
+ sourceUrl = input.required(...(ngDevMode ? [{ debugName: "sourceUrl" }] : /* istanbul ignore next */ []));
301
+ caption = input(...(ngDevMode ? [undefined, { debugName: "caption" }] : /* istanbul ignore next */ []));
302
+ title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : /* istanbul ignore next */ []));
303
+ description = input(...(ngDevMode ? [undefined, { debugName: "description" }] : /* istanbul ignore next */ []));
304
304
  onClick(event) {
305
305
  event.preventDefault();
306
306
  event.stopPropagation();
@@ -314,15 +314,15 @@ class ImageViewerPictureDirective {
314
314
  descriptionTplRef: this._descriptionTplRef()?.templateRef
315
315
  });
316
316
  }
317
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ImageViewerPictureDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
318
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.25", type: ImageViewerPictureDirective, isStandalone: true, selector: "[emrImageViewerPicture]", inputs: { sourceUrl: { classPropertyName: "sourceUrl", publicName: "sourceUrl", isSignal: true, isRequired: true, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick($event)" }, classAttribute: "emr-image-viewer-picture" }, providers: [
317
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ImageViewerPictureDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
318
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.22", type: ImageViewerPictureDirective, isStandalone: true, selector: "[emrImageViewerPicture]", inputs: { sourceUrl: { classPropertyName: "sourceUrl", publicName: "sourceUrl", isSignal: true, isRequired: true, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onClick($event)" }, classAttribute: "emr-image-viewer-picture" }, providers: [
319
319
  {
320
320
  provide: IMAGE_VIEWER,
321
321
  useExisting: ImageViewerPictureDirective
322
322
  }
323
323
  ], queries: [{ propertyName: "_titleTplRef", first: true, predicate: ImageViewerPictureTitleDirective, descendants: true, isSignal: true }, { propertyName: "_captionTplRef", first: true, predicate: ImageViewerPictureCaptionDirective, descendants: true, isSignal: true }, { propertyName: "_descriptionTplRef", first: true, predicate: ImageViewerPictureDescriptionDirective, descendants: true, isSignal: true }], exportAs: ["emrImageViewerPicture"], ngImport: i0 });
324
324
  }
325
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ImageViewerPictureDirective, decorators: [{
325
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ImageViewerPictureDirective, decorators: [{
326
326
  type: Directive,
327
327
  args: [{
328
328
  selector: '[emrImageViewerPicture]',
@@ -1 +1 @@
1
- {"version":3,"file":"elementar-rt-components-image-viewer.mjs","sources":["../../../projects/components/image-viewer/src/picture-ref.ts","../../../projects/components/image-viewer/src/types.ts","../../../projects/components/image-viewer/src/image-viewer/image-viewer.component.ts","../../../projects/components/image-viewer/src/image-viewer/image-viewer.component.html","../../../projects/components/image-viewer/src/image-viewer.directive.ts","../../../projects/components/image-viewer/src/image-viewer-picture-caption.directive.ts","../../../projects/components/image-viewer/src/image-viewer-picture-description.directive.ts","../../../projects/components/image-viewer/src/image-viewer-picture-title.directive.ts","../../../projects/components/image-viewer/src/image-viewer-picture.directive.ts","../../../projects/components/image-viewer/elementar-rt-components-image-viewer.ts"],"sourcesContent":["import { EventEmitter } from '@angular/core';\n\nexport class PictureRef {\n readonly closed = new EventEmitter();\n\n close(): void {\n this.closed.emit();\n }\n}\n","import { InjectionToken, TemplateRef } from '@angular/core';\nimport { PictureRef } from './picture-ref';\n\nexport interface PictureOptions {\n sourceUrl: string;\n title?: string | undefined;\n caption?: string | undefined;\n description?: string | undefined;\n titleTplRef?: TemplateRef<any> | undefined;\n captionTplRef?: TemplateRef<any> | undefined;\n descriptionTplRef?: TemplateRef<any> | undefined;\n}\n\nexport const IMAGE_VIEWER = new InjectionToken('IMAGE_VIEWER');\nexport const IMAGE_VIEWER_PICTURE_REF = new InjectionToken<PictureRef>('IMAGE_VIEWER_PICTURE_REF');\nexport const IMAGE_VIEWER_PICTURE_DATA = new InjectionToken<PictureOptions>('IMAGE_VIEWER_PICTURE_DATA');\n","import { Component, computed, DestroyRef, ElementRef, inject, Renderer2, DOCUMENT } from '@angular/core';\nimport { IMAGE_VIEWER_PICTURE_DATA, IMAGE_VIEWER_PICTURE_REF } from '../types';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'emr-image-viewer',\n exportAs: 'emrImageViewer',\n imports: [\n MatIcon,\n MatProgressSpinner,\n NgTemplateOutlet\n ],\n templateUrl: './image-viewer.component.html',\n styleUrl: './image-viewer.component.scss',\n host: {\n 'class': 'emr-image-viewer',\n '[class.loading]': 'loading',\n '[class.dragging]': '_dragging',\n '[class.scaled]': 'scale !== 1'\n }\n})\nexport class ImageViewerComponent {\n readonly elementRef = inject(ElementRef);\n private _document = inject(DOCUMENT);\n private _destroyRef = inject(DestroyRef);\n private _renderer = inject(Renderer2);\n private _startClientY = 0;\n private _startClientX = 0;\n private _offsetY = 0;\n private _offsetX = 0;\n private _tmpOffsetY = 0;\n private _tmpOffsetX = 0;\n protected _dragging = false;\n readonly pictureRef = inject(IMAGE_VIEWER_PICTURE_REF);\n readonly data = inject(IMAGE_VIEWER_PICTURE_DATA);\n loading = true;\n scale = 1;\n image: HTMLImageElement;\n alreadyDragged = false;\n scaleMin = 1;\n scaleMax = 1;\n padding = 30;\n\n scaled = computed<boolean>(() => {\n return this.scale !== 1;\n });\n hasTitle = computed(() => {\n return !!(this.data.title || this.data.titleTplRef);\n });\n hasAside = computed(() => {\n return !!(this.data.caption || this.data.description || this.data.captionTplRef || this.data.descriptionTplRef);\n });\n\n onLoad(event: Event): void {\n this.loading = false;\n this.image = (event.target as HTMLImageElement);\n\n if (this.image.width > this.image.height) {\n this.scaleMax = this.image.naturalWidth / this.image.width;\n } else {\n this.scaleMax = this.image.naturalHeight / this.image.height;\n }\n\n const image = this.image;\n fromEvent(image, 'mousedown')\n .pipe(\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event: MouseEvent | any) => {\n if (this.scale === this.scaleMin || event.button === 2) {\n return;\n }\n\n this._dragging = true;\n this._startClientY = event.clientY;\n this._startClientX = event.clientX;\n })\n ;\n fromEvent(this._document, 'mousemove')\n .pipe(\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event: any) => {\n if (this._dragging) {\n const scaleFactor = (1 / this.scale);\n let offsetY = (event.clientY - this._startClientY) * scaleFactor;\n let offsetX = (event.clientX - this._startClientX) * scaleFactor;\n this._transform(offsetY, offsetX);\n }\n })\n ;\n fromEvent(this._document, 'mouseup')\n .pipe(\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event: any) => {\n if (this._dragging) {\n const element = this.elementRef.nativeElement as HTMLElement;\n const elementRect = element.getBoundingClientRect();\n this._renderer.removeClass(element, 'dragging');\n this._dragging = false;\n let imageWidth = Math.floor(image.getBoundingClientRect().width);\n let imageHeight = Math.floor(image.getBoundingClientRect().height);\n let imageViewportWidth = this.hasAside() ? elementRect.width - 420 : elementRect.width;\n let imageViewportHeight = elementRect.height;\n\n if (imageWidth <= imageViewportWidth && imageHeight <= imageViewportHeight) {\n this._tmpOffsetY = 0;\n this._tmpOffsetX = 0;\n this._offsetY = 0;\n this._offsetX = 0;\n this._renderer.setStyle(image, 'transform', `translate(0px,0px)`);\n } else {\n const imageRect = image.getBoundingClientRect();\n const widthDiff = imageViewportWidth - imageWidth;\n const heightDiff = imageViewportHeight - imageHeight;\n const xPositionDiff = widthDiff / this.scale / 2;\n const yPositionDiff = heightDiff / this.scale / 2;\n\n if (imageRect.x > 0 && imageRect.y > 0) {\n this._tmpOffsetY = yPositionDiff * -1 + this.padding;\n this._tmpOffsetX = xPositionDiff * -1 + this.padding;\n } else if (imageRect.x < widthDiff && imageRect.y > 0) {\n this._tmpOffsetY = yPositionDiff * -1 + this.padding;\n this._tmpOffsetX = xPositionDiff - this.padding;\n } else if (imageRect.x < widthDiff && imageRect.y < heightDiff) {\n this._tmpOffsetY = yPositionDiff - this.padding;\n this._tmpOffsetX = xPositionDiff - this.padding;\n } else if (imageRect.x > 0 && imageRect.y < heightDiff) {\n this._tmpOffsetY = yPositionDiff - this.padding;\n this._tmpOffsetX = xPositionDiff * -1 + this.padding;\n }\n\n if (imageWidth < imageViewportWidth) {\n this._tmpOffsetX = 0;\n }\n\n if (imageHeight < imageViewportHeight) {\n this._tmpOffsetY = 0;\n }\n\n this._offsetY = this._tmpOffsetY;\n this._offsetX = this._tmpOffsetX;\n this._renderer.setStyle(\n image,\n 'transform', `translate(${this._tmpOffsetX}px,${this._tmpOffsetY}px)`\n );\n }\n }\n })\n ;\n }\n\n onBackdropClick(): void {\n this.pictureRef.close();\n }\n\n onPreventClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n toggleZoom(): void {\n if (this.scale === this.scaleMin) {\n this.scale = this.scaleMax;\n } else {\n this.scale = this.scaleMin;\n this._renderer.setStyle(this.image, 'transform', `translate(0px,0px)`);\n this._offsetX = 0;\n this._offsetY = 0;\n this._tmpOffsetY = 0;\n this._tmpOffsetX = 0;\n }\n\n const element = this.elementRef.nativeElement as HTMLElement;\n element.style.setProperty('--emr-image-viewer-picture-scale', this.scale.toString());\n }\n\n protected onDragStart(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n this.alreadyDragged = true;\n }\n\n private _transform(offsetY: number, offsetX: number): void {\n const image = this.image as HTMLImageElement;\n const scaleFactor = (1 / this.scale);\n let translateX = this._offsetX + offsetX;\n // let offsetStartX = ((image.width / 2) - translateX) / scaleFactor;\n // let offsetEndX = ((image.width / 2) + translateX) / scaleFactor;\n let translateY = this._offsetY + offsetY;\n // let offsetStartY = ((image.height / 2) - translateY) / scaleFactor;\n // let offsetEndY = ((image.height / 2) + translateY) / scaleFactor;\n\n // let thumbHalfWidth = 150;\n //\n // if (offsetStartX <= thumbHalfWidth && translateX > 0) {\n // translateX = (image.width / 2) - (thumbHalfWidth * scaleFactor);\n // } else if (offsetEndX <= thumbHalfWidth && translateX < 0) {\n // translateX = -((image.width / 2) - (thumbHalfWidth * scaleFactor));\n // }\n //\n // if (offsetStartY <= thumbHalfWidth && translateY > 0) {\n // translateY = (image.height / 2) - (thumbHalfWidth * scaleFactor);\n // } else if (offsetEndY <= thumbHalfWidth && translateY < 0) {\n // translateY = -((image.height / 2) - (thumbHalfWidth * scaleFactor));\n // }\n\n this._tmpOffsetY = translateY;\n this._tmpOffsetX = translateX;\n this._renderer.setStyle(\n image,\n 'transform', `translate(${translateX}px,${translateY}px)`\n );\n }\n}\n","<div class=\"title-container\">\n @if (hasTitle()) {\n <div class=\"title\">\n @if (data.titleTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.titleTplRef\"></ng-container>\n } @else if (data.caption) {\n {{ data.title }}\n }\n </div>\n }\n</div>\n<div class=\"controls\" (click)=\"onPreventClick($event)\">\n <div class=\"w-max\">\n <button (click)=\"pictureRef.close()\" class=\"close\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <div class=\"w-max\">\n <button class=\"zoom\" (click)=\"toggleZoom()\" [disabled]=\"scaleMax === 1 || null\">\n @if (scale === this.scaleMin) {\n <mat-icon>zoom_in</mat-icon>\n } @else {\n <mat-icon>zoom_out</mat-icon>\n }\n </button>\n </div>\n</div>\n<div class=\"content\" (click)=\"onBackdropClick()\">\n <div class=\"image\" (dragstart)=\"onDragStart($event)\">\n @if (loading) {\n <div class=\"spinner\">\n <mat-spinner/>\n </div>\n }\n <img [src]=\"data.sourceUrl\" alt=\"\" (load)=\"onLoad($event)\" (click)=\"onPreventClick($event)\" class=\"img\">\n </div>\n @if (hasAside()) {\n <aside class=\"aside\" (click)=\"onPreventClick($event)\">\n <div class=\"aside-header\">\n @if (data.captionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.captionTplRef\"></ng-container>\n } @else if (data.caption) {\n {{ data.caption }}\n }\n </div>\n <div class=\"aside-body\">\n <div class=\"aside-body-scroll\">\n @if (data.descriptionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.descriptionTplRef\"></ng-container>\n } @else if (data.description) {\n {{ data.description }}\n }\n </div>\n </div>\n </aside>\n }\n</div>\n","import { DestroyRef, Directive, inject, Injector } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { PictureRef } from './picture-ref';\nimport { ImageViewerComponent } from './image-viewer/image-viewer.component';\nimport { IMAGE_VIEWER_PICTURE_DATA, IMAGE_VIEWER_PICTURE_REF, PictureOptions } from './types';\n\n@Directive({\n selector: '[emrImageViewer]',\n exportAs: 'emrImageViewer',\n standalone: true,\n host: {\n 'class': 'emr-image-viewer',\n }\n})\nexport class ImageViewerDirective {\n private _overlay = inject(Overlay);\n private _injector = inject(Injector);\n private _destroyRef = inject(DestroyRef);\n\n get api() {\n return {\n open: (options: PictureOptions): PictureRef => this._open(options)\n }\n }\n\n private _open(options: PictureOptions): PictureRef {\n const pictureRef = new PictureRef();\n const overlayRef = this._overlay.create({\n positionStrategy: this._overlay.position().global(),\n hasBackdrop: true\n });\n const injector = Injector.create({\n providers: [\n {\n provide: IMAGE_VIEWER_PICTURE_REF,\n useValue: pictureRef\n },\n {\n provide: IMAGE_VIEWER_PICTURE_DATA,\n useValue: options\n }\n ],\n parent: this._injector\n });\n const portal = new ComponentPortal(ImageViewerComponent, null, injector);\n overlayRef.attach(portal);\n pictureRef.closed.pipe(\n takeUntilDestroyed(this._destroyRef)\n ).subscribe(() => {\n overlayRef.detach();\n });\n return pictureRef;\n }\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[emrImageViewerPictureCaption]',\n standalone: true\n})\nexport class ImageViewerPictureCaptionDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[emrImageViewerPictureDescription]',\n standalone: true\n})\nexport class ImageViewerPictureDescriptionDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[emrImageViewerPictureTitle]',\n standalone: true\n})\nexport class ImageViewerPictureTitleDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import { contentChild, Directive, inject, input } from '@angular/core';\nimport { IMAGE_VIEWER } from './types';\nimport { ImageViewerDirective } from './image-viewer.directive';\nimport { ImageViewerPictureCaptionDirective } from './image-viewer-picture-caption.directive';\nimport { ImageViewerPictureDescriptionDirective } from './image-viewer-picture-description.directive';\nimport { ImageViewerPictureTitleDirective } from './image-viewer-picture-title.directive';\n\n@Directive({\n selector: '[emrImageViewerPicture]',\n exportAs: 'emrImageViewerPicture',\n standalone: true,\n providers: [\n {\n provide: IMAGE_VIEWER,\n useExisting: ImageViewerPictureDirective\n }\n ],\n host: {\n 'class': 'emr-image-viewer-picture',\n '(click)': 'onClick($event)'\n }\n})\nexport class ImageViewerPictureDirective {\n private _imageViewer = inject(ImageViewerDirective);\n private _titleTplRef = contentChild(ImageViewerPictureTitleDirective);\n private _captionTplRef = contentChild(ImageViewerPictureCaptionDirective);\n private _descriptionTplRef = contentChild(ImageViewerPictureDescriptionDirective);\n\n sourceUrl = input.required<string>();\n caption = input<string>();\n title = input<string>();\n description = input<string>();\n\n protected onClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this._imageViewer.api.open({\n sourceUrl: this.sourceUrl(),\n title: this.title(),\n caption: this.caption(),\n description: this.description(),\n titleTplRef: this._titleTplRef()?.templateRef,\n captionTplRef: this._captionTplRef()?.templateRef,\n descriptionTplRef: this._descriptionTplRef()?.templateRef\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elementar-rt-components-image-viewer.mjs","sources":["../../../projects/components/image-viewer/src/picture-ref.ts","../../../projects/components/image-viewer/src/types.ts","../../../projects/components/image-viewer/src/image-viewer/image-viewer.component.ts","../../../projects/components/image-viewer/src/image-viewer/image-viewer.component.html","../../../projects/components/image-viewer/src/image-viewer.directive.ts","../../../projects/components/image-viewer/src/image-viewer-picture-caption.directive.ts","../../../projects/components/image-viewer/src/image-viewer-picture-description.directive.ts","../../../projects/components/image-viewer/src/image-viewer-picture-title.directive.ts","../../../projects/components/image-viewer/src/image-viewer-picture.directive.ts","../../../projects/components/image-viewer/elementar-rt-components-image-viewer.ts"],"sourcesContent":["import { EventEmitter } from '@angular/core';\n\nexport class PictureRef {\n readonly closed = new EventEmitter();\n\n close(): void {\n this.closed.emit();\n }\n}\n","import { InjectionToken, TemplateRef } from '@angular/core';\nimport { PictureRef } from './picture-ref';\n\nexport interface PictureOptions {\n sourceUrl: string;\n title?: string | undefined;\n caption?: string | undefined;\n description?: string | undefined;\n titleTplRef?: TemplateRef<any> | undefined;\n captionTplRef?: TemplateRef<any> | undefined;\n descriptionTplRef?: TemplateRef<any> | undefined;\n}\n\nexport const IMAGE_VIEWER = new InjectionToken('IMAGE_VIEWER');\nexport const IMAGE_VIEWER_PICTURE_REF = new InjectionToken<PictureRef>('IMAGE_VIEWER_PICTURE_REF');\nexport const IMAGE_VIEWER_PICTURE_DATA = new InjectionToken<PictureOptions>('IMAGE_VIEWER_PICTURE_DATA');\n","import { Component, computed, DestroyRef, ElementRef, inject, Renderer2, DOCUMENT } from '@angular/core';\nimport { IMAGE_VIEWER_PICTURE_DATA, IMAGE_VIEWER_PICTURE_REF } from '../types';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'emr-image-viewer',\n exportAs: 'emrImageViewer',\n imports: [\n MatIcon,\n MatProgressSpinner,\n NgTemplateOutlet\n ],\n templateUrl: './image-viewer.component.html',\n styleUrl: './image-viewer.component.scss',\n host: {\n 'class': 'emr-image-viewer',\n '[class.loading]': 'loading',\n '[class.dragging]': '_dragging',\n '[class.scaled]': 'scale !== 1'\n }\n})\nexport class ImageViewerComponent {\n readonly elementRef = inject(ElementRef);\n private _document = inject(DOCUMENT);\n private _destroyRef = inject(DestroyRef);\n private _renderer = inject(Renderer2);\n private _startClientY = 0;\n private _startClientX = 0;\n private _offsetY = 0;\n private _offsetX = 0;\n private _tmpOffsetY = 0;\n private _tmpOffsetX = 0;\n protected _dragging = false;\n readonly pictureRef = inject(IMAGE_VIEWER_PICTURE_REF);\n readonly data = inject(IMAGE_VIEWER_PICTURE_DATA);\n loading = true;\n scale = 1;\n image: HTMLImageElement;\n alreadyDragged = false;\n scaleMin = 1;\n scaleMax = 1;\n padding = 30;\n\n scaled = computed<boolean>(() => {\n return this.scale !== 1;\n });\n hasTitle = computed(() => {\n return !!(this.data.title || this.data.titleTplRef);\n });\n hasAside = computed(() => {\n return !!(this.data.caption || this.data.description || this.data.captionTplRef || this.data.descriptionTplRef);\n });\n\n onLoad(event: Event): void {\n this.loading = false;\n this.image = (event.target as HTMLImageElement);\n\n if (this.image.width > this.image.height) {\n this.scaleMax = this.image.naturalWidth / this.image.width;\n } else {\n this.scaleMax = this.image.naturalHeight / this.image.height;\n }\n\n const image = this.image;\n fromEvent(image, 'mousedown')\n .pipe(\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event: MouseEvent | any) => {\n if (this.scale === this.scaleMin || event.button === 2) {\n return;\n }\n\n this._dragging = true;\n this._startClientY = event.clientY;\n this._startClientX = event.clientX;\n })\n ;\n fromEvent(this._document, 'mousemove')\n .pipe(\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event: any) => {\n if (this._dragging) {\n const scaleFactor = (1 / this.scale);\n let offsetY = (event.clientY - this._startClientY) * scaleFactor;\n let offsetX = (event.clientX - this._startClientX) * scaleFactor;\n this._transform(offsetY, offsetX);\n }\n })\n ;\n fromEvent(this._document, 'mouseup')\n .pipe(\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event: any) => {\n if (this._dragging) {\n const element = this.elementRef.nativeElement as HTMLElement;\n const elementRect = element.getBoundingClientRect();\n this._renderer.removeClass(element, 'dragging');\n this._dragging = false;\n let imageWidth = Math.floor(image.getBoundingClientRect().width);\n let imageHeight = Math.floor(image.getBoundingClientRect().height);\n let imageViewportWidth = this.hasAside() ? elementRect.width - 420 : elementRect.width;\n let imageViewportHeight = elementRect.height;\n\n if (imageWidth <= imageViewportWidth && imageHeight <= imageViewportHeight) {\n this._tmpOffsetY = 0;\n this._tmpOffsetX = 0;\n this._offsetY = 0;\n this._offsetX = 0;\n this._renderer.setStyle(image, 'transform', `translate(0px,0px)`);\n } else {\n const imageRect = image.getBoundingClientRect();\n const widthDiff = imageViewportWidth - imageWidth;\n const heightDiff = imageViewportHeight - imageHeight;\n const xPositionDiff = widthDiff / this.scale / 2;\n const yPositionDiff = heightDiff / this.scale / 2;\n\n if (imageRect.x > 0 && imageRect.y > 0) {\n this._tmpOffsetY = yPositionDiff * -1 + this.padding;\n this._tmpOffsetX = xPositionDiff * -1 + this.padding;\n } else if (imageRect.x < widthDiff && imageRect.y > 0) {\n this._tmpOffsetY = yPositionDiff * -1 + this.padding;\n this._tmpOffsetX = xPositionDiff - this.padding;\n } else if (imageRect.x < widthDiff && imageRect.y < heightDiff) {\n this._tmpOffsetY = yPositionDiff - this.padding;\n this._tmpOffsetX = xPositionDiff - this.padding;\n } else if (imageRect.x > 0 && imageRect.y < heightDiff) {\n this._tmpOffsetY = yPositionDiff - this.padding;\n this._tmpOffsetX = xPositionDiff * -1 + this.padding;\n }\n\n if (imageWidth < imageViewportWidth) {\n this._tmpOffsetX = 0;\n }\n\n if (imageHeight < imageViewportHeight) {\n this._tmpOffsetY = 0;\n }\n\n this._offsetY = this._tmpOffsetY;\n this._offsetX = this._tmpOffsetX;\n this._renderer.setStyle(\n image,\n 'transform', `translate(${this._tmpOffsetX}px,${this._tmpOffsetY}px)`\n );\n }\n }\n })\n ;\n }\n\n onBackdropClick(): void {\n this.pictureRef.close();\n }\n\n onPreventClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n toggleZoom(): void {\n if (this.scale === this.scaleMin) {\n this.scale = this.scaleMax;\n } else {\n this.scale = this.scaleMin;\n this._renderer.setStyle(this.image, 'transform', `translate(0px,0px)`);\n this._offsetX = 0;\n this._offsetY = 0;\n this._tmpOffsetY = 0;\n this._tmpOffsetX = 0;\n }\n\n const element = this.elementRef.nativeElement as HTMLElement;\n element.style.setProperty('--emr-image-viewer-picture-scale', this.scale.toString());\n }\n\n protected onDragStart(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n this.alreadyDragged = true;\n }\n\n private _transform(offsetY: number, offsetX: number): void {\n const image = this.image as HTMLImageElement;\n const scaleFactor = (1 / this.scale);\n let translateX = this._offsetX + offsetX;\n // let offsetStartX = ((image.width / 2) - translateX) / scaleFactor;\n // let offsetEndX = ((image.width / 2) + translateX) / scaleFactor;\n let translateY = this._offsetY + offsetY;\n // let offsetStartY = ((image.height / 2) - translateY) / scaleFactor;\n // let offsetEndY = ((image.height / 2) + translateY) / scaleFactor;\n\n // let thumbHalfWidth = 150;\n //\n // if (offsetStartX <= thumbHalfWidth && translateX > 0) {\n // translateX = (image.width / 2) - (thumbHalfWidth * scaleFactor);\n // } else if (offsetEndX <= thumbHalfWidth && translateX < 0) {\n // translateX = -((image.width / 2) - (thumbHalfWidth * scaleFactor));\n // }\n //\n // if (offsetStartY <= thumbHalfWidth && translateY > 0) {\n // translateY = (image.height / 2) - (thumbHalfWidth * scaleFactor);\n // } else if (offsetEndY <= thumbHalfWidth && translateY < 0) {\n // translateY = -((image.height / 2) - (thumbHalfWidth * scaleFactor));\n // }\n\n this._tmpOffsetY = translateY;\n this._tmpOffsetX = translateX;\n this._renderer.setStyle(\n image,\n 'transform', `translate(${translateX}px,${translateY}px)`\n );\n }\n}\n","<div class=\"title-container\">\n @if (hasTitle()) {\n <div class=\"title\">\n @if (data.titleTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.titleTplRef\"></ng-container>\n } @else if (data.caption) {\n {{ data.title }}\n }\n </div>\n }\n</div>\n<div class=\"controls\" (click)=\"onPreventClick($event)\">\n <div class=\"w-max\">\n <button (click)=\"pictureRef.close()\" class=\"close\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n <div class=\"w-max\">\n <button class=\"zoom\" (click)=\"toggleZoom()\" [disabled]=\"scaleMax === 1 || null\">\n @if (scale === this.scaleMin) {\n <mat-icon>zoom_in</mat-icon>\n } @else {\n <mat-icon>zoom_out</mat-icon>\n }\n </button>\n </div>\n</div>\n<div class=\"content\" (click)=\"onBackdropClick()\">\n <div class=\"image\" (dragstart)=\"onDragStart($event)\">\n @if (loading) {\n <div class=\"spinner\">\n <mat-spinner/>\n </div>\n }\n <img [src]=\"data.sourceUrl\" alt=\"\" (load)=\"onLoad($event)\" (click)=\"onPreventClick($event)\" class=\"img\">\n </div>\n @if (hasAside()) {\n <aside class=\"aside\" (click)=\"onPreventClick($event)\">\n <div class=\"aside-header\">\n @if (data.captionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.captionTplRef\"></ng-container>\n } @else if (data.caption) {\n {{ data.caption }}\n }\n </div>\n <div class=\"aside-body\">\n <div class=\"aside-body-scroll\">\n @if (data.descriptionTplRef) {\n <ng-container [ngTemplateOutlet]=\"data.descriptionTplRef\"></ng-container>\n } @else if (data.description) {\n {{ data.description }}\n }\n </div>\n </div>\n </aside>\n }\n</div>\n","import { DestroyRef, Directive, inject, Injector } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { PictureRef } from './picture-ref';\nimport { ImageViewerComponent } from './image-viewer/image-viewer.component';\nimport { IMAGE_VIEWER_PICTURE_DATA, IMAGE_VIEWER_PICTURE_REF, PictureOptions } from './types';\n\n@Directive({\n selector: '[emrImageViewer]',\n exportAs: 'emrImageViewer',\n standalone: true,\n host: {\n 'class': 'emr-image-viewer',\n }\n})\nexport class ImageViewerDirective {\n private _overlay = inject(Overlay);\n private _injector = inject(Injector);\n private _destroyRef = inject(DestroyRef);\n\n get api() {\n return {\n open: (options: PictureOptions): PictureRef => this._open(options)\n }\n }\n\n private _open(options: PictureOptions): PictureRef {\n const pictureRef = new PictureRef();\n const overlayRef = this._overlay.create({\n positionStrategy: this._overlay.position().global(),\n hasBackdrop: true\n });\n const injector = Injector.create({\n providers: [\n {\n provide: IMAGE_VIEWER_PICTURE_REF,\n useValue: pictureRef\n },\n {\n provide: IMAGE_VIEWER_PICTURE_DATA,\n useValue: options\n }\n ],\n parent: this._injector\n });\n const portal = new ComponentPortal(ImageViewerComponent, null, injector);\n overlayRef.attach(portal);\n pictureRef.closed.pipe(\n takeUntilDestroyed(this._destroyRef)\n ).subscribe(() => {\n overlayRef.detach();\n });\n return pictureRef;\n }\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[emrImageViewerPictureCaption]',\n standalone: true\n})\nexport class ImageViewerPictureCaptionDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[emrImageViewerPictureDescription]',\n standalone: true\n})\nexport class ImageViewerPictureDescriptionDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[emrImageViewerPictureTitle]',\n standalone: true\n})\nexport class ImageViewerPictureTitleDirective {\n readonly templateRef = inject(TemplateRef);\n}\n","import { contentChild, Directive, inject, input } from '@angular/core';\nimport { IMAGE_VIEWER } from './types';\nimport { ImageViewerDirective } from './image-viewer.directive';\nimport { ImageViewerPictureCaptionDirective } from './image-viewer-picture-caption.directive';\nimport { ImageViewerPictureDescriptionDirective } from './image-viewer-picture-description.directive';\nimport { ImageViewerPictureTitleDirective } from './image-viewer-picture-title.directive';\n\n@Directive({\n selector: '[emrImageViewerPicture]',\n exportAs: 'emrImageViewerPicture',\n standalone: true,\n providers: [\n {\n provide: IMAGE_VIEWER,\n useExisting: ImageViewerPictureDirective\n }\n ],\n host: {\n 'class': 'emr-image-viewer-picture',\n '(click)': 'onClick($event)'\n }\n})\nexport class ImageViewerPictureDirective {\n private _imageViewer = inject(ImageViewerDirective);\n private _titleTplRef = contentChild(ImageViewerPictureTitleDirective);\n private _captionTplRef = contentChild(ImageViewerPictureCaptionDirective);\n private _descriptionTplRef = contentChild(ImageViewerPictureDescriptionDirective);\n\n sourceUrl = input.required<string>();\n caption = input<string>();\n title = input<string>();\n description = input<string>();\n\n protected onClick(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this._imageViewer.api.open({\n sourceUrl: this.sourceUrl(),\n title: this.title(),\n caption: this.caption(),\n description: this.description(),\n titleTplRef: this._titleTplRef()?.templateRef,\n captionTplRef: this._captionTplRef()?.templateRef,\n descriptionTplRef: this._descriptionTplRef()?.templateRef\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,15 +2,15 @@ import * as i0 from '@angular/core';
2
2
  import { input, numberAttribute, booleanAttribute, signal, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
 
4
4
  class ImageZoomViewerComponent {
5
- src = input('', ...(ngDevMode ? [{ debugName: "src" }] : []));
6
- alt = input('', ...(ngDevMode ? [{ debugName: "alt" }] : []));
7
- minZoom = input(1, ...(ngDevMode ? [{ debugName: "minZoom", transform: numberAttribute }] : [{ transform: numberAttribute }]));
8
- maxZoom = input(5, ...(ngDevMode ? [{ debugName: "maxZoom", transform: numberAttribute }] : [{ transform: numberAttribute }]));
9
- showMinimap = input(true, ...(ngDevMode ? [{ debugName: "showMinimap", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
10
- _scale = signal(1, ...(ngDevMode ? [{ debugName: "_scale" }] : []));
11
- _translateX = signal(0, ...(ngDevMode ? [{ debugName: "_translateX" }] : []));
12
- _translateY = signal(0, ...(ngDevMode ? [{ debugName: "_translateY" }] : []));
13
- _isZoomed = computed(() => this._scale() > 1, ...(ngDevMode ? [{ debugName: "_isZoomed" }] : []));
5
+ src = input('', ...(ngDevMode ? [{ debugName: "src" }] : /* istanbul ignore next */ []));
6
+ alt = input('', ...(ngDevMode ? [{ debugName: "alt" }] : /* istanbul ignore next */ []));
7
+ minZoom = input(1, { ...(ngDevMode ? { debugName: "minZoom" } : /* istanbul ignore next */ {}), transform: numberAttribute });
8
+ maxZoom = input(5, { ...(ngDevMode ? { debugName: "maxZoom" } : /* istanbul ignore next */ {}), transform: numberAttribute });
9
+ showMinimap = input(true, { ...(ngDevMode ? { debugName: "showMinimap" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
10
+ _scale = signal(1, ...(ngDevMode ? [{ debugName: "_scale" }] : /* istanbul ignore next */ []));
11
+ _translateX = signal(0, ...(ngDevMode ? [{ debugName: "_translateX" }] : /* istanbul ignore next */ []));
12
+ _translateY = signal(0, ...(ngDevMode ? [{ debugName: "_translateY" }] : /* istanbul ignore next */ []));
13
+ _isZoomed = computed(() => this._scale() > 1, ...(ngDevMode ? [{ debugName: "_isZoomed" }] : /* istanbul ignore next */ []));
14
14
  _panning = false;
15
15
  _lastX = 0;
16
16
  _lastY = 0;
@@ -64,8 +64,8 @@ class ImageZoomViewerComponent {
64
64
  this._translateX.set(0);
65
65
  this._translateY.set(0);
66
66
  }
67
- _imgStyle = computed(() => `transform: translate(${this._translateX()}px, ${this._translateY()}px) scale(${this._scale()}); cursor: ${this._scale() > 1 ? 'grab' : 'zoom-in'}`, ...(ngDevMode ? [{ debugName: "_imgStyle" }] : []));
68
- _scaleLabel = computed(() => (this._scale() * 100).toFixed(0), ...(ngDevMode ? [{ debugName: "_scaleLabel" }] : []));
67
+ _imgStyle = computed(() => `transform: translate(${this._translateX()}px, ${this._translateY()}px) scale(${this._scale()}); cursor: ${this._scale() > 1 ? 'grab' : 'zoom-in'}`, ...(ngDevMode ? [{ debugName: "_imgStyle" }] : /* istanbul ignore next */ []));
68
+ _scaleLabel = computed(() => (this._scale() * 100).toFixed(0), ...(ngDevMode ? [{ debugName: "_scaleLabel" }] : /* istanbul ignore next */ []));
69
69
  _zoomIn() { this._scale.set(Math.min(this.maxZoom(), this._scale() + 0.5)); }
70
70
  _zoomOut() {
71
71
  const next = Math.max(this.minZoom(), this._scale() - 0.5);
@@ -80,13 +80,13 @@ class ImageZoomViewerComponent {
80
80
  const x = (-this._translateX() / this._scale()) / 4;
81
81
  const y = (-this._translateY() / this._scale()) / 4;
82
82
  return `width:${pct}%; height:${pct}%; transform: translate(${x}px, ${y}px)`;
83
- }, ...(ngDevMode ? [{ debugName: "_minimapStyle" }] : []));
84
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ImageZoomViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
85
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: ImageZoomViewerComponent, isStandalone: true, selector: "emr-image-zoom-viewer", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null }, minZoom: { classPropertyName: "minZoom", publicName: "minZoom", isSignal: true, isRequired: false, transformFunction: null }, maxZoom: { classPropertyName: "maxZoom", publicName: "maxZoom", isSignal: true, isRequired: false, transformFunction: null }, showMinimap: { classPropertyName: "showMinimap", publicName: "showMinimap", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"zoom-container\"\n (wheel)=\"_onWheel($event)\"\n (mousedown)=\"_onMouseDown($event)\"\n (mousemove)=\"_onMouseMove($event)\"\n (mouseup)=\"_onMouseUp()\"\n (mouseleave)=\"_onMouseUp()\"\n (touchstart)=\"_onTouchStart($event)\"\n (touchmove)=\"_onTouchMove($event)\"\n (touchend)=\"_onTouchEnd()\"\n>\n <img\n class=\"zoom-img\"\n [src]=\"src()\"\n [alt]=\"alt()\"\n [style]=\"_imgStyle()\"\n draggable=\"false\"\n />\n\n @if (showMinimap() && _isZoomed()) {\n <div class=\"minimap\">\n <img class=\"minimap-img\" [src]=\"src()\" [alt]=\"alt()\" aria-hidden=\"true\" />\n <div class=\"minimap-viewport\" [style]=\"_minimapStyle()\"></div>\n </div>\n }\n\n <div class=\"zoom-controls\">\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_zoomIn()\" aria-label=\"Zoom in\">+</button>\n <span class=\"zoom-label\">{{ _scaleLabel() }}%</span>\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_zoomOut()\" aria-label=\"Zoom out\">\u2212</button>\n @if (_isZoomed()) {\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_reset()\" aria-label=\"Reset zoom\">\u21BA</button>\n }\n </div>\n</div>\n", styles: [":host{display:block}.zoom-container{position:relative;overflow:hidden;background:var(--color-surface-container);border-radius:.75rem;border:1px solid var(--color-outline-variant);width:100%;height:100%;user-select:none;-webkit-user-select:none}.zoom-img{display:block;width:100%;height:100%;object-fit:contain;transform-origin:center center;transition:transform 50ms linear;will-change:transform}.minimap{position:absolute;bottom:calc(var(--spacing, .25rem) * 12);right:calc(var(--spacing, .25rem) * 3);width:calc(var(--spacing, .25rem) * 24);height:calc(var(--spacing, .25rem) * 18);border-radius:.5rem;overflow:hidden;border:1px solid var(--color-outline-variant);box-shadow:0 2px 8px #0003;background:var(--color-surface-container)}.minimap-img{width:100%;height:100%;object-fit:contain;opacity:.6}.minimap-viewport{position:absolute;top:0;left:0;border:2px solid var(--color-primary);border-radius:.25rem;pointer-events:none;transition:all 50ms linear;max-width:100%;max-height:100%}.zoom-controls{position:absolute;bottom:calc(var(--spacing, .25rem) * 3);right:calc(var(--spacing, .25rem) * 3);display:flex;align-items:center;gap:var(--spacing, .25rem);background:var(--color-surface-container-high);border:1px solid var(--color-outline-variant);border-radius:9999px;padding:var(--spacing, .25rem) calc(var(--spacing, .25rem) * 2);box-shadow:0 2px 8px #00000026}.zoom-btn{width:calc(var(--spacing, .25rem) * 7);height:calc(var(--spacing, .25rem) * 7);display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;font-size:1rem;font-weight:700;border-radius:50%;color:var(--color-on-surface)}.zoom-btn:hover{background:var(--color-surface-container)}.zoom-label{font-size:.75rem;font-weight:600;color:var(--color-on-surface-variant);min-width:calc(var(--spacing, .25rem) * 8);text-align:center}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
83
+ }, ...(ngDevMode ? [{ debugName: "_minimapStyle" }] : /* istanbul ignore next */ []));
84
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ImageZoomViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
85
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ImageZoomViewerComponent, isStandalone: true, selector: "emr-image-zoom-viewer", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null }, minZoom: { classPropertyName: "minZoom", publicName: "minZoom", isSignal: true, isRequired: false, transformFunction: null }, maxZoom: { classPropertyName: "maxZoom", publicName: "maxZoom", isSignal: true, isRequired: false, transformFunction: null }, showMinimap: { classPropertyName: "showMinimap", publicName: "showMinimap", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"zoom-container\"\n (wheel)=\"_onWheel($event)\"\n (mousedown)=\"_onMouseDown($event)\"\n (mousemove)=\"_onMouseMove($event)\"\n (mouseup)=\"_onMouseUp()\"\n (mouseleave)=\"_onMouseUp()\"\n (touchstart)=\"_onTouchStart($event)\"\n (touchmove)=\"_onTouchMove($event)\"\n (touchend)=\"_onTouchEnd()\"\n>\n <img\n class=\"zoom-img\"\n [src]=\"src()\"\n [alt]=\"alt()\"\n [style]=\"_imgStyle()\"\n draggable=\"false\"\n />\n\n @if (showMinimap() && _isZoomed()) {\n <div class=\"minimap\">\n <img class=\"minimap-img\" [src]=\"src()\" [alt]=\"alt()\" aria-hidden=\"true\" />\n <div class=\"minimap-viewport\" [style]=\"_minimapStyle()\"></div>\n </div>\n }\n\n <div class=\"zoom-controls\">\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_zoomIn()\" aria-label=\"Zoom in\">+</button>\n <span class=\"zoom-label\">{{ _scaleLabel() }}%</span>\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_zoomOut()\" aria-label=\"Zoom out\">\u2212</button>\n @if (_isZoomed()) {\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_reset()\" aria-label=\"Reset zoom\">\u21BA</button>\n }\n </div>\n</div>\n", styles: [":host{display:block}.zoom-container{position:relative;overflow:hidden;background:var(--color-surface-container);border-radius:.75rem;border:1px solid var(--color-outline-variant);width:100%;height:100%;user-select:none;-webkit-user-select:none}.zoom-img{display:block;width:100%;height:100%;object-fit:contain;transform-origin:center center;transition:transform 50ms linear;will-change:transform}.minimap{position:absolute;bottom:calc(var(--spacing, .25rem) * 12);right:calc(var(--spacing, .25rem) * 3);width:calc(var(--spacing, .25rem) * 24);height:calc(var(--spacing, .25rem) * 18);border-radius:.5rem;overflow:hidden;border:1px solid var(--color-outline-variant);box-shadow:0 2px 8px #0003;background:var(--color-surface-container)}.minimap-img{width:100%;height:100%;object-fit:contain;opacity:.6}.minimap-viewport{position:absolute;top:0;left:0;border:2px solid var(--color-primary);border-radius:.25rem;pointer-events:none;transition:all 50ms linear;max-width:100%;max-height:100%}.zoom-controls{position:absolute;bottom:calc(var(--spacing, .25rem) * 3);right:calc(var(--spacing, .25rem) * 3);display:flex;align-items:center;gap:var(--spacing, .25rem);background:var(--color-surface-container-high);border:1px solid var(--color-outline-variant);border-radius:9999px;padding:var(--spacing, .25rem) calc(var(--spacing, .25rem) * 2);box-shadow:0 2px 8px #00000026}.zoom-btn{width:calc(var(--spacing, .25rem) * 7);height:calc(var(--spacing, .25rem) * 7);display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;font-size:1rem;font-weight:700;border-radius:50%;color:var(--color-on-surface)}.zoom-btn:hover{background:var(--color-surface-container)}.zoom-label{font-size:.75rem;font-weight:600;color:var(--color-on-surface-variant);min-width:calc(var(--spacing, .25rem) * 8);text-align:center}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
86
86
  }
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ImageZoomViewerComponent, decorators: [{
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ImageZoomViewerComponent, decorators: [{
88
88
  type: Component,
89
- args: [{ selector: 'emr-image-zoom-viewer', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"zoom-container\"\n (wheel)=\"_onWheel($event)\"\n (mousedown)=\"_onMouseDown($event)\"\n (mousemove)=\"_onMouseMove($event)\"\n (mouseup)=\"_onMouseUp()\"\n (mouseleave)=\"_onMouseUp()\"\n (touchstart)=\"_onTouchStart($event)\"\n (touchmove)=\"_onTouchMove($event)\"\n (touchend)=\"_onTouchEnd()\"\n>\n <img\n class=\"zoom-img\"\n [src]=\"src()\"\n [alt]=\"alt()\"\n [style]=\"_imgStyle()\"\n draggable=\"false\"\n />\n\n @if (showMinimap() && _isZoomed()) {\n <div class=\"minimap\">\n <img class=\"minimap-img\" [src]=\"src()\" [alt]=\"alt()\" aria-hidden=\"true\" />\n <div class=\"minimap-viewport\" [style]=\"_minimapStyle()\"></div>\n </div>\n }\n\n <div class=\"zoom-controls\">\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_zoomIn()\" aria-label=\"Zoom in\">+</button>\n <span class=\"zoom-label\">{{ _scaleLabel() }}%</span>\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_zoomOut()\" aria-label=\"Zoom out\">\u2212</button>\n @if (_isZoomed()) {\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_reset()\" aria-label=\"Reset zoom\">\u21BA</button>\n }\n </div>\n</div>\n", styles: [":host{display:block}.zoom-container{position:relative;overflow:hidden;background:var(--color-surface-container);border-radius:.75rem;border:1px solid var(--color-outline-variant);width:100%;height:100%;user-select:none;-webkit-user-select:none}.zoom-img{display:block;width:100%;height:100%;object-fit:contain;transform-origin:center center;transition:transform 50ms linear;will-change:transform}.minimap{position:absolute;bottom:calc(var(--spacing, .25rem) * 12);right:calc(var(--spacing, .25rem) * 3);width:calc(var(--spacing, .25rem) * 24);height:calc(var(--spacing, .25rem) * 18);border-radius:.5rem;overflow:hidden;border:1px solid var(--color-outline-variant);box-shadow:0 2px 8px #0003;background:var(--color-surface-container)}.minimap-img{width:100%;height:100%;object-fit:contain;opacity:.6}.minimap-viewport{position:absolute;top:0;left:0;border:2px solid var(--color-primary);border-radius:.25rem;pointer-events:none;transition:all 50ms linear;max-width:100%;max-height:100%}.zoom-controls{position:absolute;bottom:calc(var(--spacing, .25rem) * 3);right:calc(var(--spacing, .25rem) * 3);display:flex;align-items:center;gap:var(--spacing, .25rem);background:var(--color-surface-container-high);border:1px solid var(--color-outline-variant);border-radius:9999px;padding:var(--spacing, .25rem) calc(var(--spacing, .25rem) * 2);box-shadow:0 2px 8px #00000026}.zoom-btn{width:calc(var(--spacing, .25rem) * 7);height:calc(var(--spacing, .25rem) * 7);display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;font-size:1rem;font-weight:700;border-radius:50%;color:var(--color-on-surface)}.zoom-btn:hover{background:var(--color-surface-container)}.zoom-label{font-size:.75rem;font-weight:600;color:var(--color-on-surface-variant);min-width:calc(var(--spacing, .25rem) * 8);text-align:center}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] }]
89
+ args: [{ selector: 'emr-image-zoom-viewer', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"zoom-container\"\n (wheel)=\"_onWheel($event)\"\n (mousedown)=\"_onMouseDown($event)\"\n (mousemove)=\"_onMouseMove($event)\"\n (mouseup)=\"_onMouseUp()\"\n (mouseleave)=\"_onMouseUp()\"\n (touchstart)=\"_onTouchStart($event)\"\n (touchmove)=\"_onTouchMove($event)\"\n (touchend)=\"_onTouchEnd()\"\n>\n <img\n class=\"zoom-img\"\n [src]=\"src()\"\n [alt]=\"alt()\"\n [style]=\"_imgStyle()\"\n draggable=\"false\"\n />\n\n @if (showMinimap() && _isZoomed()) {\n <div class=\"minimap\">\n <img class=\"minimap-img\" [src]=\"src()\" [alt]=\"alt()\" aria-hidden=\"true\" />\n <div class=\"minimap-viewport\" [style]=\"_minimapStyle()\"></div>\n </div>\n }\n\n <div class=\"zoom-controls\">\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_zoomIn()\" aria-label=\"Zoom in\">+</button>\n <span class=\"zoom-label\">{{ _scaleLabel() }}%</span>\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_zoomOut()\" aria-label=\"Zoom out\">\u2212</button>\n @if (_isZoomed()) {\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_reset()\" aria-label=\"Reset zoom\">\u21BA</button>\n }\n </div>\n</div>\n", styles: [":host{display:block}.zoom-container{position:relative;overflow:hidden;background:var(--color-surface-container);border-radius:.75rem;border:1px solid var(--color-outline-variant);width:100%;height:100%;user-select:none;-webkit-user-select:none}.zoom-img{display:block;width:100%;height:100%;object-fit:contain;transform-origin:center center;transition:transform 50ms linear;will-change:transform}.minimap{position:absolute;bottom:calc(var(--spacing, .25rem) * 12);right:calc(var(--spacing, .25rem) * 3);width:calc(var(--spacing, .25rem) * 24);height:calc(var(--spacing, .25rem) * 18);border-radius:.5rem;overflow:hidden;border:1px solid var(--color-outline-variant);box-shadow:0 2px 8px #0003;background:var(--color-surface-container)}.minimap-img{width:100%;height:100%;object-fit:contain;opacity:.6}.minimap-viewport{position:absolute;top:0;left:0;border:2px solid var(--color-primary);border-radius:.25rem;pointer-events:none;transition:all 50ms linear;max-width:100%;max-height:100%}.zoom-controls{position:absolute;bottom:calc(var(--spacing, .25rem) * 3);right:calc(var(--spacing, .25rem) * 3);display:flex;align-items:center;gap:var(--spacing, .25rem);background:var(--color-surface-container-high);border:1px solid var(--color-outline-variant);border-radius:9999px;padding:var(--spacing, .25rem) calc(var(--spacing, .25rem) * 2);box-shadow:0 2px 8px #00000026}.zoom-btn{width:calc(var(--spacing, .25rem) * 7);height:calc(var(--spacing, .25rem) * 7);display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;font-size:1rem;font-weight:700;border-radius:50%;color:var(--color-on-surface)}.zoom-btn:hover{background:var(--color-surface-container)}.zoom-label{font-size:.75rem;font-weight:600;color:var(--color-on-surface-variant);min-width:calc(var(--spacing, .25rem) * 8);text-align:center}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
90
90
  }], propDecorators: { src: [{ type: i0.Input, args: [{ isSignal: true, alias: "src", required: false }] }], alt: [{ type: i0.Input, args: [{ isSignal: true, alias: "alt", required: false }] }], minZoom: [{ type: i0.Input, args: [{ isSignal: true, alias: "minZoom", required: false }] }], maxZoom: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxZoom", required: false }] }], showMinimap: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMinimap", required: false }] }] } });
91
91
 
92
92
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"elementar-rt-components-image-zoom-viewer.mjs","sources":["../../../projects/components/image-zoom-viewer/src/image-zoom-viewer/image-zoom-viewer.component.ts","../../../projects/components/image-zoom-viewer/src/image-zoom-viewer/image-zoom-viewer.component.html","../../../projects/components/image-zoom-viewer/elementar-rt-components-image-zoom-viewer.ts"],"sourcesContent":["import {\n Component, input, signal, computed, ChangeDetectionStrategy,\n numberAttribute, booleanAttribute, ElementRef, viewChild\n} from '@angular/core';\n\n@Component({\n selector: 'emr-image-zoom-viewer',\n standalone: true,\n templateUrl: './image-zoom-viewer.component.html',\n styleUrl: './image-zoom-viewer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ImageZoomViewerComponent {\n src = input('');\n alt = input('');\n minZoom = input(1, { transform: numberAttribute });\n maxZoom = input(5, { transform: numberAttribute });\n showMinimap = input(true, { transform: booleanAttribute });\n\n protected _scale = signal(1);\n protected _translateX = signal(0);\n protected _translateY = signal(0);\n protected _isZoomed = computed(() => this._scale() > 1);\n\n private _panning = false;\n private _lastX = 0;\n private _lastY = 0;\n\n protected _onWheel(e: WheelEvent): void {\n e.preventDefault();\n const delta = e.deltaY > 0 ? -0.2 : 0.2;\n const next = Math.min(this.maxZoom(), Math.max(this.minZoom(), this._scale() + delta));\n if (next === this.minZoom()) { this._translateX.set(0); this._translateY.set(0); }\n this._scale.set(next);\n }\n\n protected _onMouseDown(e: MouseEvent): void {\n if (this._scale() <= 1) return;\n this._panning = true;\n this._lastX = e.clientX;\n this._lastY = e.clientY;\n }\n\n protected _onMouseMove(e: MouseEvent): void {\n if (!this._panning) return;\n this._translateX.set(this._translateX() + e.clientX - this._lastX);\n this._translateY.set(this._translateY() + e.clientY - this._lastY);\n this._lastX = e.clientX;\n this._lastY = e.clientY;\n }\n\n protected _onMouseUp(): void { this._panning = false; }\n\n protected _onTouchStart(e: TouchEvent): void {\n if (e.touches.length === 1 && this._scale() > 1) {\n this._panning = true;\n this._lastX = e.touches[0].clientX;\n this._lastY = e.touches[0].clientY;\n }\n }\n\n protected _onTouchMove(e: TouchEvent): void {\n if (e.touches.length === 2) {\n e.preventDefault();\n } else if (this._panning && e.touches.length === 1) {\n this._translateX.set(this._translateX() + e.touches[0].clientX - this._lastX);\n this._translateY.set(this._translateY() + e.touches[0].clientY - this._lastY);\n this._lastX = e.touches[0].clientX;\n this._lastY = e.touches[0].clientY;\n }\n }\n\n protected _onTouchEnd(): void { this._panning = false; }\n\n protected _reset(): void {\n this._scale.set(1);\n this._translateX.set(0);\n this._translateY.set(0);\n }\n\n protected _imgStyle = computed(() =>\n `transform: translate(${this._translateX()}px, ${this._translateY()}px) scale(${this._scale()}); cursor: ${this._scale() > 1 ? 'grab' : 'zoom-in'}`\n );\n\n protected _scaleLabel = computed(() => (this._scale() * 100).toFixed(0));\n\n protected _zoomIn(): void { this._scale.set(Math.min(this.maxZoom(), this._scale() + 0.5)); }\n protected _zoomOut(): void {\n const next = Math.max(this.minZoom(), this._scale() - 0.5);\n if (next === this.minZoom()) { this._translateX.set(0); this._translateY.set(0); }\n this._scale.set(next);\n }\n\n protected _minimapStyle = computed(() => {\n const pct = 100 / this._scale();\n const x = (-this._translateX() / this._scale()) / 4;\n const y = (-this._translateY() / this._scale()) / 4;\n return `width:${pct}%; height:${pct}%; transform: translate(${x}px, ${y}px)`;\n });\n}\n","<div\n class=\"zoom-container\"\n (wheel)=\"_onWheel($event)\"\n (mousedown)=\"_onMouseDown($event)\"\n (mousemove)=\"_onMouseMove($event)\"\n (mouseup)=\"_onMouseUp()\"\n (mouseleave)=\"_onMouseUp()\"\n (touchstart)=\"_onTouchStart($event)\"\n (touchmove)=\"_onTouchMove($event)\"\n (touchend)=\"_onTouchEnd()\"\n>\n <img\n class=\"zoom-img\"\n [src]=\"src()\"\n [alt]=\"alt()\"\n [style]=\"_imgStyle()\"\n draggable=\"false\"\n />\n\n @if (showMinimap() && _isZoomed()) {\n <div class=\"minimap\">\n <img class=\"minimap-img\" [src]=\"src()\" [alt]=\"alt()\" aria-hidden=\"true\" />\n <div class=\"minimap-viewport\" [style]=\"_minimapStyle()\"></div>\n </div>\n }\n\n <div class=\"zoom-controls\">\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_zoomIn()\" aria-label=\"Zoom in\">+</button>\n <span class=\"zoom-label\">{{ _scaleLabel() }}%</span>\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_zoomOut()\" aria-label=\"Zoom out\">−</button>\n @if (_isZoomed()) {\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_reset()\" aria-label=\"Reset zoom\">↺</button>\n }\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elementar-rt-components-image-zoom-viewer.mjs","sources":["../../../projects/components/image-zoom-viewer/src/image-zoom-viewer/image-zoom-viewer.component.ts","../../../projects/components/image-zoom-viewer/src/image-zoom-viewer/image-zoom-viewer.component.html","../../../projects/components/image-zoom-viewer/elementar-rt-components-image-zoom-viewer.ts"],"sourcesContent":["import {\n Component, input, signal, computed, ChangeDetectionStrategy,\n numberAttribute, booleanAttribute, ElementRef, viewChild\n} from '@angular/core';\n\n@Component({\n selector: 'emr-image-zoom-viewer',\n standalone: true,\n templateUrl: './image-zoom-viewer.component.html',\n styleUrl: './image-zoom-viewer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ImageZoomViewerComponent {\n src = input('');\n alt = input('');\n minZoom = input(1, { transform: numberAttribute });\n maxZoom = input(5, { transform: numberAttribute });\n showMinimap = input(true, { transform: booleanAttribute });\n\n protected _scale = signal(1);\n protected _translateX = signal(0);\n protected _translateY = signal(0);\n protected _isZoomed = computed(() => this._scale() > 1);\n\n private _panning = false;\n private _lastX = 0;\n private _lastY = 0;\n\n protected _onWheel(e: WheelEvent): void {\n e.preventDefault();\n const delta = e.deltaY > 0 ? -0.2 : 0.2;\n const next = Math.min(this.maxZoom(), Math.max(this.minZoom(), this._scale() + delta));\n if (next === this.minZoom()) { this._translateX.set(0); this._translateY.set(0); }\n this._scale.set(next);\n }\n\n protected _onMouseDown(e: MouseEvent): void {\n if (this._scale() <= 1) return;\n this._panning = true;\n this._lastX = e.clientX;\n this._lastY = e.clientY;\n }\n\n protected _onMouseMove(e: MouseEvent): void {\n if (!this._panning) return;\n this._translateX.set(this._translateX() + e.clientX - this._lastX);\n this._translateY.set(this._translateY() + e.clientY - this._lastY);\n this._lastX = e.clientX;\n this._lastY = e.clientY;\n }\n\n protected _onMouseUp(): void { this._panning = false; }\n\n protected _onTouchStart(e: TouchEvent): void {\n if (e.touches.length === 1 && this._scale() > 1) {\n this._panning = true;\n this._lastX = e.touches[0].clientX;\n this._lastY = e.touches[0].clientY;\n }\n }\n\n protected _onTouchMove(e: TouchEvent): void {\n if (e.touches.length === 2) {\n e.preventDefault();\n } else if (this._panning && e.touches.length === 1) {\n this._translateX.set(this._translateX() + e.touches[0].clientX - this._lastX);\n this._translateY.set(this._translateY() + e.touches[0].clientY - this._lastY);\n this._lastX = e.touches[0].clientX;\n this._lastY = e.touches[0].clientY;\n }\n }\n\n protected _onTouchEnd(): void { this._panning = false; }\n\n protected _reset(): void {\n this._scale.set(1);\n this._translateX.set(0);\n this._translateY.set(0);\n }\n\n protected _imgStyle = computed(() =>\n `transform: translate(${this._translateX()}px, ${this._translateY()}px) scale(${this._scale()}); cursor: ${this._scale() > 1 ? 'grab' : 'zoom-in'}`\n );\n\n protected _scaleLabel = computed(() => (this._scale() * 100).toFixed(0));\n\n protected _zoomIn(): void { this._scale.set(Math.min(this.maxZoom(), this._scale() + 0.5)); }\n protected _zoomOut(): void {\n const next = Math.max(this.minZoom(), this._scale() - 0.5);\n if (next === this.minZoom()) { this._translateX.set(0); this._translateY.set(0); }\n this._scale.set(next);\n }\n\n protected _minimapStyle = computed(() => {\n const pct = 100 / this._scale();\n const x = (-this._translateX() / this._scale()) / 4;\n const y = (-this._translateY() / this._scale()) / 4;\n return `width:${pct}%; height:${pct}%; transform: translate(${x}px, ${y}px)`;\n });\n}\n","<div\n class=\"zoom-container\"\n (wheel)=\"_onWheel($event)\"\n (mousedown)=\"_onMouseDown($event)\"\n (mousemove)=\"_onMouseMove($event)\"\n (mouseup)=\"_onMouseUp()\"\n (mouseleave)=\"_onMouseUp()\"\n (touchstart)=\"_onTouchStart($event)\"\n (touchmove)=\"_onTouchMove($event)\"\n (touchend)=\"_onTouchEnd()\"\n>\n <img\n class=\"zoom-img\"\n [src]=\"src()\"\n [alt]=\"alt()\"\n [style]=\"_imgStyle()\"\n draggable=\"false\"\n />\n\n @if (showMinimap() && _isZoomed()) {\n <div class=\"minimap\">\n <img class=\"minimap-img\" [src]=\"src()\" [alt]=\"alt()\" aria-hidden=\"true\" />\n <div class=\"minimap-viewport\" [style]=\"_minimapStyle()\"></div>\n </div>\n }\n\n <div class=\"zoom-controls\">\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_zoomIn()\" aria-label=\"Zoom in\">+</button>\n <span class=\"zoom-label\">{{ _scaleLabel() }}%</span>\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_zoomOut()\" aria-label=\"Zoom out\">−</button>\n @if (_isZoomed()) {\n <button type=\"button\" class=\"zoom-btn\" (click)=\"_reset()\" aria-label=\"Reset zoom\">↺</button>\n }\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}