@paperless/core 0.1.0-alpha.336 → 0.1.0-alpha.338

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 (256) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/build/p-10530c5e.entry.js +2 -0
  3. package/dist/build/p-10530c5e.entry.js.map +1 -0
  4. package/dist/build/p-1b5cdff7.entry.js +2 -0
  5. package/dist/build/{p-1c2cc466.entry.js.map → p-1b5cdff7.entry.js.map} +1 -1
  6. package/dist/{paperless/p-61cc1cd9.entry.js → build/p-3350a2cf.entry.js} +2 -2
  7. package/dist/build/{p-61cc1cd9.entry.js.map → p-3350a2cf.entry.js.map} +1 -1
  8. package/dist/build/p-36f29499.entry.js +2 -0
  9. package/dist/{paperless/p-ab08ea2e.entry.js.map → build/p-36f29499.entry.js.map} +1 -1
  10. package/dist/build/{p-34e4e210.entry.js → p-5dfab26d.entry.js} +2 -2
  11. package/dist/build/{p-34e4e210.entry.js.map → p-5dfab26d.entry.js.map} +1 -1
  12. package/dist/build/p-73bfcf97.entry.js +2 -0
  13. package/dist/build/{p-7f40fbbf.entry.js.map → p-73bfcf97.entry.js.map} +1 -1
  14. package/dist/build/p-852a5331.entry.js +2 -0
  15. package/dist/build/{p-ca7644aa.entry.js.map → p-852a5331.entry.js.map} +1 -1
  16. package/dist/build/p-9c0a4d88.entry.js +2 -0
  17. package/dist/build/p-9c0a4d88.entry.js.map +1 -0
  18. package/dist/build/p-bff2caf8.entry.js +2 -0
  19. package/dist/{paperless/p-150f371d.entry.js.map → build/p-bff2caf8.entry.js.map} +1 -1
  20. package/dist/build/p-c922ccc7.entry.js +2 -0
  21. package/dist/build/{p-004d55ea.entry.js.map → p-c922ccc7.entry.js.map} +1 -1
  22. package/dist/build/p-e20ff8c8.entry.js +2 -0
  23. package/dist/build/p-e20ff8c8.entry.js.map +1 -0
  24. package/dist/{paperless/p-7584e581.entry.js → build/p-e35b3886.entry.js} +2 -2
  25. package/dist/build/{p-7584e581.entry.js.map → p-e35b3886.entry.js.map} +0 -0
  26. package/dist/build/p-e6227583.entry.js +2 -0
  27. package/dist/build/{p-a4e7ec85.entry.js.map → p-e6227583.entry.js.map} +1 -1
  28. package/dist/build/{p-165b2597.entry.js → p-ebd3f360.entry.js} +2 -2
  29. package/dist/build/{p-165b2597.entry.js.map → p-ebd3f360.entry.js.map} +1 -1
  30. package/dist/build/paperless.css +1 -1
  31. package/dist/build/paperless.esm.js +1 -1
  32. package/dist/build/paperless.esm.js.map +1 -1
  33. package/dist/cjs/index-19716b9c.js +8 -0
  34. package/dist/cjs/loader.cjs.js +1 -1
  35. package/dist/cjs/p-attachment.cjs.entry.js +38 -0
  36. package/dist/cjs/p-attachment.cjs.entry.js.map +1 -0
  37. package/dist/cjs/p-backdrop.cjs.entry.js +1 -1
  38. package/dist/cjs/p-backdrop.cjs.entry.js.map +1 -1
  39. package/dist/cjs/p-button_3.cjs.entry.js +3 -3
  40. package/dist/cjs/p-button_3.cjs.entry.js.map +1 -1
  41. package/dist/cjs/p-divider.cjs.entry.js +1 -1
  42. package/dist/cjs/p-dropdown-menu-container.cjs.entry.js +1 -1
  43. package/dist/cjs/p-dropdown-menu-container.cjs.entry.js.map +1 -1
  44. package/dist/cjs/p-dropdown_2.cjs.entry.js +2 -2
  45. package/dist/cjs/p-dropdown_2.cjs.entry.js.map +1 -1
  46. package/dist/cjs/p-helper_3.cjs.entry.js +19 -126
  47. package/dist/cjs/p-helper_3.cjs.entry.js.map +1 -1
  48. package/dist/cjs/p-illustration_6.cjs.entry.js +5 -5
  49. package/dist/cjs/p-illustration_6.cjs.entry.js.map +1 -1
  50. package/dist/cjs/p-label_3.cjs.entry.js +3 -3
  51. package/dist/cjs/p-label_3.cjs.entry.js.map +1 -1
  52. package/dist/cjs/p-modal-body_4.cjs.entry.js +4 -4
  53. package/dist/cjs/p-modal-body_4.cjs.entry.js.map +1 -1
  54. package/dist/cjs/p-page-size-select_3.cjs.entry.js +2 -2
  55. package/dist/cjs/p-page-size-select_3.cjs.entry.js.map +1 -1
  56. package/dist/cjs/p-stepper-item_2.cjs.entry.js +2 -2
  57. package/dist/cjs/p-stepper-item_2.cjs.entry.js.map +1 -1
  58. package/dist/cjs/p-table.cjs.entry.js +1 -1
  59. package/dist/cjs/p-table.cjs.entry.js.map +1 -1
  60. package/dist/cjs/p-tooltip.cjs.entry.js +127 -0
  61. package/dist/cjs/p-tooltip.cjs.entry.js.map +1 -0
  62. package/dist/cjs/paperless.cjs.js +1 -1
  63. package/dist/collection/collection-manifest.json +2 -0
  64. package/dist/collection/components/atoms/backdrop/backdrop.component.css +1 -1
  65. package/dist/collection/components/atoms/button/button.component.css +1 -1
  66. package/dist/collection/components/atoms/divider/divider.component.css +1 -1
  67. package/dist/collection/components/atoms/dropdown-menu-container/dropdown-menu-container.component.css +1 -1
  68. package/dist/collection/components/atoms/dropdown-menu-item/dropdown-menu-item.component.css +1 -1
  69. package/dist/collection/components/atoms/helper/helper.component.css +1 -1
  70. package/dist/collection/components/atoms/icon/icon.component.css +1 -1
  71. package/dist/collection/components/atoms/label/label.component.css +1 -1
  72. package/dist/collection/components/atoms/loader/loader.component.css +1 -1
  73. package/dist/collection/components/atoms/modal-body/modal-body.component.css +1 -1
  74. package/dist/collection/components/atoms/modal-container/modal-container.component.css +1 -1
  75. package/dist/collection/components/atoms/modal-footer/modal-footer.component.css +1 -1
  76. package/dist/collection/components/atoms/modal-header/modal-header.component.css +1 -1
  77. package/dist/collection/components/atoms/pagination-item/pagination-item.component.css +1 -1
  78. package/dist/collection/components/atoms/segment-container/segment-container.component.css +1 -1
  79. package/dist/collection/components/atoms/segment-item/segment-item.component.css +1 -1
  80. package/dist/collection/components/atoms/stepper-item/stepper-item.component.css +1 -1
  81. package/dist/collection/components/atoms/stepper-line/stepper-line.component.css +1 -1
  82. package/dist/collection/components/atoms/table-container/table-container.component.css +1 -1
  83. package/dist/collection/components/atoms/tooltip/tooltip.component.css +1 -1
  84. package/dist/collection/components/molecules/attachment/attachment.component.css +1 -0
  85. package/dist/collection/components/molecules/attachment/attachment.component.js +126 -0
  86. package/dist/collection/components/molecules/attachment/attachment.component.js.map +1 -0
  87. package/dist/collection/components/molecules/calendar/calendar.component.css +1 -1
  88. package/dist/collection/components/molecules/datepicker/datepicker.component.css +1 -1
  89. package/dist/collection/components/molecules/dropdown/dropdown.component.css +1 -1
  90. package/dist/collection/components/molecules/input-error/input-error.component.js +60 -0
  91. package/dist/collection/components/molecules/input-error/input-error.component.js.map +1 -0
  92. package/dist/collection/components/molecules/input-group/input-group.component.css +1 -1
  93. package/dist/collection/components/molecules/input-group/input-group.component.js +3 -7
  94. package/dist/collection/components/molecules/input-group/input-group.component.js.map +1 -1
  95. package/dist/collection/components/molecules/pagination/pagination.component.css +1 -1
  96. package/dist/collection/components/molecules/select/select.component.css +1 -1
  97. package/dist/collection/components/molecules/table-cell/table-cell.component.css +1 -1
  98. package/dist/collection/components/molecules/table-footer/table-footer.component.css +1 -1
  99. package/dist/collection/components/molecules/table-header/table-header.component.css +1 -1
  100. package/dist/collection/components/molecules/table-row/table-row.component.css +1 -1
  101. package/dist/collection/components/organisms/table/table.component.css +1 -1
  102. package/dist/components/backdrop.component.js +1 -1
  103. package/dist/components/backdrop.component.js.map +1 -1
  104. package/dist/components/button.component.js +1 -1
  105. package/dist/components/button.component.js.map +1 -1
  106. package/dist/components/divider.component.js +1 -1
  107. package/dist/components/dropdown-menu-container.component.js +1 -1
  108. package/dist/components/dropdown-menu-container.component.js.map +1 -1
  109. package/dist/components/dropdown-menu-item.component.js +1 -1
  110. package/dist/components/dropdown-menu-item.component.js.map +1 -1
  111. package/dist/components/dropdown.component.js +1 -1
  112. package/dist/components/dropdown.component.js.map +1 -1
  113. package/dist/components/helper.component.js +1 -1
  114. package/dist/components/helper.component.js.map +1 -1
  115. package/dist/components/icon.component.js +1 -1
  116. package/dist/components/icon.component.js.map +1 -1
  117. package/dist/components/input-error.component.js +50 -0
  118. package/dist/components/input-error.component.js.map +1 -0
  119. package/dist/components/input-group.component.js +13 -11
  120. package/dist/components/input-group.component.js.map +1 -1
  121. package/dist/components/label.component.js +1 -1
  122. package/dist/components/loader.component.js +1 -1
  123. package/dist/components/loader.component.js.map +1 -1
  124. package/dist/components/modal-body.component.js +1 -1
  125. package/dist/components/modal-body.component.js.map +1 -1
  126. package/dist/components/modal-container.component.js +1 -1
  127. package/dist/components/modal-container.component.js.map +1 -1
  128. package/dist/components/modal-footer.component.js +1 -1
  129. package/dist/components/modal-header.component.js +1 -1
  130. package/dist/components/modal-header.component.js.map +1 -1
  131. package/dist/components/p-attachment.d.ts +11 -0
  132. package/dist/components/p-attachment.js +86 -0
  133. package/dist/components/p-attachment.js.map +1 -0
  134. package/dist/components/p-datepicker.js +16 -10
  135. package/dist/components/p-datepicker.js.map +1 -1
  136. package/dist/components/p-input-error.d.ts +11 -0
  137. package/dist/components/p-input-error.js +8 -0
  138. package/dist/components/p-input-error.js.map +1 -0
  139. package/dist/components/p-select.js +16 -10
  140. package/dist/components/p-select.js.map +1 -1
  141. package/dist/components/p-table.js +23 -17
  142. package/dist/components/p-table.js.map +1 -1
  143. package/dist/components/pagination-item.component.js +1 -1
  144. package/dist/components/pagination-item.component.js.map +1 -1
  145. package/dist/components/pagination.component.js +1 -1
  146. package/dist/components/pagination.component.js.map +1 -1
  147. package/dist/components/segment-container.component.js +1 -1
  148. package/dist/components/segment-container.component.js.map +1 -1
  149. package/dist/components/segment-item.component.js +1 -1
  150. package/dist/components/segment-item.component.js.map +1 -1
  151. package/dist/components/stepper-item.component.js +1 -1
  152. package/dist/components/stepper-item.component.js.map +1 -1
  153. package/dist/components/stepper-line.component.js +1 -1
  154. package/dist/components/stepper-line.component.js.map +1 -1
  155. package/dist/components/table-cell.component.js +1 -1
  156. package/dist/components/table-cell.component.js.map +1 -1
  157. package/dist/components/table-container.component.js +1 -1
  158. package/dist/components/table-container.component.js.map +1 -1
  159. package/dist/components/table-footer.component.js +1 -1
  160. package/dist/components/table-footer.component.js.map +1 -1
  161. package/dist/components/table-header.component.js +13 -7
  162. package/dist/components/table-header.component.js.map +1 -1
  163. package/dist/components/table-row.component.js +1 -1
  164. package/dist/components/table-row.component.js.map +1 -1
  165. package/dist/components/tooltip.component.js +1 -1
  166. package/dist/components/tooltip.component.js.map +1 -1
  167. package/dist/esm/index-8a4a3f2a.js +8 -0
  168. package/dist/esm/loader.js +1 -1
  169. package/dist/esm/p-attachment.entry.js +34 -0
  170. package/dist/esm/p-attachment.entry.js.map +1 -0
  171. package/dist/esm/p-backdrop.entry.js +1 -1
  172. package/dist/esm/p-backdrop.entry.js.map +1 -1
  173. package/dist/esm/p-button_3.entry.js +3 -3
  174. package/dist/esm/p-button_3.entry.js.map +1 -1
  175. package/dist/esm/p-divider.entry.js +1 -1
  176. package/dist/esm/p-dropdown-menu-container.entry.js +1 -1
  177. package/dist/esm/p-dropdown-menu-container.entry.js.map +1 -1
  178. package/dist/esm/p-dropdown_2.entry.js +2 -2
  179. package/dist/esm/p-dropdown_2.entry.js.map +1 -1
  180. package/dist/esm/p-helper_3.entry.js +20 -127
  181. package/dist/esm/p-helper_3.entry.js.map +1 -1
  182. package/dist/esm/p-illustration_6.entry.js +5 -5
  183. package/dist/esm/p-illustration_6.entry.js.map +1 -1
  184. package/dist/esm/p-label_3.entry.js +3 -3
  185. package/dist/esm/p-label_3.entry.js.map +1 -1
  186. package/dist/esm/p-modal-body_4.entry.js +4 -4
  187. package/dist/esm/p-modal-body_4.entry.js.map +1 -1
  188. package/dist/esm/p-page-size-select_3.entry.js +2 -2
  189. package/dist/esm/p-page-size-select_3.entry.js.map +1 -1
  190. package/dist/esm/p-stepper-item_2.entry.js +2 -2
  191. package/dist/esm/p-stepper-item_2.entry.js.map +1 -1
  192. package/dist/esm/p-table.entry.js +1 -1
  193. package/dist/esm/p-table.entry.js.map +1 -1
  194. package/dist/esm/p-tooltip.entry.js +123 -0
  195. package/dist/esm/p-tooltip.entry.js.map +1 -0
  196. package/dist/esm/paperless.js +1 -1
  197. package/dist/index.html +1 -1
  198. package/dist/paperless/p-10530c5e.entry.js +2 -0
  199. package/dist/paperless/p-10530c5e.entry.js.map +1 -0
  200. package/dist/paperless/p-1b5cdff7.entry.js +2 -0
  201. package/dist/paperless/{p-1c2cc466.entry.js.map → p-1b5cdff7.entry.js.map} +1 -1
  202. package/dist/{build/p-61cc1cd9.entry.js → paperless/p-3350a2cf.entry.js} +2 -2
  203. package/dist/paperless/{p-61cc1cd9.entry.js.map → p-3350a2cf.entry.js.map} +1 -1
  204. package/dist/paperless/p-36f29499.entry.js +2 -0
  205. package/dist/{build/p-ab08ea2e.entry.js.map → paperless/p-36f29499.entry.js.map} +1 -1
  206. package/dist/paperless/{p-34e4e210.entry.js → p-5dfab26d.entry.js} +2 -2
  207. package/dist/paperless/{p-34e4e210.entry.js.map → p-5dfab26d.entry.js.map} +1 -1
  208. package/dist/paperless/p-73bfcf97.entry.js +2 -0
  209. package/dist/paperless/{p-7f40fbbf.entry.js.map → p-73bfcf97.entry.js.map} +1 -1
  210. package/dist/paperless/p-852a5331.entry.js +2 -0
  211. package/dist/paperless/{p-ca7644aa.entry.js.map → p-852a5331.entry.js.map} +1 -1
  212. package/dist/paperless/p-9c0a4d88.entry.js +2 -0
  213. package/dist/paperless/p-9c0a4d88.entry.js.map +1 -0
  214. package/dist/paperless/p-bff2caf8.entry.js +2 -0
  215. package/dist/{build/p-150f371d.entry.js.map → paperless/p-bff2caf8.entry.js.map} +1 -1
  216. package/dist/paperless/p-c922ccc7.entry.js +2 -0
  217. package/dist/paperless/{p-004d55ea.entry.js.map → p-c922ccc7.entry.js.map} +1 -1
  218. package/dist/paperless/p-e20ff8c8.entry.js +2 -0
  219. package/dist/paperless/p-e20ff8c8.entry.js.map +1 -0
  220. package/dist/{build/p-7584e581.entry.js → paperless/p-e35b3886.entry.js} +2 -2
  221. package/dist/paperless/{p-7584e581.entry.js.map → p-e35b3886.entry.js.map} +0 -0
  222. package/dist/paperless/p-e6227583.entry.js +2 -0
  223. package/dist/paperless/{p-a4e7ec85.entry.js.map → p-e6227583.entry.js.map} +1 -1
  224. package/dist/paperless/{p-165b2597.entry.js → p-ebd3f360.entry.js} +2 -2
  225. package/dist/paperless/{p-165b2597.entry.js.map → p-ebd3f360.entry.js.map} +1 -1
  226. package/dist/paperless/paperless.css +1 -1
  227. package/dist/paperless/paperless.esm.js +1 -1
  228. package/dist/paperless/paperless.esm.js.map +1 -1
  229. package/dist/sw.js +1 -1
  230. package/dist/sw.js.map +1 -1
  231. package/dist/types/components/molecules/attachment/attachment.component.d.ts +24 -0
  232. package/dist/types/components/molecules/input-error/input-error.component.d.ts +12 -0
  233. package/dist/types/components/molecules/input-group/input-group.component.d.ts +0 -1
  234. package/dist/types/components.d.ts +78 -0
  235. package/hydrate/index.d.ts +218 -0
  236. package/hydrate/index.js +22508 -0
  237. package/hydrate/package.json +6 -0
  238. package/package.json +7 -6
  239. package/dist/build/p-004d55ea.entry.js +0 -2
  240. package/dist/build/p-150f371d.entry.js +0 -2
  241. package/dist/build/p-1c2cc466.entry.js +0 -2
  242. package/dist/build/p-7f40fbbf.entry.js +0 -2
  243. package/dist/build/p-a4e7ec85.entry.js +0 -2
  244. package/dist/build/p-ab08ea2e.entry.js +0 -2
  245. package/dist/build/p-ca7644aa.entry.js +0 -2
  246. package/dist/build/p-dec019cb.entry.js +0 -2
  247. package/dist/build/p-dec019cb.entry.js.map +0 -1
  248. package/dist/paperless/p-004d55ea.entry.js +0 -2
  249. package/dist/paperless/p-150f371d.entry.js +0 -2
  250. package/dist/paperless/p-1c2cc466.entry.js +0 -2
  251. package/dist/paperless/p-7f40fbbf.entry.js +0 -2
  252. package/dist/paperless/p-a4e7ec85.entry.js +0 -2
  253. package/dist/paperless/p-ab08ea2e.entry.js +0 -2
  254. package/dist/paperless/p-ca7644aa.entry.js +0 -2
  255. package/dist/paperless/p-dec019cb.entry.js +0 -2
  256. package/dist/paperless/p-dec019cb.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["tableComponentCss","Table","this","_ctrlDown","defaultSize","defaultSizeOptions","_a","formatTranslation","_locales","empty_state","no_filter","header","content","action","filtered","componentWillLoad","_setLocales","_parseItems","items","_generateColumns","componentDidRender","hasRendered","emit","render","h","Host","class","quickFilters","activeQuickFilterIdentifier","onQuickFilter","detail","quickFilter","enableSearch","query","onQueryChange","queryChange","enableFilter","selectedFiltersAmount","filterButtonTemplate","onFilter","filter","enableEdit","canEdit","selectedRows","length","editButtonTemplate","onEdit","edit","itemsSelectedAmount","_b","loading","headerLoading","_getHeader","_getRows","hideOnSinglePage","enablePageSize","pageSize","pageSizeOptions","onPageSizeChange","pageSizeChange","enablePagination","page","total","onPageChange","pageChange","enableExport","onExport","export","footerLoading","async","getLocaleComponentStrings","_el","onTableDefinitionUpdated","keyDown","key","keyUp","visibilityChange","document","visibilityState","_items","Array","isArray","JSON","parse","definitions","querySelectorAll","_columns","from","variant","map","col","index","definition","value","name","checkbox","_getCheckbox","amountOfLoadingRows","_","i","enableHover","enableRowSelection","enableRowClick","_getLoadingColumns","_getEmptyState","item","onClick","ev","_rowClick","_getRowColumns","colIndex","rowIndex","selectionKey","type","onChange","_selectAllChange","checked","_selectionContainsAll","indeterminate","_selectionIndeterminate","_checkboxChange","target","disabled","canSelectKey","_selectionContains","emptyStateFilteredHeader","emptyStateFilteredContent","emptyStateActionClick","emptyStateHeader","emptyStateContent","icon","size","emptyStateAction","$event","_getCheckedValue","toAdd","row","push","rowSelected","selectedRowsChange","find","d","_getSelectionValue","rowDeselected","indexOfToRemove","selection","splice","returnIndex","returnValue","findIndex","contains","containsCount","_c","tagName","toLowerCase","_findRow","_findRowAction","rowClick","ctrlDown","querySelector","el","parentElement","getAttribute"],"sources":["./src/components/organisms/table/table.component.scss?tag=p-table","./src/components/organisms/table/table.component.tsx"],"sourcesContent":["p-table {\n @apply flex flex-col;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { QuickFilter, RowClickEvent } from '../../../types/table';\nimport { formatTranslation, getLocaleComponentStrings } from '../../../utils';\nimport { TableColumn } from '../../helpers/table-column/table-column.component';\nimport {\n defaultSize,\n defaultSizeOptions,\n} from '../../molecules/page-size-select/constants';\nimport { buttonTemplateFunc } from '../../molecules/table-header/table-header.component';\n\nexport type templateFunc = () => string;\n\n@Component({\n tag: 'p-table',\n styleUrl: 'table.component.scss',\n})\nexport class Table {\n /**\n * The items to be fed to the table\n */\n @Prop() items: string;\n\n /**\n * Wether data is loading\n */\n @Prop() loading: boolean = false;\n\n /**\n * Wether the header should show loading state\n */\n @Prop() headerLoading: boolean = false;\n\n /**\n * Wether the footer should show loading state\n */\n @Prop() footerLoading: boolean = false;\n\n /**\n * The amount of loading rows to show\n */\n @Prop() amountOfLoadingRows: number = 6;\n\n /**\n * Wether to enable selection\n */\n @Prop() enableRowSelection: boolean = true;\n\n /**\n * Wether to enable row clicking\n */\n @Prop() enableRowClick: boolean = true;\n\n /**\n * The current selection of items\n */\n @Prop() selectedRows: any[] = [];\n\n /**\n * Event whenever the current selection changes\n */\n @Event() selectedRowsChange: EventEmitter<any>;\n\n /**\n * The key to determine if a row is selected\n */\n @Prop() selectionKey: string;\n\n /**\n * A key to determine if a row can be selected\n */\n @Prop() canSelectKey: string;\n\n /**\n * Event whenever a row is clicked\n */\n @Event() rowClick: EventEmitter<RowClickEvent>;\n\n /**\n * Event whenever a row is selected\n */\n @Event() rowSelected: EventEmitter<any>;\n\n /**\n * Event whenever a row is deselected\n */\n @Event() rowDeselected: EventEmitter<any>;\n\n /**\n * Event when the table has rendered\n */\n @Event() hasRendered: EventEmitter<number>;\n\n /** START HEADER */\n /**\n * Quick filters to show\n */\n @Prop() quickFilters: QuickFilter[] = [];\n\n /**\n * Active quick filter identifier\n */\n @Prop() activeQuickFilterIdentifier: string;\n\n /**\n * Wether to show the search input\n */\n @Prop() enableSearch: boolean = true;\n\n /**\n * The query to show in the search bar\n */\n @Prop({ mutable: true }) query: string;\n\n /**\n * Wether to show the filter button\n */\n @Prop() enableFilter: boolean = true;\n\n /**\n * The amount of filters being selected\n */\n @Prop() selectedFiltersAmount: number;\n\n /**\n * The template for the filter button text\n */\n @Prop() filterButtonTemplate: templateFunc;\n\n /**\n * Wether to show the edit button\n */\n @Prop() enableEdit: boolean = true;\n\n /**\n * The template for the edit button text\n */\n @Prop() editButtonTemplate: buttonTemplateFunc;\n\n /**\n * Event when one of the quick filters is clicked\n */\n @Event() quickFilter: EventEmitter<QuickFilter>;\n\n /**\n * Event when the query changes\n */\n @Event() queryChange: EventEmitter<string>;\n\n /**\n * Event when the filter button is clicked\n */\n @Event() filter: EventEmitter<null>;\n\n /**\n * Event when the edit button is clicked\n */\n @Event() edit: EventEmitter<null>;\n\n /** START FOOTER */\n\n /**\n * Wether to enable page size select\n */\n @Prop() enablePageSize: boolean = true;\n\n /**\n * Wether to enable pagination\n */\n @Prop() enablePagination: boolean = true;\n\n /**\n * Wether to enable export\n */\n @Prop() enableExport: boolean = true;\n\n /**\n * The current page\n */\n @Prop({ mutable: true, reflect: true }) page: number = 1;\n\n /**\n * The total amount of items\n */\n @Prop() total!: number;\n\n /**\n * Event whenever the page changes\n */\n @Event() pageChange: EventEmitter<number>;\n\n /**\n * The amount of items per page\n */\n @Prop() pageSize: number = defaultSize;\n\n /**\n * The options for the page size\n */\n @Prop() pageSizeOptions: number[] = defaultSizeOptions;\n\n /**\n * Event whenever the page changes\n */\n @Event() pageSizeChange: EventEmitter<number>;\n\n /**\n * Event whenever the page changes\n */\n @Event() export: EventEmitter<number>;\n\n /**\n * Wether to hide when there is only 1 page available\n */\n @Prop() hideOnSinglePage: boolean = true;\n\n /* Empty state start */\n\n @Prop() emptyStateHeader: templateFunc = () =>\n formatTranslation(this._locales.empty_state?.no_filter.header);\n @Prop() emptyStateContent: templateFunc = () =>\n formatTranslation(this._locales.empty_state?.no_filter.content);\n @Prop() emptyStateAction: templateFunc = () =>\n formatTranslation(this._locales.empty_state?.no_filter.action);\n\n @Prop() emptyStateFilteredHeader: templateFunc = () =>\n formatTranslation(this._locales.empty_state.filtered.header);\n @Prop() emptyStateFilteredContent: templateFunc = () =>\n formatTranslation(this._locales.empty_state.filtered.content);\n\n /**\n * Event whenever the empty state is clicked\n */\n @Event() emptyStateActionClick: EventEmitter<null>;\n\n /* Empty state end */\n\n /**\n * The host element\n */\n @Element() private _el: HTMLElement;\n\n /**\n * Locales used for this component\n */\n @State() private _locales: any = {};\n\n @State() private _columns: any[] = [];\n @State() private _items: any[] = [];\n\n private _ctrlDown = false;\n\n componentWillLoad() {\n this._setLocales();\n this._parseItems(this.items);\n this._generateColumns();\n }\n\n componentDidRender() {\n this.hasRendered.emit();\n }\n\n render() {\n return (\n <Host class=\"p-table\">\n <p-table-container>\n <p-table-header\n // quick filters\n quickFilters={this.quickFilters}\n activeQuickFilterIdentifier={\n this.activeQuickFilterIdentifier\n }\n onQuickFilter={({ detail }) =>\n this.quickFilter.emit(detail)\n }\n // search\n enableSearch={this.enableSearch}\n query={this.query}\n onQueryChange={({ detail }) =>\n this.queryChange.emit(detail)\n }\n // filter button\n enableFilter={this.enableFilter}\n selectedFiltersAmount={this.selectedFiltersAmount}\n filterButtonTemplate={this.filterButtonTemplate}\n onFilter={() => this.filter.emit()}\n // edit button\n enableEdit={this.enableEdit}\n canEdit={!!this.selectedRows?.length}\n editButtonTemplate={this.editButtonTemplate}\n onEdit={() => this.edit.emit()}\n itemsSelectedAmount={this.selectedRows?.length}\n //loading\n loading={this.headerLoading}\n ></p-table-header>\n\n {this._getHeader()}\n <div class=\"flex flex-col\">{this._getRows()}</div>\n\n <p-table-footer\n // overall\n hideOnSinglePage={this.hideOnSinglePage}\n // page size select\n enablePageSize={this.enablePageSize}\n pageSize={this.pageSize}\n pageSizeOptions={this.pageSizeOptions}\n onPageSizeChange={({ detail }) =>\n this.pageSizeChange.emit(detail)\n }\n // pagination\n enablePagination={this.enablePagination}\n page={this.page}\n total={this.total}\n onPageChange={({ detail }) =>\n this.pageChange.emit(detail)\n }\n // export\n enableExport={this.enableExport}\n onExport={() => this.export.emit()}\n //loading\n loading={this.footerLoading}\n ></p-table-footer>\n </p-table-container>\n </Host>\n );\n }\n\n @Listen('localeChanged', { target: 'body' })\n private async _setLocales(): Promise<void> {\n this._locales = await getLocaleComponentStrings(this._el);\n }\n\n @Listen('tableDefinitionChanged', { target: 'body' })\n onTableDefinitionUpdated() {\n this._generateColumns();\n }\n\n @Listen('keydown', { target: 'document' })\n keyDown({ key }) {\n if (key !== 'Control' || this._ctrlDown === true) {\n return;\n }\n\n this._ctrlDown = true;\n }\n\n @Listen('keyup', { target: 'document' })\n keyUp({ key }) {\n if (key !== 'Control' || this._ctrlDown === false) {\n return;\n }\n\n this._ctrlDown = false;\n }\n\n @Listen('visibilitychange', { target: 'document' })\n visibilityChange() {\n if (document.visibilityState !== 'hidden' || this._ctrlDown === false) {\n return;\n }\n\n this._ctrlDown = false;\n }\n\n @Watch('items')\n private _parseItems(items: string) {\n if (!items) {\n this._items = [];\n return;\n }\n\n if (Array.isArray(items)) {\n this._items = items;\n return;\n }\n\n this._items = JSON.parse(items);\n }\n\n private _generateColumns() {\n const definitions = this._el.querySelectorAll('p-table-column');\n this._columns = Array.from(definitions);\n }\n\n private _getHeader() {\n return (\n <p-table-row variant=\"header\">\n {this._columns.map((col: TableColumn, index) => (\n <p-table-cell\n definition={col}\n value={col.name}\n variant=\"header\"\n checkbox={this._getCheckbox(index, null, 'header')}\n index={index}\n ></p-table-cell>\n ))}\n </p-table-row>\n );\n }\n\n private _getRows() {\n if (this.loading) {\n return Array.from(\n {\n length: this.amountOfLoadingRows,\n },\n (_, i) => (\n <p-table-row\n enableHover={\n this.enableRowSelection || this.enableRowClick\n }\n >\n {this._getLoadingColumns(i)}\n </p-table-row>\n )\n );\n }\n\n if (!this._items.length) {\n return this._getEmptyState();\n }\n\n return this._items.map((item, index) => (\n <p-table-row\n enableHover={this.enableRowSelection || this.enableRowClick}\n onClick={(ev) => this._rowClick(ev, index)}\n >\n {this._getRowColumns(item, index)}\n </p-table-row>\n ));\n }\n\n private _getRowColumns(item, index) {\n return this._columns.map((col: TableColumn, colIndex) => {\n return (\n <p-table-cell\n definition={col}\n item={item}\n checkbox={this._getCheckbox(colIndex, index)}\n index={colIndex}\n rowIndex={index}\n ></p-table-cell>\n );\n });\n }\n\n private _getLoadingColumns(index) {\n return this._columns.map((col: TableColumn, colIndex) => {\n return (\n <p-table-cell\n definition={col}\n variant=\"loading\"\n checkbox={this._getCheckbox(colIndex, index, 'loading')}\n index={colIndex}\n rowIndex={index}\n ></p-table-cell>\n );\n });\n }\n\n private _getCheckbox(\n index,\n rowIndex,\n variant: 'header' | 'default' | 'loading' = 'default'\n ) {\n if (!this.enableRowSelection || !this.selectionKey || index !== 0) {\n return;\n }\n\n if (variant === 'loading') {\n return <p-loader variant=\"ghost\" class=\"rounded w-6 h-6\" />;\n }\n\n if (variant === 'header') {\n return (\n <input\n class=\"p-input\"\n type=\"checkbox\"\n onChange={(ev) => this._selectAllChange(ev)}\n checked={this._selectionContainsAll()}\n indeterminate={this._selectionIndeterminate()}\n />\n );\n }\n\n const item = this._items[rowIndex];\n\n return (\n <input\n class=\"p-input\"\n type=\"checkbox\"\n onChange={(ev) => this._checkboxChange(ev?.target, rowIndex)}\n disabled={this.canSelectKey && !item[this.canSelectKey]}\n checked={this._selectionContains(item, rowIndex)}\n />\n );\n }\n\n private _getEmptyState() {\n if (this.query?.length || this.selectedFiltersAmount) {\n return (\n <div class=\"flex flex-col items-center text-center py-24 max-w-[20rem] self-center\">\n <p-illustration variant=\"empty-state-search\" class=\"mb-6\" />\n <p class=\"font-semibold text-storm-default\">\n {this.emptyStateFilteredHeader()}\n </p>\n <p class=\"text-sm text-storm-medium mb-14\">\n {this.emptyStateFilteredContent()}\n </p>\n </div>\n );\n }\n\n return (\n <div class=\"flex flex-col items-center text-center py-24 max-w-[20rem] self-center\">\n <p-illustration\n variant=\"empty-state-overview\"\n class=\"cursor-pointer mb-6\"\n onClick={() => this.emptyStateActionClick.emit(null)}\n />\n <p class=\"font-semibold text-storm-default\">\n {this.emptyStateHeader()}\n </p>\n <p class=\"text-sm text-storm-medium mb-6\">\n {this.emptyStateContent()}\n </p>\n <p-button\n variant=\"secondary\"\n icon=\"plus\"\n size=\"small\"\n onClick={() => this.emptyStateActionClick.emit(null)}\n >\n {this.emptyStateAction()}\n </p-button>\n </div>\n );\n }\n\n private _selectAllChange($event: any) {\n if (!this.enableRowSelection) {\n return;\n }\n\n const value = this._getCheckedValue($event.target);\n if (value) {\n const toAdd = [];\n for (let i = 0; i < this._items.length; i++) {\n const row = this._items[i];\n if (this.canSelectKey && !row[this.canSelectKey]) {\n continue;\n }\n\n if (this._selectionContains(row, i)) {\n continue;\n }\n\n toAdd.push(row);\n this.rowSelected.emit(row);\n }\n\n this.selectedRows = [...this.selectedRows, ...toAdd];\n this.selectedRowsChange.emit(this.selectedRows);\n return;\n }\n\n for (let i = 0; i < this.selectedRows.length; i++) {\n const value = this.selectedRows[i];\n const row = this._items.find(\n (d) =>\n this._getSelectionValue(d, i) ===\n this._getSelectionValue(value, i)\n );\n\n if (!row) {\n continue;\n }\n\n this.rowDeselected.emit(row);\n }\n\n this.selectedRows = [];\n this.selectedRowsChange.emit(this.selectedRows);\n }\n\n private _checkboxChange(target: any, index: number) {\n if (!this.enableRowSelection) {\n return;\n }\n\n const row = this._items[index];\n\n if (this.canSelectKey && !row[this.canSelectKey]) {\n target.checked = false;\n return;\n }\n\n const value = this._getCheckedValue(target);\n if (value) {\n this.selectedRows = [...this.selectedRows, row];\n this.selectedRowsChange.emit(this.selectedRows);\n this.rowSelected.emit(row);\n return;\n }\n\n const indexOfToRemove = this._selectionContains(row, index, true);\n\n // we need to do this, because splice does not trigger the selection setter.\n const selection = [...this.selectedRows];\n selection.splice(indexOfToRemove, 1);\n this.selectedRows = selection;\n this.selectedRowsChange.emit(this.selectedRows);\n this.rowDeselected.emit(row);\n }\n\n private _getCheckedValue(target: any) {\n return target?.checked;\n }\n\n private _getSelectionValue(row: any, index: number) {\n return this.selectionKey ? row?.[this.selectionKey] || index : index;\n }\n\n private _selectionContains(row, index, returnIndex = false): any {\n const returnValue = this.selectedRows.findIndex(\n (item) =>\n this._getSelectionValue(row, index) ===\n this._getSelectionValue(item, index)\n );\n return !returnIndex ? returnValue >= 0 : returnValue;\n }\n\n private _selectionContainsAll() {\n let returnValue = true;\n if (!this._items?.length) {\n return false;\n }\n\n for (let i = 0; i < this._items?.length; i++) {\n const item = this._items[i];\n const contains = this._selectionContains(item, i);\n\n if (!contains) {\n returnValue = false;\n break;\n }\n }\n\n return returnValue;\n }\n\n private _selectionIndeterminate() {\n if (!this._items?.length || !this.selectedRows?.length) {\n return false;\n }\n\n let containsCount = 0;\n for (let i = 0; i < this._items?.length; i++) {\n const item = this._items[i];\n const contains = this._selectionContains(item, i);\n\n if (contains) {\n containsCount++;\n }\n }\n\n return containsCount > 0 && containsCount !== this._items.length;\n }\n\n private _rowClick($event, index) {\n const target = $event.target;\n\n if (\n target.tagName.toLowerCase() === 'input' ||\n target.type === 'checkbox'\n ) {\n return;\n }\n\n const row = this._findRow($event.target);\n\n if (this.enableRowClick) {\n const action = this._findRowAction($event.target);\n\n if (action) {\n return;\n }\n\n const item = this._items[index];\n this.rowClick.emit({\n item,\n ctrlDown: this._ctrlDown,\n });\n return;\n }\n\n if (!this.enableRowSelection) {\n return;\n }\n\n const checkbox = row?.querySelector('input[type=\"checkbox\"]');\n\n if (!checkbox) {\n return;\n }\n\n checkbox.checked = !checkbox.checked;\n this._checkboxChange(checkbox, index);\n }\n\n private _findRow(el: HTMLElement) {\n if (!el) {\n return el;\n }\n\n if (el?.tagName?.toLowerCase() === 'p-table-row') {\n return el;\n }\n\n return this._findRow(el?.parentElement);\n }\n\n private _findRowAction(el: HTMLElement) {\n if (!el) {\n return null;\n }\n\n if (\n el.getAttribute('data-is-action') !== null &&\n el.getAttribute('data-is-action') !== 'false'\n ) {\n return el;\n }\n\n if (el?.tagName?.toLowerCase() === 'p-table-row') {\n return null;\n }\n\n return this._findRowAction(el?.parentElement);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["tableComponentCss","Table","this","_ctrlDown","defaultSize","defaultSizeOptions","_a","formatTranslation","_locales","empty_state","no_filter","header","content","action","filtered","componentWillLoad","_setLocales","_parseItems","items","_generateColumns","componentDidRender","hasRendered","emit","render","h","Host","class","quickFilters","activeQuickFilterIdentifier","onQuickFilter","detail","quickFilter","enableSearch","query","onQueryChange","queryChange","enableFilter","selectedFiltersAmount","filterButtonTemplate","onFilter","filter","enableEdit","canEdit","selectedRows","length","editButtonTemplate","onEdit","edit","itemsSelectedAmount","_b","loading","headerLoading","_getHeader","_getRows","hideOnSinglePage","enablePageSize","pageSize","pageSizeOptions","onPageSizeChange","pageSizeChange","enablePagination","page","total","onPageChange","pageChange","enableExport","onExport","export","footerLoading","async","getLocaleComponentStrings","_el","onTableDefinitionUpdated","keyDown","key","keyUp","visibilityChange","document","visibilityState","_items","Array","isArray","JSON","parse","definitions","querySelectorAll","_columns","from","variant","map","col","index","definition","value","name","checkbox","_getCheckbox","amountOfLoadingRows","_","i","enableHover","enableRowSelection","enableRowClick","_getLoadingColumns","_getEmptyState","item","onClick","ev","_rowClick","_getRowColumns","colIndex","rowIndex","selectionKey","type","onChange","_selectAllChange","checked","_selectionContainsAll","indeterminate","_selectionIndeterminate","_checkboxChange","target","disabled","canSelectKey","_selectionContains","emptyStateFilteredHeader","emptyStateFilteredContent","emptyStateActionClick","emptyStateHeader","emptyStateContent","icon","size","emptyStateAction","$event","_getCheckedValue","toAdd","row","push","rowSelected","selectedRowsChange","find","d","_getSelectionValue","rowDeselected","indexOfToRemove","selection","splice","returnIndex","returnValue","findIndex","contains","containsCount","_c","tagName","toLowerCase","_findRow","_findRowAction","rowClick","ctrlDown","querySelector","el","parentElement","getAttribute"],"sources":["./src/components/organisms/table/table.component.scss?tag=p-table","./src/components/organisms/table/table.component.tsx"],"sourcesContent":["p-table {\n @apply flex flex-col;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { QuickFilter, RowClickEvent } from '../../../types/table';\nimport { formatTranslation, getLocaleComponentStrings } from '../../../utils';\nimport { TableColumn } from '../../helpers/table-column/table-column.component';\nimport {\n defaultSize,\n defaultSizeOptions,\n} from '../../molecules/page-size-select/constants';\nimport { buttonTemplateFunc } from '../../molecules/table-header/table-header.component';\n\nexport type templateFunc = () => string;\n\n@Component({\n tag: 'p-table',\n styleUrl: 'table.component.scss',\n})\nexport class Table {\n /**\n * The items to be fed to the table\n */\n @Prop() items: string;\n\n /**\n * Wether data is loading\n */\n @Prop() loading: boolean = false;\n\n /**\n * Wether the header should show loading state\n */\n @Prop() headerLoading: boolean = false;\n\n /**\n * Wether the footer should show loading state\n */\n @Prop() footerLoading: boolean = false;\n\n /**\n * The amount of loading rows to show\n */\n @Prop() amountOfLoadingRows: number = 6;\n\n /**\n * Wether to enable selection\n */\n @Prop() enableRowSelection: boolean = true;\n\n /**\n * Wether to enable row clicking\n */\n @Prop() enableRowClick: boolean = true;\n\n /**\n * The current selection of items\n */\n @Prop() selectedRows: any[] = [];\n\n /**\n * Event whenever the current selection changes\n */\n @Event() selectedRowsChange: EventEmitter<any>;\n\n /**\n * The key to determine if a row is selected\n */\n @Prop() selectionKey: string;\n\n /**\n * A key to determine if a row can be selected\n */\n @Prop() canSelectKey: string;\n\n /**\n * Event whenever a row is clicked\n */\n @Event() rowClick: EventEmitter<RowClickEvent>;\n\n /**\n * Event whenever a row is selected\n */\n @Event() rowSelected: EventEmitter<any>;\n\n /**\n * Event whenever a row is deselected\n */\n @Event() rowDeselected: EventEmitter<any>;\n\n /**\n * Event when the table has rendered\n */\n @Event() hasRendered: EventEmitter<number>;\n\n /** START HEADER */\n /**\n * Quick filters to show\n */\n @Prop() quickFilters: QuickFilter[] = [];\n\n /**\n * Active quick filter identifier\n */\n @Prop() activeQuickFilterIdentifier: string;\n\n /**\n * Wether to show the search input\n */\n @Prop() enableSearch: boolean = true;\n\n /**\n * The query to show in the search bar\n */\n @Prop({ mutable: true }) query: string;\n\n /**\n * Wether to show the filter button\n */\n @Prop() enableFilter: boolean = true;\n\n /**\n * The amount of filters being selected\n */\n @Prop() selectedFiltersAmount: number;\n\n /**\n * The template for the filter button text\n */\n @Prop() filterButtonTemplate: templateFunc;\n\n /**\n * Wether to show the edit button\n */\n @Prop() enableEdit: boolean = true;\n\n /**\n * The template for the edit button text\n */\n @Prop() editButtonTemplate: buttonTemplateFunc;\n\n /**\n * Event when one of the quick filters is clicked\n */\n @Event() quickFilter: EventEmitter<QuickFilter>;\n\n /**\n * Event when the query changes\n */\n @Event() queryChange: EventEmitter<string>;\n\n /**\n * Event when the filter button is clicked\n */\n @Event() filter: EventEmitter<null>;\n\n /**\n * Event when the edit button is clicked\n */\n @Event() edit: EventEmitter<null>;\n\n /** START FOOTER */\n\n /**\n * Wether to enable page size select\n */\n @Prop() enablePageSize: boolean = true;\n\n /**\n * Wether to enable pagination\n */\n @Prop() enablePagination: boolean = true;\n\n /**\n * Wether to enable export\n */\n @Prop() enableExport: boolean = true;\n\n /**\n * The current page\n */\n @Prop({ mutable: true, reflect: true }) page: number = 1;\n\n /**\n * The total amount of items\n */\n @Prop() total!: number;\n\n /**\n * Event whenever the page changes\n */\n @Event() pageChange: EventEmitter<number>;\n\n /**\n * The amount of items per page\n */\n @Prop() pageSize: number = defaultSize;\n\n /**\n * The options for the page size\n */\n @Prop() pageSizeOptions: number[] = defaultSizeOptions;\n\n /**\n * Event whenever the page changes\n */\n @Event() pageSizeChange: EventEmitter<number>;\n\n /**\n * Event whenever the page changes\n */\n @Event() export: EventEmitter<number>;\n\n /**\n * Wether to hide when there is only 1 page available\n */\n @Prop() hideOnSinglePage: boolean = true;\n\n /* Empty state start */\n\n @Prop() emptyStateHeader: templateFunc = () =>\n formatTranslation(this._locales.empty_state?.no_filter.header);\n @Prop() emptyStateContent: templateFunc = () =>\n formatTranslation(this._locales.empty_state?.no_filter.content);\n @Prop() emptyStateAction: templateFunc = () =>\n formatTranslation(this._locales.empty_state?.no_filter.action);\n\n @Prop() emptyStateFilteredHeader: templateFunc = () =>\n formatTranslation(this._locales.empty_state.filtered.header);\n @Prop() emptyStateFilteredContent: templateFunc = () =>\n formatTranslation(this._locales.empty_state.filtered.content);\n\n /**\n * Event whenever the empty state is clicked\n */\n @Event() emptyStateActionClick: EventEmitter<null>;\n\n /* Empty state end */\n\n /**\n * The host element\n */\n @Element() private _el: HTMLElement;\n\n /**\n * Locales used for this component\n */\n @State() private _locales: any = {};\n\n @State() private _columns: any[] = [];\n @State() private _items: any[] = [];\n\n private _ctrlDown = false;\n\n componentWillLoad() {\n this._setLocales();\n this._parseItems(this.items);\n this._generateColumns();\n }\n\n componentDidRender() {\n this.hasRendered.emit();\n }\n\n render() {\n return (\n <Host class=\"p-table\">\n <p-table-container>\n <p-table-header\n // quick filters\n quickFilters={this.quickFilters}\n activeQuickFilterIdentifier={\n this.activeQuickFilterIdentifier\n }\n onQuickFilter={({ detail }) =>\n this.quickFilter.emit(detail)\n }\n // search\n enableSearch={this.enableSearch}\n query={this.query}\n onQueryChange={({ detail }) =>\n this.queryChange.emit(detail)\n }\n // filter button\n enableFilter={this.enableFilter}\n selectedFiltersAmount={this.selectedFiltersAmount}\n filterButtonTemplate={this.filterButtonTemplate}\n onFilter={() => this.filter.emit()}\n // edit button\n enableEdit={this.enableEdit}\n canEdit={!!this.selectedRows?.length}\n editButtonTemplate={this.editButtonTemplate}\n onEdit={() => this.edit.emit()}\n itemsSelectedAmount={this.selectedRows?.length}\n //loading\n loading={this.headerLoading}\n ></p-table-header>\n\n {this._getHeader()}\n <div class=\"flex flex-col\">{this._getRows()}</div>\n\n <p-table-footer\n // overall\n hideOnSinglePage={this.hideOnSinglePage}\n // page size select\n enablePageSize={this.enablePageSize}\n pageSize={this.pageSize}\n pageSizeOptions={this.pageSizeOptions}\n onPageSizeChange={({ detail }) =>\n this.pageSizeChange.emit(detail)\n }\n // pagination\n enablePagination={this.enablePagination}\n page={this.page}\n total={this.total}\n onPageChange={({ detail }) =>\n this.pageChange.emit(detail)\n }\n // export\n enableExport={this.enableExport}\n onExport={() => this.export.emit()}\n //loading\n loading={this.footerLoading}\n ></p-table-footer>\n </p-table-container>\n </Host>\n );\n }\n\n @Listen('localeChanged', { target: 'body' })\n private async _setLocales(): Promise<void> {\n this._locales = await getLocaleComponentStrings(this._el);\n }\n\n @Listen('tableDefinitionChanged', { target: 'body' })\n onTableDefinitionUpdated() {\n this._generateColumns();\n }\n\n @Listen('keydown', { target: 'document' })\n keyDown({ key }) {\n if (key !== 'Control' || this._ctrlDown === true) {\n return;\n }\n\n this._ctrlDown = true;\n }\n\n @Listen('keyup', { target: 'document' })\n keyUp({ key }) {\n if (key !== 'Control' || this._ctrlDown === false) {\n return;\n }\n\n this._ctrlDown = false;\n }\n\n @Listen('visibilitychange', { target: 'document' })\n visibilityChange() {\n if (document.visibilityState !== 'hidden' || this._ctrlDown === false) {\n return;\n }\n\n this._ctrlDown = false;\n }\n\n @Watch('items')\n private _parseItems(items: string) {\n if (!items) {\n this._items = [];\n return;\n }\n\n if (Array.isArray(items)) {\n this._items = items;\n return;\n }\n\n this._items = JSON.parse(items);\n }\n\n private _generateColumns() {\n const definitions = this._el.querySelectorAll('p-table-column');\n this._columns = Array.from(definitions);\n }\n\n private _getHeader() {\n return (\n <p-table-row variant=\"header\">\n {this._columns.map((col: TableColumn, index) => (\n <p-table-cell\n definition={col}\n value={col.name}\n variant=\"header\"\n checkbox={this._getCheckbox(index, null, 'header')}\n index={index}\n ></p-table-cell>\n ))}\n </p-table-row>\n );\n }\n\n private _getRows() {\n if (this.loading) {\n return Array.from(\n {\n length: this.amountOfLoadingRows,\n },\n (_, i) => (\n <p-table-row\n enableHover={\n this.enableRowSelection || this.enableRowClick\n }\n >\n {this._getLoadingColumns(i)}\n </p-table-row>\n )\n );\n }\n\n if (!this._items.length) {\n return this._getEmptyState();\n }\n\n return this._items.map((item, index) => (\n <p-table-row\n enableHover={this.enableRowSelection || this.enableRowClick}\n onClick={(ev) => this._rowClick(ev, index)}\n >\n {this._getRowColumns(item, index)}\n </p-table-row>\n ));\n }\n\n private _getRowColumns(item, index) {\n return this._columns.map((col: TableColumn, colIndex) => {\n return (\n <p-table-cell\n definition={col}\n item={item}\n checkbox={this._getCheckbox(colIndex, index)}\n index={colIndex}\n rowIndex={index}\n ></p-table-cell>\n );\n });\n }\n\n private _getLoadingColumns(index) {\n return this._columns.map((col: TableColumn, colIndex) => {\n return (\n <p-table-cell\n definition={col}\n variant=\"loading\"\n checkbox={this._getCheckbox(colIndex, index, 'loading')}\n index={colIndex}\n rowIndex={index}\n ></p-table-cell>\n );\n });\n }\n\n private _getCheckbox(\n index,\n rowIndex,\n variant: 'header' | 'default' | 'loading' = 'default'\n ) {\n if (!this.enableRowSelection || !this.selectionKey || index !== 0) {\n return;\n }\n\n if (variant === 'loading') {\n return <p-loader variant=\"ghost\" class=\"rounded w-6 h-6\" />;\n }\n\n if (variant === 'header') {\n return (\n <input\n class=\"p-input\"\n type=\"checkbox\"\n onChange={(ev) => this._selectAllChange(ev)}\n checked={this._selectionContainsAll()}\n indeterminate={this._selectionIndeterminate()}\n />\n );\n }\n\n const item = this._items[rowIndex];\n\n return (\n <input\n class=\"p-input\"\n type=\"checkbox\"\n onChange={(ev) => this._checkboxChange(ev?.target, rowIndex)}\n disabled={this.canSelectKey && !item[this.canSelectKey]}\n checked={this._selectionContains(item, rowIndex)}\n />\n );\n }\n\n private _getEmptyState() {\n if (this.query?.length || this.selectedFiltersAmount) {\n return (\n <div class=\"flex flex-col items-center text-center py-24 max-w-[20rem] self-center\">\n <p-illustration variant=\"empty-state-search\" class=\"mb-6\" />\n <p class=\"font-semibold text-storm-default\">\n {this.emptyStateFilteredHeader()}\n </p>\n <p class=\"text-sm text-storm-medium mb-14\">\n {this.emptyStateFilteredContent()}\n </p>\n </div>\n );\n }\n\n return (\n <div class=\"flex flex-col items-center text-center py-24 max-w-[20rem] self-center\">\n <p-illustration\n variant=\"empty-state-overview\"\n class=\"cursor-pointer mb-6\"\n onClick={() => this.emptyStateActionClick.emit(null)}\n />\n <p class=\"font-semibold text-storm-default\">\n {this.emptyStateHeader()}\n </p>\n <p class=\"text-sm text-storm-medium mb-6\">\n {this.emptyStateContent()}\n </p>\n <p-button\n variant=\"secondary\"\n icon=\"plus\"\n size=\"small\"\n onClick={() => this.emptyStateActionClick.emit(null)}\n >\n {this.emptyStateAction()}\n </p-button>\n </div>\n );\n }\n\n private _selectAllChange($event: any) {\n if (!this.enableRowSelection) {\n return;\n }\n\n const value = this._getCheckedValue($event.target);\n if (value) {\n const toAdd = [];\n for (let i = 0; i < this._items.length; i++) {\n const row = this._items[i];\n if (this.canSelectKey && !row[this.canSelectKey]) {\n continue;\n }\n\n if (this._selectionContains(row, i)) {\n continue;\n }\n\n toAdd.push(row);\n this.rowSelected.emit(row);\n }\n\n this.selectedRows = [...this.selectedRows, ...toAdd];\n this.selectedRowsChange.emit(this.selectedRows);\n return;\n }\n\n for (let i = 0; i < this.selectedRows.length; i++) {\n const value = this.selectedRows[i];\n const row = this._items.find(\n (d) =>\n this._getSelectionValue(d, i) ===\n this._getSelectionValue(value, i)\n );\n\n if (!row) {\n continue;\n }\n\n this.rowDeselected.emit(row);\n }\n\n this.selectedRows = [];\n this.selectedRowsChange.emit(this.selectedRows);\n }\n\n private _checkboxChange(target: any, index: number) {\n if (!this.enableRowSelection) {\n return;\n }\n\n const row = this._items[index];\n\n if (this.canSelectKey && !row[this.canSelectKey]) {\n target.checked = false;\n return;\n }\n\n const value = this._getCheckedValue(target);\n if (value) {\n this.selectedRows = [...this.selectedRows, row];\n this.selectedRowsChange.emit(this.selectedRows);\n this.rowSelected.emit(row);\n return;\n }\n\n const indexOfToRemove = this._selectionContains(row, index, true);\n\n // we need to do this, because splice does not trigger the selection setter.\n const selection = [...this.selectedRows];\n selection.splice(indexOfToRemove, 1);\n this.selectedRows = selection;\n this.selectedRowsChange.emit(this.selectedRows);\n this.rowDeselected.emit(row);\n }\n\n private _getCheckedValue(target: any) {\n return target?.checked;\n }\n\n private _getSelectionValue(row: any, index: number) {\n return this.selectionKey ? row?.[this.selectionKey] || index : index;\n }\n\n private _selectionContains(row, index, returnIndex = false): any {\n const returnValue = this.selectedRows.findIndex(\n (item) =>\n this._getSelectionValue(row, index) ===\n this._getSelectionValue(item, index)\n );\n return !returnIndex ? returnValue >= 0 : returnValue;\n }\n\n private _selectionContainsAll() {\n let returnValue = true;\n if (!this._items?.length) {\n return false;\n }\n\n for (let i = 0; i < this._items?.length; i++) {\n const item = this._items[i];\n const contains = this._selectionContains(item, i);\n\n if (!contains) {\n returnValue = false;\n break;\n }\n }\n\n return returnValue;\n }\n\n private _selectionIndeterminate() {\n if (!this._items?.length || !this.selectedRows?.length) {\n return false;\n }\n\n let containsCount = 0;\n for (let i = 0; i < this._items?.length; i++) {\n const item = this._items[i];\n const contains = this._selectionContains(item, i);\n\n if (contains) {\n containsCount++;\n }\n }\n\n return containsCount > 0 && containsCount !== this._items.length;\n }\n\n private _rowClick($event, index) {\n const target = $event.target;\n\n if (\n target.tagName.toLowerCase() === 'input' ||\n target.type === 'checkbox'\n ) {\n return;\n }\n\n const row = this._findRow($event.target);\n\n if (this.enableRowClick) {\n const action = this._findRowAction($event.target);\n\n if (action) {\n return;\n }\n\n const item = this._items[index];\n this.rowClick.emit({\n item,\n ctrlDown: this._ctrlDown,\n });\n return;\n }\n\n if (!this.enableRowSelection) {\n return;\n }\n\n const checkbox = row?.querySelector('input[type=\"checkbox\"]');\n\n if (!checkbox) {\n return;\n }\n\n checkbox.checked = !checkbox.checked;\n this._checkboxChange(checkbox, index);\n }\n\n private _findRow(el: HTMLElement) {\n if (!el) {\n return el;\n }\n\n if (el?.tagName?.toLowerCase() === 'p-table-row') {\n return el;\n }\n\n return this._findRow(el?.parentElement);\n }\n\n private _findRowAction(el: HTMLElement) {\n if (!el) {\n return null;\n }\n\n if (\n el.getAttribute('data-is-action') !== null &&\n el.getAttribute('data-is-action') !== 'false'\n ) {\n return el;\n }\n\n if (el?.tagName?.toLowerCase() === 'p-table-row') {\n return null;\n }\n\n return this._findRowAction(el?.parentElement);\n }\n}\n"],"mappings":"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"}