snice 1.13.2 → 1.13.4

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 (295) hide show
  1. package/bin/templates/base/README.md +1 -1
  2. package/dist/components/accordion/snice-accordion-item.d.ts +25 -0
  3. package/dist/components/accordion/snice-accordion-item.js +260 -0
  4. package/dist/components/accordion/snice-accordion-item.js.map +1 -0
  5. package/dist/components/accordion/snice-accordion.d.ts +28 -0
  6. package/dist/components/accordion/snice-accordion.js +221 -0
  7. package/dist/components/accordion/snice-accordion.js.map +1 -0
  8. package/dist/components/accordion/snice-accordion.types.d.ts +29 -0
  9. package/dist/components/accordion/snice-accordion.types.js +2 -0
  10. package/dist/components/accordion/snice-accordion.types.js.map +1 -0
  11. package/dist/components/alert/snice-alert.d.ts +26 -0
  12. package/dist/components/alert/snice-alert.js +191 -0
  13. package/dist/components/alert/snice-alert.js.map +1 -0
  14. package/dist/components/alert/snice-alert.types.d.ts +11 -0
  15. package/dist/components/alert/snice-alert.types.js +2 -0
  16. package/dist/components/alert/snice-alert.types.js.map +1 -0
  17. package/dist/components/avatar/snice-avatar.d.ts +24 -0
  18. package/dist/components/avatar/snice-avatar.js +177 -0
  19. package/dist/components/avatar/snice-avatar.js.map +1 -0
  20. package/dist/components/avatar/snice-avatar.types.d.ts +12 -0
  21. package/dist/components/avatar/snice-avatar.types.js +2 -0
  22. package/dist/components/avatar/snice-avatar.types.js.map +1 -0
  23. package/dist/components/badge/snice-badge.d.ts +25 -0
  24. package/dist/components/badge/snice-badge.js +157 -0
  25. package/dist/components/badge/snice-badge.js.map +1 -0
  26. package/dist/components/badge/snice-badge.types.d.ts +15 -0
  27. package/dist/components/badge/snice-badge.types.js +2 -0
  28. package/dist/components/badge/snice-badge.types.js.map +1 -0
  29. package/dist/components/breadcrumbs/snice-breadcrumbs.d.ts +27 -0
  30. package/dist/components/breadcrumbs/snice-breadcrumbs.js +212 -0
  31. package/dist/components/breadcrumbs/snice-breadcrumbs.js.map +1 -0
  32. package/dist/components/breadcrumbs/snice-breadcrumbs.types.d.ts +23 -0
  33. package/dist/components/breadcrumbs/snice-breadcrumbs.types.js +2 -0
  34. package/dist/components/breadcrumbs/snice-breadcrumbs.types.js.map +1 -0
  35. package/dist/components/breadcrumbs/snice-crumb.d.ts +9 -0
  36. package/dist/components/breadcrumbs/snice-crumb.js +50 -0
  37. package/dist/components/breadcrumbs/snice-crumb.js.map +1 -0
  38. package/dist/components/button/snice-button.d.ts +32 -0
  39. package/dist/components/button/snice-button.js +212 -0
  40. package/dist/components/button/snice-button.js.map +1 -0
  41. package/dist/components/button/snice-button.types.d.ts +23 -0
  42. package/dist/components/button/snice-button.types.js +2 -0
  43. package/dist/components/button/snice-button.types.js.map +1 -0
  44. package/dist/components/card/snice-card.d.ts +19 -0
  45. package/dist/components/card/snice-card.js +132 -0
  46. package/dist/components/card/snice-card.js.map +1 -0
  47. package/dist/components/card/snice-card.types.d.ts +9 -0
  48. package/dist/components/card/snice-card.types.js +2 -0
  49. package/dist/components/card/snice-card.types.js.map +1 -0
  50. package/dist/components/checkbox/snice-checkbox.d.ts +34 -0
  51. package/dist/components/checkbox/snice-checkbox.js +289 -0
  52. package/dist/components/checkbox/snice-checkbox.js.map +1 -0
  53. package/dist/components/checkbox/snice-checkbox.types.d.ts +20 -0
  54. package/dist/components/checkbox/snice-checkbox.types.js +2 -0
  55. package/dist/components/checkbox/snice-checkbox.types.js.map +1 -0
  56. package/dist/components/chip/snice-chip.d.ts +28 -0
  57. package/dist/components/chip/snice-chip.js +203 -0
  58. package/dist/components/chip/snice-chip.js.map +1 -0
  59. package/dist/components/chip/snice-chip.types.d.ts +14 -0
  60. package/dist/components/chip/snice-chip.types.js +2 -0
  61. package/dist/components/chip/snice-chip.types.js.map +1 -0
  62. package/dist/components/date-picker/snice-date-picker.d.ts +82 -0
  63. package/dist/components/date-picker/snice-date-picker.js +880 -0
  64. package/dist/components/date-picker/snice-date-picker.js.map +1 -0
  65. package/dist/components/date-picker/snice-date-picker.types.d.ts +71 -0
  66. package/dist/components/date-picker/snice-date-picker.types.js +2 -0
  67. package/dist/components/date-picker/snice-date-picker.types.js.map +1 -0
  68. package/dist/components/divider/snice-divider.d.ts +17 -0
  69. package/dist/components/divider/snice-divider.js +111 -0
  70. package/dist/components/divider/snice-divider.js.map +1 -0
  71. package/dist/components/divider/snice-divider.types.d.ts +14 -0
  72. package/dist/components/divider/snice-divider.types.js +2 -0
  73. package/dist/components/divider/snice-divider.types.js.map +1 -0
  74. package/dist/components/drawer/snice-drawer.d.ts +37 -0
  75. package/dist/components/drawer/snice-drawer.js +335 -0
  76. package/dist/components/drawer/snice-drawer.js.map +1 -0
  77. package/dist/components/drawer/snice-drawer.types.d.ts +16 -0
  78. package/dist/components/drawer/snice-drawer.types.js +2 -0
  79. package/dist/components/drawer/snice-drawer.types.js.map +1 -0
  80. package/dist/components/input/snice-input.d.ts +65 -0
  81. package/dist/components/input/snice-input.js +603 -0
  82. package/dist/components/input/snice-input.js.map +1 -0
  83. package/dist/components/input/snice-input.types.d.ts +53 -0
  84. package/dist/components/input/snice-input.types.js +2 -0
  85. package/dist/components/input/snice-input.types.js.map +1 -0
  86. package/dist/components/layout/snice-layout-blog.d.ts +4 -0
  87. package/dist/components/layout/snice-layout-blog.js +56 -0
  88. package/dist/components/layout/snice-layout-blog.js.map +1 -0
  89. package/dist/components/layout/snice-layout-card.d.ts +6 -0
  90. package/dist/components/layout/snice-layout-card.js +53 -0
  91. package/dist/components/layout/snice-layout-card.js.map +1 -0
  92. package/dist/components/layout/snice-layout-centered.d.ts +5 -0
  93. package/dist/components/layout/snice-layout-centered.js +38 -0
  94. package/dist/components/layout/snice-layout-centered.js.map +1 -0
  95. package/dist/components/layout/snice-layout-dashboard.d.ts +4 -0
  96. package/dist/components/layout/snice-layout-dashboard.js +53 -0
  97. package/dist/components/layout/snice-layout-dashboard.js.map +1 -0
  98. package/dist/components/layout/snice-layout-fullscreen.d.ts +5 -0
  99. package/dist/components/layout/snice-layout-fullscreen.js +50 -0
  100. package/dist/components/layout/snice-layout-fullscreen.js.map +1 -0
  101. package/dist/components/layout/snice-layout-landing.d.ts +4 -0
  102. package/dist/components/layout/snice-layout-landing.js +55 -0
  103. package/dist/components/layout/snice-layout-landing.js.map +1 -0
  104. package/dist/components/layout/snice-layout-minimal.d.ts +4 -0
  105. package/dist/components/layout/snice-layout-minimal.js +27 -0
  106. package/dist/components/layout/snice-layout-minimal.js.map +1 -0
  107. package/dist/components/layout/snice-layout-sidebar.d.ts +5 -0
  108. package/dist/components/layout/snice-layout-sidebar.js +64 -0
  109. package/dist/components/layout/snice-layout-sidebar.js.map +1 -0
  110. package/dist/components/layout/snice-layout-split.d.ts +6 -0
  111. package/dist/components/layout/snice-layout-split.js +47 -0
  112. package/dist/components/layout/snice-layout-split.js.map +1 -0
  113. package/dist/components/layout/snice-layout.d.ts +4 -0
  114. package/dist/components/layout/snice-layout.js +43 -0
  115. package/dist/components/layout/snice-layout.js.map +1 -0
  116. package/dist/components/layout/snice-layout.types.d.ts +3 -0
  117. package/dist/components/layout/snice-layout.types.js +2 -0
  118. package/dist/components/layout/snice-layout.types.js.map +1 -0
  119. package/dist/components/login/snice-login.d.ts +45 -0
  120. package/dist/components/login/snice-login.js +385 -0
  121. package/dist/components/login/snice-login.js.map +1 -0
  122. package/dist/components/login/snice-login.types.d.ts +31 -0
  123. package/dist/components/login/snice-login.types.js +2 -0
  124. package/dist/components/login/snice-login.types.js.map +1 -0
  125. package/dist/components/modal/snice-modal.d.ts +32 -0
  126. package/dist/components/modal/snice-modal.js +288 -0
  127. package/dist/components/modal/snice-modal.js.map +1 -0
  128. package/dist/components/modal/snice-modal.types.d.ts +18 -0
  129. package/dist/components/modal/snice-modal.types.js +2 -0
  130. package/dist/components/modal/snice-modal.types.js.map +1 -0
  131. package/dist/components/pagination/snice-pagination.d.ts +26 -0
  132. package/dist/components/pagination/snice-pagination.js +373 -0
  133. package/dist/components/pagination/snice-pagination.js.map +1 -0
  134. package/dist/components/pagination/snice-pagination.types.d.ts +18 -0
  135. package/dist/components/pagination/snice-pagination.types.js +2 -0
  136. package/dist/components/pagination/snice-pagination.types.js.map +1 -0
  137. package/dist/components/progress/snice-progress.d.ts +35 -0
  138. package/dist/components/progress/snice-progress.js +295 -0
  139. package/dist/components/progress/snice-progress.js.map +1 -0
  140. package/dist/components/progress/snice-progress.types.d.ts +18 -0
  141. package/dist/components/progress/snice-progress.types.js +2 -0
  142. package/dist/components/progress/snice-progress.types.js.map +1 -0
  143. package/dist/components/radio/snice-radio.d.ts +33 -0
  144. package/dist/components/radio/snice-radio.js +286 -0
  145. package/dist/components/radio/snice-radio.js.map +1 -0
  146. package/dist/components/radio/snice-radio.types.d.ts +19 -0
  147. package/dist/components/radio/snice-radio.types.js +2 -0
  148. package/dist/components/radio/snice-radio.types.js.map +1 -0
  149. package/dist/components/select/snice-option.d.ts +17 -0
  150. package/dist/components/select/snice-option.js +77 -0
  151. package/dist/components/select/snice-option.js.map +1 -0
  152. package/dist/components/select/snice-option.types.d.ts +14 -0
  153. package/dist/components/select/snice-option.types.js +2 -0
  154. package/dist/components/select/snice-option.types.js.map +1 -0
  155. package/dist/components/select/snice-select.d.ts +89 -0
  156. package/dist/components/select/snice-select.js +900 -0
  157. package/dist/components/select/snice-select.js.map +1 -0
  158. package/dist/components/select/snice-select.types.d.ts +49 -0
  159. package/dist/components/select/snice-select.types.js +2 -0
  160. package/dist/components/select/snice-select.types.js.map +1 -0
  161. package/dist/components/skeleton/snice-skeleton.d.ts +16 -0
  162. package/dist/components/skeleton/snice-skeleton.js +159 -0
  163. package/dist/components/skeleton/snice-skeleton.js.map +1 -0
  164. package/dist/components/skeleton/snice-skeleton.types.d.ts +10 -0
  165. package/dist/components/skeleton/snice-skeleton.types.js +2 -0
  166. package/dist/components/skeleton/snice-skeleton.types.js.map +1 -0
  167. package/dist/components/switch/snice-switch.d.ts +38 -0
  168. package/dist/components/switch/snice-switch.js +309 -0
  169. package/dist/components/switch/snice-switch.js.map +1 -0
  170. package/dist/components/switch/snice-switch.types.d.ts +21 -0
  171. package/dist/components/switch/snice-switch.types.js +2 -0
  172. package/dist/components/switch/snice-switch.types.js.map +1 -0
  173. package/dist/components/symbols.d.ts +1 -0
  174. package/dist/components/symbols.js +20 -0
  175. package/dist/components/symbols.js.map +1 -0
  176. package/dist/components/table/snice-cell-boolean.d.ts +21 -0
  177. package/dist/components/table/snice-cell-boolean.js +152 -0
  178. package/dist/components/table/snice-cell-boolean.js.map +1 -0
  179. package/dist/components/table/snice-cell-date.d.ts +24 -0
  180. package/dist/components/table/snice-cell-date.js +240 -0
  181. package/dist/components/table/snice-cell-date.js.map +1 -0
  182. package/dist/components/table/snice-cell-duration.d.ts +16 -0
  183. package/dist/components/table/snice-cell-duration.js +123 -0
  184. package/dist/components/table/snice-cell-duration.js.map +1 -0
  185. package/dist/components/table/snice-cell-filesize.d.ts +16 -0
  186. package/dist/components/table/snice-cell-filesize.js +119 -0
  187. package/dist/components/table/snice-cell-filesize.js.map +1 -0
  188. package/dist/components/table/snice-cell-number.d.ts +23 -0
  189. package/dist/components/table/snice-cell-number.js +202 -0
  190. package/dist/components/table/snice-cell-number.js.map +1 -0
  191. package/dist/components/table/snice-cell-progress.d.ts +17 -0
  192. package/dist/components/table/snice-cell-progress.js +114 -0
  193. package/dist/components/table/snice-cell-progress.js.map +1 -0
  194. package/dist/components/table/snice-cell-rating.d.ts +17 -0
  195. package/dist/components/table/snice-cell-rating.js +113 -0
  196. package/dist/components/table/snice-cell-rating.js.map +1 -0
  197. package/dist/components/table/snice-cell-sparkline.d.ts +29 -0
  198. package/dist/components/table/snice-cell-sparkline.js +290 -0
  199. package/dist/components/table/snice-cell-sparkline.js.map +1 -0
  200. package/dist/components/table/snice-cell-text.d.ts +19 -0
  201. package/dist/components/table/snice-cell-text.js +153 -0
  202. package/dist/components/table/snice-cell-text.js.map +1 -0
  203. package/dist/components/table/snice-cell.d.ts +32 -0
  204. package/dist/components/table/snice-cell.js +451 -0
  205. package/dist/components/table/snice-cell.js.map +1 -0
  206. package/dist/components/table/snice-column.d.ts +62 -0
  207. package/dist/components/table/snice-column.js +440 -0
  208. package/dist/components/table/snice-column.js.map +1 -0
  209. package/dist/components/table/snice-header.d.ts +33 -0
  210. package/dist/components/table/snice-header.js +303 -0
  211. package/dist/components/table/snice-header.js.map +1 -0
  212. package/dist/components/table/snice-progress.d.ts +10 -0
  213. package/dist/components/table/snice-progress.js +91 -0
  214. package/dist/components/table/snice-progress.js.map +1 -0
  215. package/dist/components/table/snice-rating.d.ts +9 -0
  216. package/dist/components/table/snice-rating.js +68 -0
  217. package/dist/components/table/snice-rating.js.map +1 -0
  218. package/dist/components/table/snice-row.d.ts +43 -0
  219. package/dist/components/table/snice-row.js +365 -0
  220. package/dist/components/table/snice-row.js.map +1 -0
  221. package/dist/components/table/snice-table.d.ts +69 -0
  222. package/dist/components/table/snice-table.js +814 -0
  223. package/dist/components/table/snice-table.js.map +1 -0
  224. package/dist/components/table/snice-table.types.d.ts +137 -0
  225. package/dist/components/table/snice-table.types.js +2 -0
  226. package/dist/components/table/snice-table.types.js.map +1 -0
  227. package/dist/components/tabs/snice-tab-panel.d.ts +12 -0
  228. package/dist/components/tabs/snice-tab-panel.js +78 -0
  229. package/dist/components/tabs/snice-tab-panel.js.map +1 -0
  230. package/dist/components/tabs/snice-tab.d.ts +13 -0
  231. package/dist/components/tabs/snice-tab.js +90 -0
  232. package/dist/components/tabs/snice-tab.js.map +1 -0
  233. package/dist/components/tabs/snice-tabs.d.ts +34 -0
  234. package/dist/components/tabs/snice-tabs.js +367 -0
  235. package/dist/components/tabs/snice-tabs.js.map +1 -0
  236. package/dist/components/tabs/snice-tabs.types.d.ts +23 -0
  237. package/dist/components/tabs/snice-tabs.types.js +2 -0
  238. package/dist/components/tabs/snice-tabs.types.js.map +1 -0
  239. package/dist/components/toast/snice-toast-container.d.ts +25 -0
  240. package/dist/components/toast/snice-toast-container.js +251 -0
  241. package/dist/components/toast/snice-toast-container.js.map +1 -0
  242. package/dist/components/toast/snice-toast.d.ts +23 -0
  243. package/dist/components/toast/snice-toast.js +316 -0
  244. package/dist/components/toast/snice-toast.js.map +1 -0
  245. package/dist/components/toast/snice-toast.types.d.ts +30 -0
  246. package/dist/components/toast/snice-toast.types.js +2 -0
  247. package/dist/components/toast/snice-toast.types.js.map +1 -0
  248. package/dist/components/tooltip/snice-tooltip.d.ts +50 -0
  249. package/dist/components/tooltip/snice-tooltip.js +656 -0
  250. package/dist/components/tooltip/snice-tooltip.js.map +1 -0
  251. package/dist/components/tooltip/snice-tooltip.types.d.ts +18 -0
  252. package/dist/components/tooltip/snice-tooltip.types.js +2 -0
  253. package/dist/components/tooltip/snice-tooltip.types.js.map +1 -0
  254. package/dist/components/transitions.d.ts +11 -0
  255. package/dist/components/transitions.js +69 -0
  256. package/dist/components/transitions.js.map +1 -0
  257. package/dist/src/controller.d.ts +61 -0
  258. package/dist/src/controller.js +297 -0
  259. package/dist/src/controller.js.map +1 -0
  260. package/dist/src/element.d.ts +77 -0
  261. package/dist/src/element.js +805 -0
  262. package/dist/src/element.js.map +1 -0
  263. package/dist/src/events.d.ts +37 -0
  264. package/dist/src/events.js +289 -0
  265. package/dist/src/events.js.map +1 -0
  266. package/dist/src/global.d.ts +7 -0
  267. package/dist/src/global.js +23 -0
  268. package/dist/src/global.js.map +1 -0
  269. package/{src/index.ts → dist/src/index.d.ts} +1 -1
  270. package/dist/src/index.js +8 -0
  271. package/dist/src/index.js.map +1 -0
  272. package/dist/src/observe.d.ts +26 -0
  273. package/dist/src/observe.js +329 -0
  274. package/dist/src/observe.js.map +1 -0
  275. package/dist/src/request-response.d.ts +46 -0
  276. package/dist/src/request-response.js +267 -0
  277. package/dist/src/request-response.js.map +1 -0
  278. package/dist/src/router.d.ts +87 -0
  279. package/dist/src/router.js +375 -0
  280. package/dist/src/router.js.map +1 -0
  281. package/dist/src/symbols.d.ts +29 -0
  282. package/{src/symbols.ts → dist/src/symbols.js} +2 -12
  283. package/dist/src/symbols.js.map +1 -0
  284. package/dist/src/transitions.d.ts +50 -0
  285. package/dist/src/transitions.js +199 -0
  286. package/dist/src/transitions.js.map +1 -0
  287. package/package.json +6 -8
  288. package/src/controller.ts +0 -347
  289. package/src/element.ts +0 -897
  290. package/src/events.ts +0 -349
  291. package/src/global.ts +0 -31
  292. package/src/observe.ts +0 -414
  293. package/src/request-response.ts +0 -336
  294. package/src/router.ts +0 -552
  295. package/src/transitions.ts +0 -264
@@ -0,0 +1,814 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { element, on, property, query, request, dispatch, watch } from '../../src/index';
11
+ import '../input/snice-input';
12
+ import '../select/snice-select';
13
+ import './snice-cell.ts';
14
+ import './snice-cell-text.ts';
15
+ import './snice-cell-number.ts';
16
+ import './snice-cell-date.ts';
17
+ import './snice-cell-boolean.ts';
18
+ import './snice-cell-rating.ts';
19
+ import './snice-cell-progress.ts';
20
+ import './snice-cell-duration.ts';
21
+ import './snice-cell-filesize.ts';
22
+ import './snice-cell-sparkline.ts';
23
+ let SniceTable = class SniceTable extends HTMLElement {
24
+ constructor() {
25
+ super(...arguments);
26
+ this.striped = false;
27
+ this.searchable = false;
28
+ this.sortable = false;
29
+ this.selectable = false;
30
+ this.hoverable = true;
31
+ this.clickable = false;
32
+ this.columns = [];
33
+ this.data = [];
34
+ this.currentSort = [];
35
+ this.searchText = '';
36
+ this.selector = '';
37
+ this.selectorOptions = [];
38
+ this.loading = false;
39
+ this.selectedRows = [];
40
+ this.dataRequestTimeout = null;
41
+ }
42
+ async *getTableConfig() {
43
+ const config = await (yield {});
44
+ this.columns = config.columns || [];
45
+ this.selectorOptions = config.selectorOptions || [];
46
+ this.render();
47
+ return config;
48
+ }
49
+ async *getTableData() {
50
+ this.loading = true;
51
+ this.selectedRows = []; // Clear selections when loading new data
52
+ try {
53
+ const params = {
54
+ search: this.searchText,
55
+ sort: this.currentSort,
56
+ selector: this.selector
57
+ };
58
+ console.log('Requesting table data with params:', params);
59
+ const response = await (yield params);
60
+ console.log('Received table data response:', response);
61
+ this.data = response.data || [];
62
+ this.loading = false;
63
+ this.render();
64
+ return response;
65
+ }
66
+ catch (error) {
67
+ console.error('Error loading table data:', error);
68
+ this.data = [];
69
+ this.loading = false;
70
+ this.render();
71
+ }
72
+ }
73
+ debouncedDataRequest() {
74
+ // Set loading immediately for instant feedback
75
+ if (!this.loading) {
76
+ this.loading = true;
77
+ }
78
+ if (this.dataRequestTimeout) {
79
+ clearTimeout(this.dataRequestTimeout);
80
+ }
81
+ this.dataRequestTimeout = setTimeout(() => {
82
+ this.getTableData();
83
+ this.dataRequestTimeout = null;
84
+ }, 500);
85
+ }
86
+ css() {
87
+ return /*css*/ `
88
+ :host {
89
+ display: block;
90
+ }
91
+
92
+ .snice-table {
93
+ border-collapse: collapse;
94
+ width: 100%;
95
+ }
96
+
97
+ table {
98
+ width: 100%;
99
+ border-collapse: separate;
100
+ border-spacing: 0;
101
+ border-radius: var(--snice-border-radius-lg);
102
+ overflow: hidden;
103
+ border: 1px solid var(--snice-color-border);
104
+ }
105
+
106
+ th, td {
107
+ padding: var(--snice-spacing-sm);
108
+ border: 1px solid var(--snice-color-border);
109
+ text-align: left;
110
+ color: var(--snice-color-text);
111
+ }
112
+
113
+ th {
114
+ background-color: var(--snice-color-background-secondary);
115
+ color: var(--snice-color-text);
116
+ font-weight: var(--snice-font-weight-semibold);
117
+ border-bottom: 2px solid var(--snice-color-border);
118
+ }
119
+
120
+ th.sortable {
121
+ cursor: pointer;
122
+ user-select: none;
123
+ }
124
+
125
+ th.sortable:hover {
126
+ background-color: var(--snice-color-background-tertiary);
127
+ }
128
+
129
+ /* Row styling */
130
+ :host([striped]) tbody tr:nth-child(even) {
131
+ background-color: var(--snice-color-background-secondary);
132
+ }
133
+
134
+ :host([hoverable]) tbody tr:hover {
135
+ background-color: var(--snice-color-background-tertiary);
136
+ }
137
+
138
+ :host([clickable]) tbody tr {
139
+ cursor: pointer;
140
+ }
141
+
142
+ :host([selectable]) tbody tr {
143
+ cursor: pointer;
144
+ }
145
+
146
+ tbody tr[data-selected="true"] {
147
+ background-color: var(--snice-color-background-tertiary);
148
+ border-left: 3px solid var(--snice-color-primary);
149
+ }
150
+
151
+ tbody tr[data-selected="true"]:hover {
152
+ background-color: var(--snice-color-background-tertiary);
153
+ }
154
+
155
+ [part="header"] {
156
+ background-color: var(--snice-color-background);
157
+ }
158
+
159
+ [part="body"] {
160
+ background-color: var(--snice-table-body-bg, --snice-color-background);
161
+ display: block;
162
+ }
163
+
164
+ .table-controls {
165
+ display: flex;
166
+ gap: var(--snice-spacing-md);
167
+ align-items: center;
168
+ flex-wrap: wrap;
169
+ }
170
+
171
+ :host(:not([searchable])) .search-input {
172
+ display: none;
173
+ }
174
+
175
+ :host(.selector-options-empty) .selector-input {
176
+ display: none;
177
+ }
178
+
179
+ .search-input {
180
+ min-width: 200px;
181
+ flex: 1;
182
+ }
183
+
184
+ .selector-input {
185
+ min-width: 150px;
186
+ }
187
+
188
+ /* Sort indicators */
189
+ .sort-header {
190
+ display: flex;
191
+ align-items: center;
192
+ gap: var(--snice-spacing-xs);
193
+ justify-content: space-between;
194
+ }
195
+
196
+
197
+ .sort-indicator {
198
+ display: flex;
199
+ flex-direction: column;
200
+ font-size: 0.7em;
201
+ line-height: 1;
202
+ opacity: 0.3;
203
+ transition: opacity var(--snice-transition-fast);
204
+ }
205
+
206
+ .sort-indicator.active {
207
+ opacity: 1;
208
+ }
209
+
210
+ .sort-order {
211
+ font-size: 0.6em;
212
+ background: var(--snice-color-primary);
213
+ color: var(--snice-color-text-inverse);
214
+ border-radius: var(--snice-border-radius-sm);
215
+ padding: 1px 3px;
216
+ min-width: 12px;
217
+ text-align: center;
218
+ }
219
+
220
+ /* Loading fade */
221
+ tbody {
222
+ transition: opacity var(--snice-transition-normal);
223
+ }
224
+
225
+ :host([loading]) tbody {
226
+ opacity: 0.5;
227
+ }
228
+
229
+ .no-data {
230
+ text-align: center;
231
+ padding: var(--snice-spacing-lg);
232
+ color: var(--snice-color-text-secondary);
233
+ }
234
+ `;
235
+ }
236
+ html() {
237
+ return /*html*/ `
238
+ <div class="snice-table">
239
+ ${this.renderControls()}
240
+ <table>
241
+ <thead></thead>
242
+ <tbody></tbody>
243
+ </table>
244
+ </div>
245
+ `;
246
+ }
247
+ renderControls() {
248
+ return /*html*/ `
249
+ <div class="table-controls" part="controls">
250
+ <snice-input
251
+ class="search-input"
252
+ type="search"
253
+ placeholder="Search..."
254
+ value="${this.searchText}"
255
+ size="medium"
256
+ ></snice-input>
257
+ <snice-select
258
+ class="selector-input"
259
+ multiple
260
+ searchable
261
+ clearable
262
+ placeholder="Filter..."
263
+ size="medium"
264
+ >
265
+ ${this.selectorOptions.map(opt => `<snice-option value="${opt.value}">${opt.label}</snice-option>`).join('')}
266
+ </snice-select>
267
+ </div>
268
+ `;
269
+ }
270
+ render() {
271
+ console.log('render() called');
272
+ this.renderHeader();
273
+ this.renderBody();
274
+ }
275
+ handleSelectorOptionsChange() {
276
+ // Update CSS class to show/hide selector
277
+ if (this.selectorOptions.length === 0) {
278
+ this.classList.add('selector-options-empty');
279
+ }
280
+ else {
281
+ this.classList.remove('selector-options-empty');
282
+ }
283
+ }
284
+ handleSortableChange() {
285
+ this.renderHeader(); // Re-render header to show/hide sort indicators
286
+ }
287
+ handleSelectableChange() {
288
+ this.render(); // Re-render both header and body for checkbox columns
289
+ }
290
+ handleColumnsChange() {
291
+ this.renderHeader();
292
+ }
293
+ handleDataChange() {
294
+ this.renderBody();
295
+ }
296
+ handleSelectedRowsChange() {
297
+ this.updateRowSelectionState();
298
+ this.updateSelectAllState();
299
+ }
300
+ handleSortChange() {
301
+ this.renderHeader();
302
+ }
303
+ renderHeader() {
304
+ if (!this.thead)
305
+ return;
306
+ const headerRow = document.createElement('tr');
307
+ if (this.selectable) {
308
+ const selectCell = document.createElement('th');
309
+ const allSelected = this.selectedRows.length === this.data.length && this.data.length > 0;
310
+ const someSelected = this.selectedRows.length > 0 && this.selectedRows.length < this.data.length;
311
+ selectCell.innerHTML = `<input type="checkbox" class="select-all" ${allSelected ? 'checked' : ''} />`;
312
+ headerRow.appendChild(selectCell);
313
+ // Set indeterminate after insertion
314
+ setTimeout(() => {
315
+ const checkbox = selectCell.querySelector('.select-all');
316
+ if (checkbox) {
317
+ checkbox.indeterminate = someSelected;
318
+ }
319
+ }, 0);
320
+ }
321
+ this.columns.forEach(column => {
322
+ const th = document.createElement('th');
323
+ th.setAttribute('data-key', column.key);
324
+ if (this.sortable && column.sortable !== false) {
325
+ th.classList.add('sortable');
326
+ th.setAttribute('role', 'button');
327
+ th.innerHTML = this.renderSortableHeader(column);
328
+ }
329
+ else {
330
+ th.textContent = column.label;
331
+ }
332
+ headerRow.appendChild(th);
333
+ });
334
+ this.thead.innerHTML = '';
335
+ this.thead.appendChild(headerRow);
336
+ }
337
+ renderSortableHeader(column) {
338
+ const sortItem = this.currentSort.find(s => s.column === column.key);
339
+ const sortIndex = this.currentSort.findIndex(s => s.column === column.key);
340
+ const isActive = !!sortItem;
341
+ let indicator = '▲▼'; // Default unsorted state
342
+ let orderNumber = '';
343
+ if (sortItem) {
344
+ if (sortItem.direction === 'asc') {
345
+ indicator = '▲';
346
+ }
347
+ else if (sortItem.direction === 'desc') {
348
+ indicator = '▼';
349
+ }
350
+ if (this.currentSort.length > 1) {
351
+ orderNumber = `<span class="sort-order">${sortIndex + 1}</span>`;
352
+ }
353
+ }
354
+ return `
355
+ <div class="sort-header">
356
+ <span>${column.label}</span>
357
+ <div class="sort-indicator ${isActive ? 'active' : ''}">
358
+ ${indicator}
359
+ ${orderNumber}
360
+ </div>
361
+ </div>
362
+ `;
363
+ }
364
+ renderBody() {
365
+ if (!this.tbody)
366
+ return;
367
+ console.log('renderBody called with data:', this.data.length, 'columns:', this.columns.length, 'loading:', this.loading);
368
+ this.tbody.innerHTML = '';
369
+ if (this.data.length === 0 && this.columns.length > 0) {
370
+ if (this.loading) {
371
+ // Show loading spinner
372
+ const tr = document.createElement('tr');
373
+ const td = document.createElement('td');
374
+ const colSpan = this.columns.length + (this.selectable ? 1 : 0);
375
+ td.colSpan = colSpan;
376
+ td.className = 'no-data';
377
+ td.innerHTML = '<snice-progress variant="circular" indeterminate size="small"></snice-progress>';
378
+ tr.appendChild(td);
379
+ this.tbody.appendChild(tr);
380
+ return;
381
+ }
382
+ else {
383
+ // Show "No Data" message
384
+ const tr = document.createElement('tr');
385
+ const td = document.createElement('td');
386
+ const colSpan = this.columns.length + (this.selectable ? 1 : 0);
387
+ td.colSpan = colSpan;
388
+ td.className = 'no-data';
389
+ td.textContent = 'No Data';
390
+ tr.appendChild(td);
391
+ this.tbody.appendChild(tr);
392
+ return;
393
+ }
394
+ }
395
+ this.data.forEach((rowData, index) => {
396
+ const tr = document.createElement('tr');
397
+ tr.setAttribute('data-index', String(index));
398
+ // Set row selection state
399
+ const isSelected = this.selectedRows.includes(index);
400
+ tr.setAttribute('data-selected', String(isSelected));
401
+ if (this.selectable) {
402
+ const selectCell = document.createElement('td');
403
+ selectCell.innerHTML = `<input type="checkbox" class="row-select" ${isSelected ? 'checked' : ''} data-row-index="${index}" />`;
404
+ tr.appendChild(selectCell);
405
+ }
406
+ this.columns.forEach(column => {
407
+ const td = document.createElement('td');
408
+ const value = rowData[column.key];
409
+ // Create cell component as HTML string
410
+ const cellTagName = this.getCellTagName(column.type);
411
+ const attributes = this.getCellAttributes(column, value);
412
+ td.innerHTML = `<${cellTagName} ${attributes}></${cellTagName}>`;
413
+ tr.appendChild(td);
414
+ });
415
+ this.tbody.appendChild(tr);
416
+ });
417
+ }
418
+ getCellAttributes(column, value) {
419
+ const attributes = [
420
+ `type="${column.type}"`,
421
+ `align="${column.align || 'left'}"`,
422
+ `value="${String(value || '').replace(/"/g, '&quot;')}"`,
423
+ `in-table="true"`
424
+ ];
425
+ // Add type-specific attributes
426
+ if (column.type === 'number' || column.type === 'currency') {
427
+ if (column.decimals !== undefined)
428
+ attributes.push(`decimals="${column.decimals}"`);
429
+ if (column.thousandsSeparator)
430
+ attributes.push(`thousands-separator="true"`);
431
+ if (column.prefix)
432
+ attributes.push(`prefix="${column.prefix}"`);
433
+ if (column.suffix)
434
+ attributes.push(`suffix="${column.suffix}"`);
435
+ }
436
+ if (column.type === 'date') {
437
+ if (column.dateFormat)
438
+ attributes.push(`date-format="${column.dateFormat}"`);
439
+ }
440
+ if (column.type === 'boolean') {
441
+ if (column.useSymbols)
442
+ attributes.push(`use-symbols="true"`);
443
+ if (column.trueSymbol)
444
+ attributes.push(`true-symbol="${column.trueSymbol}"`);
445
+ if (column.falseSymbol)
446
+ attributes.push(`false-symbol="${column.falseSymbol}"`);
447
+ if (column.trueValue)
448
+ attributes.push(`true-value="${column.trueValue}"`);
449
+ if (column.falseValue)
450
+ attributes.push(`false-value="${column.falseValue}"`);
451
+ }
452
+ return attributes.join(' ');
453
+ }
454
+ getCellTagName(type) {
455
+ switch (type) {
456
+ case 'text':
457
+ return 'snice-cell-text';
458
+ case 'number':
459
+ case 'currency':
460
+ return 'snice-cell-number';
461
+ case 'date':
462
+ return 'snice-cell-date';
463
+ case 'boolean':
464
+ return 'snice-cell-boolean';
465
+ case 'rating':
466
+ return 'snice-cell-rating';
467
+ case 'progress':
468
+ return 'snice-cell-progress';
469
+ case 'duration':
470
+ return 'snice-cell-duration';
471
+ case 'filesize':
472
+ return 'snice-cell-filesize';
473
+ case 'sparkline':
474
+ return 'snice-cell-sparkline';
475
+ default:
476
+ return 'snice-cell';
477
+ }
478
+ }
479
+ handleSort(e) {
480
+ const th = e.target.closest('th.sortable');
481
+ if (!th)
482
+ return;
483
+ const columnKey = th.getAttribute('data-key');
484
+ if (columnKey) {
485
+ console.log('Sorting column:', columnKey);
486
+ this.toggleSort(columnKey, true); // Always multi-sort
487
+ }
488
+ }
489
+ handleRowSelect(e) {
490
+ const checkbox = e.target;
491
+ const rowIndex = parseInt(checkbox.getAttribute('data-row-index') || '0');
492
+ if (checkbox.checked) {
493
+ if (!this.selectedRows.includes(rowIndex)) {
494
+ this.selectedRows = [...this.selectedRows, rowIndex];
495
+ }
496
+ }
497
+ else {
498
+ this.selectedRows = this.selectedRows.filter(i => i !== rowIndex);
499
+ }
500
+ this.updateRowSelectionState();
501
+ this.updateSelectAllState();
502
+ this.dispatchRowSelectionChanged(rowIndex, checkbox.checked);
503
+ }
504
+ handleSelectAll(e) {
505
+ const checkbox = e.target;
506
+ if (checkbox.checked) {
507
+ this.selectedRows = this.data.map((_, index) => index);
508
+ }
509
+ else {
510
+ this.selectedRows = [];
511
+ }
512
+ this.updateRowSelectionState();
513
+ this.dispatchSelectAllChanged(checkbox.checked);
514
+ }
515
+ handleRowClick(e) {
516
+ const tr = e.target.closest('tr');
517
+ if (!tr)
518
+ return;
519
+ const target = e.target;
520
+ // Don't trigger if clicking on checkbox or other interactive elements
521
+ if (target.matches('input[type="checkbox"], button, a, .interactive')) {
522
+ return;
523
+ }
524
+ const rowIndex = parseInt(tr.getAttribute('data-index') || '0');
525
+ const rowData = this.data[rowIndex];
526
+ // Handle row selection if selectable
527
+ if (this.selectable) {
528
+ const isCurrentlySelected = this.selectedRows.includes(rowIndex);
529
+ if (isCurrentlySelected) {
530
+ this.selectedRows = this.selectedRows.filter(i => i !== rowIndex);
531
+ }
532
+ else {
533
+ this.selectedRows = [...this.selectedRows, rowIndex];
534
+ }
535
+ this.updateRowSelectionState();
536
+ this.updateSelectAllState();
537
+ this.dispatchRowSelectionChanged(rowIndex, !isCurrentlySelected);
538
+ }
539
+ // Handle clickable row event
540
+ if (this.clickable) {
541
+ this.dispatchEvent(new CustomEvent('row-clicked', {
542
+ detail: { rowData, rowIndex }
543
+ }));
544
+ }
545
+ }
546
+ onAttached() {
547
+ console.log('Controller attached, loading config and data...');
548
+ this.getTableConfig();
549
+ this.getTableData();
550
+ }
551
+ handleSearchChange(e) {
552
+ const input = e.target;
553
+ this.searchText = input.value;
554
+ this.debouncedDataRequest();
555
+ }
556
+ handleSelectorChange(e) {
557
+ this.selector = Array.isArray(e.detail.value) ? e.detail.value.join(',') : e.detail.value;
558
+ this.debouncedDataRequest();
559
+ }
560
+ updateRowSelectionState() {
561
+ if (!this.tbody)
562
+ return;
563
+ const rows = this.tbody.querySelectorAll('tr');
564
+ rows.forEach((row, index) => {
565
+ const isSelected = this.selectedRows.includes(index);
566
+ row.setAttribute('data-selected', String(isSelected));
567
+ const checkbox = row.querySelector('.row-select');
568
+ if (checkbox) {
569
+ checkbox.checked = isSelected;
570
+ }
571
+ });
572
+ }
573
+ updateSelectAllState() {
574
+ const selectAllCheckbox = this.thead?.querySelector('.select-all');
575
+ if (!selectAllCheckbox)
576
+ return;
577
+ const allSelected = this.selectedRows.length === this.data.length;
578
+ const someSelected = this.selectedRows.length > 0 && this.selectedRows.length < this.data.length;
579
+ selectAllCheckbox.checked = allSelected;
580
+ selectAllCheckbox.indeterminate = someSelected;
581
+ }
582
+ toggleSort(columnKey, multiSort = false) {
583
+ console.log('toggleSort called:', { columnKey, multiSort, currentSort: this.currentSort });
584
+ if (!multiSort) {
585
+ // Single column sort - clear all other sorts
586
+ const existingSort = this.currentSort.find(s => s.column === columnKey);
587
+ if (!existingSort) {
588
+ this.currentSort = [{ column: columnKey, direction: 'asc' }];
589
+ }
590
+ else if (existingSort.direction === 'asc') {
591
+ this.currentSort = [{ column: columnKey, direction: 'desc' }];
592
+ }
593
+ else {
594
+ this.currentSort = [];
595
+ }
596
+ }
597
+ else {
598
+ // Multi column sort - modify existing or add new
599
+ const existingSortIndex = this.currentSort.findIndex(s => s.column === columnKey);
600
+ if (existingSortIndex === -1) {
601
+ // Add new sort
602
+ this.currentSort = [...this.currentSort, { column: columnKey, direction: 'asc' }];
603
+ }
604
+ else {
605
+ const existingSort = this.currentSort[existingSortIndex];
606
+ if (existingSort.direction === 'asc') {
607
+ // Change to desc - create new array to trigger reactivity
608
+ this.currentSort = this.currentSort.map((sort, index) => index === existingSortIndex ? { ...sort, direction: 'desc' } : sort);
609
+ }
610
+ else {
611
+ // Remove this sort
612
+ this.currentSort = this.currentSort.filter(s => s.column !== columnKey);
613
+ }
614
+ }
615
+ }
616
+ console.log('New sort state:', this.currentSort);
617
+ this.renderHeader(); // Update sort indicators immediately
618
+ this.debouncedDataRequest(); // Show loading immediately, debounce the actual request
619
+ }
620
+ dispatchRowSelectionChanged(rowIndex, selected) {
621
+ return {
622
+ selectedRows: this.selectedRows,
623
+ rowIndex,
624
+ selected
625
+ };
626
+ }
627
+ dispatchSelectAllChanged(allSelected) {
628
+ return {
629
+ selectedRows: this.selectedRows,
630
+ allSelected
631
+ };
632
+ }
633
+ };
634
+ __decorate([
635
+ property({ type: Boolean, reflect: true, attribute: 'striped' }),
636
+ __metadata("design:type", Object)
637
+ ], SniceTable.prototype, "striped", void 0);
638
+ __decorate([
639
+ property({ type: Boolean, reflect: true, attribute: 'searchable' }),
640
+ __metadata("design:type", Object)
641
+ ], SniceTable.prototype, "searchable", void 0);
642
+ __decorate([
643
+ property({ type: Boolean, reflect: true, attribute: 'sortable' }),
644
+ __metadata("design:type", Object)
645
+ ], SniceTable.prototype, "sortable", void 0);
646
+ __decorate([
647
+ property({ type: Boolean, reflect: true, attribute: 'selectable' }),
648
+ __metadata("design:type", Object)
649
+ ], SniceTable.prototype, "selectable", void 0);
650
+ __decorate([
651
+ property({ type: Boolean, reflect: true, attribute: 'hoverable' }),
652
+ __metadata("design:type", Object)
653
+ ], SniceTable.prototype, "hoverable", void 0);
654
+ __decorate([
655
+ property({ type: Boolean, reflect: true, attribute: 'clickable' }),
656
+ __metadata("design:type", Object)
657
+ ], SniceTable.prototype, "clickable", void 0);
658
+ __decorate([
659
+ property({ type: Array, attribute: 'columns' }),
660
+ __metadata("design:type", Array)
661
+ ], SniceTable.prototype, "columns", void 0);
662
+ __decorate([
663
+ property({ type: Array, attribute: 'data' }),
664
+ __metadata("design:type", Array)
665
+ ], SniceTable.prototype, "data", void 0);
666
+ __decorate([
667
+ property({ type: Array, attribute: 'current-sort' }),
668
+ __metadata("design:type", Array)
669
+ ], SniceTable.prototype, "currentSort", void 0);
670
+ __decorate([
671
+ property({ type: String, attribute: 'search-text' }),
672
+ __metadata("design:type", String)
673
+ ], SniceTable.prototype, "searchText", void 0);
674
+ __decorate([
675
+ property({ type: String, attribute: 'selector' }),
676
+ __metadata("design:type", String)
677
+ ], SniceTable.prototype, "selector", void 0);
678
+ __decorate([
679
+ property({ type: Array, attribute: 'selector-options' }),
680
+ __metadata("design:type", Array)
681
+ ], SniceTable.prototype, "selectorOptions", void 0);
682
+ __decorate([
683
+ property({ type: Boolean, reflect: true, attribute: 'loading' }),
684
+ __metadata("design:type", Boolean)
685
+ ], SniceTable.prototype, "loading", void 0);
686
+ __decorate([
687
+ property({ type: Array, attribute: 'selected-rows' }),
688
+ __metadata("design:type", Array)
689
+ ], SniceTable.prototype, "selectedRows", void 0);
690
+ __decorate([
691
+ query('table'),
692
+ __metadata("design:type", HTMLTableElement)
693
+ ], SniceTable.prototype, "table", void 0);
694
+ __decorate([
695
+ query('thead'),
696
+ __metadata("design:type", HTMLTableSectionElement)
697
+ ], SniceTable.prototype, "thead", void 0);
698
+ __decorate([
699
+ query('tbody'),
700
+ __metadata("design:type", HTMLTableSectionElement)
701
+ ], SniceTable.prototype, "tbody", void 0);
702
+ __decorate([
703
+ request('@snice/table/config'),
704
+ __metadata("design:type", Function),
705
+ __metadata("design:paramtypes", []),
706
+ __metadata("design:returntype", Object)
707
+ ], SniceTable.prototype, "getTableConfig", null);
708
+ __decorate([
709
+ request('@snice/table/data'),
710
+ __metadata("design:type", Function),
711
+ __metadata("design:paramtypes", []),
712
+ __metadata("design:returntype", Object)
713
+ ], SniceTable.prototype, "getTableData", null);
714
+ __decorate([
715
+ watch('selector-options'),
716
+ __metadata("design:type", Function),
717
+ __metadata("design:paramtypes", []),
718
+ __metadata("design:returntype", void 0)
719
+ ], SniceTable.prototype, "handleSelectorOptionsChange", null);
720
+ __decorate([
721
+ watch('sortable'),
722
+ __metadata("design:type", Function),
723
+ __metadata("design:paramtypes", []),
724
+ __metadata("design:returntype", void 0)
725
+ ], SniceTable.prototype, "handleSortableChange", null);
726
+ __decorate([
727
+ watch('selectable'),
728
+ __metadata("design:type", Function),
729
+ __metadata("design:paramtypes", []),
730
+ __metadata("design:returntype", void 0)
731
+ ], SniceTable.prototype, "handleSelectableChange", null);
732
+ __decorate([
733
+ watch('columns'),
734
+ __metadata("design:type", Function),
735
+ __metadata("design:paramtypes", []),
736
+ __metadata("design:returntype", void 0)
737
+ ], SniceTable.prototype, "handleColumnsChange", null);
738
+ __decorate([
739
+ watch('data', 'loading'),
740
+ __metadata("design:type", Function),
741
+ __metadata("design:paramtypes", []),
742
+ __metadata("design:returntype", void 0)
743
+ ], SniceTable.prototype, "handleDataChange", null);
744
+ __decorate([
745
+ watch('selected-rows'),
746
+ __metadata("design:type", Function),
747
+ __metadata("design:paramtypes", []),
748
+ __metadata("design:returntype", void 0)
749
+ ], SniceTable.prototype, "handleSelectedRowsChange", null);
750
+ __decorate([
751
+ watch('current-sort'),
752
+ __metadata("design:type", Function),
753
+ __metadata("design:paramtypes", []),
754
+ __metadata("design:returntype", void 0)
755
+ ], SniceTable.prototype, "handleSortChange", null);
756
+ __decorate([
757
+ on('click', 'th.sortable'),
758
+ __metadata("design:type", Function),
759
+ __metadata("design:paramtypes", [MouseEvent]),
760
+ __metadata("design:returntype", void 0)
761
+ ], SniceTable.prototype, "handleSort", null);
762
+ __decorate([
763
+ on('change', '.row-select'),
764
+ __metadata("design:type", Function),
765
+ __metadata("design:paramtypes", [Event]),
766
+ __metadata("design:returntype", void 0)
767
+ ], SniceTable.prototype, "handleRowSelect", null);
768
+ __decorate([
769
+ on('change', '.select-all'),
770
+ __metadata("design:type", Function),
771
+ __metadata("design:paramtypes", [Event]),
772
+ __metadata("design:returntype", void 0)
773
+ ], SniceTable.prototype, "handleSelectAll", null);
774
+ __decorate([
775
+ on('click', 'tbody tr'),
776
+ __metadata("design:type", Function),
777
+ __metadata("design:paramtypes", [Event]),
778
+ __metadata("design:returntype", void 0)
779
+ ], SniceTable.prototype, "handleRowClick", null);
780
+ __decorate([
781
+ on('@snice/controller-attached'),
782
+ __metadata("design:type", Function),
783
+ __metadata("design:paramtypes", []),
784
+ __metadata("design:returntype", void 0)
785
+ ], SniceTable.prototype, "onAttached", null);
786
+ __decorate([
787
+ on('input', '.search-input', { debounce: 500 }),
788
+ __metadata("design:type", Function),
789
+ __metadata("design:paramtypes", [Event]),
790
+ __metadata("design:returntype", void 0)
791
+ ], SniceTable.prototype, "handleSearchChange", null);
792
+ __decorate([
793
+ on('@snice/select/change', '.selector-input', { debounce: 150 }),
794
+ __metadata("design:type", Function),
795
+ __metadata("design:paramtypes", [CustomEvent]),
796
+ __metadata("design:returntype", void 0)
797
+ ], SniceTable.prototype, "handleSelectorChange", null);
798
+ __decorate([
799
+ dispatch('@snice/table/row-selection-changed', { bubbles: true, composed: true }),
800
+ __metadata("design:type", Function),
801
+ __metadata("design:paramtypes", [Number, Boolean]),
802
+ __metadata("design:returntype", void 0)
803
+ ], SniceTable.prototype, "dispatchRowSelectionChanged", null);
804
+ __decorate([
805
+ dispatch('@snice/table/select-all-changed', { bubbles: true, composed: true }),
806
+ __metadata("design:type", Function),
807
+ __metadata("design:paramtypes", [Boolean]),
808
+ __metadata("design:returntype", void 0)
809
+ ], SniceTable.prototype, "dispatchSelectAllChanged", null);
810
+ SniceTable = __decorate([
811
+ element('snice-table')
812
+ ], SniceTable);
813
+ export { SniceTable };
814
+ //# sourceMappingURL=snice-table.js.map