@aquera/nile-elements 1.0.1-beta-1.5 → 1.0.1-beta-1.6

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 (192) hide show
  1. package/README.md +28 -0
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.esm.js +1 -1
  4. package/dist/index.js +679 -618
  5. package/dist/internal/resizable-table-helper.cjs.js +1 -1
  6. package/dist/internal/resizable-table-helper.cjs.js.map +1 -1
  7. package/dist/internal/resizable-table-helper.esm.js +1 -1
  8. package/dist/nile-code-editor/extensionSetup.cjs.js +5 -5
  9. package/dist/nile-code-editor/extensionSetup.cjs.js.map +1 -1
  10. package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
  11. package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
  12. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  13. package/dist/nile-code-editor/nile-code-editor.esm.js +3 -3
  14. package/dist/nile-code-editor/theme.cjs.js +1 -1
  15. package/dist/nile-code-editor/theme.cjs.js.map +1 -1
  16. package/dist/nile-code-editor/theme.esm.js +1 -1
  17. package/dist/nile-file-preview/nile-file-preview.cjs.js +1 -1
  18. package/dist/nile-file-preview/nile-file-preview.cjs.js.map +1 -1
  19. package/dist/nile-file-preview/nile-file-preview.css.cjs.js +1 -1
  20. package/dist/nile-file-preview/nile-file-preview.css.cjs.js.map +1 -1
  21. package/dist/nile-file-preview/nile-file-preview.css.esm.js +203 -184
  22. package/dist/nile-file-preview/nile-file-preview.esm.js +1 -3
  23. package/dist/nile-file-preview/nile-file-preview.template.cjs.js +1 -1
  24. package/dist/nile-file-preview/nile-file-preview.template.cjs.js.map +1 -1
  25. package/dist/nile-file-preview/nile-file-preview.template.esm.js +66 -77
  26. package/dist/nile-file-preview/types/nile-file-preview.enums.cjs.js +1 -1
  27. package/dist/nile-file-preview/types/nile-file-preview.enums.cjs.js.map +1 -1
  28. package/dist/nile-file-preview/types/nile-file-preview.enums.esm.js +1 -1
  29. package/dist/nile-file-preview/utils/index.cjs.js +1 -1
  30. package/dist/nile-file-preview/utils/index.esm.js +1 -1
  31. package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js +1 -1
  32. package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js.map +1 -1
  33. package/dist/nile-file-preview/utils/nile-file-preview.util.esm.js +1 -1
  34. package/dist/nile-file-upload/index.cjs.js +1 -1
  35. package/dist/nile-file-upload/index.esm.js +1 -1
  36. package/dist/nile-file-upload/nile-file-upload.cjs.js +1 -1
  37. package/dist/nile-file-upload/nile-file-upload.cjs.js.map +1 -1
  38. package/dist/nile-file-upload/nile-file-upload.css.cjs.js +1 -1
  39. package/dist/nile-file-upload/nile-file-upload.css.cjs.js.map +1 -1
  40. package/dist/nile-file-upload/nile-file-upload.css.esm.js +142 -89
  41. package/dist/nile-file-upload/nile-file-upload.esm.js +2 -2
  42. package/dist/nile-file-upload/nile-file-upload.template.cjs.js +3 -3
  43. package/dist/nile-file-upload/nile-file-upload.template.cjs.js.map +1 -1
  44. package/dist/nile-file-upload/nile-file-upload.template.esm.js +50 -108
  45. package/dist/nile-file-upload/nile-file-upload.test.cjs.js +1 -1
  46. package/dist/nile-file-upload/nile-file-upload.test.esm.js +1 -1
  47. package/dist/nile-file-upload/types/file-upload.enums.cjs.js +1 -1
  48. package/dist/nile-file-upload/types/file-upload.enums.cjs.js.map +1 -1
  49. package/dist/nile-file-upload/types/file-upload.enums.esm.js +1 -1
  50. package/dist/nile-file-upload/utils/drag-drop.util.cjs.js +1 -1
  51. package/dist/nile-file-upload/utils/drag-drop.util.cjs.js.map +1 -1
  52. package/dist/nile-file-upload/utils/drag-drop.util.esm.js +1 -1
  53. package/dist/nile-file-upload/utils/file-validation.util.cjs.js +2 -1
  54. package/dist/nile-file-upload/utils/file-validation.util.cjs.js.map +1 -1
  55. package/dist/nile-file-upload/utils/file-validation.util.esm.js +1 -1
  56. package/dist/nile-option/nile-option.cjs.js +1 -1
  57. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  58. package/dist/nile-option/nile-option.esm.js +3 -3
  59. package/dist/nile-option-group/index.cjs.js +2 -0
  60. package/dist/nile-option-group/index.cjs.js.map +1 -0
  61. package/dist/nile-option-group/index.esm.js +1 -0
  62. package/dist/nile-option-group/nile-option-group.cjs.js +2 -0
  63. package/dist/nile-option-group/nile-option-group.cjs.js.map +1 -0
  64. package/dist/nile-option-group/nile-option-group.css.cjs.js +2 -0
  65. package/dist/nile-option-group/nile-option-group.css.cjs.js.map +1 -0
  66. package/dist/nile-option-group/nile-option-group.css.esm.js +46 -0
  67. package/dist/nile-option-group/nile-option-group.esm.js +14 -0
  68. package/dist/nile-option-group/nile-option-group.interface.cjs.js +2 -0
  69. package/dist/nile-option-group/nile-option-group.interface.cjs.js.map +1 -0
  70. package/dist/nile-option-group/nile-option-group.interface.esm.js +1 -0
  71. package/dist/nile-select/nile-select.cjs.js +1 -1
  72. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  73. package/dist/nile-select/nile-select.esm.js +2 -2
  74. package/dist/nile-select/nile-select.interface.cjs.js +2 -0
  75. package/dist/nile-select/nile-select.interface.cjs.js.map +1 -0
  76. package/dist/nile-select/nile-select.interface.esm.js +1 -0
  77. package/dist/nile-table-body/nile-table-body.cjs.js +1 -1
  78. package/dist/nile-table-body/nile-table-body.cjs.js.map +1 -1
  79. package/dist/nile-table-body/nile-table-body.esm.js +2 -1
  80. package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js +1 -1
  81. package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js.map +1 -1
  82. package/dist/nile-table-cell-item/nile-table-cell-item.esm.js +1 -1
  83. package/dist/nile-table-header-item/nile-table-header-item.cjs.js +1 -1
  84. package/dist/nile-table-header-item/nile-table-header-item.cjs.js.map +1 -1
  85. package/dist/nile-table-header-item/nile-table-header-item.esm.js +2 -2
  86. package/dist/nile-virtual-select/renderer.cjs.js +1 -1
  87. package/dist/nile-virtual-select/renderer.cjs.js.map +1 -1
  88. package/dist/nile-virtual-select/renderer.esm.js +13 -12
  89. package/dist/src/index.d.ts +1 -0
  90. package/dist/src/index.js +1 -0
  91. package/dist/src/index.js.map +1 -1
  92. package/dist/src/internal/resizable-table-helper.d.ts +5 -0
  93. package/dist/src/internal/resizable-table-helper.js +27 -4
  94. package/dist/src/internal/resizable-table-helper.js.map +1 -1
  95. package/dist/src/nile-code-editor/nile-code-editor.d.ts +5 -0
  96. package/dist/src/nile-code-editor/nile-code-editor.js +44 -7
  97. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  98. package/dist/src/nile-code-editor/theme.d.ts +15 -0
  99. package/dist/src/nile-code-editor/theme.js +17 -2
  100. package/dist/src/nile-code-editor/theme.js.map +1 -1
  101. package/dist/src/nile-file-preview/nile-file-preview.css.js +201 -182
  102. package/dist/src/nile-file-preview/nile-file-preview.css.js.map +1 -1
  103. package/dist/src/nile-file-preview/nile-file-preview.d.ts +6 -2
  104. package/dist/src/nile-file-preview/nile-file-preview.js +49 -20
  105. package/dist/src/nile-file-preview/nile-file-preview.js.map +1 -1
  106. package/dist/src/nile-file-preview/nile-file-preview.template.d.ts +3 -2
  107. package/dist/src/nile-file-preview/nile-file-preview.template.js +58 -62
  108. package/dist/src/nile-file-preview/nile-file-preview.template.js.map +1 -1
  109. package/dist/src/nile-file-preview/types/nile-file-preview.enums.d.ts +4 -3
  110. package/dist/src/nile-file-preview/types/nile-file-preview.enums.js +3 -2
  111. package/dist/src/nile-file-preview/types/nile-file-preview.enums.js.map +1 -1
  112. package/dist/src/nile-file-preview/utils/nile-file-preview.util.d.ts +4 -0
  113. package/dist/src/nile-file-preview/utils/nile-file-preview.util.js +25 -0
  114. package/dist/src/nile-file-preview/utils/nile-file-preview.util.js.map +1 -1
  115. package/dist/src/nile-file-upload/nile-file-upload.css.js +140 -87
  116. package/dist/src/nile-file-upload/nile-file-upload.css.js.map +1 -1
  117. package/dist/src/nile-file-upload/nile-file-upload.d.ts +4 -1
  118. package/dist/src/nile-file-upload/nile-file-upload.js +30 -20
  119. package/dist/src/nile-file-upload/nile-file-upload.js.map +1 -1
  120. package/dist/src/nile-file-upload/nile-file-upload.template.d.ts +7 -5
  121. package/dist/src/nile-file-upload/nile-file-upload.template.js +69 -115
  122. package/dist/src/nile-file-upload/nile-file-upload.template.js.map +1 -1
  123. package/dist/src/nile-file-upload/types/file-upload.enums.d.ts +11 -4
  124. package/dist/src/nile-file-upload/types/file-upload.enums.js +8 -1
  125. package/dist/src/nile-file-upload/types/file-upload.enums.js.map +1 -1
  126. package/dist/src/nile-file-upload/utils/drag-drop.util.d.ts +2 -4
  127. package/dist/src/nile-file-upload/utils/drag-drop.util.js +18 -21
  128. package/dist/src/nile-file-upload/utils/drag-drop.util.js.map +1 -1
  129. package/dist/src/nile-file-upload/utils/file-validation.util.d.ts +3 -1
  130. package/dist/src/nile-file-upload/utils/file-validation.util.js +82 -32
  131. package/dist/src/nile-file-upload/utils/file-validation.util.js.map +1 -1
  132. package/dist/src/nile-option/nile-option.d.ts +1 -0
  133. package/dist/src/nile-option/nile-option.js +6 -1
  134. package/dist/src/nile-option/nile-option.js.map +1 -1
  135. package/dist/src/nile-option-group/index.d.ts +1 -0
  136. package/dist/src/nile-option-group/index.js +2 -0
  137. package/dist/src/nile-option-group/index.js.map +1 -0
  138. package/dist/src/nile-option-group/nile-option-group.css.d.ts +12 -0
  139. package/dist/src/nile-option-group/nile-option-group.css.js +58 -0
  140. package/dist/src/nile-option-group/nile-option-group.css.js.map +1 -0
  141. package/dist/src/nile-option-group/nile-option-group.d.ts +23 -0
  142. package/dist/src/nile-option-group/nile-option-group.interface.d.ts +22 -0
  143. package/dist/src/nile-option-group/nile-option-group.interface.js +2 -0
  144. package/dist/src/nile-option-group/nile-option-group.interface.js.map +1 -0
  145. package/dist/src/nile-option-group/nile-option-group.js +76 -0
  146. package/dist/src/nile-option-group/nile-option-group.js.map +1 -0
  147. package/dist/src/nile-select/nile-select.d.ts +6 -0
  148. package/dist/src/nile-select/nile-select.interface.d.ts +5 -0
  149. package/dist/src/nile-select/nile-select.interface.js +2 -0
  150. package/dist/src/nile-select/nile-select.interface.js.map +1 -0
  151. package/dist/src/nile-select/nile-select.js +59 -1
  152. package/dist/src/nile-select/nile-select.js.map +1 -1
  153. package/dist/src/nile-table-body/nile-table-body.d.ts +1 -0
  154. package/dist/src/nile-table-body/nile-table-body.js +4 -0
  155. package/dist/src/nile-table-body/nile-table-body.js.map +1 -1
  156. package/dist/src/nile-table-cell-item/nile-table-cell-item.d.ts +2 -1
  157. package/dist/src/nile-table-cell-item/nile-table-cell-item.js +12 -1
  158. package/dist/src/nile-table-cell-item/nile-table-cell-item.js.map +1 -1
  159. package/dist/src/nile-table-header-item/nile-table-header-item.d.ts +2 -1
  160. package/dist/src/nile-table-header-item/nile-table-header-item.js +12 -1
  161. package/dist/src/nile-table-header-item/nile-table-header-item.js.map +1 -1
  162. package/dist/src/nile-virtual-select/renderer.js +3 -0
  163. package/dist/src/nile-virtual-select/renderer.js.map +1 -1
  164. package/dist/tsconfig.tsbuildinfo +1 -1
  165. package/package.json +3 -2
  166. package/src/index.ts +1 -1
  167. package/src/internal/resizable-table-helper.ts +31 -8
  168. package/src/nile-code-editor/nile-code-editor.ts +49 -9
  169. package/src/nile-code-editor/theme.ts +19 -3
  170. package/src/nile-file-preview/nile-file-preview.css.ts +202 -183
  171. package/src/nile-file-preview/nile-file-preview.template.ts +66 -63
  172. package/src/nile-file-preview/nile-file-preview.ts +54 -22
  173. package/src/nile-file-preview/types/nile-file-preview.enums.ts +4 -3
  174. package/src/nile-file-preview/utils/nile-file-preview.util.ts +25 -0
  175. package/src/nile-file-upload/nile-file-upload.css.ts +141 -88
  176. package/src/nile-file-upload/nile-file-upload.template.ts +133 -121
  177. package/src/nile-file-upload/nile-file-upload.ts +30 -18
  178. package/src/nile-file-upload/types/file-upload.enums.ts +9 -2
  179. package/src/nile-file-upload/utils/drag-drop.util.ts +25 -25
  180. package/src/nile-file-upload/utils/file-validation.util.ts +98 -45
  181. package/src/nile-option/nile-option.ts +4 -1
  182. package/src/nile-option-group/index.ts +1 -0
  183. package/src/nile-option-group/nile-option-group.css.ts +60 -0
  184. package/src/nile-option-group/nile-option-group.interface.ts +25 -0
  185. package/src/nile-option-group/nile-option-group.ts +84 -0
  186. package/src/nile-select/nile-select.interface.ts +5 -0
  187. package/src/nile-select/nile-select.ts +74 -2
  188. package/src/nile-table-body/nile-table-body.ts +2 -0
  189. package/src/nile-table-cell-item/nile-table-cell-item.ts +15 -1
  190. package/src/nile-table-header-item/nile-table-header-item.ts +15 -1
  191. package/src/nile-virtual-select/renderer.ts +3 -0
  192. package/vscode-html-custom-data.json +49 -13
@@ -1,2 +1,2 @@
1
- System.register([],function(_export,_context){"use strict";function e(e,t){e.preventDefault(),e.stopPropagation();var _t$minWidth=t.minWidth,n=_t$minWidth===void 0?50:_t$minWidth,i=t.startX,o=t.startWidth,r=t.element,u=e.target;u.classList.add("resizing");var l=function l(e){e.preventDefault(),e.stopPropagation();var t=e.pageX-i,u=Math.max(n,o+t);r.style.width=u+"px",function(e,t){var n=e.closest("nile-table-body");if(!n)return;var i="nile-table-header-item"===e.tagName.toLowerCase(),o="nile-table-cell-item",r=function(e,t){var n=e.closest("nile-table-row");if(n){var _i=n.querySelectorAll(t);return Array.from(_i).indexOf(e);}return 0;}(e,i?"nile-table-header-item":"nile-table-cell-item");n.querySelectorAll("nile-table-row").forEach(function(e){var n=e.querySelectorAll(o);n[r]&&(n[r].style.width=t+"px");});}(r,u);},_c=function c(){u.classList.remove("resizing"),document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",_c);};return document.addEventListener("mousemove",l),document.addEventListener("mouseup",_c),function(){document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",_c);};}function t(e){return e.hasAttribute("resizable");}function n(t){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:50;return function(i){e(i,{minWidth:n,startX:i.pageX,startWidth:t.offsetWidth,element:t});};}function i(e){var n=e.querySelectorAll("nile-table-header-item"),i=e.querySelectorAll("nile-table-cell-item"),o=Array.from(n).some(function(e){return t(e);}),r=Array.from(i).some(function(e){return t(e);});return o||r;}_export({c:n,h:i});return{setters:[],execute:function execute(){}};});
1
+ System.register([],function(_export,_context){"use strict";function e(e,t){e.preventDefault(),e.stopPropagation();var _t$minWidth=t.minWidth,n=_t$minWidth===void 0?50:_t$minWidth,i=t.startX,o=t.startWidth,l=t.element,r=e.target;r.classList.add("resizing");var a=function a(e){e.preventDefault(),e.stopPropagation();var t=e.pageX-i,r=Math.max(n,o+t);l.style.width=r+"px",function(e,t){var n=e.closest("nile-table-body");if(!n)return;var i="nile-table-header-item"===e.tagName.toLowerCase(),o="nile-table-cell-item",l=function(e,t){var n=e.closest("nile-table-row");if(n){var _i=n.querySelectorAll(t);return Array.from(_i).indexOf(e);}return 0;}(e,i?"nile-table-header-item":"nile-table-cell-item");n.querySelectorAll("nile-table-row").forEach(function(e){var n=e.querySelectorAll(o);n[l]&&(n[l].style.width=t+"px");});}(l,r);},_c=function c(){r.classList.remove("resizing"),document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",_c);};return document.addEventListener("mousemove",a),document.addEventListener("mouseup",_c),function(){document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",_c);};}function t(e){var t=e.querySelectorAll("nile-table-header-item"),n=e.querySelectorAll("nile-table-cell-item");t.forEach(function(e){e.style.removeProperty("width");}),n.forEach(function(e){e.style.removeProperty("width");});}function n(t){var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:50;return function(i){e(i,{minWidth:n,startX:i.pageX,startWidth:t.offsetWidth,element:t});};}function i(e){var t=Array.from(e.children),n=t.some(function(e){return"nile-table-header-item"===e.tagName.toLowerCase()&&e.hasAttribute("resizable");}),i=t.some(function(e){return"nile-table-cell-item"===e.tagName.toLowerCase()&&e.hasAttribute("resizable");});return n||i;}_export({c:n,h:i,r:t});return{setters:[],execute:function execute(){}};});
2
2
  //# sourceMappingURL=resizable-table-helper.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resizable-table-helper.cjs.js","sources":["../../../src/internal/resizable-table-helper.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/**\n * Resizable Helper Utility\n * Provides common functionality for resizable table columns\n */\n\nexport interface ResizeOptions {\n minWidth?: number;\n startX: number;\n startWidth: number;\n element: HTMLElement;\n}\n\nexport interface ColumnResizeData {\n columnIndex: number;\n newWidth: number;\n}\n\n/**\n * Handles the start of a resize operation\n * @param e Mouse event\n * @param options Resize configuration options\n * @returns Cleanup function to remove event listeners\n */\nexport function handleResizeStart(e: MouseEvent, options: ResizeOptions): () => void {\n e.preventDefault();\n e.stopPropagation();\n \n const { minWidth = 50, startX, startWidth, element } = options;\n const resizer = e.target as HTMLElement;\n \n resizer.classList.add('resizing');\n\n const onMouseMove = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n \n const delta = e.pageX - startX;\n const newWidth = Math.max(minWidth, startWidth + delta);\n\n element.style.width = newWidth + 'px';\n\n synchronizeColumnWidth(element, newWidth);\n };\n\n const onMouseUp = () => {\n resizer.classList.remove('resizing');\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n };\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n\n return () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n };\n}\n\n/**\n * Gets the column index of an element within its table row\n * @param element The table cell or header element\n * @param selector The CSS selector for the column elements\n * @returns Column index (0-based)\n */\nexport function getColumnIndex(element: HTMLElement, selector: string): number {\n const tableRow = element.closest('nile-table-row');\n if (tableRow) {\n const columns = tableRow.querySelectorAll(selector);\n return Array.from(columns).indexOf(element);\n }\n return 0;\n}\n\n/**\n * Synchronizes the width of all cells in the same column\n * @param sourceElement The element that was resized\n * @param newWidth The new width to apply\n */\nexport function synchronizeColumnWidth(sourceElement: HTMLElement, newWidth: number): void {\n const tableBody = sourceElement.closest('nile-table-body');\n if (!tableBody) return;\n\n const isHeader = sourceElement.tagName.toLowerCase() === 'nile-table-header-item';\n const selector = isHeader ? 'nile-table-header-item' : 'nile-table-cell-item';\n const targetSelector = isHeader ? 'nile-table-cell-item' : 'nile-table-cell-item';\n \n const columnIndex = getColumnIndex(sourceElement, selector);\n const rows = tableBody.querySelectorAll('nile-table-row');\n \n rows.forEach(row => {\n const cells = row.querySelectorAll(targetSelector);\n if (cells[columnIndex]) {\n cells[columnIndex].style.width = newWidth + 'px';\n }\n });\n}\n\n/**\n * Checks if an element has the resizable attribute\n * @param element The element to check\n * @returns True if the element is resizable\n */\nexport function isResizable(element: HTMLElement): boolean {\n return element.hasAttribute('resizable');\n}\n\n/**\n * Creates a resize handler function for use in component event listeners\n * @param element The element to make resizable\n * @param minWidth Minimum width constraint\n * @returns Event handler function\n */\nexport function createResizeHandler(element: HTMLElement, minWidth: number = 50): (e: MouseEvent) => void {\n return (e: MouseEvent) => {\n const options: ResizeOptions = {\n minWidth,\n startX: e.pageX,\n startWidth: element.offsetWidth,\n element\n };\n \n handleResizeStart(e, options);\n };\n}\n\n/**\n * Detects if any columns in a table are resizable\n * @param tableBody The table body element\n * @returns True if any columns have resizable attribute\n */\nexport function hasResizableColumns(tableBody: HTMLElement): boolean {\n const headerItems = tableBody.querySelectorAll('nile-table-header-item');\n const cellItems = tableBody.querySelectorAll('nile-table-cell-item');\n \n const hasResizableHeaders = Array.from(headerItems).some(item => \n isResizable(item)\n );\n const hasResizableCells = Array.from(cellItems).some(item => \n isResizable(item)\n );\n \n return hasResizableHeaders || hasResizableCells;\n} \n"],"names":["handleResizeStart","e","options","preventDefault","stopPropagation","_t$minWidth","minWidth","startX","startWidth","element","resizer","target","classList","add","onMouseMove","delta","pageX","newWidth","Math","max","style","width","sourceElement","tableBody","closest","isHeader","tagName","toLowerCase","targetSelector","columnIndex","selector","tableRow","columns","querySelectorAll","Array","from","indexOf","getColumnIndex","forEach","row","cells","synchronizeColumnWidth","onMouseUp","c","remove","document","removeEventListener","addEventListener","isResizable","hasAttribute","createResizeHandler","arguments","length","undefined","offsetWidth","t","hasResizableColumns","headerItems","cellItems","hasResizableHeaders","some","item","hasResizableCells","_export"],"mappings":"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"}
1
+ {"version":3,"file":"resizable-table-helper.cjs.js","sources":["../../../src/internal/resizable-table-helper.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/**\n * Resizable Helper Utility\n * Provides common functionality for resizable table columns\n */\n\nexport interface ResizeOptions {\n minWidth?: number;\n startX: number;\n startWidth: number;\n element: HTMLElement;\n}\n\nexport interface ColumnResizeData {\n columnIndex: number;\n newWidth: number;\n}\n\n/**\n * Handles the start of a resize operation\n * @param e Mouse event\n * @param options Resize configuration options\n * @returns Cleanup function to remove event listeners\n */\nexport function handleResizeStart(e: MouseEvent, options: ResizeOptions): () => void {\n e.preventDefault();\n e.stopPropagation();\n \n const { minWidth = 50, startX, startWidth, element } = options;\n const resizer = e.target as HTMLElement;\n \n resizer.classList.add('resizing');\n\n const onMouseMove = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n \n const delta = e.pageX - startX;\n const newWidth = Math.max(minWidth, startWidth + delta);\n\n element.style.width = newWidth + 'px';\n\n synchronizeColumnWidth(element, newWidth);\n };\n\n const onMouseUp = () => {\n resizer.classList.remove('resizing');\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n };\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n\n return () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n };\n}\n\n/**\n * Gets the column index of an element within its table row\n * @param element The table cell or header element\n * @param selector The CSS selector for the column elements\n * @returns Column index (0-based)\n */\nexport function getColumnIndex(element: HTMLElement, selector: string): number {\n const tableRow = element.closest('nile-table-row');\n if (tableRow) {\n const columns = tableRow.querySelectorAll(selector);\n return Array.from(columns).indexOf(element);\n }\n return 0;\n}\n\n/**\n * Synchronizes the width of all cells in the same column\n * @param sourceElement The element that was resized\n * @param newWidth The new width to apply\n */\nexport function synchronizeColumnWidth(sourceElement: HTMLElement, newWidth: number): void {\n const tableBody = sourceElement.closest('nile-table-body');\n if (!tableBody) return;\n\n const isHeader = sourceElement.tagName.toLowerCase() === 'nile-table-header-item';\n const selector = isHeader ? 'nile-table-header-item' : 'nile-table-cell-item';\n const targetSelector = isHeader ? 'nile-table-cell-item' : 'nile-table-cell-item';\n \n const columnIndex = getColumnIndex(sourceElement, selector);\n const rows = tableBody.querySelectorAll('nile-table-row');\n \n rows.forEach(row => {\n const cells = row.querySelectorAll(targetSelector);\n if (cells[columnIndex]) {\n cells[columnIndex].style.width = newWidth + 'px';\n }\n });\n}\n\n/**\n * Resets all column widths in a table to their default values\n * @param tableBody The table body element to reset\n */\nexport function resetAllColumnWidths(tableBody: HTMLElement): void {\n const headerItems = tableBody.querySelectorAll('nile-table-header-item');\n const cellItems = tableBody.querySelectorAll('nile-table-cell-item');\n \n headerItems.forEach(header => {\n header.style.removeProperty('width');\n });\n \n cellItems.forEach(cell => {\n cell.style.removeProperty('width');\n });\n}\n\n/**\n * Checks if an element has the resizable attribute\n * @param element The element to check\n * @returns True if the element is resizable\n */\nexport function isResizable(element: HTMLElement): boolean {\n return element.hasAttribute('resizable');\n}\n\n/**\n * Creates a resize handler function for use in component event listeners\n * @param element The element to make resizable\n * @param minWidth Minimum width constraint\n * @returns Event handler function\n */\nexport function createResizeHandler(element: HTMLElement, minWidth: number = 50): (e: MouseEvent) => void {\n return (e: MouseEvent) => {\n const options: ResizeOptions = {\n minWidth,\n startX: e.pageX,\n startWidth: element.offsetWidth,\n element\n };\n \n handleResizeStart(e, options);\n };\n}\n\n/**\n * Detects if any columns in a table are resizable\n * @param tableBody The table body element\n * @returns True if any columns have resizable attribute\n */\nexport function hasResizableColumns(tableBody: HTMLElement): boolean {\n const directChildren = Array.from(tableBody.children);\n \n const hasResizableHeaders = directChildren.some(child => {\n if (child.tagName.toLowerCase() === 'nile-table-header-item') {\n return child.hasAttribute('resizable');\n }\n return false;\n });\n \n const hasResizableCells = directChildren.some(child => {\n if (child.tagName.toLowerCase() === 'nile-table-cell-item') {\n return child.hasAttribute('resizable');\n }\n return false;\n });\n \n return hasResizableHeaders || hasResizableCells;\n} \n"],"names":["handleResizeStart","e","options","preventDefault","stopPropagation","_t$minWidth","minWidth","startX","startWidth","element","resizer","target","classList","add","onMouseMove","delta","pageX","newWidth","Math","max","style","width","sourceElement","tableBody","closest","isHeader","tagName","toLowerCase","targetSelector","columnIndex","selector","tableRow","columns","querySelectorAll","Array","from","indexOf","getColumnIndex","forEach","row","cells","synchronizeColumnWidth","onMouseUp","remove","document","removeEventListener","addEventListener","resetAllColumnWidths","headerItems","cellItems","header","removeProperty","cell","createResizeHandler","arguments","length","undefined","offsetWidth","t","hasResizableColumns","directChildren","children","hasResizableHeaders","some","child","hasAttribute","hasResizableCells"],"mappings":"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"}
@@ -1 +1 @@
1
- function e(e,t){e.preventDefault(),e.stopPropagation();const{minWidth:n=50,startX:i,startWidth:o,element:r}=t,u=e.target;u.classList.add("resizing");const l=e=>{e.preventDefault(),e.stopPropagation();const t=e.pageX-i,u=Math.max(n,o+t);r.style.width=u+"px",function(e,t){const n=e.closest("nile-table-body");if(!n)return;const i="nile-table-header-item"===e.tagName.toLowerCase(),o="nile-table-cell-item",r=function(e,t){const n=e.closest("nile-table-row");if(n){const i=n.querySelectorAll(t);return Array.from(i).indexOf(e)}return 0}(e,i?"nile-table-header-item":"nile-table-cell-item");n.querySelectorAll("nile-table-row").forEach((e=>{const n=e.querySelectorAll(o);n[r]&&(n[r].style.width=t+"px")}))}(r,u)},c=()=>{u.classList.remove("resizing"),document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",c)};return document.addEventListener("mousemove",l),document.addEventListener("mouseup",c),()=>{document.removeEventListener("mousemove",l),document.removeEventListener("mouseup",c)}}function t(e){return e.hasAttribute("resizable")}function n(t,n=50){return i=>{e(i,{minWidth:n,startX:i.pageX,startWidth:t.offsetWidth,element:t})}}function i(e){const n=e.querySelectorAll("nile-table-header-item"),i=e.querySelectorAll("nile-table-cell-item"),o=Array.from(n).some((e=>t(e))),r=Array.from(i).some((e=>t(e)));return o||r}export{n as c,i as h};
1
+ function e(e,t){e.preventDefault(),e.stopPropagation();const{minWidth:n=50,startX:i,startWidth:o,element:l}=t,r=e.target;r.classList.add("resizing");const a=e=>{e.preventDefault(),e.stopPropagation();const t=e.pageX-i,r=Math.max(n,o+t);l.style.width=r+"px",function(e,t){const n=e.closest("nile-table-body");if(!n)return;const i="nile-table-header-item"===e.tagName.toLowerCase(),o="nile-table-cell-item",l=function(e,t){const n=e.closest("nile-table-row");if(n){const i=n.querySelectorAll(t);return Array.from(i).indexOf(e)}return 0}(e,i?"nile-table-header-item":"nile-table-cell-item");n.querySelectorAll("nile-table-row").forEach((e=>{const n=e.querySelectorAll(o);n[l]&&(n[l].style.width=t+"px")}))}(l,r)},c=()=>{r.classList.remove("resizing"),document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",c)};return document.addEventListener("mousemove",a),document.addEventListener("mouseup",c),()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",c)}}function t(e){const t=e.querySelectorAll("nile-table-header-item"),n=e.querySelectorAll("nile-table-cell-item");t.forEach((e=>{e.style.removeProperty("width")})),n.forEach((e=>{e.style.removeProperty("width")}))}function n(t,n=50){return i=>{e(i,{minWidth:n,startX:i.pageX,startWidth:t.offsetWidth,element:t})}}function i(e){const t=Array.from(e.children),n=t.some((e=>"nile-table-header-item"===e.tagName.toLowerCase()&&e.hasAttribute("resizable"))),i=t.some((e=>"nile-table-cell-item"===e.tagName.toLowerCase()&&e.hasAttribute("resizable")));return n||i}export{n as c,i as h,t as r};