@taon-dev/ui 21.0.20 → 21.0.22

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 (155) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +3 -3
  2. package/browser/fesm2022/{ui-browser-taon-datatable.component.ts.de-DE.i18n.data-BPAeMyCY.mjs → ui-browser-taon-datatable.component.ts.de-DE.i18n.data-DOHkRE3t.mjs} +5 -1
  3. package/browser/fesm2022/ui-browser-taon-datatable.component.ts.de-DE.i18n.data-DOHkRE3t.mjs.map +1 -0
  4. package/browser/fesm2022/{ui-browser-taon-datatable.component.ts.en-US.i18n.data-CS2DQd3K.mjs → ui-browser-taon-datatable.component.ts.en-US.i18n.data-C6XKszRj.mjs} +5 -1
  5. package/browser/fesm2022/ui-browser-taon-datatable.component.ts.en-US.i18n.data-C6XKszRj.mjs.map +1 -0
  6. package/browser/fesm2022/{ui-browser-taon-datatable.component.ts.pl-PL.i18n.data-CS7rKUSm.mjs → ui-browser-taon-datatable.component.ts.pl-PL.i18n.data-B20v3CeP.mjs} +6 -1
  7. package/browser/fesm2022/ui-browser-taon-datatable.component.ts.pl-PL.i18n.data-B20v3CeP.mjs.map +1 -0
  8. package/browser/fesm2022/ui-browser.mjs +5 -4
  9. package/browser/fesm2022/ui-browser.mjs.map +1 -1
  10. package/browser/package.json +1 -1
  11. package/browser/types/ui-browser.d.ts +2 -1
  12. package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.ts.de-DE.i18n.data-DQm-rD_7.mjs → ui-browser-prod-taon-datatable.component.ts.de-DE.i18n.data-BlXRwzzT.mjs} +5 -1
  13. package/browser-prod/fesm2022/ui-browser-prod-taon-datatable.component.ts.de-DE.i18n.data-BlXRwzzT.mjs.map +1 -0
  14. package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.ts.en-US.i18n.data-B9fNWK7o.mjs → ui-browser-prod-taon-datatable.component.ts.en-US.i18n.data-DsQ8aLcU.mjs} +5 -1
  15. package/browser-prod/fesm2022/ui-browser-prod-taon-datatable.component.ts.en-US.i18n.data-DsQ8aLcU.mjs.map +1 -0
  16. package/browser-prod/fesm2022/{ui-browser-prod-taon-datatable.component.ts.pl-PL.i18n.data-C9_Z13jq.mjs → ui-browser-prod-taon-datatable.component.ts.pl-PL.i18n.data-DircsInd.mjs} +6 -1
  17. package/browser-prod/fesm2022/ui-browser-prod-taon-datatable.component.ts.pl-PL.i18n.data-DircsInd.mjs.map +1 -0
  18. package/browser-prod/fesm2022/ui-browser-prod.mjs +5 -4
  19. package/browser-prod/fesm2022/ui-browser-prod.mjs.map +1 -1
  20. package/browser-prod/package.json +1 -1
  21. package/browser-prod/types/ui-browser-prod.d.ts +2 -1
  22. package/full-dts/build-info._auto-generated_.d.ts +1 -1
  23. package/full-dts/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.d.ts +7 -2
  24. package/full-dts/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.d.ts +7 -2
  25. package/full-dts/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.d.ts +1 -0
  26. package/full-dts/taon-datatable/taon-datatable.component.d.ts +1 -0
  27. package/html/lib/taon-datatable/taon-datatable.component.html +1 -0
  28. package/lib/build-info._auto-generated_.d.ts +1 -1
  29. package/lib/build-info._auto-generated_.js +1 -1
  30. package/lib/package.json +1 -1
  31. package/lib/taon-admin-layout/index.d.ts +1 -1
  32. package/lib/taon-admin-layout/index.js +2 -2
  33. package/lib/taon-admin-welcome/index.d.ts +1 -1
  34. package/lib/taon-admin-welcome/index.js +2 -2
  35. package/lib/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.d.ts +7 -2
  36. package/lib/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.js +4 -0
  37. package/lib/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.js.map +1 -1
  38. package/lib/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.d.ts +7 -2
  39. package/lib/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.js +4 -0
  40. package/lib/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.js.map +1 -1
  41. package/lib/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.d.ts +1 -0
  42. package/lib/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.js +5 -0
  43. package/lib/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.js.map +1 -1
  44. package/lib/taon-datatable/index.d.ts +1 -1
  45. package/lib/taon-datatable/index.js +2 -2
  46. package/lib/taon-draggable-button-panel/index.d.ts +1 -1
  47. package/lib/taon-draggable-button-panel/index.js +2 -2
  48. package/lib-esm/lib/build-info._auto-generated_.d.ts +1 -1
  49. package/lib-esm/lib/build-info._auto-generated_.js +1 -1
  50. package/lib-esm/lib/taon-admin-layout/index.d.ts +1 -1
  51. package/lib-esm/lib/taon-admin-layout/index.js +1 -1
  52. package/lib-esm/lib/taon-admin-welcome/index.d.ts +1 -1
  53. package/lib-esm/lib/taon-admin-welcome/index.js +1 -1
  54. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.d.ts +7 -2
  55. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.js +4 -0
  56. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.js.map +1 -1
  57. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.d.ts +7 -2
  58. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.js +4 -0
  59. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.js.map +1 -1
  60. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.d.ts +1 -0
  61. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.js +5 -0
  62. package/lib-esm/lib/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.js.map +1 -1
  63. package/lib-esm/lib/taon-datatable/index.d.ts +1 -1
  64. package/lib-esm/lib/taon-datatable/index.js +1 -1
  65. package/lib-esm/lib/taon-draggable-button-panel/index.d.ts +1 -1
  66. package/lib-esm/lib/taon-draggable-button-panel/index.js +1 -1
  67. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  68. package/lib-prod/build-info._auto-generated_.js +1 -1
  69. package/lib-prod/package.json +1 -1
  70. package/lib-prod/taon-admin-layout/index.d.ts +1 -1
  71. package/lib-prod/taon-admin-layout/index.js +1 -1
  72. package/lib-prod/taon-admin-welcome/index.d.ts +1 -1
  73. package/lib-prod/taon-admin-welcome/index.js +1 -1
  74. package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.d.ts +7 -2
  75. package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.js +4 -0
  76. package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.js.map +1 -1
  77. package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.d.ts +7 -2
  78. package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.js +4 -0
  79. package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.js.map +1 -1
  80. package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.d.ts +1 -0
  81. package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.js +5 -0
  82. package/lib-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.js.map +1 -1
  83. package/lib-prod/taon-datatable/index.d.ts +1 -1
  84. package/lib-prod/taon-datatable/index.js +1 -1
  85. package/lib-prod/taon-draggable-button-panel/index.d.ts +1 -1
  86. package/lib-prod/taon-draggable-button-panel/index.js +1 -1
  87. package/package.json +1 -1
  88. package/ts-source/browser-code/build-info._auto-generated_.ts +1 -1
  89. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.ts +5 -0
  90. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +4 -0
  91. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.ts +5 -0
  92. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +4 -0
  93. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts +6 -0
  94. package/ts-source/browser-code/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +4 -0
  95. package/ts-source/browser-code/taon-datatable/taon-datatable.component.html +1 -0
  96. package/ts-source/browser-code/taon-datatable/taon-datatable.component.ts +1 -0
  97. package/ts-source/browser-code-prod/build-info._auto-generated_.ts +1 -1
  98. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.ts +5 -0
  99. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +4 -0
  100. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.ts +5 -0
  101. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +4 -0
  102. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts +6 -0
  103. package/ts-source/browser-code-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +4 -0
  104. package/ts-source/browser-code-prod/taon-datatable/taon-datatable.component.html +1 -0
  105. package/ts-source/browser-code-prod/taon-datatable/taon-datatable.component.ts +1 -0
  106. package/ts-source/websql-code/build-info._auto-generated_.ts +1 -1
  107. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.ts +5 -0
  108. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +4 -0
  109. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.ts +5 -0
  110. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +4 -0
  111. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts +6 -0
  112. package/ts-source/websql-code/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +4 -0
  113. package/ts-source/websql-code/taon-datatable/taon-datatable.component.html +1 -0
  114. package/ts-source/websql-code/taon-datatable/taon-datatable.component.ts +1 -0
  115. package/ts-source/websql-code-prod/build-info._auto-generated_.ts +1 -1
  116. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.i18n.data.ts +5 -0
  117. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.de-DE.po +4 -0
  118. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.i18n.data.ts +5 -0
  119. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.en-US.po +4 -0
  120. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.i18n.data.ts +6 -0
  121. package/ts-source/websql-code-prod/taon-datatable/i18n/taon-datatable.component.ts.pl-PL.po +4 -0
  122. package/ts-source/websql-code-prod/taon-datatable/taon-datatable.component.html +1 -0
  123. package/ts-source/websql-code-prod/taon-datatable/taon-datatable.component.ts +1 -0
  124. package/websql/fesm2022/{ui-websql-taon-datatable.component.ts.de-DE.i18n.data-BPAxrdh_.mjs → ui-websql-taon-datatable.component.ts.de-DE.i18n.data-CLYbjFDi.mjs} +5 -1
  125. package/websql/fesm2022/ui-websql-taon-datatable.component.ts.de-DE.i18n.data-CLYbjFDi.mjs.map +1 -0
  126. package/websql/fesm2022/{ui-websql-taon-datatable.component.ts.en-US.i18n.data-Ce8FeQpK.mjs → ui-websql-taon-datatable.component.ts.en-US.i18n.data-r_VW9bRw.mjs} +5 -1
  127. package/websql/fesm2022/ui-websql-taon-datatable.component.ts.en-US.i18n.data-r_VW9bRw.mjs.map +1 -0
  128. package/websql/fesm2022/{ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-i_RfQrSY.mjs → ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-CrDbBs1M.mjs} +6 -1
  129. package/websql/fesm2022/ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-CrDbBs1M.mjs.map +1 -0
  130. package/websql/fesm2022/ui-websql.mjs +5 -4
  131. package/websql/fesm2022/ui-websql.mjs.map +1 -1
  132. package/websql/package.json +1 -1
  133. package/websql/types/ui-websql.d.ts +2 -1
  134. package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.ts.de-DE.i18n.data-yqf5vyxu.mjs → ui-websql-prod-taon-datatable.component.ts.de-DE.i18n.data-rfiJ-U1k.mjs} +5 -1
  135. package/websql-prod/fesm2022/ui-websql-prod-taon-datatable.component.ts.de-DE.i18n.data-rfiJ-U1k.mjs.map +1 -0
  136. package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.ts.en-US.i18n.data-C2Blug0p.mjs → ui-websql-prod-taon-datatable.component.ts.en-US.i18n.data-BmB1328X.mjs} +5 -1
  137. package/websql-prod/fesm2022/ui-websql-prod-taon-datatable.component.ts.en-US.i18n.data-BmB1328X.mjs.map +1 -0
  138. package/websql-prod/fesm2022/{ui-websql-prod-taon-datatable.component.ts.pl-PL.i18n.data-B9bL00Dz.mjs → ui-websql-prod-taon-datatable.component.ts.pl-PL.i18n.data-DNnZNSVK.mjs} +6 -1
  139. package/websql-prod/fesm2022/ui-websql-prod-taon-datatable.component.ts.pl-PL.i18n.data-DNnZNSVK.mjs.map +1 -0
  140. package/websql-prod/fesm2022/ui-websql-prod.mjs +5 -4
  141. package/websql-prod/fesm2022/ui-websql-prod.mjs.map +1 -1
  142. package/websql-prod/package.json +1 -1
  143. package/websql-prod/types/ui-websql-prod.d.ts +2 -1
  144. package/browser/fesm2022/ui-browser-taon-datatable.component.ts.de-DE.i18n.data-BPAeMyCY.mjs.map +0 -1
  145. package/browser/fesm2022/ui-browser-taon-datatable.component.ts.en-US.i18n.data-CS2DQd3K.mjs.map +0 -1
  146. package/browser/fesm2022/ui-browser-taon-datatable.component.ts.pl-PL.i18n.data-CS7rKUSm.mjs.map +0 -1
  147. package/browser-prod/fesm2022/ui-browser-prod-taon-datatable.component.ts.de-DE.i18n.data-DQm-rD_7.mjs.map +0 -1
  148. package/browser-prod/fesm2022/ui-browser-prod-taon-datatable.component.ts.en-US.i18n.data-B9fNWK7o.mjs.map +0 -1
  149. package/browser-prod/fesm2022/ui-browser-prod-taon-datatable.component.ts.pl-PL.i18n.data-C9_Z13jq.mjs.map +0 -1
  150. package/websql/fesm2022/ui-websql-taon-datatable.component.ts.de-DE.i18n.data-BPAxrdh_.mjs.map +0 -1
  151. package/websql/fesm2022/ui-websql-taon-datatable.component.ts.en-US.i18n.data-Ce8FeQpK.mjs.map +0 -1
  152. package/websql/fesm2022/ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-i_RfQrSY.mjs.map +0 -1
  153. package/websql-prod/fesm2022/ui-websql-prod-taon-datatable.component.ts.de-DE.i18n.data-yqf5vyxu.mjs.map +0 -1
  154. package/websql-prod/fesm2022/ui-websql-prod-taon-datatable.component.ts.en-US.i18n.data-C2Blug0p.mjs.map +0 -1
  155. package/websql-prod/fesm2022/ui-websql-prod-taon-datatable.component.ts.pl-PL.i18n.data-B9bL00Dz.mjs.map +0 -1
@@ -68,7 +68,7 @@ const CURRENT_PACKAGE_TAON_VERSION = 'v21';
68
68
  /**
69
69
  * Autogenerated by current cli tool. Use *tnp release* to bump version.
70
70
  */
71
- const CURRENT_PACKAGE_VERSION = '21.0.20';
71
+ const CURRENT_PACKAGE_VERSION = '21.0.22';
72
72
  // THIS FILE IS GENERATED - DO NOT MODIFY
73
73
 
74
74
  const t$c = Translation.for('src/lib/my-organization-proj.ts', { "src/lib/my-organization-proj.ts": { "en-US": async () => (await import('./ui-websql-my-organization-proj.ts.en-US.i18n.data-B6eQfqTW.mjs')).default, "pl-PL": async () => (await import('./ui-websql-my-organization-proj.ts.pl-PL.i18n.data-C2FZNfxx.mjs')).default, "de-DE": async () => (await import('./ui-websql-my-organization-proj.ts.de-DE.i18n.data-zpmbvuwX.mjs')).default }, "src/lib/start-cli.ts": { "en-US": async () => (await import('./ui-websql-start-cli.ts.en-US.i18n.data-BtpAWTsG.mjs')).default, "pl-PL": async () => (await import('./ui-websql-start-cli.ts.pl-PL.i18n.data-D8kU8T4d.mjs')).default, "de-DE": async () => (await import('./ui-websql-start-cli.ts.de-DE.i18n.data-ZDwwRGhS.mjs')).default } });
@@ -1330,7 +1330,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
1330
1330
 
1331
1331
  //#region imports
1332
1332
  //#endregion
1333
- const t$4 = Translation.for('src/lib/taon-datatable/taon-datatable.component.ts', { "src/lib/taon-datatable/taon-datatable.component.html": { "en-US": async () => (await import('./ui-websql-taon-datatable.component.html.en-US.i18n.data-B5Q6v4WG.mjs')).default, "pl-PL": async () => (await import('./ui-websql-taon-datatable.component.html.pl-PL.i18n.data-CHtCyNUI.mjs')).default, "de-DE": async () => (await import('./ui-websql-taon-datatable.component.html.de-DE.i18n.data-CRiuweZ1.mjs')).default }, "src/lib/taon-datatable/taon-datatable.component.ts": { "en-US": async () => (await import('./ui-websql-taon-datatable.component.ts.en-US.i18n.data-Ce8FeQpK.mjs')).default, "pl-PL": async () => (await import('./ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-i_RfQrSY.mjs')).default, "de-DE": async () => (await import('./ui-websql-taon-datatable.component.ts.de-DE.i18n.data-BPAxrdh_.mjs')).default } });
1333
+ const t$4 = Translation.for('src/lib/taon-datatable/taon-datatable.component.ts', { "src/lib/taon-datatable/taon-datatable.component.html": { "en-US": async () => (await import('./ui-websql-taon-datatable.component.html.en-US.i18n.data-B5Q6v4WG.mjs')).default, "pl-PL": async () => (await import('./ui-websql-taon-datatable.component.html.pl-PL.i18n.data-CHtCyNUI.mjs')).default, "de-DE": async () => (await import('./ui-websql-taon-datatable.component.html.de-DE.i18n.data-CRiuweZ1.mjs')).default }, "src/lib/taon-datatable/taon-datatable.component.ts": { "en-US": async () => (await import('./ui-websql-taon-datatable.component.ts.en-US.i18n.data-r_VW9bRw.mjs')).default, "pl-PL": async () => (await import('./ui-websql-taon-datatable.component.ts.pl-PL.i18n.data-CrDbBs1M.mjs')).default, "de-DE": async () => (await import('./ui-websql-taon-datatable.component.ts.de-DE.i18n.data-CLYbjFDi.mjs')).default } });
1334
1334
  const defaultColumns = [
1335
1335
  {
1336
1336
  header: t$4.gettext('ID'),
@@ -1351,6 +1351,7 @@ class TaonDatatableComponent {
1351
1351
  this.pageNumber = 1;
1352
1352
  this.pageSize = 10;
1353
1353
  this.pageSizeOptions = [5, 10, 20, 50, 100];
1354
+ this.noResultText = this.t.gettext('No records found');
1354
1355
  this.allowedColumns = [];
1355
1356
  this.columns = defaultColumns;
1356
1357
  this.hideSearch = false;
@@ -1647,7 +1648,7 @@ class TaonDatatableComponent {
1647
1648
  }
1648
1649
  }
1649
1650
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDatatableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1650
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonDatatableComponent, isStandalone: true, selector: "taon-datatable", inputs: { pageNumber: "pageNumber", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", allowedColumns: "allowedColumns", expansionTemplate: "expansionTemplate", entityCrudController: "entityCrudController", columns: "columns", hideSearch: "hideSearch", hideAddButton: "hideAddButton", safe: "safe", searchMode: "searchMode", callQueryMethod: "callQueryMethod", data: "data", showPaginator: "showPaginator" }, outputs: { expansionChange: "expansionChange", addingItem: "addingItem" }, ngImport: i0, template: "<div class=\"flex w-full flex-col gap-3\">\n <!-- #region toolbar -->\n @if (!hideSearch) {\n <div\n class=\"flex w-full flex-col gap-2 rounded-lg border border-gray-200 bg-white p-3 shadow-sm dark:border-gray-700 dark:bg-gray-900 md:flex-row md:items-center\">\n <!-- global search -->\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"min-w-0 flex-1\">\n <mat-icon matPrefix> search </mat-icon>\n\n <input\n matInput\n [placeholder]=\"t.gettext('Search...')\"\n [value]=\"searchValue\"\n (input)=\"searchChanged($any($event.target).value)\" />\n\n @if (searchValue) {\n <button\n mat-icon-button\n matSuffix\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n\n <!-- advanced search -->\n @if (searchMode === 'advanced') {\n <button\n mat-stroked-button\n type=\"button\"\n (click)=\"toggleAdvancedSearch()\">\n <mat-icon> tune </mat-icon>\n\n {{ t.gettext('Filters') }}\n\n @if (advancedSearchOpened) {\n <mat-icon> expand_less </mat-icon>\n } @else {\n <mat-icon> expand_more </mat-icon>\n }\n </button>\n }\n\n <!-- refresh -->\n <button\n mat-icon-button\n type=\"button\"\n [title]=\"t.gettext('Refresh')\"\n (click)=\"reload()\">\n <mat-icon> refresh </mat-icon>\n </button>\n\n <!-- add -->\n @if (!hideAddButton) {\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"addingItem.emit()\">\n <mat-icon> add </mat-icon>\n\n {{ t.gettext('Add') }}\n </button>\n }\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region advanced filters -->\n @if (!hideSearch && searchMode === 'advanced' && advancedSearchOpened) {\n <div\n 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\">\n @for (column of filterableColumns; track column.field) {\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"w-full\">\n <mat-label>\n {{ column.header }}\n </mat-label>\n\n <input\n matInput\n [(ngModel)]=\"columnFilters[$any(column.field)]\"\n (keyup.enter)=\"applyAdvancedFilters()\" />\n </mat-form-field>\n }\n\n <div\n class=\"flex items-center justify-end gap-2 md:col-span-2 lg:col-span-3 xl:col-span-4\">\n <button\n mat-button\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon> filter_alt_off </mat-icon>\n\n {{ t.gettext('Clear') }}\n </button>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"applyAdvancedFilters()\">\n <mat-icon> filter_alt </mat-icon>\n\n {{ t.gettext('Apply filters') }}\n </button>\n </div>\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region grid -->\n <div\n class=\"relative min-h-[250px] overflow-hidden rounded-lg border border-gray-200 bg-white shadow-sm dark:border-gray-700 dark:bg-gray-900\">\n @if (isLoading) {\n <div\n class=\"absolute inset-0 z-10 flex items-center justify-center bg-white/60 backdrop-blur-[1px] dark:bg-gray-900/60\">\n <div\n class=\"flex items-center gap-2 rounded-md bg-white px-4 py-2 shadow dark:bg-gray-800\">\n <mat-icon class=\"animate-spin\"> refresh </mat-icon>\n\n {{ t.gettext('Loading...') }}\n </div>\n </div>\n }\n\n <mtx-grid\n [data]=\"rows\"\n [columns]=\"columns\"\n [expandable]=\"expandable\"\n [expansionTemplate]=\"lazyExpansionTemplate\"\n [length]=\"totalElements\"\n [pageOnFront]=\"false\"\n [pageIndex]=\"pageNumber - 1\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showPaginator]=\"showPaginator\"\n (expansionChange)=\"onExpansionChange($event)\"\n (page)=\"getNextPage($event)\"\n (sortChange)=\"sortChanged($event)\">\n </mtx-grid>\n\n <ng-template\n #lazyExpansionTemplate\n let-row>\n @if (isExpanded(row)) {\n <ng-container\n [ngTemplateOutlet]=\"expansionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row }\">\n </ng-container>\n }\n </ng-template>\n </div>\n <!-- #endregion -->\n</div>\n", styles: [":host{display:block;width:100%;min-height:250px}:host ::ng-deep .mat-mdc-form-field{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "ngmodule", type: MtxGridModule }, { kind: "component", type: i7.MtxGrid, selector: "mtx-grid", inputs: ["displayedColumns", "columns", "data", "length", "loading", "trackBy", "columnResizable", "emptyValuePlaceholder", "pageOnFront", "showPaginator", "pageDisabled", "showFirstLastButtons", "pageIndex", "pageSize", "pageSizeOptions", "hidePageSize", "paginationTemplate", "sortOnFront", "sortActive", "sortDirection", "sortDisableClear", "sortDisabled", "sortStart", "rowHover", "rowStriped", "expandable", "expansionTemplate", "multiSelectable", "multiSelectionWithClick", "rowSelectable", "hideRowSelectionCheckbox", "disableRowClickSelection", "rowSelectionFormatter", "rowClassFormatter", "rowSelected", "cellSelectable", "showToolbar", "toolbarTitle", "toolbarTemplate", "columnHideable", "columnHideableChecked", "columnSortable", "columnPinnable", "columnPinOptions", "showColumnMenuButton", "columnMenuButtonText", "columnMenuButtonType", "columnMenuButtonColor", "columnMenuButtonClass", "columnMenuButtonIcon", "columnMenuButtonFontIcon", "columnMenuButtonSvgIcon", "showColumnMenuHeader", "columnMenuHeaderText", "columnMenuHeaderTemplate", "showColumnMenuFooter", "columnMenuFooterText", "columnMenuFooterTemplate", "noResultText", "noResultTemplate", "headerTemplate", "headerExtraTemplate", "cellTemplate", "useContentRowTemplate", "useContentHeaderRowTemplate", "useContentFooterRowTemplate", "showSummary", "summaryTemplate", "showSidebar", "sidebarTemplate", "showStatusbar", "statusbarTemplate"], outputs: ["page", "sortChange", "rowClick", "rowContextMenu", "expansionChange", "rowSelectedChange", "cellSelectedChange", "columnChange"], exportAs: ["mtxGrid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1651
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TaonDatatableComponent, isStandalone: true, selector: "taon-datatable", inputs: { pageNumber: "pageNumber", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", allowedColumns: "allowedColumns", expansionTemplate: "expansionTemplate", entityCrudController: "entityCrudController", columns: "columns", hideSearch: "hideSearch", hideAddButton: "hideAddButton", safe: "safe", searchMode: "searchMode", callQueryMethod: "callQueryMethod", data: "data", showPaginator: "showPaginator" }, outputs: { expansionChange: "expansionChange", addingItem: "addingItem" }, ngImport: i0, template: "<div class=\"flex w-full flex-col gap-3\">\n <!-- #region toolbar -->\n @if (!hideSearch) {\n <div\n class=\"flex w-full flex-col gap-2 rounded-lg border border-gray-200 bg-white p-3 shadow-sm dark:border-gray-700 dark:bg-gray-900 md:flex-row md:items-center\">\n <!-- global search -->\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"min-w-0 flex-1\">\n <mat-icon matPrefix> search </mat-icon>\n\n <input\n matInput\n [placeholder]=\"t.gettext('Search...')\"\n [value]=\"searchValue\"\n (input)=\"searchChanged($any($event.target).value)\" />\n\n @if (searchValue) {\n <button\n mat-icon-button\n matSuffix\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n\n <!-- advanced search -->\n @if (searchMode === 'advanced') {\n <button\n mat-stroked-button\n type=\"button\"\n (click)=\"toggleAdvancedSearch()\">\n <mat-icon> tune </mat-icon>\n\n {{ t.gettext('Filters') }}\n\n @if (advancedSearchOpened) {\n <mat-icon> expand_less </mat-icon>\n } @else {\n <mat-icon> expand_more </mat-icon>\n }\n </button>\n }\n\n <!-- refresh -->\n <button\n mat-icon-button\n type=\"button\"\n [title]=\"t.gettext('Refresh')\"\n (click)=\"reload()\">\n <mat-icon> refresh </mat-icon>\n </button>\n\n <!-- add -->\n @if (!hideAddButton) {\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"addingItem.emit()\">\n <mat-icon> add </mat-icon>\n\n {{ t.gettext('Add') }}\n </button>\n }\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region advanced filters -->\n @if (!hideSearch && searchMode === 'advanced' && advancedSearchOpened) {\n <div\n 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\">\n @for (column of filterableColumns; track column.field) {\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"w-full\">\n <mat-label>\n {{ column.header }}\n </mat-label>\n\n <input\n matInput\n [(ngModel)]=\"columnFilters[$any(column.field)]\"\n (keyup.enter)=\"applyAdvancedFilters()\" />\n </mat-form-field>\n }\n\n <div\n class=\"flex items-center justify-end gap-2 md:col-span-2 lg:col-span-3 xl:col-span-4\">\n <button\n mat-button\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon> filter_alt_off </mat-icon>\n\n {{ t.gettext('Clear') }}\n </button>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"applyAdvancedFilters()\">\n <mat-icon> filter_alt </mat-icon>\n\n {{ t.gettext('Apply filters') }}\n </button>\n </div>\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region grid -->\n <div\n class=\"relative min-h-[250px] overflow-hidden rounded-lg border border-gray-200 bg-white shadow-sm dark:border-gray-700 dark:bg-gray-900\">\n @if (isLoading) {\n <div\n class=\"absolute inset-0 z-10 flex items-center justify-center bg-white/60 backdrop-blur-[1px] dark:bg-gray-900/60\">\n <div\n class=\"flex items-center gap-2 rounded-md bg-white px-4 py-2 shadow dark:bg-gray-800\">\n <mat-icon class=\"animate-spin\"> refresh </mat-icon>\n\n {{ t.gettext('Loading...') }}\n </div>\n </div>\n }\n\n <mtx-grid\n [data]=\"rows\"\n [columns]=\"columns\"\n [expandable]=\"expandable\"\n [expansionTemplate]=\"lazyExpansionTemplate\"\n [length]=\"totalElements\"\n [pageOnFront]=\"false\"\n [pageIndex]=\"pageNumber - 1\"\n [pageSize]=\"pageSize\"\n [noResultText]=\"noResultText\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showPaginator]=\"showPaginator\"\n (expansionChange)=\"onExpansionChange($event)\"\n (page)=\"getNextPage($event)\"\n (sortChange)=\"sortChanged($event)\">\n </mtx-grid>\n\n <ng-template\n #lazyExpansionTemplate\n let-row>\n @if (isExpanded(row)) {\n <ng-container\n [ngTemplateOutlet]=\"expansionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row }\">\n </ng-container>\n }\n </ng-template>\n </div>\n <!-- #endregion -->\n</div>\n", styles: [":host{display:block;width:100%;min-height:250px}:host ::ng-deep .mat-mdc-form-field{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2$2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "ngmodule", type: MtxGridModule }, { kind: "component", type: i7.MtxGrid, selector: "mtx-grid", inputs: ["displayedColumns", "columns", "data", "length", "loading", "trackBy", "columnResizable", "emptyValuePlaceholder", "pageOnFront", "showPaginator", "pageDisabled", "showFirstLastButtons", "pageIndex", "pageSize", "pageSizeOptions", "hidePageSize", "paginationTemplate", "sortOnFront", "sortActive", "sortDirection", "sortDisableClear", "sortDisabled", "sortStart", "rowHover", "rowStriped", "expandable", "expansionTemplate", "multiSelectable", "multiSelectionWithClick", "rowSelectable", "hideRowSelectionCheckbox", "disableRowClickSelection", "rowSelectionFormatter", "rowClassFormatter", "rowSelected", "cellSelectable", "showToolbar", "toolbarTitle", "toolbarTemplate", "columnHideable", "columnHideableChecked", "columnSortable", "columnPinnable", "columnPinOptions", "showColumnMenuButton", "columnMenuButtonText", "columnMenuButtonType", "columnMenuButtonColor", "columnMenuButtonClass", "columnMenuButtonIcon", "columnMenuButtonFontIcon", "columnMenuButtonSvgIcon", "showColumnMenuHeader", "columnMenuHeaderText", "columnMenuHeaderTemplate", "showColumnMenuFooter", "columnMenuFooterText", "columnMenuFooterTemplate", "noResultText", "noResultTemplate", "headerTemplate", "headerExtraTemplate", "cellTemplate", "useContentRowTemplate", "useContentHeaderRowTemplate", "useContentFooterRowTemplate", "showSummary", "summaryTemplate", "showSidebar", "sidebarTemplate", "showStatusbar", "statusbarTemplate"], outputs: ["page", "sortChange", "rowClick", "rowContextMenu", "expansionChange", "rowSelectedChange", "cellSelectedChange", "columnChange"], exportAs: ["mtxGrid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1651
1652
  }
1652
1653
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TaonDatatableComponent, decorators: [{
1653
1654
  type: Component,
@@ -1662,7 +1663,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
1662
1663
  MatPaginatorModule,
1663
1664
  MatSelectModule,
1664
1665
  MtxGridModule,
1665
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex w-full flex-col gap-3\">\n <!-- #region toolbar -->\n @if (!hideSearch) {\n <div\n class=\"flex w-full flex-col gap-2 rounded-lg border border-gray-200 bg-white p-3 shadow-sm dark:border-gray-700 dark:bg-gray-900 md:flex-row md:items-center\">\n <!-- global search -->\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"min-w-0 flex-1\">\n <mat-icon matPrefix> search </mat-icon>\n\n <input\n matInput\n [placeholder]=\"t.gettext('Search...')\"\n [value]=\"searchValue\"\n (input)=\"searchChanged($any($event.target).value)\" />\n\n @if (searchValue) {\n <button\n mat-icon-button\n matSuffix\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n\n <!-- advanced search -->\n @if (searchMode === 'advanced') {\n <button\n mat-stroked-button\n type=\"button\"\n (click)=\"toggleAdvancedSearch()\">\n <mat-icon> tune </mat-icon>\n\n {{ t.gettext('Filters') }}\n\n @if (advancedSearchOpened) {\n <mat-icon> expand_less </mat-icon>\n } @else {\n <mat-icon> expand_more </mat-icon>\n }\n </button>\n }\n\n <!-- refresh -->\n <button\n mat-icon-button\n type=\"button\"\n [title]=\"t.gettext('Refresh')\"\n (click)=\"reload()\">\n <mat-icon> refresh </mat-icon>\n </button>\n\n <!-- add -->\n @if (!hideAddButton) {\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"addingItem.emit()\">\n <mat-icon> add </mat-icon>\n\n {{ t.gettext('Add') }}\n </button>\n }\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region advanced filters -->\n @if (!hideSearch && searchMode === 'advanced' && advancedSearchOpened) {\n <div\n 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\">\n @for (column of filterableColumns; track column.field) {\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"w-full\">\n <mat-label>\n {{ column.header }}\n </mat-label>\n\n <input\n matInput\n [(ngModel)]=\"columnFilters[$any(column.field)]\"\n (keyup.enter)=\"applyAdvancedFilters()\" />\n </mat-form-field>\n }\n\n <div\n class=\"flex items-center justify-end gap-2 md:col-span-2 lg:col-span-3 xl:col-span-4\">\n <button\n mat-button\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon> filter_alt_off </mat-icon>\n\n {{ t.gettext('Clear') }}\n </button>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"applyAdvancedFilters()\">\n <mat-icon> filter_alt </mat-icon>\n\n {{ t.gettext('Apply filters') }}\n </button>\n </div>\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region grid -->\n <div\n class=\"relative min-h-[250px] overflow-hidden rounded-lg border border-gray-200 bg-white shadow-sm dark:border-gray-700 dark:bg-gray-900\">\n @if (isLoading) {\n <div\n class=\"absolute inset-0 z-10 flex items-center justify-center bg-white/60 backdrop-blur-[1px] dark:bg-gray-900/60\">\n <div\n class=\"flex items-center gap-2 rounded-md bg-white px-4 py-2 shadow dark:bg-gray-800\">\n <mat-icon class=\"animate-spin\"> refresh </mat-icon>\n\n {{ t.gettext('Loading...') }}\n </div>\n </div>\n }\n\n <mtx-grid\n [data]=\"rows\"\n [columns]=\"columns\"\n [expandable]=\"expandable\"\n [expansionTemplate]=\"lazyExpansionTemplate\"\n [length]=\"totalElements\"\n [pageOnFront]=\"false\"\n [pageIndex]=\"pageNumber - 1\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showPaginator]=\"showPaginator\"\n (expansionChange)=\"onExpansionChange($event)\"\n (page)=\"getNextPage($event)\"\n (sortChange)=\"sortChanged($event)\">\n </mtx-grid>\n\n <ng-template\n #lazyExpansionTemplate\n let-row>\n @if (isExpanded(row)) {\n <ng-container\n [ngTemplateOutlet]=\"expansionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row }\">\n </ng-container>\n }\n </ng-template>\n </div>\n <!-- #endregion -->\n</div>\n", styles: [":host{display:block;width:100%;min-height:250px}:host ::ng-deep .mat-mdc-form-field{margin:0}\n"] }]
1666
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex w-full flex-col gap-3\">\n <!-- #region toolbar -->\n @if (!hideSearch) {\n <div\n class=\"flex w-full flex-col gap-2 rounded-lg border border-gray-200 bg-white p-3 shadow-sm dark:border-gray-700 dark:bg-gray-900 md:flex-row md:items-center\">\n <!-- global search -->\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"min-w-0 flex-1\">\n <mat-icon matPrefix> search </mat-icon>\n\n <input\n matInput\n [placeholder]=\"t.gettext('Search...')\"\n [value]=\"searchValue\"\n (input)=\"searchChanged($any($event.target).value)\" />\n\n @if (searchValue) {\n <button\n mat-icon-button\n matSuffix\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n\n <!-- advanced search -->\n @if (searchMode === 'advanced') {\n <button\n mat-stroked-button\n type=\"button\"\n (click)=\"toggleAdvancedSearch()\">\n <mat-icon> tune </mat-icon>\n\n {{ t.gettext('Filters') }}\n\n @if (advancedSearchOpened) {\n <mat-icon> expand_less </mat-icon>\n } @else {\n <mat-icon> expand_more </mat-icon>\n }\n </button>\n }\n\n <!-- refresh -->\n <button\n mat-icon-button\n type=\"button\"\n [title]=\"t.gettext('Refresh')\"\n (click)=\"reload()\">\n <mat-icon> refresh </mat-icon>\n </button>\n\n <!-- add -->\n @if (!hideAddButton) {\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"addingItem.emit()\">\n <mat-icon> add </mat-icon>\n\n {{ t.gettext('Add') }}\n </button>\n }\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region advanced filters -->\n @if (!hideSearch && searchMode === 'advanced' && advancedSearchOpened) {\n <div\n 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\">\n @for (column of filterableColumns; track column.field) {\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"w-full\">\n <mat-label>\n {{ column.header }}\n </mat-label>\n\n <input\n matInput\n [(ngModel)]=\"columnFilters[$any(column.field)]\"\n (keyup.enter)=\"applyAdvancedFilters()\" />\n </mat-form-field>\n }\n\n <div\n class=\"flex items-center justify-end gap-2 md:col-span-2 lg:col-span-3 xl:col-span-4\">\n <button\n mat-button\n type=\"button\"\n (click)=\"clearSearch()\">\n <mat-icon> filter_alt_off </mat-icon>\n\n {{ t.gettext('Clear') }}\n </button>\n\n <button\n mat-flat-button\n color=\"primary\"\n type=\"button\"\n (click)=\"applyAdvancedFilters()\">\n <mat-icon> filter_alt </mat-icon>\n\n {{ t.gettext('Apply filters') }}\n </button>\n </div>\n </div>\n }\n <!-- #endregion -->\n\n <!-- #region grid -->\n <div\n class=\"relative min-h-[250px] overflow-hidden rounded-lg border border-gray-200 bg-white shadow-sm dark:border-gray-700 dark:bg-gray-900\">\n @if (isLoading) {\n <div\n class=\"absolute inset-0 z-10 flex items-center justify-center bg-white/60 backdrop-blur-[1px] dark:bg-gray-900/60\">\n <div\n class=\"flex items-center gap-2 rounded-md bg-white px-4 py-2 shadow dark:bg-gray-800\">\n <mat-icon class=\"animate-spin\"> refresh </mat-icon>\n\n {{ t.gettext('Loading...') }}\n </div>\n </div>\n }\n\n <mtx-grid\n [data]=\"rows\"\n [columns]=\"columns\"\n [expandable]=\"expandable\"\n [expansionTemplate]=\"lazyExpansionTemplate\"\n [length]=\"totalElements\"\n [pageOnFront]=\"false\"\n [pageIndex]=\"pageNumber - 1\"\n [pageSize]=\"pageSize\"\n [noResultText]=\"noResultText\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showPaginator]=\"showPaginator\"\n (expansionChange)=\"onExpansionChange($event)\"\n (page)=\"getNextPage($event)\"\n (sortChange)=\"sortChanged($event)\">\n </mtx-grid>\n\n <ng-template\n #lazyExpansionTemplate\n let-row>\n @if (isExpanded(row)) {\n <ng-container\n [ngTemplateOutlet]=\"expansionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row }\">\n </ng-container>\n }\n </ng-template>\n </div>\n <!-- #endregion -->\n</div>\n", styles: [":host{display:block;width:100%;min-height:250px}:host ::ng-deep .mat-mdc-form-field{margin:0}\n"] }]
1666
1667
  }], propDecorators: { pageNumber: [{
1667
1668
  type: Input
1668
1669
  }], pageSize: [{