@taon-dev/ui 21.0.26 → 21.0.27

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 (207) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +3 -3
  2. package/browser/fesm2022/{ui-browser-taon-datatable.component.html.de-DE.i18n.data-DaX_bbSs.mjs → ui-browser-taon-datatable.component.html.de-DE.i18n.data-BoSFa5hw.mjs} +4 -4
  3. package/browser/fesm2022/{ui-browser-taon-datatable.component.html.de-DE.i18n.data-DaX_bbSs.mjs.map → ui-browser-taon-datatable.component.html.de-DE.i18n.data-BoSFa5hw.mjs.map} +1 -1
  4. package/browser/fesm2022/{ui-browser-taon-datatable.component.html.en-US.i18n.data-BtONSnMn.mjs → ui-browser-taon-datatable.component.html.en-US.i18n.data-BaRVxYHq.mjs} +4 -4
  5. package/browser/fesm2022/{ui-browser-taon-datatable.component.html.en-US.i18n.data-BtONSnMn.mjs.map → ui-browser-taon-datatable.component.html.en-US.i18n.data-BaRVxYHq.mjs.map} +1 -1
  6. package/browser/fesm2022/{ui-browser-taon-datatable.component.html.pl-PL.i18n.data-Ctfv3ouD.mjs → ui-browser-taon-datatable.component.html.pl-PL.i18n.data-7lC0y8ph.mjs} +4 -4
  7. package/browser/fesm2022/{ui-browser-taon-datatable.component.html.pl-PL.i18n.data-Ctfv3ouD.mjs.map → ui-browser-taon-datatable.component.html.pl-PL.i18n.data-7lC0y8ph.mjs.map} +1 -1
  8. package/browser/fesm2022/{ui-browser-taon-datatable.component.ts.de-DE.i18n.data-DOHkRE3t.mjs → ui-browser-taon-datatable.component.ts.de-DE.i18n.data-CJvRlSjZ.mjs} +4 -4
  9. package/browser/fesm2022/{ui-browser-taon-datatable.component.ts.de-DE.i18n.data-DOHkRE3t.mjs.map → ui-browser-taon-datatable.component.ts.de-DE.i18n.data-CJvRlSjZ.mjs.map} +1 -1
  10. package/browser/fesm2022/{ui-browser-taon-datatable.component.ts.en-US.i18n.data-C6XKszRj.mjs → ui-browser-taon-datatable.component.ts.en-US.i18n.data-ywwsyxWl.mjs} +4 -4
  11. package/browser/fesm2022/{ui-browser-taon-datatable.component.ts.en-US.i18n.data-C6XKszRj.mjs.map → ui-browser-taon-datatable.component.ts.en-US.i18n.data-ywwsyxWl.mjs.map} +1 -1
  12. package/browser/fesm2022/{ui-browser-taon-datatable.component.ts.pl-PL.i18n.data-B20v3CeP.mjs → ui-browser-taon-datatable.component.ts.pl-PL.i18n.data-DidmnprC.mjs} +4 -4
  13. package/browser/fesm2022/{ui-browser-taon-datatable.component.ts.pl-PL.i18n.data-B20v3CeP.mjs.map → ui-browser-taon-datatable.component.ts.pl-PL.i18n.data-DidmnprC.mjs.map} +1 -1
  14. package/browser/fesm2022/ui-browser.mjs +184 -8
  15. package/browser/fesm2022/ui-browser.mjs.map +1 -1
  16. package/browser/package.json +1 -1
  17. package/browser/types/ui-browser.d.ts +32 -5
  18. package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.html.de-DE.i18n.data-B9t8s2_8.mjs → ui-browser-prod-taon-datatable.component.html.de-DE.i18n.data-BPCPpfL1.mjs} +4 -4
  19. package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.html.de-DE.i18n.data-B9t8s2_8.mjs.map → ui-browser-prod-taon-datatable.component.html.de-DE.i18n.data-BPCPpfL1.mjs.map} +1 -1
  20. package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.html.en-US.i18n.data-DRsYpt_k.mjs → ui-browser-prod-taon-datatable.component.html.en-US.i18n.data-CljILnW8.mjs} +4 -4
  21. package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.html.en-US.i18n.data-DRsYpt_k.mjs.map → ui-browser-prod-taon-datatable.component.html.en-US.i18n.data-CljILnW8.mjs.map} +1 -1
  22. package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.html.pl-PL.i18n.data-ByVALZEQ.mjs → ui-browser-prod-taon-datatable.component.html.pl-PL.i18n.data-BwA3pgv9.mjs} +4 -4
  23. package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.html.pl-PL.i18n.data-ByVALZEQ.mjs.map → ui-browser-prod-taon-datatable.component.html.pl-PL.i18n.data-BwA3pgv9.mjs.map} +1 -1
  24. package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.ts.de-DE.i18n.data-BlXRwzzT.mjs → ui-browser-prod-taon-datatable.component.ts.de-DE.i18n.data-CdqI-0eV.mjs} +4 -4
  25. package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.ts.de-DE.i18n.data-BlXRwzzT.mjs.map → ui-browser-prod-taon-datatable.component.ts.de-DE.i18n.data-CdqI-0eV.mjs.map} +1 -1
  26. package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.ts.en-US.i18n.data-DsQ8aLcU.mjs → ui-browser-prod-taon-datatable.component.ts.en-US.i18n.data-Cd7wGGSy.mjs} +4 -4
  27. package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.ts.en-US.i18n.data-DsQ8aLcU.mjs.map → ui-browser-prod-taon-datatable.component.ts.en-US.i18n.data-Cd7wGGSy.mjs.map} +1 -1
  28. package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.ts.pl-PL.i18n.data-DircsInd.mjs → ui-browser-prod-taon-datatable.component.ts.pl-PL.i18n.data-k7j3mmhy.mjs} +4 -4
  29. package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.ts.pl-PL.i18n.data-DircsInd.mjs.map → ui-browser-prod-taon-datatable.component.ts.pl-PL.i18n.data-k7j3mmhy.mjs.map} +1 -1
  30. package/browser-prod/fesm2022/ui-browser-prod.mjs +184 -8
  31. package/browser-prod/fesm2022/ui-browser-prod.mjs.map +1 -1
  32. package/browser-prod/package.json +1 -1
  33. package/browser-prod/types/ui-browser-prod.d.ts +32 -5
  34. package/full-dts/build-info._auto-generated_.d.ts +1 -1
  35. package/full-dts/index._auto-generated_.d.ts +1 -0
  36. package/full-dts/taon-admin-layout/taon-admin-content-footer.service.d.ts +6 -0
  37. package/full-dts/taon-admin-layout/taon-admin-layout.component.d.ts +2 -0
  38. package/full-dts/taon-datatable/taon-datatable.component.d.ts +19 -0
  39. package/html/lib/taon-admin-layout/taon-admin-layout.component.html +4 -1
  40. package/html/lib/taon-datatable/taon-datatable.component.html +21 -14
  41. package/lib/build-info._auto-generated_.d.ts +1 -1
  42. package/lib/build-info._auto-generated_.js +1 -1
  43. package/lib/index._auto-generated_.js +1 -0
  44. package/lib/index._auto-generated_.js.map +1 -1
  45. package/lib/package.json +1 -1
  46. package/lib/taon-admin-layout/index.d.ts +1 -1
  47. package/lib/taon-admin-layout/index.js +2 -2
  48. package/lib/taon-admin-welcome/index.d.ts +1 -1
  49. package/lib/taon-admin-welcome/index.js +2 -2
  50. package/lib/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.js +3 -3
  51. package/lib/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.js +3 -3
  52. package/lib/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.js +3 -3
  53. package/lib/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.js +3 -3
  54. package/lib/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.js +3 -3
  55. package/lib/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.js +3 -3
  56. package/lib/taon-datatable/index.d.ts +1 -1
  57. package/lib/taon-datatable/index.js +2 -2
  58. package/lib/taon-draggable-button-panel/index.d.ts +1 -1
  59. package/lib/taon-draggable-button-panel/index.js +2 -2
  60. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  61. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  62. package/lib-esm/lib/index._auto-generated_.js +1 -0
  63. package/lib-esm/lib/index._auto-generated_.js.map +1 -1
  64. package/lib-esm/lib/taon-admin-layout/index.d.ts +1 -1
  65. package/lib-esm/lib/taon-admin-layout/index.js +1 -1
  66. package/lib-esm/lib/taon-admin-welcome/index.d.ts +1 -1
  67. package/lib-esm/lib/taon-admin-welcome/index.js +1 -1
  68. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.js +3 -3
  69. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.js +3 -3
  70. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.js +3 -3
  71. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.js +3 -3
  72. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.js +3 -3
  73. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.js +3 -3
  74. package/lib-esm/lib/taon-datatable/index.d.ts +1 -1
  75. package/lib-esm/lib/taon-datatable/index.js +1 -1
  76. package/lib-esm/lib/taon-draggable-button-panel/index.d.ts +1 -1
  77. package/lib-esm/lib/taon-draggable-button-panel/index.js +1 -1
  78. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  79. package/lib-prod/build-info._auto-generated_.js +1 -1
  80. package/lib-prod/index._auto-generated_.js +1 -0
  81. package/lib-prod/index._auto-generated_.js.map +1 -1
  82. package/lib-prod/package.json +1 -1
  83. package/lib-prod/taon-admin-layout/index.d.ts +1 -1
  84. package/lib-prod/taon-admin-layout/index.js +1 -1
  85. package/lib-prod/taon-admin-welcome/index.d.ts +1 -1
  86. package/lib-prod/taon-admin-welcome/index.js +1 -1
  87. package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.js +3 -3
  88. package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.js +3 -3
  89. package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.js +3 -3
  90. package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.js +3 -3
  91. package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.js +3 -3
  92. package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.js +3 -3
  93. package/lib-prod/taon-datatable/index.d.ts +1 -1
  94. package/lib-prod/taon-datatable/index.js +1 -1
  95. package/lib-prod/taon-draggable-button-panel/index.d.ts +1 -1
  96. package/lib-prod/taon-draggable-button-panel/index.js +1 -1
  97. package/package.json +1 -1
  98. package/ts-source/browser-code/build-info._auto-generated_.ts +1 -1
  99. package/ts-source/browser-code/index._auto-generated_.ts +1 -0
  100. package/ts-source/browser-code/taon-admin-layout/taon-admin-content-footer.service.ts +20 -0
  101. package/ts-source/browser-code/taon-admin-layout/taon-admin-layout.component.html +4 -1
  102. package/ts-source/browser-code/taon-admin-layout/taon-admin-layout.component.ts +2 -0
  103. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.ts +3 -3
  104. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +3 -3
  105. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.ts +3 -3
  106. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.en-US.po +3 -3
  107. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.ts +3 -3
  108. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +3 -3
  109. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.ts +3 -3
  110. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +3 -3
  111. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.ts +3 -3
  112. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +3 -3
  113. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts +3 -3
  114. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +3 -3
  115. package/ts-source/browser-code/taon-datatable/taon-datatable.component.html +21 -14
  116. package/ts-source/browser-code/taon-datatable/taon-datatable.component.ts +172 -0
  117. package/ts-source/browser-code-prod/build-info._auto-generated_.ts +1 -1
  118. package/ts-source/browser-code-prod/index._auto-generated_.ts +1 -0
  119. package/ts-source/browser-code-prod/taon-admin-layout/taon-admin-content-footer.service.split-namespaces.json +4 -0
  120. package/ts-source/browser-code-prod/taon-admin-layout/taon-admin-content-footer.service.ts +20 -0
  121. package/ts-source/browser-code-prod/taon-admin-layout/taon-admin-layout.component.html +4 -1
  122. package/ts-source/browser-code-prod/taon-admin-layout/taon-admin-layout.component.ts +2 -0
  123. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.ts +3 -3
  124. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +3 -3
  125. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.ts +3 -3
  126. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.po +3 -3
  127. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.ts +3 -3
  128. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +3 -3
  129. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.ts +3 -3
  130. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +3 -3
  131. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.ts +3 -3
  132. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +3 -3
  133. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts +3 -3
  134. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +3 -3
  135. package/ts-source/browser-code-prod/taon-datatable/taon-datatable.component.html +21 -14
  136. package/ts-source/browser-code-prod/taon-datatable/taon-datatable.component.ts +172 -0
  137. package/ts-source/websql-code/build-info._auto-generated_.ts +1 -1
  138. package/ts-source/websql-code/index._auto-generated_.ts +1 -0
  139. package/ts-source/websql-code/taon-admin-layout/taon-admin-content-footer.service.ts +20 -0
  140. package/ts-source/websql-code/taon-admin-layout/taon-admin-layout.component.html +4 -1
  141. package/ts-source/websql-code/taon-admin-layout/taon-admin-layout.component.ts +2 -0
  142. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.ts +3 -3
  143. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +3 -3
  144. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.ts +3 -3
  145. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.en-US.po +3 -3
  146. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.ts +3 -3
  147. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +3 -3
  148. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.ts +3 -3
  149. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +3 -3
  150. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.ts +3 -3
  151. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +3 -3
  152. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts +3 -3
  153. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +3 -3
  154. package/ts-source/websql-code/taon-datatable/taon-datatable.component.html +21 -14
  155. package/ts-source/websql-code/taon-datatable/taon-datatable.component.ts +172 -0
  156. package/ts-source/websql-code-prod/build-info._auto-generated_.ts +1 -1
  157. package/ts-source/websql-code-prod/index._auto-generated_.ts +1 -0
  158. package/ts-source/websql-code-prod/taon-admin-layout/taon-admin-content-footer.service.split-namespaces.json +4 -0
  159. package/ts-source/websql-code-prod/taon-admin-layout/taon-admin-content-footer.service.ts +20 -0
  160. package/ts-source/websql-code-prod/taon-admin-layout/taon-admin-layout.component.html +4 -1
  161. package/ts-source/websql-code-prod/taon-admin-layout/taon-admin-layout.component.ts +2 -0
  162. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.ts +3 -3
  163. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +3 -3
  164. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.ts +3 -3
  165. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.po +3 -3
  166. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.ts +3 -3
  167. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +3 -3
  168. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.ts +3 -3
  169. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +3 -3
  170. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.ts +3 -3
  171. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +3 -3
  172. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts +3 -3
  173. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +3 -3
  174. package/ts-source/websql-code-prod/taon-datatable/taon-datatable.component.html +21 -14
  175. package/ts-source/websql-code-prod/taon-datatable/taon-datatable.component.ts +172 -0
  176. package/websql/fesm2022/{ui-websql-taon-datatable.component.html.de-DE.i18n.data-CRiuweZ1.mjs → ui-websql-taon-datatable.component.html.de-DE.i18n.data-akWKK_zH.mjs} +4 -4
  177. package/websql/fesm2022/{ui-websql-taon-datatable.component.html.de-DE.i18n.data-CRiuweZ1.mjs.map → ui-websql-taon-datatable.component.html.de-DE.i18n.data-akWKK_zH.mjs.map} +1 -1
  178. package/websql/fesm2022/{ui-websql-taon-datatable.component.html.en-US.i18n.data-B5Q6v4WG.mjs → ui-websql-taon-datatable.component.html.en-US.i18n.data-BQRO2MVj.mjs} +4 -4
  179. package/websql/fesm2022/{ui-websql-taon-datatable.component.html.en-US.i18n.data-B5Q6v4WG.mjs.map → ui-websql-taon-datatable.component.html.en-US.i18n.data-BQRO2MVj.mjs.map} +1 -1
  180. package/websql/fesm2022/{ui-websql-taon-datatable.component.html.pl-PL.i18n.data-CHtCyNUI.mjs → ui-websql-taon-datatable.component.html.pl-PL.i18n.data-cEIoFPC7.mjs} +4 -4
  181. package/websql/fesm2022/{ui-websql-taon-datatable.component.html.pl-PL.i18n.data-CHtCyNUI.mjs.map → ui-websql-taon-datatable.component.html.pl-PL.i18n.data-cEIoFPC7.mjs.map} +1 -1
  182. package/websql/fesm2022/{ui-websql-taon-datatable.component.ts.de-DE.i18n.data-CLYbjFDi.mjs → ui-websql-taon-datatable.component.ts.de-DE.i18n.data-kjuoNEZ4.mjs} +4 -4
  183. package/websql/fesm2022/{ui-websql-taon-datatable.component.ts.de-DE.i18n.data-CLYbjFDi.mjs.map → ui-websql-taon-datatable.component.ts.de-DE.i18n.data-kjuoNEZ4.mjs.map} +1 -1
  184. package/websql/fesm2022/{ui-websql-taon-datatable.component.ts.en-US.i18n.data-r_VW9bRw.mjs → ui-websql-taon-datatable.component.ts.en-US.i18n.data-B3mI-Sqk.mjs} +4 -4
  185. package/websql/fesm2022/{ui-websql-taon-datatable.component.ts.en-US.i18n.data-r_VW9bRw.mjs.map → ui-websql-taon-datatable.component.ts.en-US.i18n.data-B3mI-Sqk.mjs.map} +1 -1
  186. package/websql/fesm2022/{ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-CrDbBs1M.mjs → ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-CLuM0VTt.mjs} +4 -4
  187. package/websql/fesm2022/{ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-CrDbBs1M.mjs.map → ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-CLuM0VTt.mjs.map} +1 -1
  188. package/websql/fesm2022/ui-websql.mjs +184 -8
  189. package/websql/fesm2022/ui-websql.mjs.map +1 -1
  190. package/websql/package.json +1 -1
  191. package/websql/types/ui-websql.d.ts +32 -5
  192. package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.html.de-DE.i18n.data-BvDB6e_Q.mjs → ui-websql-prod-taon-datatable.component.html.de-DE.i18n.data-AkYh86KE.mjs} +4 -4
  193. package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.html.de-DE.i18n.data-BvDB6e_Q.mjs.map → ui-websql-prod-taon-datatable.component.html.de-DE.i18n.data-AkYh86KE.mjs.map} +1 -1
  194. package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.html.en-US.i18n.data-DgBdtlay.mjs → ui-websql-prod-taon-datatable.component.html.en-US.i18n.data-D3-rvqAh.mjs} +4 -4
  195. package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.html.en-US.i18n.data-DgBdtlay.mjs.map → ui-websql-prod-taon-datatable.component.html.en-US.i18n.data-D3-rvqAh.mjs.map} +1 -1
  196. package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.html.pl-PL.i18n.data-DEuIcpra.mjs → ui-websql-prod-taon-datatable.component.html.pl-PL.i18n.data-BLkNn4wK.mjs} +4 -4
  197. package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.html.pl-PL.i18n.data-DEuIcpra.mjs.map → ui-websql-prod-taon-datatable.component.html.pl-PL.i18n.data-BLkNn4wK.mjs.map} +1 -1
  198. package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.ts.de-DE.i18n.data-rfiJ-U1k.mjs → ui-websql-prod-taon-datatable.component.ts.de-DE.i18n.data-DP3jiLEW.mjs} +4 -4
  199. package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.ts.de-DE.i18n.data-rfiJ-U1k.mjs.map → ui-websql-prod-taon-datatable.component.ts.de-DE.i18n.data-DP3jiLEW.mjs.map} +1 -1
  200. package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.ts.en-US.i18n.data-BmB1328X.mjs → ui-websql-prod-taon-datatable.component.ts.en-US.i18n.data-Can6leSC.mjs} +4 -4
  201. package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.ts.en-US.i18n.data-BmB1328X.mjs.map → ui-websql-prod-taon-datatable.component.ts.en-US.i18n.data-Can6leSC.mjs.map} +1 -1
  202. package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.ts.pl-PL.i18n.data-DNnZNSVK.mjs → ui-websql-prod-taon-datatable.component.ts.pl-PL.i18n.data-U0CRTdvX.mjs} +4 -4
  203. package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.ts.pl-PL.i18n.data-DNnZNSVK.mjs.map → ui-websql-prod-taon-datatable.component.ts.pl-PL.i18n.data-U0CRTdvX.mjs.map} +1 -1
  204. package/websql-prod/fesm2022/ui-websql-prod.mjs +184 -8
  205. package/websql-prod/fesm2022/ui-websql-prod.mjs.map +1 -1
  206. package/websql-prod/package.json +1 -1
  207. package/websql-prod/types/ui-websql-prod.d.ts +32 -5
@@ -14,6 +14,7 @@ import { CommonModule } from '@angular/common';
14
14
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, ElementRef, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild, inject, } from '@angular/core';
15
15
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
16
16
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
17
+ import { ActivatedRoute, Router } from '@angular/router';
17
18
  import { MatButtonModule } from '@angular/material/button';
18
19
  import { MatFormFieldModule } from '@angular/material/form-field';
19
20
  import { MatIconModule } from '@angular/material/icon';
@@ -25,6 +26,7 @@ import { Translation } from '@taon-dev/i18n/browser-prod';
25
26
  import { getDefaultModel } from 'ng2-rest/browser-prod';
26
27
  import { BehaviorSubject, Observable, Subject, catchError, debounceTime, distinctUntilChanged, finalize, from, map, of, startWith, switchMap, tap, } from 'rxjs';
27
28
  import { TaonBaseCrudController, TaonBaseEntity, TaonPaginationSort, TaonPaginationQuery, ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__mapFnError, ClassHelpers__NS__setName, Symbols__NS__classMethodsNames as TaonSymbols__NS__classMethodsNames, Symbols__NS__ctxInClassOrClassObj as TaonSymbols__NS__ctxInClassOrClassObj, Symbols__NS__fullClassNameStaticProperty as TaonSymbols__NS__fullClassNameStaticProperty, Symbols__NS__metadata__NS__className as TaonSymbols__NS__metadata__NS__className, Symbols__NS__metadata__NS__options__NS__controller as TaonSymbols__NS__metadata__NS__options__NS__controller, Symbols__NS__metadata__NS__options__NS__entity as TaonSymbols__NS__metadata__NS__options__NS__entity, Symbols__NS__metadata__NS__options__NS__migration as TaonSymbols__NS__metadata__NS__options__NS__migration, Symbols__NS__metadata__NS__options__NS__provider as TaonSymbols__NS__metadata__NS__options__NS__provider, Symbols__NS__metadata__NS__options__NS__repository as TaonSymbols__NS__metadata__NS__options__NS__repository, Symbols__NS__metadata__NS__options__NS__subscriber as TaonSymbols__NS__metadata__NS__options__NS__subscriber, Symbols__NS__old__NS__CIRCURAL_OBJECTS_MAP_BODY_PARAM as TaonSymbols__NS__old__NS__CIRCURAL_OBJECTS_MAP_BODY_PARAM, Symbols__NS__old__NS__CIRCURAL_OBJECTS_MAP_QUERY_PARAM as TaonSymbols__NS__old__NS__CIRCURAL_OBJECTS_MAP_QUERY_PARAM, Symbols__NS__old__NS__CLASS_DECORATOR_CONTEXT as TaonSymbols__NS__old__NS__CLASS_DECORATOR_CONTEXT, Symbols__NS__old__NS__ENDPOINT_META_CONFIG as TaonSymbols__NS__old__NS__ENDPOINT_META_CONFIG, Symbols__NS__old__NS__ERROR_MESSAGES_CLASS_NAME_MATCH as TaonSymbols__NS__old__NS__ERROR_MESSAGES_CLASS_NAME_MATCH, Symbols__NS__old__NS__HAS_TABLE_IN_DB as TaonSymbols__NS__old__NS__HAS_TABLE_IN_DB, Symbols__NS__old__NS__MAPPING_CONFIG_HEADER as TaonSymbols__NS__old__NS__MAPPING_CONFIG_HEADER, Symbols__NS__old__NS__MAPPING_CONFIG_HEADER_BODY_PARAMS as TaonSymbols__NS__old__NS__MAPPING_CONFIG_HEADER_BODY_PARAMS, Symbols__NS__old__NS__MAPPING_CONFIG_HEADER_QUERY_PARAMS as TaonSymbols__NS__old__NS__MAPPING_CONFIG_HEADER_QUERY_PARAMS, Symbols__NS__old__NS__MDC_KEY as TaonSymbols__NS__old__NS__MDC_KEY, Symbols__NS__old__NS__SOCKET_MSG as TaonSymbols__NS__old__NS__SOCKET_MSG, Symbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN as TaonSymbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN, Symbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN_DONE as TaonSymbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN_DONE, Symbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN_START as TaonSymbols__NS__old__NS__WEBSQL_REST_PROGRESS_FUN_START, Symbols__NS__old__NS__WEBSQL_REST_PROGRESS_TIMEOUT as TaonSymbols__NS__old__NS__WEBSQL_REST_PROGRESS_TIMEOUT, Symbols__NS__old__NS__X_TOTAL_COUNT as TaonSymbols__NS__old__NS__X_TOTAL_COUNT, Symbols__NS__orignalClassClonesObj as TaonSymbols__NS__orignalClassClonesObj, Symbols__NS__REALTIME as TaonSymbols__NS__REALTIME, Symbols__NS__taonInstanceId as TaonSymbols__NS__taonInstanceId, Taon__NS____FILE_RELATIVE_PATH, Taon__NS__asset, Taon__NS__assetsFrom, Taon__NS__assetsListFrom, Taon__NS__createContext, Taon__NS__createContextTemplate, Taon__NS__error, Taon__NS__getResponseValue, Taon__NS__isBrowser, Taon__NS__isElectron, Taon__NS__isNode, Taon__NS__isWebSQL, Taon__NS__LANG_IMPORT_MAP, Taon__NS__removeLoader, Taon__NS__Response, Taon__NS__ResponseHtml, Taon__NS__StartParams } from 'taon/browser-prod';
29
+ import { TaonStor__NS__awaitAll, TaonStor__NS__inFile, TaonStor__NS__inIndexedDbStorage, TaonStor__NS__inJson, TaonStor__NS__inLocalstorage, TaonStor__NS__inSessionStorage } from 'taon-storage/browser-prod';
28
30
  import { json5, ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLeafObject, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/browser-prod';
29
31
  const t = Translation.for('src/lib/taon-datatable/taon-datatable.component.ts', { "src/lib/taon-datatable/taon-datatable.component.html": { "en-US": async () => (await import('./i18n/taon-datatable.component.html.en-US.i18n.data')).default, "pl-PL": async () => (await import('./i18n/taon-datatable.component.html.pl-PL.i18n.data')).default, "de-DE": async () => (await import('./i18n/taon-datatable.component.html.de-DE.i18n.data')).default }, "src/lib/taon-datatable/taon-datatable.component.ts": { "en-US": async () => (await import('./i18n/taon-datatable.component.ts.en-US.i18n.data')).default, "pl-PL": async () => (await import('./i18n/taon-datatable.component.ts.pl-PL.i18n.data')).default, "de-DE": async () => (await import('./i18n/taon-datatable.component.ts.de-DE.i18n.data')).default } } as any);
30
32
  const defaultColumns: MtxGridColumn[] = [
@@ -38,6 +40,17 @@ const defaultColumns: MtxGridColumn[] = [
38
40
  },
39
41
  ];
40
42
  type SearchMode = 'simple' | 'advanced';
43
+ type TablePaginationPersistence = 'none' | 'query-params' | 'local-storage' | 'session-storage';
44
+ type TableFilterPersistence = 'none' | 'query-params';
45
+ interface TablePaginationState {
46
+ pageNumber: number;
47
+ pageSize: number;
48
+ }
49
+ interface TablePaginationStorage {
50
+ (): TablePaginationState;
51
+ ready(): Promise<void>;
52
+ set(value: TablePaginationState): Promise<void>;
53
+ }
41
54
  @Component({
42
55
  selector: 'taon-datatable',
43
56
  standalone: true,
@@ -61,6 +74,8 @@ export class TaonDatatableComponent implements OnInit {
61
74
  readonly t = t.for(this);
62
75
  private readonly cdr = inject(ChangeDetectorRef);
63
76
  private readonly destroyRef = inject(DestroyRef);
77
+ private readonly route = inject(ActivatedRoute);
78
+ private readonly router = inject(Router);
64
79
  @Input()
65
80
  pageNumber = 1;
66
81
  @Input()
@@ -85,6 +100,14 @@ export class TaonDatatableComponent implements OnInit {
85
100
  @Input()
86
101
  searchMode: SearchMode = 'advanced';
87
102
  @Input()
103
+ filtersTemplate?: TemplateRef<unknown>;
104
+ @Input()
105
+ storeTablePagination: TablePaginationPersistence = 'none';
106
+ @Input()
107
+ storeTableFilters: TableFilterPersistence = 'none';
108
+ @Input()
109
+ tableId?: string;
110
+ @Input()
88
111
  callQueryMethod?: string;
89
112
  private _data?: any[];
90
113
  @Input()
@@ -119,6 +142,7 @@ export class TaonDatatableComponent implements OnInit {
119
142
  private readonly searchChange$ = new Subject<string>();
120
143
  readonly data$: Observable<any[]> = this.reload$.pipe(switchMap(() => this.loadData()));
121
144
  expandedRows = new Set<any>();
145
+ private paginationStorage?: TablePaginationStorage;
122
146
  get entity(): typeof TaonBaseEntity | undefined {
123
147
  return this.entityCrudController?.entityClassResolveFn();
124
148
  }
@@ -143,10 +167,17 @@ export class TaonDatatableComponent implements OnInit {
143
167
  this.showPaginator = ___NS__isBoolean(this.showPaginator)
144
168
  ? this.showPaginator
145
169
  : Boolean(this.entity) || this.offlineMode;
170
+ if (this.storeTableFilters === 'query-params') {
171
+ this.columnFilters = this.readQueryFilters();
172
+ }
173
+ void this.restorePagination().then(() => this.subscribeToData());
174
+ }
175
+ private subscribeToData(): void {
146
176
  this.searchChange$
147
177
  .pipe(debounceTime(400), distinctUntilChanged(), tap(search => {
148
178
  this.searchValue = search;
149
179
  this.pageNumber = 1;
180
+ this.persistPagination();
150
181
  this.reload();
151
182
  }), takeUntilDestroyed(this.destroyRef))
152
183
  .subscribe();
@@ -162,10 +193,12 @@ export class TaonDatatableComponent implements OnInit {
162
193
  this.searchValue = '';
163
194
  this.columnFilters = {};
164
195
  this.pageNumber = 1;
196
+ this.persistCurrentTableState();
165
197
  this.reload();
166
198
  }
167
199
  applyAdvancedFilters(): void {
168
200
  this.pageNumber = 1;
201
+ this.persistCurrentTableState();
169
202
  this.reload();
170
203
  }
171
204
  toggleAdvancedSearch(): void {
@@ -174,8 +207,147 @@ export class TaonDatatableComponent implements OnInit {
174
207
  getNextPage(event: PageEvent): void {
175
208
  this.pageNumber = event.pageIndex + 1;
176
209
  this.pageSize = event.pageSize;
210
+ this.persistPagination();
177
211
  this.reload();
178
212
  }
213
+ private get tableIdentity(): string {
214
+ const explicitId = this.tableId?.trim();
215
+ if (explicitId) {
216
+ return explicitId;
217
+ }
218
+ const routePath = this.route.pathFromRoot
219
+ .map(route => route.snapshot.url.map(segment => segment.path).join('/'))
220
+ .filter(Boolean)
221
+ .join('/');
222
+ const entityName = this.entity ? ClassHelpers__NS__getName(this.entity) : 'table';
223
+ return `${entityName}-${routePath || 'root'}`;
224
+ }
225
+ private get queryParamPrefix(): string {
226
+ return `dt.${encodeURIComponent(this.tableIdentity)}`;
227
+ }
228
+ private async restorePagination(): Promise<void> {
229
+ const prefix = this.queryParamPrefix;
230
+ if (this.storeTablePagination === 'query-params') {
231
+ const pageNumber = Number(this.route.snapshot.queryParamMap.get(`${prefix}.page`));
232
+ const pageSize = Number(this.route.snapshot.queryParamMap.get(`${prefix}.pageSize`));
233
+ if (Number.isSafeInteger(pageNumber) && pageNumber > 0) {
234
+ this.pageNumber = pageNumber;
235
+ }
236
+ if (Number.isSafeInteger(pageSize) && pageSize > 0) {
237
+ this.pageSize = pageSize;
238
+ }
239
+ return;
240
+ }
241
+ if (this.storeTablePagination !== 'local-storage' &&
242
+ this.storeTablePagination !== 'session-storage') {
243
+ return;
244
+ }
245
+ const options = {
246
+ keyOrPath: `datatable-${this.tableIdentity}-pagination`,
247
+ defaultValue: {
248
+ pageNumber: this.pageNumber,
249
+ pageSize: this.pageSize,
250
+ },
251
+ };
252
+ this.paginationStorage =
253
+ this.storeTablePagination === 'local-storage'
254
+ ? TaonStor__NS__inLocalstorage(options, TaonDatatableComponent)
255
+ : TaonStor__NS__inSessionStorage(options, TaonDatatableComponent);
256
+ try {
257
+ await this.paginationStorage.ready();
258
+ const state = this.paginationStorage();
259
+ if (Number.isSafeInteger(state.pageNumber) && state.pageNumber > 0) {
260
+ this.pageNumber = state.pageNumber;
261
+ }
262
+ if (Number.isSafeInteger(state.pageSize) && state.pageSize > 0) {
263
+ this.pageSize = state.pageSize;
264
+ }
265
+ }
266
+ catch (error) {
267
+ console.error('[taon-datatable] Unable to restore pagination state', error);
268
+ }
269
+ }
270
+ private persistPagination(): void {
271
+ const state = {
272
+ pageNumber: this.pageNumber,
273
+ pageSize: this.pageSize,
274
+ };
275
+ if (this.storeTablePagination === 'query-params') {
276
+ this.updateQueryParams({
277
+ [`${this.queryParamPrefix}.page`]: String(state.pageNumber),
278
+ [`${this.queryParamPrefix}.pageSize`]: String(state.pageSize),
279
+ });
280
+ }
281
+ else if (this.paginationStorage) {
282
+ void this.paginationStorage.set(state).catch(error => {
283
+ console.error('[taon-datatable] Unable to persist pagination state', error);
284
+ });
285
+ }
286
+ }
287
+ private readQueryFilters(): Record<string, string> {
288
+ const filterPrefix = `${this.queryParamPrefix}.filter.`;
289
+ const filters: Record<string, string> = {};
290
+ for (const key of this.route.snapshot.queryParamMap.keys) {
291
+ if (!key.startsWith(filterPrefix)) {
292
+ continue;
293
+ }
294
+ try {
295
+ const field = decodeURIComponent(key.slice(filterPrefix.length));
296
+ const value = this.route.snapshot.queryParamMap.get(key);
297
+ if (field && value !== null) {
298
+ filters[field] = value;
299
+ }
300
+ }
301
+ catch (error) {
302
+ console.error('[taon-datatable] Invalid filter query parameter', error);
303
+ }
304
+ }
305
+ return filters;
306
+ }
307
+ private persistFilters(): void {
308
+ if (this.storeTableFilters !== 'query-params') {
309
+ return;
310
+ }
311
+ this.updateQueryParams(this.filterQueryUpdates());
312
+ }
313
+ private persistCurrentTableState(): void {
314
+ if (this.storeTablePagination === 'query-params' &&
315
+ this.storeTableFilters === 'query-params') {
316
+ this.updateQueryParams({
317
+ [`${this.queryParamPrefix}.page`]: String(this.pageNumber),
318
+ [`${this.queryParamPrefix}.pageSize`]: String(this.pageSize),
319
+ ...this.filterQueryUpdates(),
320
+ });
321
+ return;
322
+ }
323
+ this.persistPagination();
324
+ this.persistFilters();
325
+ }
326
+ private filterQueryUpdates(): Record<string, string | null> {
327
+ const filterPrefix = `${this.queryParamPrefix}.filter.`;
328
+ const updates: Record<string, string | null> = {};
329
+ for (const key of this.route.snapshot.queryParamMap.keys) {
330
+ if (key.startsWith(filterPrefix)) {
331
+ updates[key] = null;
332
+ }
333
+ }
334
+ for (const [field, value] of Object.entries(this.cleanFilters(this.columnFilters))) {
335
+ updates[`${filterPrefix}${encodeURIComponent(field)}`] = value;
336
+ }
337
+ return updates;
338
+ }
339
+ private updateQueryParams(queryParams: Record<string, string | null>): void {
340
+ void this.router
341
+ .navigate([], {
342
+ relativeTo: this.route,
343
+ queryParams,
344
+ queryParamsHandling: 'merge',
345
+ replaceUrl: true,
346
+ })
347
+ .catch(error => {
348
+ console.error('[taon-datatable] Unable to update table query parameters', error);
349
+ });
350
+ }
179
351
  sortChanged(event: any): void {
180
352
  const field = event?.active ?? event?.field;
181
353
  const direction = event?.direction ?? '';
@@ -15,4 +15,4 @@ export const APP_ID = 'com.domain.example.ui';
15
15
  export const BUILD_BASE_HREF = '';
16
16
  export const PROJECT_NPM_NAME = '@taon-dev/ui';
17
17
  export const CURRENT_PACKAGE_TAON_VERSION = 'v21';
18
- export const CURRENT_PACKAGE_VERSION = '21.0.26';
18
+ export const CURRENT_PACKAGE_VERSION = '21.0.27';
@@ -14,6 +14,7 @@ export * from './build-info._auto-generated_';
14
14
  export * from './my-organization-proj';
15
15
  export * from './start-cli';
16
16
  export * from './directives/taon-horizontal-wheel-scrolling.directive';
17
+ export * from './taon-admin-layout/taon-admin-content-footer.service';
17
18
  export * from './taon-admin-layout/taon-admin-layout.component';
18
19
  export * from './taon-admin-layout/taon-admin-layout.models';
19
20
  export * from './taon-admin-layout/taon-admin-menu-context';
@@ -0,0 +1,20 @@
1
+ // @ts-nocheck
2
+ /* ============================================================================
3
+
4
+ - TAON READONLY SOURCE
5
+ - DO NOT MODIFY THIS FILE.
6
+ - Changes may be overwritten.
7
+ - Use command: taon build:watch:lib
8
+ inside @taon-dev/ui project repository
9
+ for watch development of third party modules like this.
10
+
11
+ * ========================================================================== */
12
+
13
+ import { Injectable, TemplateRef, signal } from '@angular/core';
14
+ @Injectable({ providedIn: 'root' })
15
+ export class TaonAdminContentFooterService {
16
+ readonly currentTemplate = signal<TemplateRef<unknown> | undefined>(undefined);
17
+ setTemplate(template?: TemplateRef<unknown>): void {
18
+ this.currentTemplate.set(template);
19
+ }
20
+ }
@@ -228,7 +228,10 @@
228
228
 
229
229
 
230
230
  <footer class="admin-content-footer">
231
- <ng-content select="[contentFooter]" />
231
+ <ng-container
232
+ [ngTemplateOutlet]="
233
+ taonAdminContentFooterService.currentTemplate()
234
+ " />
232
235
  </footer>
233
236
  </main>
234
237
  </div>
@@ -19,6 +19,7 @@ import { NavigationEnd, Route, Router, RouterLink, RouterOutlet, Routes, } from
19
19
  import { Translation } from '@taon-dev/i18n/websql';
20
20
  import { filter, Subscription } from 'rxjs';
21
21
  import { Taon } from 'taon/websql';
22
+ import { TaonAdminContentFooterService } from './taon-admin-content-footer.service';
22
23
  import { resolveTaonAdminMenuItem, TaonAdminRoute, } from './taon-admin-layout.models';
23
24
  import { TaonAdminMenuContext } from './taon-admin-menu-context';
24
25
  import { TaonAdminPageTabsComponent } from './taon-admin-page-tabs.component';
@@ -43,6 +44,7 @@ export class TaonAdminLayoutComponent implements OnInit, AfterViewInit, OnDestro
43
44
  protected readonly t = t.for(this);
44
45
  protected readonly menuContext = inject(TaonAdminMenuContext, { optional: true }) ??
45
46
  new TaonAdminMenuContext();
47
+ protected readonly taonAdminContentFooterService = inject(TaonAdminContentFooterService);
46
48
  private _routes: Routes = [];
47
49
  @Input({ required: true })
48
50
  set routes(routes: Routes) {
@@ -36,17 +36,17 @@ export default {
36
36
  },
37
37
  {
38
38
  "gettextString": "Clear",
39
- "lineNumber": 101,
39
+ "lineNumber": 108,
40
40
  "translation": "Klar"
41
41
  },
42
42
  {
43
43
  "gettextString": "Apply filters",
44
- "lineNumber": 111,
44
+ "lineNumber": 118,
45
45
  "translation": "Filter anwenden"
46
46
  },
47
47
  {
48
48
  "gettextString": "Loading...",
49
- "lineNumber": 128,
49
+ "lineNumber": 135,
50
50
  "translation": "Lade..."
51
51
  }
52
52
  ]
@@ -12,14 +12,14 @@ msgstr "Filter"
12
12
  msgid "Add"
13
13
  msgstr "Hinzufügen"
14
14
 
15
- #: src/lib/taon-datatable/taon-datatable.component.html:101
15
+ #: src/lib/taon-datatable/taon-datatable.component.html:108
16
16
  msgid "Clear"
17
17
  msgstr "Klar"
18
18
 
19
- #: src/lib/taon-datatable/taon-datatable.component.html:111
19
+ #: src/lib/taon-datatable/taon-datatable.component.html:118
20
20
  msgid "Apply filters"
21
21
  msgstr "Filter anwenden"
22
22
 
23
- #: src/lib/taon-datatable/taon-datatable.component.html:128
23
+ #: src/lib/taon-datatable/taon-datatable.component.html:135
24
24
  msgid "Loading..."
25
25
  msgstr "Lade..."
@@ -36,17 +36,17 @@ export default {
36
36
  },
37
37
  {
38
38
  "gettextString": "Clear",
39
- "lineNumber": 101,
39
+ "lineNumber": 108,
40
40
  "translation": "Clear"
41
41
  },
42
42
  {
43
43
  "gettextString": "Apply filters",
44
- "lineNumber": 111,
44
+ "lineNumber": 118,
45
45
  "translation": "Apply filters"
46
46
  },
47
47
  {
48
48
  "gettextString": "Loading...",
49
- "lineNumber": 128,
49
+ "lineNumber": 135,
50
50
  "translation": "Loading..."
51
51
  }
52
52
  ]
@@ -12,14 +12,14 @@ msgstr "Filters"
12
12
  msgid "Add"
13
13
  msgstr "Add"
14
14
 
15
- #: src/lib/taon-datatable/taon-datatable.component.html:101
15
+ #: src/lib/taon-datatable/taon-datatable.component.html:108
16
16
  msgid "Clear"
17
17
  msgstr "Clear"
18
18
 
19
- #: src/lib/taon-datatable/taon-datatable.component.html:111
19
+ #: src/lib/taon-datatable/taon-datatable.component.html:118
20
20
  msgid "Apply filters"
21
21
  msgstr "Apply filters"
22
22
 
23
- #: src/lib/taon-datatable/taon-datatable.component.html:128
23
+ #: src/lib/taon-datatable/taon-datatable.component.html:135
24
24
  msgid "Loading..."
25
25
  msgstr "Loading..."
@@ -36,17 +36,17 @@ export default {
36
36
  },
37
37
  {
38
38
  "gettextString": "Clear",
39
- "lineNumber": 101,
39
+ "lineNumber": 108,
40
40
  "translation": "Jasne"
41
41
  },
42
42
  {
43
43
  "gettextString": "Apply filters",
44
- "lineNumber": 111,
44
+ "lineNumber": 118,
45
45
  "translation": "Wykorzystanie filtrów"
46
46
  },
47
47
  {
48
48
  "gettextString": "Loading...",
49
- "lineNumber": 128,
49
+ "lineNumber": 135,
50
50
  "translation": "Ładowanie..."
51
51
  }
52
52
  ]
@@ -12,14 +12,14 @@ msgstr "Filtry"
12
12
  msgid "Add"
13
13
  msgstr "Dodać"
14
14
 
15
- #: src/lib/taon-datatable/taon-datatable.component.html:101
15
+ #: src/lib/taon-datatable/taon-datatable.component.html:108
16
16
  msgid "Clear"
17
17
  msgstr "Jasne"
18
18
 
19
- #: src/lib/taon-datatable/taon-datatable.component.html:111
19
+ #: src/lib/taon-datatable/taon-datatable.component.html:118
20
20
  msgid "Apply filters"
21
21
  msgstr "Wykorzystanie filtrów"
22
22
 
23
- #: src/lib/taon-datatable/taon-datatable.component.html:128
23
+ #: src/lib/taon-datatable/taon-datatable.component.html:135
24
24
  msgid "Loading..."
25
25
  msgstr "Ładowanie..."
@@ -24,17 +24,17 @@ export default {
24
24
  "tags": [
25
25
  {
26
26
  "gettextString": "ID",
27
- "lineNumber": 59,
27
+ "lineNumber": 61,
28
28
  "translation": "Ausweis"
29
29
  },
30
30
  {
31
31
  "gettextString": "NAME",
32
- "lineNumber": 63,
32
+ "lineNumber": 65,
33
33
  "translation": "Name"
34
34
  },
35
35
  {
36
36
  "gettextString": "No records found",
37
- "lineNumber": 110
37
+ "lineNumber": 135
38
38
  }
39
39
  ]
40
40
  };
@@ -4,14 +4,14 @@ msgstr ""
4
4
  "Content-Type: text/plain; charset=UTF-8\n"
5
5
  "Content-Transfer-Encoding: 8bit\n"
6
6
 
7
- #: src/lib/taon-datatable/taon-datatable.component.ts:59
7
+ #: src/lib/taon-datatable/taon-datatable.component.ts:61
8
8
  msgid "ID"
9
9
  msgstr "Ausweis"
10
10
 
11
- #: src/lib/taon-datatable/taon-datatable.component.ts:63
11
+ #: src/lib/taon-datatable/taon-datatable.component.ts:65
12
12
  msgid "NAME"
13
13
  msgstr "Name"
14
14
 
15
- #: src/lib/taon-datatable/taon-datatable.component.ts:110
15
+ #: src/lib/taon-datatable/taon-datatable.component.ts:135
16
16
  msgid "No records found"
17
17
  msgstr ""
@@ -24,17 +24,17 @@ export default {
24
24
  "tags": [
25
25
  {
26
26
  "gettextString": "ID",
27
- "lineNumber": 59,
27
+ "lineNumber": 61,
28
28
  "translation": "ID"
29
29
  },
30
30
  {
31
31
  "gettextString": "NAME",
32
- "lineNumber": 63,
32
+ "lineNumber": 65,
33
33
  "translation": "NAME"
34
34
  },
35
35
  {
36
36
  "gettextString": "No records found",
37
- "lineNumber": 110
37
+ "lineNumber": 135
38
38
  }
39
39
  ]
40
40
  };
@@ -4,14 +4,14 @@ msgstr ""
4
4
  "Content-Type: text/plain; charset=UTF-8\n"
5
5
  "Content-Transfer-Encoding: 8bit\n"
6
6
 
7
- #: src/lib/taon-datatable/taon-datatable.component.ts:59
7
+ #: src/lib/taon-datatable/taon-datatable.component.ts:61
8
8
  msgid "ID"
9
9
  msgstr "ID"
10
10
 
11
- #: src/lib/taon-datatable/taon-datatable.component.ts:63
11
+ #: src/lib/taon-datatable/taon-datatable.component.ts:65
12
12
  msgid "NAME"
13
13
  msgstr "NAME"
14
14
 
15
- #: src/lib/taon-datatable/taon-datatable.component.ts:110
15
+ #: src/lib/taon-datatable/taon-datatable.component.ts:135
16
16
  msgid "No records found"
17
17
  msgstr ""
@@ -24,17 +24,17 @@ export default {
24
24
  "tags": [
25
25
  {
26
26
  "gettextString": "ID",
27
- "lineNumber": 59,
27
+ "lineNumber": 61,
28
28
  "translation": "Posiadanie dowodu"
29
29
  },
30
30
  {
31
31
  "gettextString": "NAME",
32
- "lineNumber": 63,
32
+ "lineNumber": 65,
33
33
  "translation": "Nazwa"
34
34
  },
35
35
  {
36
36
  "gettextString": "No records found",
37
- "lineNumber": 110,
37
+ "lineNumber": 135,
38
38
  "translation": "Nie znalezionie nic"
39
39
  }
40
40
  ]
@@ -4,14 +4,14 @@ msgstr ""
4
4
  "Content-Type: text/plain; charset=UTF-8\n"
5
5
  "Content-Transfer-Encoding: 8bit\n"
6
6
 
7
- #: src/lib/taon-datatable/taon-datatable.component.ts:59
7
+ #: src/lib/taon-datatable/taon-datatable.component.ts:61
8
8
  msgid "ID"
9
9
  msgstr "Posiadanie dowodu"
10
10
 
11
- #: src/lib/taon-datatable/taon-datatable.component.ts:63
11
+ #: src/lib/taon-datatable/taon-datatable.component.ts:65
12
12
  msgid "NAME"
13
13
  msgstr "Nazwa"
14
14
 
15
- #: src/lib/taon-datatable/taon-datatable.component.ts:110
15
+ #: src/lib/taon-datatable/taon-datatable.component.ts:135
16
16
  msgid "No records found"
17
17
  msgstr "Nie znalezionie nic"
@@ -87,20 +87,27 @@
87
87
  @if (!hideSearch && searchMode === 'advanced' && advancedSearchOpened) {
88
88
  <div
89
89
  class="grid grid-cols-1 gap-3 rounded-lg border border-gray-200 bg-gray-50 p-4 shadow-sm dark:border-gray-700 dark:bg-gray-800 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4">
90
- @for (column of filterableColumns; track column.field) {
91
- <mat-form-field
92
- appearance="outline"
93
- subscriptSizing="dynamic"
94
- class="w-full">
95
- <mat-label>
96
- {{ column.header }}
97
- </mat-label>
98
-
99
- <input
100
- matInput
101
- [(ngModel)]="columnFilters[$any(column.field)]"
102
- (keyup.enter)="applyAdvancedFilters()" />
103
- </mat-form-field>
90
+ @if (filtersTemplate) {
91
+ <ng-container
92
+ [ngTemplateOutlet]="filtersTemplate"
93
+ [ngTemplateOutletContext]="{ filters: columnFilters }">
94
+ </ng-container>
95
+ } @else {
96
+ @for (column of filterableColumns; track column.field) {
97
+ <mat-form-field
98
+ appearance="outline"
99
+ subscriptSizing="dynamic"
100
+ class="w-full">
101
+ <mat-label>
102
+ {{ column.header }}
103
+ </mat-label>
104
+
105
+ <input
106
+ matInput
107
+ [(ngModel)]="columnFilters[$any(column.field)]"
108
+ (keyup.enter)="applyAdvancedFilters()" />
109
+ </mat-form-field>
110
+ }
104
111
  }
105
112
 
106
113
  <div