@ngstarter-ui/components 1.0.21

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 (415) hide show
  1. package/README.md +0 -0
  2. package/fesm2022/ngstarter-ui-components-action-required.mjs +42 -0
  3. package/fesm2022/ngstarter-ui-components-action-required.mjs.map +1 -0
  4. package/fesm2022/ngstarter-ui-components-alert.mjs +132 -0
  5. package/fesm2022/ngstarter-ui-components-alert.mjs.map +1 -0
  6. package/fesm2022/ngstarter-ui-components-announcement.mjs +86 -0
  7. package/fesm2022/ngstarter-ui-components-announcement.mjs.map +1 -0
  8. package/fesm2022/ngstarter-ui-components-autocomplete.mjs +360 -0
  9. package/fesm2022/ngstarter-ui-components-autocomplete.mjs.map +1 -0
  10. package/fesm2022/ngstarter-ui-components-avatar.mjs +235 -0
  11. package/fesm2022/ngstarter-ui-components-avatar.mjs.map +1 -0
  12. package/fesm2022/ngstarter-ui-components-badge.mjs +97 -0
  13. package/fesm2022/ngstarter-ui-components-badge.mjs.map +1 -0
  14. package/fesm2022/ngstarter-ui-components-block-loader.mjs +48 -0
  15. package/fesm2022/ngstarter-ui-components-block-loader.mjs.map +1 -0
  16. package/fesm2022/ngstarter-ui-components-bottom-sheet.mjs +327 -0
  17. package/fesm2022/ngstarter-ui-components-bottom-sheet.mjs.map +1 -0
  18. package/fesm2022/ngstarter-ui-components-breadcrumbs.mjs +209 -0
  19. package/fesm2022/ngstarter-ui-components-breadcrumbs.mjs.map +1 -0
  20. package/fesm2022/ngstarter-ui-components-button-toggle.mjs +175 -0
  21. package/fesm2022/ngstarter-ui-components-button-toggle.mjs.map +1 -0
  22. package/fesm2022/ngstarter-ui-components-button.mjs +70 -0
  23. package/fesm2022/ngstarter-ui-components-button.mjs.map +1 -0
  24. package/fesm2022/ngstarter-ui-components-card-overlay.mjs +49 -0
  25. package/fesm2022/ngstarter-ui-components-card-overlay.mjs.map +1 -0
  26. package/fesm2022/ngstarter-ui-components-card.mjs +199 -0
  27. package/fesm2022/ngstarter-ui-components-card.mjs.map +1 -0
  28. package/fesm2022/ngstarter-ui-components-carousel.mjs +614 -0
  29. package/fesm2022/ngstarter-ui-components-carousel.mjs.map +1 -0
  30. package/fesm2022/ngstarter-ui-components-checkbox.mjs +300 -0
  31. package/fesm2022/ngstarter-ui-components-checkbox.mjs.map +1 -0
  32. package/fesm2022/ngstarter-ui-components-chips.mjs +589 -0
  33. package/fesm2022/ngstarter-ui-components-chips.mjs.map +1 -0
  34. package/fesm2022/ngstarter-ui-components-code-highlighter.mjs +347 -0
  35. package/fesm2022/ngstarter-ui-components-code-highlighter.mjs.map +1 -0
  36. package/fesm2022/ngstarter-ui-components-color-picker.mjs +713 -0
  37. package/fesm2022/ngstarter-ui-components-color-picker.mjs.map +1 -0
  38. package/fesm2022/ngstarter-ui-components-color-scheme.mjs +106 -0
  39. package/fesm2022/ngstarter-ui-components-color-scheme.mjs.map +1 -0
  40. package/fesm2022/ngstarter-ui-components-color-switcher.mjs +72 -0
  41. package/fesm2022/ngstarter-ui-components-color-switcher.mjs.map +1 -0
  42. package/fesm2022/ngstarter-ui-components-command-bar.mjs +57 -0
  43. package/fesm2022/ngstarter-ui-components-command-bar.mjs.map +1 -0
  44. package/fesm2022/ngstarter-ui-components-comment-editor.mjs +1024 -0
  45. package/fesm2022/ngstarter-ui-components-comment-editor.mjs.map +1 -0
  46. package/fesm2022/ngstarter-ui-components-comparison-slider.mjs +177 -0
  47. package/fesm2022/ngstarter-ui-components-comparison-slider.mjs.map +1 -0
  48. package/fesm2022/ngstarter-ui-components-confirm.mjs +85 -0
  49. package/fesm2022/ngstarter-ui-components-confirm.mjs.map +1 -0
  50. package/fesm2022/ngstarter-ui-components-content-editor-code-block.component-Bk6QTli8.mjs +173 -0
  51. package/fesm2022/ngstarter-ui-components-content-editor-code-block.component-Bk6QTli8.mjs.map +1 -0
  52. package/fesm2022/ngstarter-ui-components-content-editor-content-editor-content-editable.directive-Bvfa2dqh.mjs +124 -0
  53. package/fesm2022/ngstarter-ui-components-content-editor-content-editor-content-editable.directive-Bvfa2dqh.mjs.map +1 -0
  54. package/fesm2022/ngstarter-ui-components-content-editor-cursor-controller-4Ak8VqGX.mjs +99 -0
  55. package/fesm2022/ngstarter-ui-components-content-editor-cursor-controller-4Ak8VqGX.mjs.map +1 -0
  56. package/fesm2022/ngstarter-ui-components-content-editor-divider-block.component-C_iRTCPH.mjs +33 -0
  57. package/fesm2022/ngstarter-ui-components-content-editor-divider-block.component-C_iRTCPH.mjs.map +1 -0
  58. package/fesm2022/ngstarter-ui-components-content-editor-embed-block-BbkC_t86.mjs +354 -0
  59. package/fesm2022/ngstarter-ui-components-content-editor-embed-block-BbkC_t86.mjs.map +1 -0
  60. package/fesm2022/ngstarter-ui-components-content-editor-heading-block.component-D9_CxTY1.mjs +114 -0
  61. package/fesm2022/ngstarter-ui-components-content-editor-heading-block.component-D9_CxTY1.mjs.map +1 -0
  62. package/fesm2022/ngstarter-ui-components-content-editor-image-block.component-B4zJyUg1.mjs +146 -0
  63. package/fesm2022/ngstarter-ui-components-content-editor-image-block.component-B4zJyUg1.mjs.map +1 -0
  64. package/fesm2022/ngstarter-ui-components-content-editor-list-block.component-Cv6wx5Xe.mjs +215 -0
  65. package/fesm2022/ngstarter-ui-components-content-editor-list-block.component-Cv6wx5Xe.mjs.map +1 -0
  66. package/fesm2022/ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-1Zi2nAX5.mjs +2548 -0
  67. package/fesm2022/ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-1Zi2nAX5.mjs.map +1 -0
  68. package/fesm2022/ngstarter-ui-components-content-editor-paragraph-block.component-C9bQvDYU.mjs +110 -0
  69. package/fesm2022/ngstarter-ui-components-content-editor-paragraph-block.component-C9bQvDYU.mjs.map +1 -0
  70. package/fesm2022/ngstarter-ui-components-content-editor-quote-block.component-BbHds2r2.mjs +141 -0
  71. package/fesm2022/ngstarter-ui-components-content-editor-quote-block.component-BbHds2r2.mjs.map +1 -0
  72. package/fesm2022/ngstarter-ui-components-content-editor-table-block.component-DlDh7Fnn.mjs +1604 -0
  73. package/fesm2022/ngstarter-ui-components-content-editor-table-block.component-DlDh7Fnn.mjs.map +1 -0
  74. package/fesm2022/ngstarter-ui-components-content-editor-video-block.component-m4DTihP2.mjs +175 -0
  75. package/fesm2022/ngstarter-ui-components-content-editor-video-block.component-m4DTihP2.mjs.map +1 -0
  76. package/fesm2022/ngstarter-ui-components-content-editor.mjs +2 -0
  77. package/fesm2022/ngstarter-ui-components-content-editor.mjs.map +1 -0
  78. package/fesm2022/ngstarter-ui-components-content-fade.mjs +35 -0
  79. package/fesm2022/ngstarter-ui-components-content-fade.mjs.map +1 -0
  80. package/fesm2022/ngstarter-ui-components-cookie-popup.mjs +107 -0
  81. package/fesm2022/ngstarter-ui-components-cookie-popup.mjs.map +1 -0
  82. package/fesm2022/ngstarter-ui-components-core.mjs +1330 -0
  83. package/fesm2022/ngstarter-ui-components-core.mjs.map +1 -0
  84. package/fesm2022/ngstarter-ui-components-country-select.mjs +489 -0
  85. package/fesm2022/ngstarter-ui-components-country-select.mjs.map +1 -0
  86. package/fesm2022/ngstarter-ui-components-crop.mjs +183 -0
  87. package/fesm2022/ngstarter-ui-components-crop.mjs.map +1 -0
  88. package/fesm2022/ngstarter-ui-components-currency-select.mjs +397 -0
  89. package/fesm2022/ngstarter-ui-components-currency-select.mjs.map +1 -0
  90. package/fesm2022/ngstarter-ui-components-data-view.mjs +1494 -0
  91. package/fesm2022/ngstarter-ui-components-data-view.mjs.map +1 -0
  92. package/fesm2022/ngstarter-ui-components-date-format-select.mjs +154 -0
  93. package/fesm2022/ngstarter-ui-components-date-format-select.mjs.map +1 -0
  94. package/fesm2022/ngstarter-ui-components-datepicker.mjs +1159 -0
  95. package/fesm2022/ngstarter-ui-components-datepicker.mjs.map +1 -0
  96. package/fesm2022/ngstarter-ui-components-dialog.mjs +357 -0
  97. package/fesm2022/ngstarter-ui-components-dialog.mjs.map +1 -0
  98. package/fesm2022/ngstarter-ui-components-divider.mjs +42 -0
  99. package/fesm2022/ngstarter-ui-components-divider.mjs.map +1 -0
  100. package/fesm2022/ngstarter-ui-components-drawer.mjs +132 -0
  101. package/fesm2022/ngstarter-ui-components-drawer.mjs.map +1 -0
  102. package/fesm2022/ngstarter-ui-components-emoji-picker.mjs +245 -0
  103. package/fesm2022/ngstarter-ui-components-emoji-picker.mjs.map +1 -0
  104. package/fesm2022/ngstarter-ui-components-empty-state.mjs +75 -0
  105. package/fesm2022/ngstarter-ui-components-empty-state.mjs.map +1 -0
  106. package/fesm2022/ngstarter-ui-components-expand.mjs +56 -0
  107. package/fesm2022/ngstarter-ui-components-expand.mjs.map +1 -0
  108. package/fesm2022/ngstarter-ui-components-expansion.mjs +193 -0
  109. package/fesm2022/ngstarter-ui-components-expansion.mjs.map +1 -0
  110. package/fesm2022/ngstarter-ui-components-filter-builder.mjs +333 -0
  111. package/fesm2022/ngstarter-ui-components-filter-builder.mjs.map +1 -0
  112. package/fesm2022/ngstarter-ui-components-form-field.mjs +230 -0
  113. package/fesm2022/ngstarter-ui-components-form-field.mjs.map +1 -0
  114. package/fesm2022/ngstarter-ui-components-form-renderer-autocomplete-many-field-BKQVlZHV.mjs +124 -0
  115. package/fesm2022/ngstarter-ui-components-form-renderer-autocomplete-many-field-BKQVlZHV.mjs.map +1 -0
  116. package/fesm2022/ngstarter-ui-components-form-renderer-checkbox-field-CoyKdvhV.mjs +22 -0
  117. package/fesm2022/ngstarter-ui-components-form-renderer-checkbox-field-CoyKdvhV.mjs.map +1 -0
  118. package/fesm2022/ngstarter-ui-components-form-renderer-datepicker-field-Bzc0TPO9.mjs +44 -0
  119. package/fesm2022/ngstarter-ui-components-form-renderer-datepicker-field-Bzc0TPO9.mjs.map +1 -0
  120. package/fesm2022/ngstarter-ui-components-form-renderer-divider-content-CwGzDCZv.mjs +17 -0
  121. package/fesm2022/ngstarter-ui-components-form-renderer-divider-content-CwGzDCZv.mjs.map +1 -0
  122. package/fesm2022/ngstarter-ui-components-form-renderer-image-content-ICTwkZPa.mjs +17 -0
  123. package/fesm2022/ngstarter-ui-components-form-renderer-image-content-ICTwkZPa.mjs.map +1 -0
  124. package/fesm2022/ngstarter-ui-components-form-renderer-input-field-RYxi-Mpw.mjs +35 -0
  125. package/fesm2022/ngstarter-ui-components-form-renderer-input-field-RYxi-Mpw.mjs.map +1 -0
  126. package/fesm2022/ngstarter-ui-components-form-renderer-radio-group-field-Cv3AGpoq.mjs +38 -0
  127. package/fesm2022/ngstarter-ui-components-form-renderer-radio-group-field-Cv3AGpoq.mjs.map +1 -0
  128. package/fesm2022/ngstarter-ui-components-form-renderer-select-field-eLcwI-BY.mjs +39 -0
  129. package/fesm2022/ngstarter-ui-components-form-renderer-select-field-eLcwI-BY.mjs.map +1 -0
  130. package/fesm2022/ngstarter-ui-components-form-renderer-text-content-BjzH_M3-.mjs +24 -0
  131. package/fesm2022/ngstarter-ui-components-form-renderer-text-content-BjzH_M3-.mjs.map +1 -0
  132. package/fesm2022/ngstarter-ui-components-form-renderer-textarea-field-4zH7FTQ1.mjs +37 -0
  133. package/fesm2022/ngstarter-ui-components-form-renderer-textarea-field-4zH7FTQ1.mjs.map +1 -0
  134. package/fesm2022/ngstarter-ui-components-form-renderer-timezone-field-BpH65Hd-.mjs +35 -0
  135. package/fesm2022/ngstarter-ui-components-form-renderer-timezone-field-BpH65Hd-.mjs.map +1 -0
  136. package/fesm2022/ngstarter-ui-components-form-renderer-toggle-field-iyqUrWxt.mjs +22 -0
  137. package/fesm2022/ngstarter-ui-components-form-renderer-toggle-field-iyqUrWxt.mjs.map +1 -0
  138. package/fesm2022/ngstarter-ui-components-form-renderer.mjs +317 -0
  139. package/fesm2022/ngstarter-ui-components-form-renderer.mjs.map +1 -0
  140. package/fesm2022/ngstarter-ui-components-gauge.mjs +44 -0
  141. package/fesm2022/ngstarter-ui-components-gauge.mjs.map +1 -0
  142. package/fesm2022/ngstarter-ui-components-grid.mjs +78 -0
  143. package/fesm2022/ngstarter-ui-components-grid.mjs.map +1 -0
  144. package/fesm2022/ngstarter-ui-components-guided-tour.mjs +736 -0
  145. package/fesm2022/ngstarter-ui-components-guided-tour.mjs.map +1 -0
  146. package/fesm2022/ngstarter-ui-components-headless-stepper.mjs +192 -0
  147. package/fesm2022/ngstarter-ui-components-headless-stepper.mjs.map +1 -0
  148. package/fesm2022/ngstarter-ui-components-icon.mjs +61 -0
  149. package/fesm2022/ngstarter-ui-components-icon.mjs.map +1 -0
  150. package/fesm2022/ngstarter-ui-components-image-designer.mjs +4016 -0
  151. package/fesm2022/ngstarter-ui-components-image-designer.mjs.map +1 -0
  152. package/fesm2022/ngstarter-ui-components-image-placeholder.mjs +20 -0
  153. package/fesm2022/ngstarter-ui-components-image-placeholder.mjs.map +1 -0
  154. package/fesm2022/ngstarter-ui-components-image-resizer.mjs +151 -0
  155. package/fesm2022/ngstarter-ui-components-image-resizer.mjs.map +1 -0
  156. package/fesm2022/ngstarter-ui-components-image-viewer.mjs +349 -0
  157. package/fesm2022/ngstarter-ui-components-image-viewer.mjs.map +1 -0
  158. package/fesm2022/ngstarter-ui-components-image-zoom-viewer.mjs +162 -0
  159. package/fesm2022/ngstarter-ui-components-image-zoom-viewer.mjs.map +1 -0
  160. package/fesm2022/ngstarter-ui-components-incidents.mjs +257 -0
  161. package/fesm2022/ngstarter-ui-components-incidents.mjs.map +1 -0
  162. package/fesm2022/ngstarter-ui-components-inline-text-edit.mjs +179 -0
  163. package/fesm2022/ngstarter-ui-components-inline-text-edit.mjs.map +1 -0
  164. package/fesm2022/ngstarter-ui-components-input-mask.mjs +180 -0
  165. package/fesm2022/ngstarter-ui-components-input-mask.mjs.map +1 -0
  166. package/fesm2022/ngstarter-ui-components-input-validator.mjs +24 -0
  167. package/fesm2022/ngstarter-ui-components-input-validator.mjs.map +1 -0
  168. package/fesm2022/ngstarter-ui-components-input.mjs +152 -0
  169. package/fesm2022/ngstarter-ui-components-input.mjs.map +1 -0
  170. package/fesm2022/ngstarter-ui-components-kanban-board.mjs +156 -0
  171. package/fesm2022/ngstarter-ui-components-kanban-board.mjs.map +1 -0
  172. package/fesm2022/ngstarter-ui-components-kbd.mjs +31 -0
  173. package/fesm2022/ngstarter-ui-components-kbd.mjs.map +1 -0
  174. package/fesm2022/ngstarter-ui-components-layout.mjs +199 -0
  175. package/fesm2022/ngstarter-ui-components-layout.mjs.map +1 -0
  176. package/fesm2022/ngstarter-ui-components-list.mjs +279 -0
  177. package/fesm2022/ngstarter-ui-components-list.mjs.map +1 -0
  178. package/fesm2022/ngstarter-ui-components-logo.mjs +51 -0
  179. package/fesm2022/ngstarter-ui-components-logo.mjs.map +1 -0
  180. package/fesm2022/ngstarter-ui-components-marquee.mjs +76 -0
  181. package/fesm2022/ngstarter-ui-components-marquee.mjs.map +1 -0
  182. package/fesm2022/ngstarter-ui-components-menu.mjs +851 -0
  183. package/fesm2022/ngstarter-ui-components-menu.mjs.map +1 -0
  184. package/fesm2022/ngstarter-ui-components-micro-chart.mjs +928 -0
  185. package/fesm2022/ngstarter-ui-components-micro-chart.mjs.map +1 -0
  186. package/fesm2022/ngstarter-ui-components-navigation.mjs +439 -0
  187. package/fesm2022/ngstarter-ui-components-navigation.mjs.map +1 -0
  188. package/fesm2022/ngstarter-ui-components-notifications.mjs +181 -0
  189. package/fesm2022/ngstarter-ui-components-notifications.mjs.map +1 -0
  190. package/fesm2022/ngstarter-ui-components-number-input.mjs +293 -0
  191. package/fesm2022/ngstarter-ui-components-number-input.mjs.map +1 -0
  192. package/fesm2022/ngstarter-ui-components-option.mjs +157 -0
  193. package/fesm2022/ngstarter-ui-components-option.mjs.map +1 -0
  194. package/fesm2022/ngstarter-ui-components-overlay.mjs +112 -0
  195. package/fesm2022/ngstarter-ui-components-overlay.mjs.map +1 -0
  196. package/fesm2022/ngstarter-ui-components-page-loading-bar.mjs +77 -0
  197. package/fesm2022/ngstarter-ui-components-page-loading-bar.mjs.map +1 -0
  198. package/fesm2022/ngstarter-ui-components-paginator.mjs +297 -0
  199. package/fesm2022/ngstarter-ui-components-paginator.mjs.map +1 -0
  200. package/fesm2022/ngstarter-ui-components-panel.mjs +123 -0
  201. package/fesm2022/ngstarter-ui-components-panel.mjs.map +1 -0
  202. package/fesm2022/ngstarter-ui-components-password-strength.mjs +335 -0
  203. package/fesm2022/ngstarter-ui-components-password-strength.mjs.map +1 -0
  204. package/fesm2022/ngstarter-ui-components-phone-input.mjs +651 -0
  205. package/fesm2022/ngstarter-ui-components-phone-input.mjs.map +1 -0
  206. package/fesm2022/ngstarter-ui-components-pin-input.mjs +193 -0
  207. package/fesm2022/ngstarter-ui-components-pin-input.mjs.map +1 -0
  208. package/fesm2022/ngstarter-ui-components-popover.mjs +302 -0
  209. package/fesm2022/ngstarter-ui-components-popover.mjs.map +1 -0
  210. package/fesm2022/ngstarter-ui-components-progress-bar.mjs +68 -0
  211. package/fesm2022/ngstarter-ui-components-progress-bar.mjs.map +1 -0
  212. package/fesm2022/ngstarter-ui-components-radio-card.mjs +102 -0
  213. package/fesm2022/ngstarter-ui-components-radio-card.mjs.map +1 -0
  214. package/fesm2022/ngstarter-ui-components-radio.mjs +147 -0
  215. package/fesm2022/ngstarter-ui-components-radio.mjs.map +1 -0
  216. package/fesm2022/ngstarter-ui-components-rail-nav.mjs +87 -0
  217. package/fesm2022/ngstarter-ui-components-rail-nav.mjs.map +1 -0
  218. package/fesm2022/ngstarter-ui-components-resizable-container.mjs +74 -0
  219. package/fesm2022/ngstarter-ui-components-resizable-container.mjs.map +1 -0
  220. package/fesm2022/ngstarter-ui-components-screen-loader.mjs +95 -0
  221. package/fesm2022/ngstarter-ui-components-screen-loader.mjs.map +1 -0
  222. package/fesm2022/ngstarter-ui-components-scroll-spy.mjs +219 -0
  223. package/fesm2022/ngstarter-ui-components-scroll-spy.mjs.map +1 -0
  224. package/fesm2022/ngstarter-ui-components-scrollbar-area.mjs +459 -0
  225. package/fesm2022/ngstarter-ui-components-scrollbar-area.mjs.map +1 -0
  226. package/fesm2022/ngstarter-ui-components-segmented.mjs +218 -0
  227. package/fesm2022/ngstarter-ui-components-segmented.mjs.map +1 -0
  228. package/fesm2022/ngstarter-ui-components-select.mjs +496 -0
  229. package/fesm2022/ngstarter-ui-components-select.mjs.map +1 -0
  230. package/fesm2022/ngstarter-ui-components-side-panel.mjs +107 -0
  231. package/fesm2022/ngstarter-ui-components-side-panel.mjs.map +1 -0
  232. package/fesm2022/ngstarter-ui-components-sidebar.mjs +435 -0
  233. package/fesm2022/ngstarter-ui-components-sidebar.mjs.map +1 -0
  234. package/fesm2022/ngstarter-ui-components-sidenav.mjs +354 -0
  235. package/fesm2022/ngstarter-ui-components-sidenav.mjs.map +1 -0
  236. package/fesm2022/ngstarter-ui-components-signature-pad.mjs +452 -0
  237. package/fesm2022/ngstarter-ui-components-signature-pad.mjs.map +1 -0
  238. package/fesm2022/ngstarter-ui-components-skeleton.mjs +22 -0
  239. package/fesm2022/ngstarter-ui-components-skeleton.mjs.map +1 -0
  240. package/fesm2022/ngstarter-ui-components-slide-toggle.mjs +93 -0
  241. package/fesm2022/ngstarter-ui-components-slide-toggle.mjs.map +1 -0
  242. package/fesm2022/ngstarter-ui-components-slider.mjs +481 -0
  243. package/fesm2022/ngstarter-ui-components-slider.mjs.map +1 -0
  244. package/fesm2022/ngstarter-ui-components-snack-bar.mjs +354 -0
  245. package/fesm2022/ngstarter-ui-components-snack-bar.mjs.map +1 -0
  246. package/fesm2022/ngstarter-ui-components-sort.mjs +140 -0
  247. package/fesm2022/ngstarter-ui-components-sort.mjs.map +1 -0
  248. package/fesm2022/ngstarter-ui-components-spinner.mjs +75 -0
  249. package/fesm2022/ngstarter-ui-components-spinner.mjs.map +1 -0
  250. package/fesm2022/ngstarter-ui-components-splash-screen.mjs +93 -0
  251. package/fesm2022/ngstarter-ui-components-splash-screen.mjs.map +1 -0
  252. package/fesm2022/ngstarter-ui-components-split.mjs +948 -0
  253. package/fesm2022/ngstarter-ui-components-split.mjs.map +1 -0
  254. package/fesm2022/ngstarter-ui-components-stepper.mjs +103 -0
  255. package/fesm2022/ngstarter-ui-components-stepper.mjs.map +1 -0
  256. package/fesm2022/ngstarter-ui-components-suggestions.mjs +72 -0
  257. package/fesm2022/ngstarter-ui-components-suggestions.mjs.map +1 -0
  258. package/fesm2022/ngstarter-ui-components-tab-panel.mjs +265 -0
  259. package/fesm2022/ngstarter-ui-components-tab-panel.mjs.map +1 -0
  260. package/fesm2022/ngstarter-ui-components-table.mjs +648 -0
  261. package/fesm2022/ngstarter-ui-components-table.mjs.map +1 -0
  262. package/fesm2022/ngstarter-ui-components-tabs.mjs +591 -0
  263. package/fesm2022/ngstarter-ui-components-tabs.mjs.map +1 -0
  264. package/fesm2022/ngstarter-ui-components-text-editor.mjs +1012 -0
  265. package/fesm2022/ngstarter-ui-components-text-editor.mjs.map +1 -0
  266. package/fesm2022/ngstarter-ui-components-thumbnail-maker.mjs +212 -0
  267. package/fesm2022/ngstarter-ui-components-thumbnail-maker.mjs.map +1 -0
  268. package/fesm2022/ngstarter-ui-components-tiles.mjs +634 -0
  269. package/fesm2022/ngstarter-ui-components-tiles.mjs.map +1 -0
  270. package/fesm2022/ngstarter-ui-components-timeline.mjs +122 -0
  271. package/fesm2022/ngstarter-ui-components-timeline.mjs.map +1 -0
  272. package/fesm2022/ngstarter-ui-components-timepicker.mjs +486 -0
  273. package/fesm2022/ngstarter-ui-components-timepicker.mjs.map +1 -0
  274. package/fesm2022/ngstarter-ui-components-timezone-select.mjs +371 -0
  275. package/fesm2022/ngstarter-ui-components-timezone-select.mjs.map +1 -0
  276. package/fesm2022/ngstarter-ui-components-toolbar.mjs +299 -0
  277. package/fesm2022/ngstarter-ui-components-toolbar.mjs.map +1 -0
  278. package/fesm2022/ngstarter-ui-components-tooltip.mjs +506 -0
  279. package/fesm2022/ngstarter-ui-components-tooltip.mjs.map +1 -0
  280. package/fesm2022/ngstarter-ui-components-tree.mjs +200 -0
  281. package/fesm2022/ngstarter-ui-components-tree.mjs.map +1 -0
  282. package/fesm2022/ngstarter-ui-components-upload.mjs +330 -0
  283. package/fesm2022/ngstarter-ui-components-upload.mjs.map +1 -0
  284. package/fesm2022/ngstarter-ui-components-video-player.mjs +516 -0
  285. package/fesm2022/ngstarter-ui-components-video-player.mjs.map +1 -0
  286. package/fesm2022/ngstarter-ui-components-video-viewer.mjs +218 -0
  287. package/fesm2022/ngstarter-ui-components-video-viewer.mjs.map +1 -0
  288. package/fesm2022/ngstarter-ui-components-visual-builder.mjs +18 -0
  289. package/fesm2022/ngstarter-ui-components-visual-builder.mjs.map +1 -0
  290. package/fesm2022/ngstarter-ui-components.mjs +6 -0
  291. package/fesm2022/ngstarter-ui-components.mjs.map +1 -0
  292. package/package.json +535 -0
  293. package/styles/_common.scss +456 -0
  294. package/styles/_global.scss +91 -0
  295. package/styles/themes/default.scss +2 -0
  296. package/types/ngstarter-ui-components-action-required.d.ts +14 -0
  297. package/types/ngstarter-ui-components-alert.d.ts +50 -0
  298. package/types/ngstarter-ui-components-announcement.d.ts +59 -0
  299. package/types/ngstarter-ui-components-autocomplete.d.ts +83 -0
  300. package/types/ngstarter-ui-components-avatar.d.ts +69 -0
  301. package/types/ngstarter-ui-components-badge.d.ts +38 -0
  302. package/types/ngstarter-ui-components-block-loader.d.ts +21 -0
  303. package/types/ngstarter-ui-components-bottom-sheet.d.ts +149 -0
  304. package/types/ngstarter-ui-components-breadcrumbs.d.ts +104 -0
  305. package/types/ngstarter-ui-components-button-toggle.d.ts +54 -0
  306. package/types/ngstarter-ui-components-button.d.ts +27 -0
  307. package/types/ngstarter-ui-components-card-overlay.d.ts +20 -0
  308. package/types/ngstarter-ui-components-card.d.ts +85 -0
  309. package/types/ngstarter-ui-components-carousel.d.ts +76 -0
  310. package/types/ngstarter-ui-components-checkbox.d.ts +94 -0
  311. package/types/ngstarter-ui-components-chips.d.ts +189 -0
  312. package/types/ngstarter-ui-components-code-highlighter.d.ts +28 -0
  313. package/types/ngstarter-ui-components-color-picker.d.ts +92 -0
  314. package/types/ngstarter-ui-components-color-scheme.d.ts +44 -0
  315. package/types/ngstarter-ui-components-color-switcher.d.ts +26 -0
  316. package/types/ngstarter-ui-components-command-bar.d.ts +28 -0
  317. package/types/ngstarter-ui-components-comment-editor.d.ts +194 -0
  318. package/types/ngstarter-ui-components-comparison-slider.d.ts +42 -0
  319. package/types/ngstarter-ui-components-confirm.d.ts +34 -0
  320. package/types/ngstarter-ui-components-content-editor.d.ts +321 -0
  321. package/types/ngstarter-ui-components-content-fade.d.ts +17 -0
  322. package/types/ngstarter-ui-components-cookie-popup.d.ts +41 -0
  323. package/types/ngstarter-ui-components-core.d.ts +421 -0
  324. package/types/ngstarter-ui-components-country-select.d.ts +78 -0
  325. package/types/ngstarter-ui-components-crop.d.ts +59 -0
  326. package/types/ngstarter-ui-components-currency-select.d.ts +82 -0
  327. package/types/ngstarter-ui-components-data-view.d.ts +391 -0
  328. package/types/ngstarter-ui-components-date-format-select.d.ts +59 -0
  329. package/types/ngstarter-ui-components-datepicker.d.ts +384 -0
  330. package/types/ngstarter-ui-components-dialog.d.ts +115 -0
  331. package/types/ngstarter-ui-components-divider.d.ts +18 -0
  332. package/types/ngstarter-ui-components-drawer.d.ts +32 -0
  333. package/types/ngstarter-ui-components-emoji-picker.d.ts +49 -0
  334. package/types/ngstarter-ui-components-empty-state.d.ts +33 -0
  335. package/types/ngstarter-ui-components-expand.d.ts +26 -0
  336. package/types/ngstarter-ui-components-expansion.d.ts +68 -0
  337. package/types/ngstarter-ui-components-filter-builder.d.ts +106 -0
  338. package/types/ngstarter-ui-components-form-field.d.ts +107 -0
  339. package/types/ngstarter-ui-components-form-renderer.d.ts +121 -0
  340. package/types/ngstarter-ui-components-gauge.d.ts +21 -0
  341. package/types/ngstarter-ui-components-grid.d.ts +45 -0
  342. package/types/ngstarter-ui-components-guided-tour.d.ts +227 -0
  343. package/types/ngstarter-ui-components-headless-stepper.d.ts +65 -0
  344. package/types/ngstarter-ui-components-icon.d.ts +17 -0
  345. package/types/ngstarter-ui-components-image-designer.d.ts +357 -0
  346. package/types/ngstarter-ui-components-image-placeholder.d.ts +8 -0
  347. package/types/ngstarter-ui-components-image-resizer.d.ts +35 -0
  348. package/types/ngstarter-ui-components-image-viewer.d.ts +63 -0
  349. package/types/ngstarter-ui-components-image-zoom-viewer.d.ts +34 -0
  350. package/types/ngstarter-ui-components-incidents.d.ts +119 -0
  351. package/types/ngstarter-ui-components-inline-text-edit.d.ts +39 -0
  352. package/types/ngstarter-ui-components-input-mask.d.ts +36 -0
  353. package/types/ngstarter-ui-components-input-validator.d.ts +5 -0
  354. package/types/ngstarter-ui-components-input.d.ts +53 -0
  355. package/types/ngstarter-ui-components-kanban-board.d.ts +68 -0
  356. package/types/ngstarter-ui-components-kbd.d.ts +13 -0
  357. package/types/ngstarter-ui-components-layout.d.ts +83 -0
  358. package/types/ngstarter-ui-components-list.d.ts +98 -0
  359. package/types/ngstarter-ui-components-logo.d.ts +26 -0
  360. package/types/ngstarter-ui-components-marquee.d.ts +27 -0
  361. package/types/ngstarter-ui-components-menu.d.ts +199 -0
  362. package/types/ngstarter-ui-components-micro-chart.d.ts +195 -0
  363. package/types/ngstarter-ui-components-navigation.d.ts +136 -0
  364. package/types/ngstarter-ui-components-notifications.d.ts +84 -0
  365. package/types/ngstarter-ui-components-number-input.d.ts +99 -0
  366. package/types/ngstarter-ui-components-option.d.ts +61 -0
  367. package/types/ngstarter-ui-components-overlay.d.ts +12 -0
  368. package/types/ngstarter-ui-components-page-loading-bar.d.ts +20 -0
  369. package/types/ngstarter-ui-components-paginator.d.ts +145 -0
  370. package/types/ngstarter-ui-components-panel.d.ts +59 -0
  371. package/types/ngstarter-ui-components-password-strength.d.ts +109 -0
  372. package/types/ngstarter-ui-components-phone-input.d.ts +103 -0
  373. package/types/ngstarter-ui-components-pin-input.d.ts +48 -0
  374. package/types/ngstarter-ui-components-popover.d.ts +94 -0
  375. package/types/ngstarter-ui-components-progress-bar.d.ts +30 -0
  376. package/types/ngstarter-ui-components-radio-card.d.ts +37 -0
  377. package/types/ngstarter-ui-components-radio.d.ts +45 -0
  378. package/types/ngstarter-ui-components-rail-nav.d.ts +36 -0
  379. package/types/ngstarter-ui-components-resizable-container.d.ts +25 -0
  380. package/types/ngstarter-ui-components-screen-loader.d.ts +34 -0
  381. package/types/ngstarter-ui-components-scroll-spy.d.ts +63 -0
  382. package/types/ngstarter-ui-components-scrollbar-area.d.ts +67 -0
  383. package/types/ngstarter-ui-components-segmented.d.ts +65 -0
  384. package/types/ngstarter-ui-components-select.d.ts +126 -0
  385. package/types/ngstarter-ui-components-side-panel.d.ts +42 -0
  386. package/types/ngstarter-ui-components-sidebar.d.ts +143 -0
  387. package/types/ngstarter-ui-components-sidenav.d.ts +86 -0
  388. package/types/ngstarter-ui-components-signature-pad.d.ts +49 -0
  389. package/types/ngstarter-ui-components-skeleton.d.ts +9 -0
  390. package/types/ngstarter-ui-components-slide-toggle.d.ts +41 -0
  391. package/types/ngstarter-ui-components-slider.d.ts +85 -0
  392. package/types/ngstarter-ui-components-snack-bar.d.ts +142 -0
  393. package/types/ngstarter-ui-components-sort.d.ts +66 -0
  394. package/types/ngstarter-ui-components-spinner.d.ts +28 -0
  395. package/types/ngstarter-ui-components-splash-screen.d.ts +31 -0
  396. package/types/ngstarter-ui-components-split.d.ts +210 -0
  397. package/types/ngstarter-ui-components-stepper.d.ts +44 -0
  398. package/types/ngstarter-ui-components-suggestions.d.ts +32 -0
  399. package/types/ngstarter-ui-components-tab-panel.d.ts +96 -0
  400. package/types/ngstarter-ui-components-table.d.ts +277 -0
  401. package/types/ngstarter-ui-components-tabs.d.ts +145 -0
  402. package/types/ngstarter-ui-components-text-editor.d.ts +191 -0
  403. package/types/ngstarter-ui-components-thumbnail-maker.d.ts +35 -0
  404. package/types/ngstarter-ui-components-tiles.d.ts +109 -0
  405. package/types/ngstarter-ui-components-timeline.d.ts +57 -0
  406. package/types/ngstarter-ui-components-timepicker.d.ts +115 -0
  407. package/types/ngstarter-ui-components-timezone-select.d.ts +75 -0
  408. package/types/ngstarter-ui-components-toolbar.d.ts +74 -0
  409. package/types/ngstarter-ui-components-tooltip.d.ts +52 -0
  410. package/types/ngstarter-ui-components-tree.d.ts +60 -0
  411. package/types/ngstarter-ui-components-upload.d.ts +134 -0
  412. package/types/ngstarter-ui-components-video-player.d.ts +67 -0
  413. package/types/ngstarter-ui-components-video-viewer.d.ts +98 -0
  414. package/types/ngstarter-ui-components-visual-builder.d.ts +8 -0
  415. package/types/ngstarter-ui-components.d.ts +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngstarter-ui-components-content-editor-table-block.component-DlDh7Fnn.mjs","sources":["../../../projects/components/content-editor/src/table-columns-manager.directive.ts","../../../projects/components/content-editor/src/table-rows-manager.directive.ts","../../../projects/components/content-editor/src/resizable-table.directive.ts","../../../projects/components/content-editor/src/draggable-table/draggable-table.component.ts","../../../projects/components/content-editor/src/draggable-table/draggable-table.component.html","../../../projects/components/content-editor/src/_builder/table-block/table-block.component.ts","../../../projects/components/content-editor/src/_builder/table-block/table-block.component.html"],"sourcesContent":["import { afterNextRender, DestroyRef, Directive, ElementRef, inject, output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { DOCUMENT } from '@angular/common';\n\n@Directive({\n selector: '[ngsTableColumnsManager]',\n host: {\n '(contextmenu)': 'onContextMenu($event)',\n }\n})\nexport class TableColumnsManagerDirective {\n private _elementRef = inject(ElementRef);\n private _destroyRef = inject(DestroyRef);\n private _document = inject(DOCUMENT);\n\n private _dragging = false;\n private _elementPosition = 0;\n private _cellWidth = 90;\n\n readonly columnAdded = output();\n readonly columnDeleted = output();\n readonly columnManagingStart = output();\n readonly columnManagingEnd = output();\n\n constructor() {\n afterNextRender(() => {\n this._initResize();\n });\n }\n\n protected onContextMenu(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n private _initResize() {\n fromEvent(this._elementRef.nativeElement, 'mousedown')\n .pipe(\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event: any) => {\n this._dragging = true;\n const elementRect = this._elementRef.nativeElement.getBoundingClientRect();\n this._elementPosition = elementRect.x + elementRect.width / 2;\n this.columnManagingStart.emit();\n });\n fromEvent(this._document, 'mousemove')\n .pipe(\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event: any) => {\n if (this._dragging) {\n const elementRect = this._elementRef.nativeElement.getBoundingClientRect();\n const elementRightPosition = elementRect.x + elementRect.width;\n const elementLeftPosition = elementRect.x;\n\n if (event.clientX > (this._elementPosition + this._cellWidth) && event.clientX > (elementRightPosition + this._cellWidth)) {\n this._elementPosition = elementRightPosition + this._cellWidth;\n this.columnAdded.emit();\n } else if (event.clientX < (this._elementPosition - this._cellWidth) && event.clientX < (elementLeftPosition - this._cellWidth)) {\n this._elementPosition = elementLeftPosition - this._cellWidth;\n this.columnDeleted.emit();\n }\n }\n });\n fromEvent(this._document, 'mouseup')\n .pipe(\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event: any) => {\n if (this._dragging) {\n this._dragging = false;\n this.columnManagingEnd.emit();\n }\n });\n }\n}\n","import { afterNextRender, DestroyRef, Directive, ElementRef, inject, output } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { fromEvent } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Directive({\n selector: '[ngsTableRowsManager]',\n host: {\n '(contextmenu)': 'onContextMenu($event)',\n }\n})\nexport class TableRowsManagerDirective {\n private _elementRef = inject(ElementRef);\n private _destroyRef = inject(DestroyRef);\n private _document = inject(DOCUMENT);\n\n private _dragging = false;\n private _elementPosition = 0;\n private _cellHeight = 24;\n\n readonly rowManagingStart = output();\n readonly rowManagingEnd = output();\n readonly rowAdded = output();\n readonly rowDeleted = output();\n\n constructor() {\n afterNextRender(() => {\n this._initResize();\n });\n }\n\n protected onContextMenu(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n private _initResize() {\n fromEvent(this._elementRef.nativeElement, 'mousedown')\n .pipe(\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event: any) => {\n this._dragging = true;\n const elementRect = this._elementRef.nativeElement.getBoundingClientRect();\n this._elementPosition = elementRect.y + elementRect.height / 2;\n this.rowManagingStart.emit();\n });\n fromEvent(this._document, 'mousemove')\n .pipe(\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event: any) => {\n if (this._dragging) {\n const elementRect = this._elementRef.nativeElement.getBoundingClientRect();\n const elementBottomPosition = elementRect.y + elementRect.height;\n const elementTopPosition = elementRect.y;\n\n if (event.clientY > (this._elementPosition + this._cellHeight) && event.clientY > (elementBottomPosition + this._cellHeight)) {\n this._elementPosition = elementBottomPosition + this._cellHeight;\n this.rowAdded.emit();\n } else if (event.clientY < (this._elementPosition - this._cellHeight) && event.clientY < (elementTopPosition - this._cellHeight)) {\n this._elementPosition = elementTopPosition - this._cellHeight;\n this.rowDeleted.emit();\n }\n }\n });\n fromEvent(this._document, 'mouseup')\n .pipe(\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((event: any) => {\n if (this._dragging) {\n this._dragging = false;\n this.rowManagingEnd.emit();\n }\n });\n }\n}\n","import {\n Directive,\n ElementRef,\n OnInit,\n OnDestroy,\n Renderer2,\n NgZone,\n Input,\n AfterViewInit,\n output, inject, PLATFORM_ID\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { isPlatformServer } from '@angular/common';\n\nconst RESIZING_TABLE_CLASS = 'table-resizing';\nconst RESIZE_HANDLE_ACTIVE_CLASS = 'resize-handle--active';\n\n@Directive({\n selector: 'table[ngsResizableTable]'\n})\nexport class ResizableTableDirective implements OnInit, AfterViewInit, OnDestroy {\n private _platformId = inject(PLATFORM_ID);\n\n @Input() minColumnWidth = 120;\n @Input() resizeHandleWidth = 5;\n @Input() mutationObserverDebounceTime = 20;\n\n readonly columnWidthChange = output<{columnIndex: number, width: number}>();\n readonly columnWidthChangeStart = output<void>();\n readonly columnWidthChangeEnd = output<void>();\n\n private table: HTMLTableElement;\n private wrapper: HTMLDivElement | null = null;\n private resizeHandle: HTMLDivElement | null = null;\n private colgroup: HTMLTableColElement | null = null;\n private colElements: HTMLTableColElement[] = [];\n\n private isResizing = false;\n private resizingColumnIndex = -1;\n private resizingColElement: HTMLTableColElement | null = null;\n private startX = 0;\n private startWidth = 0;\n private startEdgeXRelative = 0;\n\n private activeHoverColumnIndex = -1;\n private isHandleVisible = false;\n\n private destroy$ = new Subject<void>();\n private hideHandleDebounced: () => void;\n private syncColumnsDebounced: () => void; // Debounce для синхронизации колонок\n\n private listeners: (() => void)[] = [];\n private observer: MutationObserver | null = null;\n\n constructor(\n private el: ElementRef<HTMLTableElement>,\n private renderer: Renderer2,\n private ngZone: NgZone\n ) {\n this.table = this.el.nativeElement;\n this.hideHandleDebounced = this.debounce(() => this.hideResizeHandle(), 50);\n this.syncColumnsDebounced = this.debounce(() => {\n this.syncColumnsAndColgroup();\n this.ensureColWidths();\n\n if (this.isHandleVisible) {\n this.hideResizeHandle();\n }\n }, this.mutationObserverDebounceTime);\n }\n\n ngOnInit(): void {\n\n }\n\n ngAfterViewInit(): void {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n\n this.checkTableLayout();\n this.createWrapperAndHandle();\n this.syncColumnsAndColgroup();\n\n if (!this.wrapper || !this.resizeHandle) {\n console.error('ResizableTableDirective: Wrapper or handle creation failed.');\n this.cleanupWrapperAndHandleOnError();\n return;\n }\n\n this.addWrapperListeners();\n this.setupGlobalResizeListeners();\n this.setupMutationObserver();\n this.ensureColWidths();\n }\n\n ngOnDestroy(): void {\n this.observer?.disconnect();\n this.destroy$.next();\n this.destroy$.complete();\n this.listeners.forEach(unlisten => unlisten());\n this.cleanupWrapperAndHandle();\n }\n\n private checkTableLayout(): void { /* ... как раньше ... */\n if (getComputedStyle(this.table).tableLayout !== 'fixed') {\n console.warn('ResizableTableDirective: table-layout: fixed is highly recommended.');\n this.renderer.setStyle(this.table, 'table-layout', 'fixed');\n }\n }\n\n private syncColumnsAndColgroup(): void {\n let requiredColumnCount = 0;\n const firstDataRow = this.table.querySelector('tbody > tr:first-child') as HTMLTableRowElement | null;\n\n if (firstDataRow) {\n requiredColumnCount = firstDataRow.cells.length;\n } else {\n // Если tbody пуст, можно попробовать определить по thead, если он есть\n const firstHeadRow = this.table.querySelector('thead > tr:first-child') as HTMLTableRowElement | null;\n\n if (firstHeadRow) {\n requiredColumnCount = firstHeadRow.cells.length;\n } else {\n if(this.colgroup) {\n this.colElements.forEach(col => this.renderer.removeChild(this.colgroup, col));\n }\n\n this.colElements = [];\n return;\n }\n }\n\n this.colgroup = this.table.querySelector('colgroup') as HTMLTableColElement;\n\n const currentColElements = Array.from(this.colgroup.querySelectorAll('col'));\n const currentColCount = currentColElements.length;\n\n if (requiredColumnCount > currentColCount) {\n for (let i = currentColCount; i < requiredColumnCount; i++) {\n const col = this.renderer.createElement('col');\n this.renderer.appendChild(this.colgroup, col);\n }\n }\n\n else if (requiredColumnCount < currentColCount) {\n for (let i = currentColCount - 1; i >= requiredColumnCount; i--) {\n this.renderer.removeChild(this.colgroup, currentColElements[i]);\n }\n }\n\n this.colElements = Array.from(this.colgroup.querySelectorAll('col'));\n }\n\n private ensureColWidths(): void {\n const referenceRow = this.table.querySelector('tbody > tr:first-child, thead > tr:first-child') as HTMLTableRowElement | null;\n\n if (!referenceRow || this.colElements.length !== referenceRow.cells.length) {\n return;\n }\n\n this.colElements.forEach((col, index) => {\n if (!col.style.width && referenceRow.cells[index]) {\n const cellWidth = referenceRow.cells[index].getBoundingClientRect().width;\n\n if (cellWidth > 0) {\n this.renderer.setStyle(col, 'width', `${cellWidth}px`);\n }\n }\n });\n }\n\n private setupMutationObserver(): void {\n const targetNode = this.table.querySelector('tbody') ?? this.table;\n\n const config: MutationObserverInit = {\n childList: true,\n subtree: true\n };\n\n const callback: MutationCallback = (mutationsList, observer) => {\n this.ngZone.runOutsideAngular(() => {\n this.syncColumnsDebounced();\n });\n };\n this.observer = new MutationObserver(callback);\n this.observer.observe(targetNode, config);\n }\n\n private createWrapperAndHandle(): void {\n this.wrapper = this.renderer.createElement('div');\n this.renderer.addClass(this.wrapper, 'resizable-table-wrapper');\n this.resizeHandle = this.renderer.createElement('div');\n this.renderer.addClass(this.resizeHandle, 'resizable-table-handle');\n this.renderer.setStyle(this.resizeHandle, 'width', `${this.resizeHandleWidth}px`);\n\n const parent = this.renderer.parentNode(this.table);\n\n if (parent) {\n this.renderer.insertBefore(parent, this.wrapper, this.table);\n this.renderer.appendChild(this.wrapper, this.table);\n this.renderer.appendChild(this.wrapper, this.resizeHandle);\n } else {\n console.error('ResizableTableDirective: Table has no parent node.');\n this.wrapper = null; this.resizeHandle = null;\n }\n }\n\n private cleanupWrapperAndHandle(): void {\n if (this.wrapper && this.wrapper.parentNode) {\n if (this.table.parentNode === this.wrapper) {\n this.renderer.insertBefore(this.wrapper.parentNode, this.table, this.wrapper);\n }\n this.renderer.removeChild(this.wrapper.parentNode, this.wrapper);\n } else if (this.resizeHandle && this.resizeHandle.parentNode) {\n this.renderer.removeChild(this.resizeHandle.parentNode, this.resizeHandle);\n }\n this.wrapper = null;\n this.resizeHandle = null;\n }\n\n private cleanupWrapperAndHandleOnError(): void { /* ... как раньше ... */\n if (this.wrapper && this.table.parentNode === this.wrapper) {\n const parent = this.wrapper.parentNode;\n if(parent) {\n this.renderer.insertBefore(parent, this.table, this.wrapper);\n this.renderer.removeChild(parent, this.wrapper);\n }\n }\n this.wrapper = null;\n this.resizeHandle = null;\n }\n\n private addWrapperListeners(): void {\n if (!this.wrapper) return;\n this.ngZone.runOutsideAngular(() => {\n const mm = this.renderer.listen(this.wrapper, 'mousemove', (e: MouseEvent) => this.handleMouseMoveWrapper(e));\n this.listeners.push(mm);\n });\n const md = this.renderer.listen(this.wrapper, 'mousedown', (e: MouseEvent) => this.handleMouseDownWrapper(e));\n const ml = this.renderer.listen(this.wrapper, 'mouseleave', (e: MouseEvent) => { if (!this.isResizing) this.hideResizeHandle(); });\n this.listeners.push(md, ml);\n }\n\n private handleMouseMoveWrapper(event: MouseEvent): void {\n if (this.isResizing || !this.wrapper) {\n return;\n }\n\n const wrapperRect = this.wrapper.getBoundingClientRect();\n const mouseXRelative = event.clientX - wrapperRect.left;\n let targetColumnIndex = -1;\n let edgeXPosition = 0;\n\n const firstRow = this.table.querySelector('tbody > tr:first-child, thead > tr:first-child') as HTMLTableRowElement | null;\n\n if (!firstRow) {\n return;\n }\n\n if (this.colElements.length !== firstRow.cells.length) {\n return;\n }\n\n for (let i = 0; i < firstRow.cells.length; i++) {\n const cell = firstRow.cells[i];\n\n if (!cell) {\n continue;\n }\n\n const cellRect = cell.getBoundingClientRect();\n const cellEdgeX = cellRect.right - wrapperRect.left;\n\n if (Math.abs(mouseXRelative - cellEdgeX) <= this.resizeHandleWidth / 2) {\n if (this.colElements[i]) {\n targetColumnIndex = i;\n edgeXPosition = cellEdgeX;\n break;\n }\n }\n }\n\n if (targetColumnIndex !== -1) {\n this.showResizeHandle(edgeXPosition);\n this.activeHoverColumnIndex = targetColumnIndex;\n } else {\n this.hideHandleDebounced();\n }\n }\n\n private handleMouseDownWrapper(event: MouseEvent): void {\n if (this.activeHoverColumnIndex !== -1 && this.isHandleVisible && this.wrapper) {\n const targetCol = this.colElements[this.activeHoverColumnIndex];\n const firstRow = this.table.querySelector('tbody > tr:first-child, thead > tr:first-child') as HTMLTableRowElement | null;\n\n if (!targetCol || !firstRow || !firstRow.cells[this.activeHoverColumnIndex]) {\n return;\n }\n\n this.isResizing = true;\n this.resizingColumnIndex = this.activeHoverColumnIndex;\n this.resizingColElement = targetCol;\n this.startX = event.clientX;\n\n const colStyleWidth = this.resizingColElement.style.width;\n this.startWidth = colStyleWidth && colStyleWidth.endsWith('px')\n ? parseFloat(colStyleWidth)\n : this.resizingColElement.getBoundingClientRect().width;\n\n if (this.startWidth <= 0 ) {\n this.startWidth = firstRow.cells[this.resizingColumnIndex].getBoundingClientRect().width;\n }\n\n const wrapperRect = this.wrapper.getBoundingClientRect();\n const cellRect = firstRow.cells[this.resizingColumnIndex].getBoundingClientRect();\n this.startEdgeXRelative = cellRect.right - wrapperRect.left;\n\n this.renderer.addClass(this.table, RESIZING_TABLE_CLASS);\n event.preventDefault();\n this.columnWidthChangeStart.emit();\n }\n }\n\n private showResizeHandle(edgeX: number): void {\n if (!this.resizeHandle || !this.wrapper) {\n return;\n }\n\n const handleLeft = edgeX - (this.resizeHandleWidth / 2);\n this.renderer.setStyle(this.resizeHandle, 'left', `${handleLeft}px`);\n this.renderer.setStyle(this.resizeHandle, 'top', `${this.table.offsetTop}px`);\n this.renderer.setStyle(this.resizeHandle, 'height', `${this.table.offsetHeight}px`);\n this.renderer.addClass(this.resizeHandle, RESIZE_HANDLE_ACTIVE_CLASS);\n this.isHandleVisible = true;\n }\n\n private hideResizeHandle(): void {\n if (this.resizeHandle && this.isHandleVisible) {\n this.renderer.removeClass(this.resizeHandle, RESIZE_HANDLE_ACTIVE_CLASS);\n this.isHandleVisible = false;\n this.activeHoverColumnIndex = -1;\n }\n }\n\n private debounce(func: (...args: any[]) => void, wait: number): (...args: any[]) => void {\n let timeout: any;\n return (...args: any[]) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => func.apply(this, args), wait);\n };\n }\n\n private setupGlobalResizeListeners(): void {\n this.ngZone.runOutsideAngular(() => {\n fromEvent<MouseEvent>(document, 'mousemove')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n if (!this.isResizing || !this.resizingColElement || !this.wrapper || !this.resizeHandle) return;\n\n if (!this.resizingColElement.parentElement) {\n this.stopResizing();\n return;\n }\n\n const deltaX = event.clientX - this.startX;\n const newWidth = this.startWidth + deltaX;\n const finalWidth = Math.max(newWidth, this.minColumnWidth);\n this.renderer.setStyle(this.resizingColElement, 'width', `${finalWidth}px`);\n const actualDeltaX = finalWidth - this.startWidth;\n const newEdgeXRelative = this.startEdgeXRelative + actualDeltaX;\n const handleLeft = newEdgeXRelative - (this.resizeHandleWidth / 2);\n this.renderer.setStyle(this.resizeHandle, 'left', `${handleLeft}px`);\n\n if (!this.isHandleVisible) {\n this.renderer.addClass(this.resizeHandle, RESIZE_HANDLE_ACTIVE_CLASS);\n this.isHandleVisible = true;\n }\n\n this.updateHandleHeight();\n });\n\n fromEvent<MouseEvent>(document, 'mouseup')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.isResizing) {\n this.ngZone.run(() => {\n this.stopResizing();\n });\n }\n });\n });\n }\n\n private stopResizing(): void {\n this.columnWidthChange.emit({\n columnIndex: this.resizingColumnIndex,\n width: this.resizingColElement?.getBoundingClientRect().width as number\n });\n this.renderer.removeClass(this.table, RESIZING_TABLE_CLASS);\n this.hideResizeHandle();\n this.isResizing = false;\n this.resizingColumnIndex = -1;\n this.resizingColElement = null;\n this.columnWidthChangeEnd.emit();\n }\n\n private updateHandleHeight(): void {\n if (this.resizeHandle && this.isHandleVisible && this.wrapper) {\n requestAnimationFrame(() => {\n if(this.isHandleVisible && this.resizeHandle && this.table) {\n this.renderer.setStyle(this.resizeHandle, 'top', `${this.table.offsetTop}px`);\n this.renderer.setStyle(this.resizeHandle, 'height', `${this.table.offsetHeight}px`);\n }\n });\n }\n }\n}\n","import {\n Component,\n ElementRef,\n Renderer2,\n OnInit,\n OnDestroy,\n AfterViewInit,\n NgZone,\n ChangeDetectionStrategy,\n inject,\n HostBinding,\n output,\n input,\n booleanAttribute,\n PLATFORM_ID,\n DestroyRef,\n} from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\nimport { CONTENT_BUILDER } from '../types';\nimport { ContentBuilderComponent } from '../content-builder/content-builder.component';\nimport { Subscription, Observable } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nconst HIDE_DELAY_MS = 300;\n\ninterface ColumnInfo {\n index: number;\n left: number;\n width: number;\n center: number;\n}\n\ninterface RowInfo {\n index: number;\n element: HTMLTableRowElement;\n top: number;\n height: number;\n center: number;\n}\n\n@Component({\n selector: 'ngs-draggable-table',\n exportAs: 'ngsDraggableTable',\n imports: [],\n templateUrl: './draggable-table.component.html',\n styleUrl: './draggable-table.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.disabled]': 'disabled() || null'\n }\n})\nexport class DraggableTableComponent implements OnInit, AfterViewInit, OnDestroy {\n private contentBuilder = inject<ContentBuilderComponent>(CONTENT_BUILDER);\n private _platformId = inject(PLATFORM_ID);\n private elRef = inject(ElementRef<HTMLElement>);\n private renderer = inject(Renderer2);\n private ngZone = inject(NgZone);\n private destroyRef = inject(DestroyRef);\n private table: HTMLTableElement | null = null;\n private suppressInteractions = false;\n private columnHandler!: HTMLElement;\n private rowHandler!: HTMLElement;\n private dropIndicator!: HTMLElement;\n private hoveredCell: HTMLElement | null = null;\n private hoveredColumnIndex: number = -1;\n private hoveredRowIndex: number = -1;\n private isDragging = false;\n private dragMode: 'row' | 'column' | null = null;\n private startX = 0;\n private startY = 0;\n private handlerStartY = 0;\n private draggedElement: HTMLElement | null = null;\n private draggedElementSource: HTMLElement | null = null;\n private startElementIndex = -1;\n private currentDropIndex = -1;\n private hideTimeoutId: any = null;\n private columnInfo: ColumnInfo[] = [];\n private rowInfo: RowInfo[] = [];\n private listeners: {\n name: string;\n type: 'element' | 'document';\n target?: () => EventTarget | null;\n event: string;\n handler: (event: any) => void;\n cleanup?: () => void\n }[] = [];\n private boundOnDrag: (event: MouseEvent) => void;\n private boundEndDrag: (event: MouseEvent) => void;\n private handlerSize = 18;\n private handlerOffset = -9;\n private indicatorThickness = 3;\n private suppressResetTimeoutId: any = null;\n private scrollContainerRef: Element | Window | null = null; // оставлено для обратной совместимости, не используется напрямую\n private scrollSub: Subscription | null = null;\n @HostBinding('class.draggable-table-host') hostClass = true;\n\n disabled = input(false, {\n transform: booleanAttribute\n });\n\n readonly columnMoved = output<{ startElementIndex: number, finalTargetIndex: number }>();\n readonly rowMoved = output<{ startElementIndex: number, finalTargetIndex: number }>();\n readonly moveStart = output<void>();\n readonly moveEnd = output<void>();\n\n constructor() {\n this.boundOnDrag = this.onDrag.bind(this);\n this.boundEndDrag = this.endDrag.bind(this);\n }\n\n ngOnInit(): void {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n this.createHandlers();\n this.createDropIndicator();\n this.prepareListeners();\n }\n\n ngAfterViewInit(): void {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n this.table = this.elRef.nativeElement.querySelector('table');\n if (!this.table) {\n return;\n }\n if (getComputedStyle(this.table).position === 'static') {\n this.renderer.setStyle(this.table, 'position', 'relative');\n }\n this.renderer.appendChild(this.table, this.columnHandler);\n this.renderer.appendChild(this.table, this.rowHandler);\n this.renderer.appendChild(this.table, this.dropIndicator);\n this.attachListeners('element');\n this.bindScrollContainerListener();\n }\n\n ngOnDestroy(): void {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n this.unbindScrollContainerListener();\n this.detachListeners('all');\n this.cancelHideTimer();\n if (this.suppressResetTimeoutId) {\n clearTimeout(this.suppressResetTimeoutId);\n this.suppressResetTimeoutId = null;\n }\n if (this.dropIndicator?.parentNode) {\n this.renderer.removeChild(this.dropIndicator.parentNode, this.dropIndicator);\n }\n if (this.columnHandler?.parentNode) {\n this.renderer.removeChild(this.columnHandler.parentNode, this.columnHandler);\n }\n if (this.rowHandler?.parentNode) {\n this.renderer.removeChild(this.rowHandler.parentNode, this.rowHandler);\n }\n if (this.table) {\n this.renderer.removeClass(this.table, 'dragging-column');\n this.renderer.removeClass(this.table, 'dragging-row');\n this.table.querySelectorAll('.dragging-source').forEach(el => this.renderer.removeClass(el, 'dragging-source'));\n this.table.querySelectorAll('.col-highlight').forEach(el => this.renderer.removeClass(el, 'col-highlight'));\n }\n document.body.style.cursor = '';\n this.columnInfo = [];\n this.rowInfo = [];\n this.currentDropIndex = -1;\n this.suppressInteractions = false;\n }\n\n private prepareListeners(): void {\n this.listeners = [\n {\n name: 'tableMouseOver',\n type: 'element',\n target: () => this.table,\n event: 'mouseover',\n handler: this.onTableMouseOver.bind(this)\n },\n {\n name: 'tableMouseLeave',\n type: 'element',\n target: () => this.table,\n event: 'mouseleave',\n handler: this.onTableMouseLeave.bind(this)\n },\n {\n name: 'colHandlerMouseDown',\n type: 'element',\n target: () => this.columnHandler,\n event: 'mousedown',\n handler: (e: MouseEvent) => this.onHandlerMouseDown(e, 'column')\n },\n {\n name: 'colHandlerMouseEnter',\n type: 'element',\n target: () => this.columnHandler,\n event: 'mouseenter',\n handler: this.onHandlerMouseEnter.bind(this)\n },\n {\n name: 'colHandlerMouseLeave',\n type: 'element',\n target: () => this.columnHandler,\n event: 'mouseleave',\n handler: this.onHandlerMouseLeave.bind(this)\n },\n {\n name: 'rowHandlerMouseDown',\n type: 'element',\n target: () => this.rowHandler,\n event: 'mousedown',\n handler: (e: MouseEvent) => this.onHandlerMouseDown(e, 'row')\n },\n {\n name: 'rowHandlerMouseEnter',\n type: 'element',\n target: () => this.rowHandler,\n event: 'mouseenter',\n handler: this.onHandlerMouseEnter.bind(this)\n },\n {\n name: 'rowHandlerMouseLeave',\n type: 'element',\n target: () => this.rowHandler,\n event: 'mouseleave',\n handler: this.onHandlerMouseLeave.bind(this)\n },\n {name: 'docMouseMove', type: 'document', target: () => document, event: 'mousemove', handler: this.boundOnDrag},\n {\n name: 'docMouseUp', type: 'document', target: () => document, event: 'mouseup', handler: (e: MouseEvent) => {\n this.suppressInteractions = false;\n this.boundEndDrag(e);\n }\n },\n {\n name: 'winBlur', type: 'document', target: () => window, event: 'blur', handler: () => {\n this.suppressInteractions = false;\n }\n },\n {\n name: 'visibilityChange', type: 'document', target: () => document, event: 'visibilitychange', handler: () => {\n if (document.visibilityState !== 'visible') {\n this.suppressInteractions = false;\n }\n }\n },\n ];\n }\n\n private attachListeners(type: 'element' | 'document' | 'all' = 'element'): void {\n this.ngZone.runOutsideAngular(() => {\n this.listeners.forEach(listener => {\n if (listener.type === 'document' && type !== 'document' && type !== 'all') return;\n if (listener.type === 'element' && type === 'document') return;\n if (listener.cleanup || !listener.target) return;\n const targetElement = listener.target();\n if (!targetElement) return;\n listener.cleanup = this.renderer.listen(targetElement, listener.event, listener.handler);\n });\n });\n }\n\n private detachListeners(type: 'element' | 'document' | 'all' = 'all'): void {\n this.listeners.forEach(listener => {\n if (listener.type === 'document' && type !== 'document' && type !== 'all') return;\n if (listener.type === 'element' && type === 'document') return;\n if (listener.cleanup) {\n listener.cleanup();\n listener.cleanup = undefined;\n }\n });\n }\n\n private onTableMouseOver(event: MouseEvent): void {\n this.cancelHideTimer();\n this.ensureScrollContainerListener();\n if (!this.table || this.isDragging) return;\n if (this.suppressInteractions) return;\n const anyButtonDown = typeof event.buttons === 'number' ? event.buttons !== 0 : false;\n if (anyButtonDown) return;\n const target = event.target as HTMLElement;\n const cell = target.closest('td, th') as HTMLTableCellElement | null;\n if (cell && this.table.contains(cell)) {\n const currentColumnIndex = cell.cellIndex;\n const currentRow = cell.closest('tr');\n const currentRowIndex = currentRow?.parentElement?.tagName === 'TBODY' ? Array.from(currentRow.parentElement.children).indexOf(currentRow) : -1;\n this.hoveredCell = cell;\n if (currentColumnIndex !== this.hoveredColumnIndex || this.columnHandler.style.visibility === 'hidden') {\n this.hoveredColumnIndex = currentColumnIndex;\n this.positionColumnHandler(cell);\n this.renderer.setStyle(this.columnHandler, 'visibility', 'visible');\n }\n if (currentRowIndex !== -1) {\n if (currentRowIndex !== this.hoveredRowIndex || this.rowHandler.style.visibility === 'hidden') {\n this.hoveredRowIndex = currentRowIndex;\n this.positionRowHandler(cell);\n this.renderer.setStyle(this.rowHandler, 'visibility', 'visible');\n }\n } else if (this.hoveredRowIndex !== -1) {\n this.renderer.setStyle(this.rowHandler, 'visibility', 'hidden');\n this.hoveredRowIndex = -1;\n }\n }\n }\n\n private onTableMouseLeave(event: MouseEvent): void {\n if (this.isDragging) return;\n if (this.suppressInteractions) return;\n const relatedTarget = event.relatedTarget as Node;\n if (relatedTarget !== this.columnHandler && relatedTarget !== this.rowHandler) {\n this.scheduleHideHandlers();\n }\n }\n\n private onHandlerMouseEnter(): void {\n this.cancelHideTimer();\n }\n\n private onHandlerMouseLeave(event: MouseEvent): void {\n if (this.isDragging) return;\n if (this.suppressInteractions) return;\n const relatedTarget = event.relatedTarget as Node;\n const isOverTable = relatedTarget && this.table && this.table.contains(relatedTarget);\n const isOverOtherHandler = (event.target === this.columnHandler && relatedTarget === this.rowHandler) || (event.target === this.rowHandler && relatedTarget === this.columnHandler);\n if (!isOverTable && !isOverOtherHandler) {\n this.scheduleHideHandlers();\n }\n }\n\n private onHandlerMouseDown(event: MouseEvent, mode: 'row' | 'column'): void {\n const isPrimary = (event.button === 0) && ((event.buttons & 1) === 1);\n if (!isPrimary || event.ctrlKey) {\n this.suppressInteractions = true;\n event.preventDefault();\n event.stopPropagation();\n this.cancelHideTimer();\n if (this.suppressResetTimeoutId) {\n clearTimeout(this.suppressResetTimeoutId);\n this.suppressResetTimeoutId = null;\n }\n this.suppressResetTimeoutId = setTimeout(() => {\n this.suppressInteractions = false;\n this.suppressResetTimeoutId = null;\n }, 1200);\n return;\n }\n this.startDrag(event, mode);\n }\n\n private createHandlers(): void {\n this.columnHandler = this.renderer.createElement('div');\n this.columnHandler.oncontextmenu = ((e) => {\n e.preventDefault();\n e.stopPropagation();\n });\n this.renderer.addClass(this.columnHandler, 'drag-handler');\n this.renderer.addClass(this.columnHandler, 'column-handler');\n this.renderer.setStyle(this.columnHandler, 'position', 'fixed');\n this.renderer.setStyle(this.columnHandler, 'visibility', 'hidden');\n this.renderer.setStyle(this.columnHandler, 'z-index', '1000');\n this.rowHandler = this.renderer.createElement('div');\n this.rowHandler.oncontextmenu = ((e) => {\n e.preventDefault();\n e.stopPropagation();\n });\n this.renderer.addClass(this.rowHandler, 'drag-handler');\n this.renderer.addClass(this.rowHandler, 'row-handler');\n this.renderer.setStyle(this.rowHandler, 'position', 'fixed');\n this.renderer.setStyle(this.rowHandler, 'visibility', 'hidden');\n this.renderer.setStyle(this.rowHandler, 'z-index', '1000');\n }\n\n private createDropIndicator(): void {\n this.dropIndicator = this.renderer.createElement('div');\n this.renderer.addClass(this.dropIndicator, 'drop-indicator');\n }\n\n private positionColumnHandler(cellOrIndex: HTMLElement | number): void {\n if (!this.table) {\n return;\n }\n let targetCell: HTMLElement | null = null;\n if (typeof cellOrIndex === 'number') {\n targetCell = this.findFirstVisibleCellInColumn(cellOrIndex);\n if (!targetCell) return;\n } else {\n targetCell = cellOrIndex;\n }\n const tableRect = this.table.getBoundingClientRect();\n const cellRect = targetCell.getBoundingClientRect();\n const colHandlerLeft = cellRect.left + (cellRect.width / 2) - (this.handlerSize / 2);\n const colHandlerTop = tableRect.top - this.handlerSize - this.handlerOffset;\n this.renderer.setStyle(this.columnHandler, 'top', `${colHandlerTop}px`);\n this.renderer.setStyle(this.columnHandler, 'left', `${colHandlerLeft}px`);\n }\n\n private positionRowHandler(cell: HTMLElement): void {\n if (!this.table || this.isDragging) return;\n const tableRect = this.table.getBoundingClientRect();\n const cellRect = cell.getBoundingClientRect();\n const rowHandlerTop = cellRect.top + (cellRect.height / 2) - (this.handlerSize / 2);\n const rowHandlerLeft = tableRect.left - this.handlerSize - this.handlerOffset;\n this.renderer.setStyle(this.rowHandler, 'top', `${rowHandlerTop}px`);\n this.renderer.setStyle(this.rowHandler, 'left', `${rowHandlerLeft}px`);\n }\n\n private scheduleHideHandlers(): void {\n this.cancelHideTimer();\n this.hideTimeoutId = setTimeout(() => {\n this.hideHandlers();\n this.hideTimeoutId = null;\n }, HIDE_DELAY_MS);\n }\n\n private cancelHideTimer(): void {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n }\n\n private hideHandlers(): void {\n if (!this.isDragging) {\n this.renderer.setStyle(this.columnHandler, 'visibility', 'hidden');\n this.renderer.setStyle(this.rowHandler, 'visibility', 'hidden');\n this.renderer.setStyle(this.dropIndicator, 'visibility', 'hidden');\n this.hoveredCell = null;\n this.hoveredColumnIndex = -1;\n this.hoveredRowIndex = -1;\n }\n }\n\n private startDrag(event: MouseEvent, mode: 'row' | 'column'): void {\n const isPrimary = (event.button === 0) && ((event.buttons & 1) === 1);\n if (!isPrimary || event.ctrlKey) {\n return;\n }\n this.cancelHideTimer();\n const sourceRow = mode === 'row' ? this.hoveredCell?.closest('tr') : null;\n\n if (\n !this.table || (mode === 'row' && this.hoveredRowIndex < 0) ||\n (mode === 'column' && this.hoveredColumnIndex < 0) ||\n (mode === 'row' && sourceRow?.parentElement?.tagName !== 'TBODY')\n ) {\n return;\n }\n event.preventDefault();\n this.isDragging = true;\n this.dragMode = mode;\n this.startX = event.clientX;\n this.startY = event.clientY;\n this.currentDropIndex = -1;\n if (mode === 'column') {\n this.startElementIndex = this.hoveredColumnIndex;\n this.currentDropIndex = this.startElementIndex;\n this.draggedElement = this.columnHandler;\n this.draggedElementSource = null;\n this.renderer.addClass(this.table, 'dragging-column');\n this.styleColumnAsSource(this.startElementIndex, true);\n this.calculateColumnInfo();\n this.updateColumnHandlerPositionOnDrag(event.clientX);\n this.renderer.setStyle(this.columnHandler, 'visibility', 'visible');\n this.renderer.setStyle(this.rowHandler, 'visibility', 'hidden');\n this.renderer.setStyle(this.dropIndicator, 'visibility', 'hidden');\n } else {\n this.startElementIndex = this.hoveredRowIndex;\n this.currentDropIndex = this.startElementIndex;\n this.draggedElement = this.rowHandler;\n this.draggedElementSource = sourceRow!;\n this.renderer.addClass(this.draggedElementSource, 'dragging-source');\n this.renderer.addClass(this.table, 'dragging-row');\n this.calculateRowInfo();\n this.handlerStartY = parseFloat(this.rowHandler.style.top || '0');\n this.updateRowHandlerPositionOnDrag(event.clientY);\n this.renderer.setStyle(this.rowHandler, 'visibility', 'visible');\n this.renderer.setStyle(this.columnHandler, 'visibility', 'hidden');\n this.renderer.setStyle(this.dropIndicator, 'visibility', 'hidden');\n }\n if (this.draggedElement) {\n this.renderer.addClass(this.draggedElement, 'dragging-active-handler');\n }\n this.attachListeners('document');\n }\n\n private onDrag(event: MouseEvent): void {\n if (!this.isDragging || !this.draggedElement || !this.table) return;\n if ((event.buttons & 1) !== 1) {\n this.endDrag(event);\n return;\n }\n event.preventDefault();\n this.moveStart.emit();\n const currentX = event.clientX;\n const currentY = event.clientY;\n document.body.style.cursor = 'grabbing';\n if (this.dragMode === 'row') {\n this.updateRowHandlerPositionOnDrag(currentY);\n const currentHandlerCenterY = parseFloat(this.rowHandler.style.top || '0') + this.handlerSize / 2;\n const newVisualTargetIndex = this.getVisualTargetRowIndex(currentHandlerCenterY);\n if (newVisualTargetIndex !== -1) {\n this.updateDropIndicator(newVisualTargetIndex, 'row');\n this.currentDropIndex = newVisualTargetIndex;\n } else {\n this.renderer.setStyle(this.dropIndicator, 'visibility', 'hidden');\n this.currentDropIndex = -1;\n }\n this.clearDropHighlights();\n } else if (this.dragMode === 'column') {\n this.updateColumnHandlerPositionOnDrag(currentX);\n const currentHandlerCenterX = parseFloat(this.columnHandler.style.left || '0') + this.handlerSize / 2;\n const newVisualTargetIndex = this.getVisualTargetColumnIndex(currentHandlerCenterX);\n if (newVisualTargetIndex !== -1) {\n this.updateDropIndicator(newVisualTargetIndex, 'column');\n this.currentDropIndex = newVisualTargetIndex;\n } else {\n this.renderer.setStyle(this.dropIndicator, 'visibility', 'hidden');\n this.currentDropIndex = -1;\n }\n this.clearDropHighlights();\n }\n }\n\n private getVisualTargetColumnIndex(currentHandlerCenterX: number): number {\n if (this.startElementIndex < 0 || !this.columnInfo?.length) return -1;\n let potentialTargetIndex = this.startElementIndex;\n const currentGeometry = this.columnInfo;\n for (const targetColumn of currentGeometry) {\n if (targetColumn.index === this.startElementIndex) continue;\n const targetCenter = targetColumn.center;\n const threshold = targetColumn.width * 0.5;\n if (targetColumn.index > this.startElementIndex && currentHandlerCenterX > targetCenter - threshold) {\n potentialTargetIndex = Math.max(potentialTargetIndex, targetColumn.index);\n } else if (targetColumn.index < this.startElementIndex && currentHandlerCenterX < targetCenter + threshold) {\n potentialTargetIndex = (potentialTargetIndex === this.startElementIndex) ? targetColumn.index : Math.min(potentialTargetIndex, targetColumn.index);\n }\n }\n return potentialTargetIndex;\n }\n\n private getVisualTargetRowIndex(currentHandlerCenterY: number): number {\n if (this.startElementIndex < 0 || !this.table?.tBodies[0] || !this.rowInfo?.length) return -1;\n let potentialTargetIndex = this.startElementIndex;\n const currentGeometry = this.rowInfo;\n for (const targetRow of currentGeometry) {\n if (targetRow.index === this.startElementIndex) continue;\n const targetCenter = targetRow.center;\n const threshold = targetRow.height * 0.5;\n if (targetRow.index > this.startElementIndex && currentHandlerCenterY > targetCenter - threshold) {\n potentialTargetIndex = Math.max(potentialTargetIndex, targetRow.index);\n } else if (targetRow.index < this.startElementIndex && currentHandlerCenterY < targetCenter + threshold) {\n potentialTargetIndex = (potentialTargetIndex === this.startElementIndex) ? targetRow.index : Math.min(potentialTargetIndex, targetRow.index);\n }\n }\n return potentialTargetIndex;\n }\n\n private updateColumnHandlerPositionOnDrag(currentX: number): void {\n if (!this.table || !this.columnHandler) return;\n const handlerLeft = currentX - (this.handlerSize / 2);\n this.renderer.setStyle(this.columnHandler, 'left', `${handlerLeft}px`);\n }\n\n private updateRowHandlerPositionOnDrag(currentY: number): void {\n if (!this.table || !this.rowHandler) return;\n const deltaY = currentY - this.startY;\n const handlerTop = this.handlerStartY + deltaY;\n this.renderer.setStyle(this.rowHandler, 'top', `${handlerTop}px`);\n }\n\n private endDrag(event: MouseEvent): void {\n if (!this.isDragging) return;\n this.detachListeners('document');\n event.preventDefault();\n this.renderer.setStyle(this.dropIndicator, 'visibility', 'hidden');\n if (!this.table) {\n this.cleanupDragState();\n return;\n }\n const finalTargetIndex = this.currentDropIndex;\n if (this.startElementIndex !== -1 && finalTargetIndex !== -1 && finalTargetIndex !== this.startElementIndex) {\n if (this.dragMode === 'column') {\n this.moveColumn(this.startElementIndex, finalTargetIndex);\n this.columnMoved.emit({\n startElementIndex: this.startElementIndex,\n finalTargetIndex\n });\n } else if (this.dragMode === 'row') {\n this.moveRow(this.startElementIndex, finalTargetIndex);\n this.rowMoved.emit({\n startElementIndex: this.startElementIndex,\n finalTargetIndex\n });\n }\n }\n this.cleanupDragState();\n this.moveEnd.emit();\n this.table\n .querySelectorAll('td.dragging-source, th.dragging-source')\n .forEach(cell => {\n this.renderer.removeClass(cell, 'dragging-source');\n });\n }\n\n private cleanupDragState(): void {\n const draggedMode = this.dragMode;\n const startIndex = this.startElementIndex;\n const sourceElement = this.draggedElementSource;\n const activeHandler = this.draggedElement;\n this.renderer.setStyle(this.dropIndicator, 'visibility', 'hidden');\n this.isDragging = false;\n this.dragMode = null;\n this.startElementIndex = -1;\n this.draggedElement = null;\n this.draggedElementSource = null;\n this.columnInfo = [];\n this.rowInfo = [];\n this.currentDropIndex = -1;\n this.handlerStartY = 0;\n this.suppressInteractions = false;\n this.clearDropHighlights();\n if (this.table) {\n if (draggedMode === 'column') {\n this.renderer.removeClass(this.table, 'dragging-column');\n if (startIndex >= 0) {\n this.styleColumnAsSource(startIndex, false);\n this.highlightColumn(startIndex, false);\n } else {\n this.table.querySelectorAll('td.dragging-source, th.dragging-source').forEach(cell => this.renderer.removeClass(cell, 'dragging-source'));\n this.table.querySelectorAll('.col-highlight').forEach(cell => this.renderer.removeClass(cell, 'col-highlight'));\n }\n } else if (draggedMode === 'row') {\n this.renderer.removeClass(this.table, 'dragging-row');\n if (sourceElement) this.renderer.removeClass(sourceElement, 'dragging-source');\n }\n }\n if (activeHandler) {\n this.renderer.removeClass(activeHandler, 'dragging-active-handler');\n }\n document.body.style.cursor = '';\n this.hideHandlers();\n this.cancelHideTimer();\n }\n\n private moveRow(fromIndex: number, toIndex: number): void {\n if (!this.table) {\n return;\n }\n const tbody = this.table.tBodies[0];\n if (!tbody) {\n return;\n }\n const visibleRows = Array.from(tbody.rows).filter(r => !r.classList.contains('dragging-source'));\n if (fromIndex < 0 || fromIndex >= visibleRows.length || toIndex < 0 || toIndex > visibleRows.length || fromIndex === toIndex) {\n const allRows = Array.from(tbody.rows);\n if (fromIndex < 0 || fromIndex >= allRows.length || toIndex < 0 || toIndex > allRows.length || fromIndex === toIndex) {\n return;\n }\n }\n const rowToMove = tbody.querySelector('tr.dragging-source') as HTMLTableRowElement | null;\n if (!rowToMove) {\n return;\n }\n const actualFromIndex = Array.from(tbody.rows).indexOf(rowToMove);\n const allRows = Array.from(tbody.rows);\n let referenceNode: Node | null = null;\n let currentVisibleIndex = 0;\n let actualInsertIndex = -1;\n for (let i = 0; i < allRows.length; i++) {\n if (!allRows[i].classList.contains('dragging-source')) {\n if (currentVisibleIndex === toIndex) {\n actualInsertIndex = i;\n break;\n }\n currentVisibleIndex++;\n }\n }\n if (actualInsertIndex === -1 && toIndex === visibleRows.length) {\n actualInsertIndex = allRows.length;\n }\n if (actualInsertIndex !== -1) {\n if (actualFromIndex < actualInsertIndex) {\n referenceNode = allRows[actualInsertIndex] ?? null;\n } else {\n referenceNode = allRows[actualInsertIndex];\n }\n } else {\n return;\n }\n try {\n this.renderer.insertBefore(tbody, rowToMove, referenceNode);\n } catch (error) {\n }\n this.hoveredRowIndex = -1;\n }\n\n private moveColumn(fromIndex: number, toIndex: number): void {\n if (!this.table || fromIndex === toIndex || fromIndex < 0 || toIndex < 0) {\n return;\n }\n let moved = false;\n for (let i = 0; i < this.table.rows.length; i++) {\n const row = this.table.rows[i];\n const cells = Array.from(row.cells);\n if (fromIndex >= cells.length || toIndex > cells.length) {\n continue;\n }\n const cellToMove = cells[fromIndex] as HTMLElement | undefined;\n let referenceNode: Node | null = null;\n if (fromIndex < toIndex) {\n referenceNode = cells[toIndex + 1] ?? null;\n } else {\n referenceNode = cells[toIndex];\n }\n if (cellToMove) {\n try {\n this.renderer.insertBefore(row, cellToMove, referenceNode);\n moved = true;\n } catch (error) {\n }\n }\n }\n }\n\n private styleColumnAsSource(columnIndex: number, add: boolean): void {\n if (!this.table || columnIndex < 0) return;\n for (let i = 0; i < this.table.rows.length; i++) {\n const row = this.table.rows[i];\n if (columnIndex < row.cells.length) {\n const cell = row.cells[columnIndex];\n if (cell) {\n if (add) {\n this.renderer.addClass(cell, 'dragging-source');\n } else {\n this.renderer.removeClass(cell, 'dragging-source');\n }\n }\n }\n }\n }\n\n private calculateColumnInfo(): void {\n this.columnInfo = [];\n if (!this.table || this.table.rows.length === 0) return;\n const referenceRow = this.table.tHead?.rows[0] ?? this.table.rows[0];\n if (!referenceRow) return;\n for (let i = 0; i < referenceRow.cells.length; i++) {\n const cell = referenceRow.cells[i] as HTMLElement;\n const rect = cell.getBoundingClientRect();\n this.columnInfo.push({index: i, left: rect.left, width: rect.width, center: rect.left + rect.width / 2});\n }\n }\n\n private calculateRowInfo(): void {\n this.rowInfo = [];\n if (!this.table || !this.table.tBodies[0]) return;\n const tbody = this.table.tBodies[0];\n let visibleIndex = 0;\n for (let i = 0; i < tbody.rows.length; i++) {\n const row = tbody.rows[i] as HTMLTableRowElement;\n const rect = row.getBoundingClientRect();\n this.rowInfo.push({\n index: visibleIndex,\n element: row,\n top: rect.top,\n height: rect.height,\n center: rect.top + rect.height / 2\n });\n visibleIndex++;\n }\n }\n\n private findFirstVisibleCellInColumn(columnIndex: number): HTMLElement | null {\n if (!this.table || columnIndex < 0) return null;\n for (let i = 0; i < this.table.rows.length; i++) {\n const row = this.table.rows[i];\n if (columnIndex < row.cells.length) {\n const c = row.cells[columnIndex] as HTMLElement;\n if (c && c.offsetParent !== null) {\n return c;\n }\n }\n }\n return null;\n }\n\n private updateDropIndicator(targetVisualIndex: number, mode: 'row' | 'column'): void {\n if (!this.table || targetVisualIndex < 0 || this.startElementIndex < 0) {\n this.renderer.setStyle(this.dropIndicator, 'visibility', 'hidden');\n return;\n }\n const insertBeforeIndex = (targetVisualIndex <= this.startElementIndex) ? targetVisualIndex : targetVisualIndex + 1;\n if (insertBeforeIndex === this.startElementIndex || insertBeforeIndex === this.startElementIndex + 1) {\n this.renderer.setStyle(this.dropIndicator, 'visibility', 'hidden');\n return;\n }\n const tableRect = this.table.getBoundingClientRect();\n if (mode === 'column') {\n const referenceColumnInfo = this.columnInfo.find(c => c.index === insertBeforeIndex);\n let indicatorLeftTable = 0;\n if (referenceColumnInfo) {\n indicatorLeftTable = referenceColumnInfo.left - tableRect.left;\n } else {\n const lastColInfo = this.columnInfo[this.columnInfo.length - 1];\n indicatorLeftTable = lastColInfo ? (lastColInfo.left - tableRect.left + lastColInfo.width) : this.table.offsetWidth;\n }\n indicatorLeftTable -= Math.floor(this.indicatorThickness / 2);\n this.renderer.setStyle(this.dropIndicator, 'left', `${indicatorLeftTable}px`);\n this.renderer.setStyle(this.dropIndicator, 'top', `0px`);\n this.renderer.setStyle(this.dropIndicator, 'height', `${this.table.offsetHeight}px`);\n this.renderer.setStyle(this.dropIndicator, 'width', `${this.indicatorThickness}px`);\n this.renderer.removeStyle(this.dropIndicator, 'right');\n this.renderer.removeStyle(this.dropIndicator, 'bottom');\n } else {\n const referenceRowInfo = this.rowInfo.find(r => r.index === insertBeforeIndex);\n let indicatorTopTable = 0;\n if (referenceRowInfo) {\n indicatorTopTable = referenceRowInfo.top - tableRect.top;\n } else {\n const lastRowInfo = this.rowInfo[this.rowInfo.length - 1];\n indicatorTopTable = lastRowInfo\n ? (lastRowInfo.top - tableRect.top + lastRowInfo.height)\n : (this.table.tBodies[0]?.offsetHeight ?? this.table.offsetHeight);\n }\n indicatorTopTable -= Math.floor(this.indicatorThickness / 2);\n this.renderer.setStyle(this.dropIndicator, 'top', `${indicatorTopTable}px`);\n this.renderer.setStyle(this.dropIndicator, 'left', `0px`);\n this.renderer.setStyle(this.dropIndicator, 'width', `${this.table.offsetWidth}px`);\n this.renderer.setStyle(this.dropIndicator, 'height', `${this.indicatorThickness}px`);\n this.renderer.removeStyle(this.dropIndicator, 'bottom');\n this.renderer.removeStyle(this.dropIndicator, 'right');\n }\n this.renderer.setStyle(this.dropIndicator, 'visibility', 'visible');\n }\n\n private highlightColumn(index: number, add: boolean): void {\n }\n\n private clearDropHighlights(): void {\n }\n\n private getCurrentScrollContainer(): Element | Window | null {\n if (isPlatformServer(this._platformId)) {\n return null;\n }\n try {\n const container = (this.contentBuilder as any)?.getScrollContainer?.();\n return (container as Element | Window) || null;\n } catch {\n return null;\n }\n }\n\n private bindScrollContainerListener(): void {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n if (this.scrollSub) {\n return;\n }\n this.unbindScrollContainerListener();\n this.ngZone.runOutsideAngular(() => {\n const scroll$ = (this.contentBuilder as any)?.scrollContainerScrolled as Observable<number> | undefined;\n if (!scroll$) {\n return;\n }\n this.scrollSub = scroll$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onScrollContainerScrolled());\n });\n }\n\n private unbindScrollContainerListener(): void {\n if (this.scrollSub) {\n try { this.scrollSub.unsubscribe(); } catch {}\n this.scrollSub = null;\n }\n this.scrollContainerRef = null;\n }\n\n private ensureScrollContainerListener(): void {\n if (isPlatformServer(this._platformId)) {\n return;\n }\n\n if (!this.scrollSub) this.bindScrollContainerListener();\n }\n\n private onScrollContainerScrolled(): void {\n this.cancelHideTimer();\n this.hideHandlers();\n }\n}\n","<ng-content/>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n inject,\n input, OnInit, PLATFORM_ID, signal,\n viewChild\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n CONTENT_BUILDER,\n CONTENT_EDITOR_BLOCK,\n ContentEditorDataBlock,\n ContentEditorTableBlockSettings\n} from '../../types';\nimport { ContentEditorContentEditableDirective } from '../../content-editor-content-editable.directive';\nimport SelectionArea from '@viselect/vanilla';\nimport { Icon } from '@ngstarter-ui/components/icon';\nimport { TableColumnsManagerDirective } from '../../table-columns-manager.directive';\nimport { TableRowsManagerDirective } from '../../table-rows-manager.directive';\nimport { CdkMonitorFocus } from '@angular/cdk/a11y';\nimport { ResizableTableDirective } from '../../resizable-table.directive';\nimport { DraggableTableComponent } from '../../draggable-table/draggable-table.component';\nimport { moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ContentBuilderStore } from '../../content-builder.store';\nimport { ContentBuilderComponent } from '../../content-builder/content-builder.component';\n\n@Component({\n selector: 'ngs-table-block',\n imports: [\n ContentEditorContentEditableDirective,\n Icon,\n TableColumnsManagerDirective,\n TableRowsManagerDirective,\n CdkMonitorFocus,\n ResizableTableDirective,\n DraggableTableComponent\n ],\n providers: [\n {\n provide: CONTENT_EDITOR_BLOCK,\n useExisting: TableBlockComponent,\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './table-block.component.html',\n styleUrl: './table-block.component.scss',\n host: {\n '[class.is-column-managing]': '_columnManaging()',\n '[class.is-row-managing]': '_rowManaging()',\n }\n})\nexport class TableBlockComponent implements OnInit, AfterViewInit, ContentEditorDataBlock {\n private _platformId = inject(PLATFORM_ID);\n private _contentBuilder = inject<ContentBuilderComponent>(CONTENT_BUILDER);\n private _store = inject(ContentBuilderStore);\n private _cdr = inject(ChangeDetectorRef);\n private _tableRef = viewChild.required<ElementRef>('table');\n\n id = input.required<string>();\n content = input.required<any[]>();\n settings = input.required<ContentEditorTableBlockSettings>();\n index = input.required<number>();\n\n _content = signal<any[]>([]);\n _columnManaging = signal(false);\n _rowManaging = signal(false);\n _tableManging = signal(false);\n _resizeManging = signal(false);\n readonly initialized = signal(false);\n\n ngOnInit() {\n this._content.set(this.content());\n }\n\n ngAfterViewInit() {\n if (isPlatformBrowser(this._platformId)) {\n const selection = new SelectionArea({\n selectables: ['.table td'],\n boundaries: ['.table'],\n features: {\n touch: true,\n range: true,\n deselectOnBlur: true,\n singleTap: {\n allow: false,\n intersect: 'native'\n }\n }\n }).on('start', ({ store, event }: any) => {\n if (!event.ctrlKey && !event.metaKey) {\n store.stored.forEach((el: any) => el.classList.remove('selected'));\n selection.clearSelection();\n }\n })\n .on('move', ({ store: { changed: { added, removed } } }) => {\n if (this._tableManging() || this._columnManaging() || this._rowManaging()) {\n return;\n }\n\n added.forEach(el => el.classList.add('selected'));\n removed.forEach(el => el.classList.remove('selected'));\n });\n }\n this.initialized.set(true);\n }\n\n focus() {\n\n }\n\n onTableFocusChange(type: any) {\n if (type === null) {\n this.clearCellsSelection();\n }\n }\n\n clearCellsSelection() {\n this._tableRef().nativeElement.querySelectorAll('td')\n .forEach((el: any) => el.classList.remove('selected'))\n ;\n this.update();\n }\n\n onColAdded() {\n this._content.update((content: any[]) => {\n content.forEach((row: any) => {\n row.push({\n content: '',\n props: [],\n styles: {},\n options: {\n colspan: 1,\n rowspan: 1\n }\n });\n });\n return content;\n });\n this._cdr.markForCheck();\n this.update();\n }\n\n onColDeleted() {\n if (this._content().length > 0 && this._content()[0].length === 1) {\n return;\n }\n\n let isLastColEmpty = false;\n\n this._content().forEach((row: any) => {\n if (row[row.length - 1].content) {\n isLastColEmpty = true;\n }\n });\n\n if (isLastColEmpty) {\n return;\n }\n\n this._content.update((content: any[]) => {\n content.forEach((row: any) => {\n row.splice(row.length - 1, 1);\n });\n return content;\n });\n this._cdr.markForCheck();\n this.update();\n }\n\n onRowAdded() {\n this._content.update((content: any[]) => {\n const row: any[] = [];\n\n for (let i = 0; i < content[0].length; i++) {\n row.push({\n content: '',\n props: [],\n styles: {},\n options: {\n colspan: 1,\n rowspan: 1\n }\n });\n }\n\n content.push(row);\n return content;\n });\n this._cdr.markForCheck();\n this.update();\n }\n\n onRowDeleted() {\n if (this._content().length === 1) {\n return;\n }\n\n let isLastRowEmpty = false;\n\n this._content()[this._content().length - 1].forEach((cell: any) => {\n if (cell.content) {\n isLastRowEmpty = true;\n }\n });\n\n if (isLastRowEmpty) {\n return;\n }\n\n this._content.update((content: any[]) => {\n content.splice(content.length - 1, 1);\n return content;\n });\n this._cdr.markForCheck();\n this.update();\n }\n\n onColumnManagingStart() {\n this._columnManaging.set(true);\n }\n\n onColumnManagingEnd() {\n this._columnManaging.set(false);\n }\n\n onRowManagingStart() {\n this._rowManaging.set(true);\n }\n\n onRowManagingEnd() {\n this._rowManaging.set(false);\n }\n\n onColumnWidthChange(event: any) {\n this._content.update((content: any[]) => {\n content.forEach(row => {\n row[event.columnIndex].options['width'] = event.width;\n })\n return content;\n });\n this.update();\n }\n\n onColumnMoved(event: any) {\n this._content.update((content: any[]) => {\n content.forEach(row => {\n moveItemInArray(row, event.startElementIndex, event.finalTargetIndex);\n });\n return content;\n });\n this._cdr.markForCheck();\n this.update();\n }\n\n onRowMoved(event: any) {\n this._content.update((content: any[]) => {\n moveItemInArray(content, event.startElementIndex, event.finalTargetIndex);\n return content;\n });\n this._cdr.markForCheck();\n this.update();\n }\n\n onMoveStart() {\n this._tableManging.set(true);\n }\n\n onMoveEnd() {\n this._tableManging.set(false);\n }\n\n onColumnWidthChangeStart() {\n this._tableManging.set(true);\n this._resizeManging.set(true);\n }\n\n onColumnWidthChangeEnd() {\n this._tableManging.set(false);\n this._resizeManging.set(false);\n this._cdr.markForCheck();\n }\n\n getData(): any {\n return {\n content: this._content(),\n settings: {\n ...this.settings(),\n }\n };\n }\n\n isEmpty(): boolean {\n return false;\n }\n\n private update() {\n this._store.updateBlock(this.id(), {...this.getData(), isEmpty: this.isEmpty()});\n this._contentBuilder.emitContentChangeEvent();\n }\n}\n","<div class=\"table-overflow\">\n <div class=\"table-container\">\n <ngs-draggable-table [disabled]=\"_resizeManging() || _columnManaging() || _rowManaging()\"\n (columnMoved)=\"onColumnMoved($event)\"\n (rowMoved)=\"onRowMoved($event)\"\n (moveStart)=\"onMoveStart()\"\n (moveEnd)=\"onMoveEnd()\">\n <table #table class=\"table\"\n ngsResizableTable\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"onTableFocusChange($event)\"\n (columnWidthChangeStart)=\"onColumnWidthChangeStart()\"\n (columnWidthChangeEnd)=\"onColumnWidthChangeEnd()\"\n (columnWidthChange)=\"onColumnWidthChange($event)\">\n <colgroup>\n @for (cell of _content()[0]; track $index) {\n <col [style.width.px]=\"cell.options.width || null\">\n }\n </colgroup>\n <tbody>\n @for (row of _content(); track $index) {\n <tr>\n @for (cell of row; track $index) {\n <td #cell\n [ngsContentEditorContentEditable]=\"cell.content\"\n [props]=\"cell.props\"\n (contentChanged)=\"cell.content = $event\"\n (blur)=\"clearCellsSelection()\"\n [rowSpan]=\"cell.options.rowspan\"\n [colSpan]=\"cell.options.colspan\"></td>\n }\n </tr>\n }\n </tbody>\n </table>\n <div class=\"resize-end\" ngsTableColumnsManager\n (columnManagingStart)=\"onColumnManagingStart()\"\n (columnManagingEnd)=\"onColumnManagingEnd()\"\n (columnAdded)=\"onColAdded()\"\n (columnDeleted)=\"onColDeleted()\">\n <ngs-icon name=\"fluent:add-24-regular\" class=\"resize-icon\" />\n </div>\n <div class=\"resize-bottom\" ngsTableRowsManager\n (rowManagingStart)=\"onRowManagingStart()\"\n (rowManagingEnd)=\"onRowManagingEnd()\"\n (rowAdded)=\"onRowAdded()\"\n (rowDeleted)=\"onRowDeleted()\">\n <ngs-icon name=\"fluent:add-24-regular\" class=\"resize-icon\" />\n </div>\n </ngs-draggable-table>\n </div>\n</div>\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, input, signal, model, viewChild, forwardRef, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { UploadArea, UploadTriggerDirective } from '@ngstarter-ui/components/upload';
4
+ import { ProgressBar } from '@ngstarter-ui/components/progress-bar';
5
+ import { Button } from '@ngstarter-ui/components/button';
6
+ import { Icon } from '@ngstarter-ui/components/icon';
7
+ import { C as ContentBuilderStore, a as CONTENT_BUILDER, b as CONTENT_EDITOR_BLOCK } from './ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-1Zi2nAX5.mjs';
8
+ import { FormField, Label } from '@ngstarter-ui/components/form-field';
9
+ import { Input } from '@ngstarter-ui/components/input';
10
+ import * as i1 from '@angular/forms';
11
+ import { FormsModule } from '@angular/forms';
12
+ import { ResizableContainer } from '@ngstarter-ui/components/resizable-container';
13
+
14
+ class VideoBlockComponent {
15
+ _store = inject(ContentBuilderStore);
16
+ _contentBuilder = inject(CONTENT_BUILDER);
17
+ id = input.required(...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
18
+ content = input.required(...(ngDevMode ? [{ debugName: "content" }] : /* istanbul ignore next */ []));
19
+ settings = input.required(...(ngDevMode ? [{ debugName: "settings" }] : /* istanbul ignore next */ []));
20
+ index = input.required(...(ngDevMode ? [{ debugName: "index" }] : /* istanbul ignore next */ []));
21
+ uploading = signal(false, ...(ngDevMode ? [{ debugName: "uploading" }] : /* istanbul ignore next */ []));
22
+ selectedVideo = signal('', ...(ngDevMode ? [{ debugName: "selectedVideo" }] : /* istanbul ignore next */ []));
23
+ _src = signal('', ...(ngDevMode ? [{ debugName: "_src" }] : /* istanbul ignore next */ []));
24
+ _caption = model('', ...(ngDevMode ? [{ debugName: "_caption" }] : /* istanbul ignore next */ []));
25
+ _orientation = signal('landscape', ...(ngDevMode ? [{ debugName: "_orientation" }] : /* istanbul ignore next */ []));
26
+ _settings = model({}, ...(ngDevMode ? [{ debugName: "_settings" }] : /* istanbul ignore next */ []));
27
+ initialized = signal(false, ...(ngDevMode ? [{ debugName: "initialized" }] : /* istanbul ignore next */ []));
28
+ videoElement = viewChild('videoPlayer', ...(ngDevMode ? [{ debugName: "videoElement" }] : /* istanbul ignore next */ []));
29
+ _aspectRatio = 16 / 9;
30
+ ngOnInit() {
31
+ this._src.set(this.content().src);
32
+ this._caption.set(this.content().caption);
33
+ this._orientation.set(this.content().orientation || 'landscape');
34
+ this._settings.set(this.settings() || {});
35
+ this.initialized.set(true);
36
+ }
37
+ focus() {
38
+ if (this._src()) {
39
+ this._contentBuilder.focusBlock(this.id());
40
+ }
41
+ }
42
+ getData() {
43
+ return {
44
+ content: {
45
+ src: this._src(),
46
+ caption: this._caption(),
47
+ orientation: this._orientation()
48
+ },
49
+ settings: {
50
+ ...this._settings(),
51
+ }
52
+ };
53
+ }
54
+ isEmpty() {
55
+ const src = this.getData().content.src;
56
+ return typeof src === 'string' ? src.trim().length === 0 : !src;
57
+ }
58
+ cancelUploading() {
59
+ this.uploading.set(false);
60
+ }
61
+ onFileSelected(event) {
62
+ this.uploading.set(true);
63
+ const reader = new FileReader();
64
+ reader.addEventListener('load', () => {
65
+ this.selectedVideo.set(reader.result);
66
+ const video = document.createElement('video');
67
+ video.preload = 'metadata';
68
+ video.onloadedmetadata = () => {
69
+ window.URL.revokeObjectURL(video.src);
70
+ const orientation = video.videoWidth > video.videoHeight ? 'landscape' : 'portrait';
71
+ this._orientation.set(orientation);
72
+ this._aspectRatio = video.videoWidth / video.videoHeight;
73
+ let width = video.videoWidth;
74
+ let height = video.videoHeight;
75
+ if (width > 704) {
76
+ width = 704;
77
+ height = Math.round(width / this._aspectRatio);
78
+ }
79
+ if (height > 1000) {
80
+ width = Math.round(width / 2);
81
+ height = Math.round(height / 2);
82
+ }
83
+ // Initial settings based on video metadata
84
+ this._settings.update(s => ({
85
+ ...s,
86
+ actualWidth: video.videoWidth,
87
+ actualHeight: video.videoHeight,
88
+ width,
89
+ height
90
+ }));
91
+ };
92
+ video.src = URL.createObjectURL(event.files[0]);
93
+ const uploadFn = this._contentBuilder.getBlockDefOption('video', 'uploadFn');
94
+ uploadFn(event.files[0], reader.result)
95
+ .then((url) => {
96
+ if (!this.uploading()) {
97
+ this.selectedVideo.set('');
98
+ return;
99
+ }
100
+ this._src.set(url);
101
+ this.selectedVideo.set('');
102
+ this.uploading.set(false);
103
+ this.update();
104
+ this.focus();
105
+ });
106
+ }, false);
107
+ reader.readAsDataURL(event.files[0]);
108
+ }
109
+ _onCaptionChange() {
110
+ this.update();
111
+ }
112
+ _onVideoResized(event) {
113
+ let width = event.width;
114
+ if (width > 704) {
115
+ width = 704;
116
+ }
117
+ const height = Math.round(width / this._aspectRatio);
118
+ this._settings.update(s => ({
119
+ ...s,
120
+ width,
121
+ height
122
+ }));
123
+ this.update();
124
+ }
125
+ _onVideoLoaded(event) {
126
+ const video = event.target;
127
+ this._aspectRatio = video.videoWidth / video.videoHeight;
128
+ }
129
+ handleKeyPress(event) {
130
+ if (event.key === 'Enter') {
131
+ event.preventDefault();
132
+ event.stopPropagation();
133
+ this._contentBuilder.insertEmptyBlock(this.index());
134
+ }
135
+ }
136
+ update() {
137
+ this._store.updateBlock(this.id(), { ...this.getData(), isEmpty: this.isEmpty() });
138
+ this._contentBuilder.emitContentChangeEvent();
139
+ }
140
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: VideoBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
141
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: VideoBlockComponent, isStandalone: true, selector: "ngs-video-block", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: true, transformFunction: null }, settings: { classPropertyName: "settings", publicName: "settings", isSignal: true, isRequired: true, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: true, transformFunction: null }, _caption: { classPropertyName: "_caption", publicName: "_caption", isSignal: true, isRequired: false, transformFunction: null }, _settings: { classPropertyName: "_settings", publicName: "_settings", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { _caption: "_captionChange", _settings: "_settingsChange" }, host: { listeners: { "keypress": "handleKeyPress($event)" }, classAttribute: "block" }, providers: [
142
+ {
143
+ provide: CONTENT_EDITOR_BLOCK,
144
+ useExisting: forwardRef(() => VideoBlockComponent),
145
+ multi: true
146
+ }
147
+ ], viewQueries: [{ propertyName: "videoElement", first: true, predicate: ["videoPlayer"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (uploading()) {\n <div class=\"relative flex items-center justify-center overflow-hidden\">\n <div class=\"absolute inset-0 z-10 flex items-center justify-center bg-white/80\">\n <div class=\"absolute top-0 start-0 end-0 z-20\">\n <ngs-progress-bar mode=\"indeterminate\"/>\n </div>\n <div class=\"absolute end-2 top-4 w-max z-30\">\n <button ngsButton (click)=\"cancelUploading()\">\n <ngs-icon name=\"fluent:delete-24-regular\"/>\n </button>\n </div>\n <div class=\"bg-white px-3 text-sm py-1.5 rounded-lg border border-border\">Loading...</div>\n </div>\n <div [style.width.px]=\"_settings().width || null\"\n [style.height.px]=\"_settings().height || null\"\n [class.max-w-full]=\"!_settings().width\">\n <video [src]=\"selectedVideo()\" muted class=\"w-full h-auto block\"></video>\n </div>\n </div>\n} @else if (_src()) {\n <div class=\"flex items-center justify-center overflow-hidden\">\n <ngs-resizable-container (resized)=\"_onVideoResized($event)\"\n [style.width.px]=\"_settings().width || null\"\n [style.height.px]=\"_settings().height || null\"\n [class.max-w-full]=\"!_settings().width\">\n <video #videoPlayer\n [src]=\"_src()\"\n class=\"w-full h-auto block\"\n (loadedmetadata)=\"_onVideoLoaded($event)\"\n controls></video>\n </ngs-resizable-container>\n </div>\n <ngs-form-field class=\"w-full mt-5\">\n <ngs-label>Caption</ngs-label>\n <input ngsInput [(ngModel)]=\"_caption\" (ngModelChange)=\"_onCaptionChange()\">\n </ngs-form-field>\n} @else {\n <ngs-upload-area #uploadArea=\"ngsUploadArea\"\n ngsUploadTrigger accept=\"video/*\"\n (fileSelected)=\"onFileSelected($event)\" multiple=\"false\"\n class=\"cursor-pointer hover:outline-2 hover:outline-[var(--color-primary)]\">\n @if (!uploadArea.api.isDropActive) {\n Drag & drop video here or click to upload\n } @else {\n <div class=\"font-medium\">Drop video here</div>\n }\n </ngs-upload-area>\n}\n", styles: [":host{display:block}:host ngs-upload-area{--ngs-upload-area-padding: calc(var(--spacing, .25rem) * 6) calc(var(--spacing, .25rem) * 10)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: UploadArea, selector: "ngs-upload-area", inputs: ["accept", "allowHover", "multiple"], outputs: ["fileSelected"], exportAs: ["ngsUploadArea"] }, { kind: "directive", type: UploadTriggerDirective, selector: "[ngsUploadTrigger]", inputs: ["accept", "multiple"], outputs: ["fileSelected"], exportAs: ["ngsUploadTrigger"] }, { kind: "component", type: ProgressBar, selector: "ngs-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["ngsProgressBar"] }, { kind: "component", type: Button, selector: " button[ngsButton], button[ngsIconButton], a[ngsButton], a[ngsIconButton] ", inputs: ["ngsButton", "ngsIconButton", "loading", "disabled", "disabledInteractive", "disableRipple", "reverse", "fullWidth", "hideTextOnMobile"], exportAs: ["ngsButton"] }, { kind: "component", type: Icon, selector: "ngs-icon", inputs: ["name"], exportAs: ["ngsIcon"] }, { kind: "component", type: FormField, selector: "ngs-form-field", inputs: ["subscriptHiddenIfEmpty"], exportAs: ["ngsFormField"] }, { kind: "directive", type: Input, selector: "input[ngsInput], textarea[ngsInput]", inputs: ["id", "placeholder", "required", "disabled", "readonly", "errorStateMatcher"], exportAs: ["ngsInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: Label, selector: "ngs-label" }, { kind: "component", type: ResizableContainer, selector: "ngs-resizable-container", inputs: ["minWidth"], outputs: ["resized"], exportAs: ["ngsResizableContainer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
148
+ }
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: VideoBlockComponent, decorators: [{
150
+ type: Component,
151
+ args: [{ selector: 'ngs-video-block', imports: [
152
+ UploadArea,
153
+ UploadTriggerDirective,
154
+ ProgressBar,
155
+ Button,
156
+ Icon,
157
+ FormField,
158
+ Input,
159
+ FormsModule,
160
+ Label,
161
+ ResizableContainer
162
+ ], providers: [
163
+ {
164
+ provide: CONTENT_EDITOR_BLOCK,
165
+ useExisting: forwardRef(() => VideoBlockComponent),
166
+ multi: true
167
+ }
168
+ ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
169
+ '(keypress)': 'handleKeyPress($event)',
170
+ 'class': 'block'
171
+ }, template: "@if (uploading()) {\n <div class=\"relative flex items-center justify-center overflow-hidden\">\n <div class=\"absolute inset-0 z-10 flex items-center justify-center bg-white/80\">\n <div class=\"absolute top-0 start-0 end-0 z-20\">\n <ngs-progress-bar mode=\"indeterminate\"/>\n </div>\n <div class=\"absolute end-2 top-4 w-max z-30\">\n <button ngsButton (click)=\"cancelUploading()\">\n <ngs-icon name=\"fluent:delete-24-regular\"/>\n </button>\n </div>\n <div class=\"bg-white px-3 text-sm py-1.5 rounded-lg border border-border\">Loading...</div>\n </div>\n <div [style.width.px]=\"_settings().width || null\"\n [style.height.px]=\"_settings().height || null\"\n [class.max-w-full]=\"!_settings().width\">\n <video [src]=\"selectedVideo()\" muted class=\"w-full h-auto block\"></video>\n </div>\n </div>\n} @else if (_src()) {\n <div class=\"flex items-center justify-center overflow-hidden\">\n <ngs-resizable-container (resized)=\"_onVideoResized($event)\"\n [style.width.px]=\"_settings().width || null\"\n [style.height.px]=\"_settings().height || null\"\n [class.max-w-full]=\"!_settings().width\">\n <video #videoPlayer\n [src]=\"_src()\"\n class=\"w-full h-auto block\"\n (loadedmetadata)=\"_onVideoLoaded($event)\"\n controls></video>\n </ngs-resizable-container>\n </div>\n <ngs-form-field class=\"w-full mt-5\">\n <ngs-label>Caption</ngs-label>\n <input ngsInput [(ngModel)]=\"_caption\" (ngModelChange)=\"_onCaptionChange()\">\n </ngs-form-field>\n} @else {\n <ngs-upload-area #uploadArea=\"ngsUploadArea\"\n ngsUploadTrigger accept=\"video/*\"\n (fileSelected)=\"onFileSelected($event)\" multiple=\"false\"\n class=\"cursor-pointer hover:outline-2 hover:outline-[var(--color-primary)]\">\n @if (!uploadArea.api.isDropActive) {\n Drag & drop video here or click to upload\n } @else {\n <div class=\"font-medium\">Drop video here</div>\n }\n </ngs-upload-area>\n}\n", styles: [":host{display:block}:host ngs-upload-area{--ngs-upload-area-padding: calc(var(--spacing, .25rem) * 6) calc(var(--spacing, .25rem) * 10)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
172
+ }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: true }] }], content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: true }] }], settings: [{ type: i0.Input, args: [{ isSignal: true, alias: "settings", required: true }] }], index: [{ type: i0.Input, args: [{ isSignal: true, alias: "index", required: true }] }], _caption: [{ type: i0.Input, args: [{ isSignal: true, alias: "_caption", required: false }] }, { type: i0.Output, args: ["_captionChange"] }], _settings: [{ type: i0.Input, args: [{ isSignal: true, alias: "_settings", required: false }] }, { type: i0.Output, args: ["_settingsChange"] }], videoElement: [{ type: i0.ViewChild, args: ['videoPlayer', { isSignal: true }] }] } });
173
+
174
+ export { VideoBlockComponent };
175
+ //# sourceMappingURL=ngstarter-ui-components-content-editor-video-block.component-m4DTihP2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngstarter-ui-components-content-editor-video-block.component-m4DTihP2.mjs","sources":["../../../projects/components/content-editor/src/_builder/video-block/video-block.component.ts","../../../projects/components/content-editor/src/_builder/video-block/video-block.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, input, model, OnInit, signal, viewChild, ElementRef } from '@angular/core';\nimport { UploadArea, UploadFileSelectedEvent, UploadTriggerDirective } from '@ngstarter-ui/components/upload';\nimport { ProgressBar } from '@ngstarter-ui/components/progress-bar';\nimport { Button } from '@ngstarter-ui/components/button';\nimport { Icon } from '@ngstarter-ui/components/icon';\nimport {\n CONTENT_BUILDER,\n CONTENT_EDITOR_BLOCK, ContentEditorDataBlock,\n ContentEditorVideoBlockSettings,\n ContentEditorVideoContent\n} from '../../types';\nimport { FormField, Label } from '@ngstarter-ui/components/form-field';\nimport { Input } from '@ngstarter-ui/components/input';\nimport { FormsModule } from '@angular/forms';\nimport { ContentBuilderStore } from '../../content-builder.store';\nimport { ContentBuilderComponent } from '../../content-builder/content-builder.component';\nimport { ResizableContainer } from '@ngstarter-ui/components/resizable-container';\n\n@Component({\n selector: 'ngs-video-block',\n imports: [\n UploadArea,\n UploadTriggerDirective,\n ProgressBar,\n Button,\n Icon,\n FormField,\n Input,\n FormsModule,\n Label,\n ResizableContainer\n ],\n providers: [\n {\n provide: CONTENT_EDITOR_BLOCK,\n useExisting: forwardRef(() => VideoBlockComponent),\n multi: true\n }\n ],\n templateUrl: './video-block.component.html',\n styleUrl: './video-block.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(keypress)': 'handleKeyPress($event)',\n 'class': 'block'\n }\n})\nexport class VideoBlockComponent implements OnInit, ContentEditorDataBlock {\n private _store = inject(ContentBuilderStore);\n private _contentBuilder = inject<ContentBuilderComponent>(CONTENT_BUILDER);\n\n id = input.required<string>();\n content = input.required<ContentEditorVideoContent>();\n settings = input.required<ContentEditorVideoBlockSettings>();\n index = input.required<number>();\n\n uploading = signal(false);\n selectedVideo = signal<string>('');\n\n protected _src = signal<string>('');\n protected _caption = model<string>('');\n protected _orientation = signal<'portrait' | 'landscape'>('landscape');\n protected _settings = model<ContentEditorVideoBlockSettings>({});\n readonly initialized = signal(false);\n\n readonly videoElement = viewChild<ElementRef<HTMLVideoElement>>('videoPlayer');\n\n private _aspectRatio = 16 / 9;\n\n ngOnInit() {\n this._src.set(this.content().src);\n this._caption.set(this.content().caption);\n this._orientation.set(this.content().orientation || 'landscape');\n this._settings.set(this.settings() || {});\n this.initialized.set(true);\n }\n\n focus() {\n if (this._src()) {\n this._contentBuilder.focusBlock(this.id());\n }\n }\n\n getData(): any {\n return {\n content: {\n src: this._src(),\n caption: this._caption(),\n orientation: this._orientation()\n },\n settings: {\n ...this._settings(),\n }\n };\n }\n\n isEmpty(): boolean {\n const src = this.getData().content.src;\n return typeof src === 'string' ? src.trim().length === 0 : !src;\n }\n\n protected cancelUploading() {\n this.uploading.set(false);\n }\n\n protected onFileSelected(event: UploadFileSelectedEvent): void {\n this.uploading.set(true);\n const reader = new FileReader();\n reader.addEventListener('load', () => {\n this.selectedVideo.set(reader.result as string);\n\n const video = document.createElement('video');\n video.preload = 'metadata';\n video.onloadedmetadata = () => {\n window.URL.revokeObjectURL(video.src);\n const orientation = video.videoWidth > video.videoHeight ? 'landscape' : 'portrait';\n this._orientation.set(orientation);\n this._aspectRatio = video.videoWidth / video.videoHeight;\n\n let width = video.videoWidth;\n let height = video.videoHeight;\n\n if (width > 704) {\n width = 704;\n height = Math.round(width / this._aspectRatio);\n }\n\n if (height > 1000) {\n width = Math.round(width / 2);\n height = Math.round(height / 2);\n }\n\n // Initial settings based on video metadata\n this._settings.update(s => ({\n ...s,\n actualWidth: video.videoWidth,\n actualHeight: video.videoHeight,\n width,\n height\n }));\n };\n video.src = URL.createObjectURL(event.files[0]);\n\n const uploadFn = this._contentBuilder.getBlockDefOption('video', 'uploadFn');\n uploadFn(event.files[0], reader.result)\n .then((url: string) => {\n if (!this.uploading()) {\n this.selectedVideo.set('');\n return;\n }\n\n this._src.set(url);\n this.selectedVideo.set('');\n this.uploading.set(false);\n this.update();\n this.focus();\n });\n }, false);\n reader.readAsDataURL(event.files[0]);\n }\n\n protected _onCaptionChange() {\n this.update();\n }\n\n protected _onVideoResized(event: { width: number }) {\n let width = event.width;\n if (width > 704) {\n width = 704;\n }\n const height = Math.round(width / this._aspectRatio);\n\n this._settings.update(s => ({\n ...s,\n width,\n height\n }));\n\n this.update();\n }\n\n protected _onVideoLoaded(event: any) {\n const video = event.target as HTMLVideoElement;\n this._aspectRatio = video.videoWidth / video.videoHeight;\n }\n\n protected handleKeyPress(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n this._contentBuilder.insertEmptyBlock(this.index());\n }\n }\n\n private update() {\n this._store.updateBlock(this.id(), {...this.getData(), isEmpty: this.isEmpty()});\n this._contentBuilder.emitContentChangeEvent();\n }\n}\n","@if (uploading()) {\n <div class=\"relative flex items-center justify-center overflow-hidden\">\n <div class=\"absolute inset-0 z-10 flex items-center justify-center bg-white/80\">\n <div class=\"absolute top-0 start-0 end-0 z-20\">\n <ngs-progress-bar mode=\"indeterminate\"/>\n </div>\n <div class=\"absolute end-2 top-4 w-max z-30\">\n <button ngsButton (click)=\"cancelUploading()\">\n <ngs-icon name=\"fluent:delete-24-regular\"/>\n </button>\n </div>\n <div class=\"bg-white px-3 text-sm py-1.5 rounded-lg border border-border\">Loading...</div>\n </div>\n <div [style.width.px]=\"_settings().width || null\"\n [style.height.px]=\"_settings().height || null\"\n [class.max-w-full]=\"!_settings().width\">\n <video [src]=\"selectedVideo()\" muted class=\"w-full h-auto block\"></video>\n </div>\n </div>\n} @else if (_src()) {\n <div class=\"flex items-center justify-center overflow-hidden\">\n <ngs-resizable-container (resized)=\"_onVideoResized($event)\"\n [style.width.px]=\"_settings().width || null\"\n [style.height.px]=\"_settings().height || null\"\n [class.max-w-full]=\"!_settings().width\">\n <video #videoPlayer\n [src]=\"_src()\"\n class=\"w-full h-auto block\"\n (loadedmetadata)=\"_onVideoLoaded($event)\"\n controls></video>\n </ngs-resizable-container>\n </div>\n <ngs-form-field class=\"w-full mt-5\">\n <ngs-label>Caption</ngs-label>\n <input ngsInput [(ngModel)]=\"_caption\" (ngModelChange)=\"_onCaptionChange()\">\n </ngs-form-field>\n} @else {\n <ngs-upload-area #uploadArea=\"ngsUploadArea\"\n ngsUploadTrigger accept=\"video/*\"\n (fileSelected)=\"onFileSelected($event)\" multiple=\"false\"\n class=\"cursor-pointer hover:outline-2 hover:outline-[var(--color-primary)]\">\n @if (!uploadArea.api.isDropActive) {\n Drag & drop video here or click to upload\n } @else {\n <div class=\"font-medium\">Drop video here</div>\n }\n </ngs-upload-area>\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { B as BlockSelectionDirective, a as CONTENT_BUILDER, b as CONTENT_EDITOR_BLOCK, c as CommandBarComponent, d as ContentBuilderComponent, e as ContentViewerComponent, T as TextSelectionPopupDirective } from './ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-1Zi2nAX5.mjs';
2
+ //# sourceMappingURL=ngstarter-ui-components-content-editor.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngstarter-ui-components-content-editor.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, ElementRef, input, Component } from '@angular/core';
3
+
4
+ class ContentFade {
5
+ _elementRef = inject(ElementRef);
6
+ color = input(...(ngDevMode ? [undefined, { debugName: "color" }] : /* istanbul ignore next */ []));
7
+ width = input(...(ngDevMode ? [undefined, { debugName: "width" }] : /* istanbul ignore next */ []));
8
+ position = input('both', ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
9
+ ngOnChanges(changes) {
10
+ if (changes['width']) {
11
+ this._elementRef.nativeElement.style.setProperty('--ngs-content-fade-width', changes['width'].currentValue, 'important');
12
+ }
13
+ if (changes['color']) {
14
+ this._elementRef.nativeElement.style.setProperty('--ngs-content-fade-color', changes['color'].currentValue, 'important');
15
+ }
16
+ }
17
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ContentFade, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: ContentFade, isStandalone: true, selector: "ngs-content-fade", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.position-both": "position() === \"both\"", "class.position-start": "position() === \"start\"", "class.position-end": "position() === \"end\"" }, classAttribute: "ngs-content-fade" }, exportAs: ["ngsContentFade"], usesOnChanges: true, ngImport: i0, template: "<ng-content/>\n", styles: [":host{--ngs-content-fade-color: var(--color-background);--ngs-content-fade-width: 20%;display:block;position:relative}:host.position-both:before,:host.position-start:before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:var(--ngs-content-fade-width);background:linear-gradient(to left,transparent,var(--ngs-content-fade-color))}:host.position-both:after,:host.position-end:after{content:\"\";position:absolute;top:0;bottom:0;right:0;width:var(--ngs-content-fade-width);background:linear-gradient(to right,transparent,var(--ngs-content-fade-color))}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] });
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ContentFade, decorators: [{
21
+ type: Component,
22
+ args: [{ selector: 'ngs-content-fade', exportAs: 'ngsContentFade', host: {
23
+ 'class': 'ngs-content-fade',
24
+ '[class.position-both]': 'position() === "both"',
25
+ '[class.position-start]': 'position() === "start"',
26
+ '[class.position-end]': 'position() === "end"',
27
+ }, template: "<ng-content/>\n", styles: [":host{--ngs-content-fade-color: var(--color-background);--ngs-content-fade-width: 20%;display:block;position:relative}:host.position-both:before,:host.position-start:before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:var(--ngs-content-fade-width);background:linear-gradient(to left,transparent,var(--ngs-content-fade-color))}:host.position-both:after,:host.position-end:after{content:\"\";position:absolute;top:0;bottom:0;right:0;width:var(--ngs-content-fade-width);background:linear-gradient(to right,transparent,var(--ngs-content-fade-color))}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
28
+ }], propDecorators: { color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }] } });
29
+
30
+ /**
31
+ * Generated bundle index. Do not edit.
32
+ */
33
+
34
+ export { ContentFade };
35
+ //# sourceMappingURL=ngstarter-ui-components-content-fade.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngstarter-ui-components-content-fade.mjs","sources":["../../../projects/components/content-fade/src/content-fade/content-fade.ts","../../../projects/components/content-fade/src/content-fade/content-fade.html","../../../projects/components/content-fade/ngstarter-ui-components-content-fade.ts"],"sourcesContent":["import {\n Component,\n ElementRef,\n inject,\n input,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\nimport { ContentFadePosition } from '../types';\n\n@Component({\n selector: 'ngs-content-fade',\n exportAs: 'ngsContentFade',\n templateUrl: './content-fade.html',\n styleUrl: './content-fade.scss',\n host: {\n 'class': 'ngs-content-fade',\n '[class.position-both]': 'position() === \"both\"',\n '[class.position-start]': 'position() === \"start\"',\n '[class.position-end]': 'position() === \"end\"',\n }\n})\nexport class ContentFade implements OnChanges {\n private _elementRef = inject(ElementRef);\n\n color = input();\n width = input();\n position = input<ContentFadePosition>('both');\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['width']) {\n (this._elementRef.nativeElement as HTMLElement).style.setProperty('--ngs-content-fade-width', changes['width'].currentValue, 'important');\n }\n\n if (changes['color']) {\n (this._elementRef.nativeElement as HTMLElement).style.setProperty('--ngs-content-fade-color', changes['color'].currentValue, 'important');\n }\n }\n}\n","<ng-content/>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAsBa,WAAW,CAAA;AACd,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;IAExC,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAE;IACf,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAE;AACf,IAAA,QAAQ,GAAG,KAAK,CAAsB,MAAM,+EAAC;AAE7C,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,aAA6B,CAAC,KAAK,CAAC,WAAW,CAAC,0BAA0B,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3I;AAEA,QAAA,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACnB,IAAI,CAAC,WAAW,CAAC,aAA6B,CAAC,KAAK,CAAC,WAAW,CAAC,0BAA0B,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3I;IACF;uGAfW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,gtBCtBxB,iBACA,EAAA,MAAA,EAAA,CAAA,unBAAA,CAAA,EAAA,CAAA;;2FDqBa,WAAW,EAAA,UAAA,EAAA,CAAA;kBAZvB,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAClB,gBAAgB,EAAA,IAAA,EAGpB;AACJ,wBAAA,OAAO,EAAE,kBAAkB;AAC3B,wBAAA,uBAAuB,EAAE,uBAAuB;AAChD,wBAAA,wBAAwB,EAAE,wBAAwB;AAClD,wBAAA,sBAAsB,EAAE,sBAAsB;AAC/C,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,unBAAA,CAAA,EAAA;;;AEpBH;;AAEG;;;;"}