@taon-dev/ui 21.0.26 → 21.0.28

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 (224) 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 +222 -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 +45 -6
  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 +222 -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 +45 -6
  34. package/full-dts/build-info._auto-generated_.d.ts +1 -1
  35. package/full-dts/index._auto-generated_.d.ts +2 -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/full-dts/taon-items-hamburger/taon-items-hamburger.component.d.ts +11 -0
  40. package/html/lib/taon-admin-layout/taon-admin-layout.component.html +4 -1
  41. package/html/lib/taon-datatable/taon-datatable.component.html +21 -14
  42. package/html/lib/taon-items-hamburger/taon-items-hamburger.component.html +17 -0
  43. package/lib/build-info._auto-generated_.d.ts +1 -1
  44. package/lib/build-info._auto-generated_.js +1 -1
  45. package/lib/index._auto-generated_.js +2 -0
  46. package/lib/index._auto-generated_.js.map +1 -1
  47. package/lib/package.json +1 -1
  48. package/lib/taon-admin-layout/index.d.ts +1 -1
  49. package/lib/taon-admin-layout/index.js +2 -2
  50. package/lib/taon-admin-welcome/index.d.ts +1 -1
  51. package/lib/taon-admin-welcome/index.js +2 -2
  52. package/lib/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.js +3 -3
  53. package/lib/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.js +3 -3
  54. package/lib/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.js +3 -3
  55. package/lib/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.js +3 -3
  56. package/lib/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.js +3 -3
  57. package/lib/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.js +3 -3
  58. package/lib/taon-datatable/index.d.ts +1 -1
  59. package/lib/taon-datatable/index.js +2 -2
  60. package/lib/taon-draggable-button-panel/index.d.ts +1 -1
  61. package/lib/taon-draggable-button-panel/index.js +2 -2
  62. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  63. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  64. package/lib-esm/lib/index._auto-generated_.js +2 -0
  65. package/lib-esm/lib/index._auto-generated_.js.map +1 -1
  66. package/lib-esm/lib/taon-admin-layout/index.d.ts +1 -1
  67. package/lib-esm/lib/taon-admin-layout/index.js +1 -1
  68. package/lib-esm/lib/taon-admin-welcome/index.d.ts +1 -1
  69. package/lib-esm/lib/taon-admin-welcome/index.js +1 -1
  70. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.js +3 -3
  71. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.js +3 -3
  72. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.js +3 -3
  73. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.js +3 -3
  74. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.js +3 -3
  75. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.js +3 -3
  76. package/lib-esm/lib/taon-datatable/index.d.ts +1 -1
  77. package/lib-esm/lib/taon-datatable/index.js +1 -1
  78. package/lib-esm/lib/taon-draggable-button-panel/index.d.ts +1 -1
  79. package/lib-esm/lib/taon-draggable-button-panel/index.js +1 -1
  80. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  81. package/lib-prod/build-info._auto-generated_.js +1 -1
  82. package/lib-prod/index._auto-generated_.js +2 -0
  83. package/lib-prod/index._auto-generated_.js.map +1 -1
  84. package/lib-prod/package.json +1 -1
  85. package/lib-prod/taon-admin-layout/index.d.ts +1 -1
  86. package/lib-prod/taon-admin-layout/index.js +1 -1
  87. package/lib-prod/taon-admin-welcome/index.d.ts +1 -1
  88. package/lib-prod/taon-admin-welcome/index.js +1 -1
  89. package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.js +3 -3
  90. package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.js +3 -3
  91. package/lib-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.js +3 -3
  92. package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.js +3 -3
  93. package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.js +3 -3
  94. package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.js +3 -3
  95. package/lib-prod/taon-datatable/index.d.ts +1 -1
  96. package/lib-prod/taon-datatable/index.js +1 -1
  97. package/lib-prod/taon-draggable-button-panel/index.d.ts +1 -1
  98. package/lib-prod/taon-draggable-button-panel/index.js +1 -1
  99. package/package.json +1 -1
  100. package/scss/lib/taon-items-hamburger/taon-items-hamburger.component.scss +67 -0
  101. package/ts-source/browser-code/build-info._auto-generated_.ts +1 -1
  102. package/ts-source/browser-code/index._auto-generated_.ts +2 -0
  103. package/ts-source/browser-code/taon-admin-layout/taon-admin-content-footer.service.ts +20 -0
  104. package/ts-source/browser-code/taon-admin-layout/taon-admin-layout.component.html +4 -1
  105. package/ts-source/browser-code/taon-admin-layout/taon-admin-layout.component.ts +2 -0
  106. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.ts +3 -3
  107. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +3 -3
  108. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.ts +3 -3
  109. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.en-US.po +3 -3
  110. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.ts +3 -3
  111. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +3 -3
  112. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.ts +3 -3
  113. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +3 -3
  114. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.ts +3 -3
  115. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +3 -3
  116. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts +3 -3
  117. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +3 -3
  118. package/ts-source/browser-code/taon-datatable/taon-datatable.component.html +21 -14
  119. package/ts-source/browser-code/taon-datatable/taon-datatable.component.ts +172 -0
  120. package/ts-source/browser-code/taon-items-hamburger/taon-items-hamburger.component.html +30 -0
  121. package/ts-source/browser-code/taon-items-hamburger/taon-items-hamburger.component.scss +72 -0
  122. package/ts-source/browser-code/taon-items-hamburger/taon-items-hamburger.component.ts +48 -0
  123. package/ts-source/browser-code-prod/build-info._auto-generated_.ts +1 -1
  124. package/ts-source/browser-code-prod/index._auto-generated_.ts +2 -0
  125. package/ts-source/browser-code-prod/taon-admin-layout/taon-admin-content-footer.service.split-namespaces.json +4 -0
  126. package/ts-source/browser-code-prod/taon-admin-layout/taon-admin-content-footer.service.ts +20 -0
  127. package/ts-source/browser-code-prod/taon-admin-layout/taon-admin-layout.component.html +4 -1
  128. package/ts-source/browser-code-prod/taon-admin-layout/taon-admin-layout.component.ts +2 -0
  129. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.ts +3 -3
  130. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +3 -3
  131. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.ts +3 -3
  132. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.po +3 -3
  133. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.ts +3 -3
  134. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +3 -3
  135. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.ts +3 -3
  136. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +3 -3
  137. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.ts +3 -3
  138. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +3 -3
  139. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts +3 -3
  140. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +3 -3
  141. package/ts-source/browser-code-prod/taon-datatable/taon-datatable.component.html +21 -14
  142. package/ts-source/browser-code-prod/taon-datatable/taon-datatable.component.ts +172 -0
  143. package/ts-source/browser-code-prod/taon-items-hamburger/taon-items-hamburger.component.html +30 -0
  144. package/ts-source/browser-code-prod/taon-items-hamburger/taon-items-hamburger.component.scss +72 -0
  145. package/ts-source/browser-code-prod/taon-items-hamburger/taon-items-hamburger.component.split-namespaces.json +4 -0
  146. package/ts-source/browser-code-prod/taon-items-hamburger/taon-items-hamburger.component.ts +48 -0
  147. package/ts-source/websql-code/build-info._auto-generated_.ts +1 -1
  148. package/ts-source/websql-code/index._auto-generated_.ts +2 -0
  149. package/ts-source/websql-code/taon-admin-layout/taon-admin-content-footer.service.ts +20 -0
  150. package/ts-source/websql-code/taon-admin-layout/taon-admin-layout.component.html +4 -1
  151. package/ts-source/websql-code/taon-admin-layout/taon-admin-layout.component.ts +2 -0
  152. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.ts +3 -3
  153. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +3 -3
  154. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.ts +3 -3
  155. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.en-US.po +3 -3
  156. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.ts +3 -3
  157. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +3 -3
  158. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.ts +3 -3
  159. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +3 -3
  160. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.ts +3 -3
  161. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +3 -3
  162. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts +3 -3
  163. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +3 -3
  164. package/ts-source/websql-code/taon-datatable/taon-datatable.component.html +21 -14
  165. package/ts-source/websql-code/taon-datatable/taon-datatable.component.ts +172 -0
  166. package/ts-source/websql-code/taon-items-hamburger/taon-items-hamburger.component.html +30 -0
  167. package/ts-source/websql-code/taon-items-hamburger/taon-items-hamburger.component.scss +72 -0
  168. package/ts-source/websql-code/taon-items-hamburger/taon-items-hamburger.component.ts +48 -0
  169. package/ts-source/websql-code-prod/build-info._auto-generated_.ts +1 -1
  170. package/ts-source/websql-code-prod/index._auto-generated_.ts +2 -0
  171. package/ts-source/websql-code-prod/taon-admin-layout/taon-admin-content-footer.service.split-namespaces.json +4 -0
  172. package/ts-source/websql-code-prod/taon-admin-layout/taon-admin-content-footer.service.ts +20 -0
  173. package/ts-source/websql-code-prod/taon-admin-layout/taon-admin-layout.component.html +4 -1
  174. package/ts-source/websql-code-prod/taon-admin-layout/taon-admin-layout.component.ts +2 -0
  175. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.i18n.data.ts +3 -3
  176. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.de-DE.po +3 -3
  177. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.i18n.data.ts +3 -3
  178. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.en-US.po +3 -3
  179. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.i18n.data.ts +3 -3
  180. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.html.pl-PL.po +3 -3
  181. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.ts +3 -3
  182. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +3 -3
  183. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.ts +3 -3
  184. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +3 -3
  185. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts +3 -3
  186. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +3 -3
  187. package/ts-source/websql-code-prod/taon-datatable/taon-datatable.component.html +21 -14
  188. package/ts-source/websql-code-prod/taon-datatable/taon-datatable.component.ts +172 -0
  189. package/ts-source/websql-code-prod/taon-items-hamburger/taon-items-hamburger.component.html +30 -0
  190. package/ts-source/websql-code-prod/taon-items-hamburger/taon-items-hamburger.component.scss +72 -0
  191. package/ts-source/websql-code-prod/taon-items-hamburger/taon-items-hamburger.component.split-namespaces.json +4 -0
  192. package/ts-source/websql-code-prod/taon-items-hamburger/taon-items-hamburger.component.ts +48 -0
  193. 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
  194. 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
  195. 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
  196. 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
  197. 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
  198. 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
  199. 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
  200. 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
  201. 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
  202. 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
  203. 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
  204. 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
  205. package/websql/fesm2022/ui-websql.mjs +222 -8
  206. package/websql/fesm2022/ui-websql.mjs.map +1 -1
  207. package/websql/package.json +1 -1
  208. package/websql/types/ui-websql.d.ts +45 -6
  209. 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
  210. 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
  211. 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
  212. 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
  213. 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
  214. 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
  215. 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
  216. 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
  217. 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
  218. 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
  219. 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
  220. 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
  221. package/websql-prod/fesm2022/ui-websql-prod.mjs +222 -8
  222. package/websql-prod/fesm2022/ui-websql-prod.mjs.map +1 -1
  223. package/websql-prod/package.json +1 -1
  224. package/websql-prod/types/ui-websql-prod.d.ts +45 -6
@@ -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
@@ -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';
25
26
  import { getDefaultModel } from 'ng2-rest/browser';
26
27
  import { BehaviorSubject, Observable, Subject, catchError, debounceTime, distinctUntilChanged, finalize, from, map, of, startWith, switchMap, tap, } from 'rxjs';
27
28
  import { Symbols as TaonSymbols, TaonBaseCrudController, TaonBaseEntity, TaonPaginationSort, TaonPaginationQuery, ClassHelpers, Taon, } from 'taon/browser';
29
+ import { TaonStor } from 'taon-storage/browser';
28
30
  import { _, json5 } from 'tnp-core/browser';
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 = _.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.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.inLocalstorage(options, TaonDatatableComponent)
255
+ : TaonStor.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 ?? '';
@@ -0,0 +1,30 @@
1
+ <!--
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
+
14
+ @if (!taonAdminService.isDesktop()) {
15
+ <button
16
+ mat-icon-button
17
+ type="button"
18
+ aria-label="Open menu"
19
+ [attr.aria-expanded]="opened()"
20
+ (click)="toggle($event)">
21
+ <mat-icon>{{ icon }}</mat-icon>
22
+ </button>
23
+ }
24
+
25
+ <div
26
+ class="items"
27
+ [class.mobile]="!taonAdminService.isDesktop()"
28
+ [class.opened]="opened()">
29
+ <ng-content />
30
+ </div>
@@ -0,0 +1,72 @@
1
+ /* ============================================================================
2
+
3
+ - TAON READONLY SOURCE
4
+ - DO NOT MODIFY THIS FILE.
5
+ - Changes may be overwritten.
6
+ - Use command: taon build:watch:lib
7
+ inside @taon-dev/ui project repository
8
+ for watch development of third party modules like this.
9
+
10
+ * ========================================================================== */
11
+
12
+ :host {
13
+ position: relative;
14
+
15
+ display: inline-flex;
16
+ align-items: center;
17
+ }
18
+
19
+
20
+
21
+ .items {
22
+ display: flex;
23
+ flex-direction: row;
24
+
25
+ align-items: center;
26
+ justify-content: center;
27
+
28
+ gap: 0.5rem;
29
+ }
30
+
31
+
32
+
33
+ .items.mobile {
34
+ display: none;
35
+
36
+ position: absolute;
37
+
38
+ top: calc(100% + 4px);
39
+ right: 0;
40
+
41
+ z-index: 1000;
42
+
43
+ min-width: 50px;
44
+
45
+ padding: 0.5rem;
46
+
47
+ background: var(--mat-sys-surface, white);
48
+ color: var(--mat-sys-on-surface, inherit);
49
+
50
+ border: 1px solid var(--mat-sys-outline-variant, rgba(0, 0, 0, 0.12));
51
+
52
+ border-radius: 8px;
53
+
54
+ box-shadow:
55
+ 0 2px 4px rgba(0, 0, 0, 0.12),
56
+ 0 4px 12px rgba(0, 0, 0, 0.12);
57
+ }
58
+
59
+ .items.mobile.opened {
60
+ display: flex;
61
+
62
+
63
+
64
+ align-items: center;
65
+
66
+ gap: 0.75rem;
67
+ }
68
+
69
+
70
+ .items.mobile.opened > * {
71
+ width: 100%;
72
+ }
@@ -0,0 +1,48 @@
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 { ChangeDetectionStrategy, Component, ElementRef, HostListener, inject, Input, signal, } from '@angular/core';
14
+ import { MatButtonModule } from '@angular/material/button';
15
+ import { MatIconModule } from '@angular/material/icon';
16
+ import { TaonAdminService } from 'taon/browser';
17
+ @Component({
18
+ selector: 'taon-items-hamburger',
19
+ standalone: true,
20
+ imports: [MatButtonModule, MatIconModule],
21
+ changeDetection: ChangeDetectionStrategy.OnPush,
22
+ templateUrl: './taon-items-hamburger.component.html',
23
+ styleUrl: './taon-items-hamburger.component.scss',
24
+ })
25
+ export class TaonItemsHamburgerComponent {
26
+ @Input()
27
+ icon = 'menu';
28
+ readonly taonAdminService = inject(TaonAdminService);
29
+ private readonly elementRef = inject(ElementRef<HTMLElement>);
30
+ readonly opened = signal(false);
31
+ toggle(event: MouseEvent): void {
32
+ event.stopPropagation();
33
+ this.opened.update(opened => !opened);
34
+ }
35
+ @HostListener('document:click', ['$event'])
36
+ onDocumentClick(event: MouseEvent): void {
37
+ const target = event.target as Node | null;
38
+ if (this.opened() &&
39
+ target &&
40
+ !this.elementRef.nativeElement.contains(target)) {
41
+ this.opened.set(false);
42
+ }
43
+ }
44
+ @HostListener('document:keydown.escape')
45
+ onEscape(): void {
46
+ this.opened.set(false);
47
+ }
48
+ }
@@ -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.28';
@@ -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';
@@ -36,5 +37,6 @@ export * from './taon-detachable-dialog-content/taon-detached-window-content.com
36
37
  export * from './taon-draggable-button-panel/taon-draggable-button-panel.component';
37
38
  export * from './taon-draggable-button-panel/taon-draggable-button-panel.models';
38
39
  export * from './taon-draggable-button-panel/taon-draggable-button-panel.routes';
40
+ export * from './taon-items-hamburger/taon-items-hamburger.component';
39
41
  export * from './taon-purchase-status/taon-purchase-status.dialog.component';
40
42
  export * from './taon-under-construction/taon-under-construction.component';
@@ -0,0 +1,4 @@
1
+ {
2
+ "namespacesMapObj": {},
3
+ "namespacesReplace": {}
4
+ }
@@ -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/browser-prod';
20
20
  import { filter, Subscription } from 'rxjs';
21
21
  import { 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';
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
  ]