primekit 1.0.10 → 1.0.12

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 (244) hide show
  1. package/esm2022/lib/lib/atomix-alert/atomix-alert.component.mjs +76 -0
  2. package/esm2022/lib/lib/atomix-autocomplete/atomix-autocomplete.component.mjs +108 -0
  3. package/esm2022/lib/lib/atomix-button/atomix-button.component.mjs +49 -0
  4. package/esm2022/lib/lib/atomix-button/atomix-button.models.mjs +2 -0
  5. package/esm2022/lib/lib/atomix-calendar/atomix-calendar.component.mjs +90 -0
  6. package/esm2022/lib/lib/atomix-card/atomix-card.component.mjs +24 -0
  7. package/esm2022/lib/lib/atomix-confirmation-dialog/atomix-confirmation-dialog.component.mjs +28 -0
  8. package/esm2022/lib/lib/atomix-daterange-calendar/atomix-daterange-calendar.component.mjs +674 -0
  9. package/esm2022/lib/lib/atomix-divider/atomix-divider.component.mjs +27 -0
  10. package/esm2022/lib/lib/atomix-dropdown/atomix-dropdown.component.mjs +105 -0
  11. package/esm2022/lib/lib/atomix-dynamic-dialog/atomix-dynamic-dialog.component.mjs +38 -0
  12. package/esm2022/lib/lib/atomix-dynamic-dialog/atomix-dynamic-dialog.models.mjs +2 -0
  13. package/esm2022/lib/lib/atomix-form/atomix-form-autocomplete/atomix-form-autocomplete.component.mjs +67 -0
  14. package/esm2022/lib/lib/atomix-form/atomix-form-calendar/atomix-form-calendar.component.mjs +59 -0
  15. package/esm2022/lib/lib/atomix-form/atomix-form-checkbox/atomix-form-checkbox.component.mjs +48 -0
  16. package/esm2022/lib/lib/atomix-form/atomix-form-chips/atomix-form-chips.component.mjs +54 -0
  17. package/esm2022/lib/lib/atomix-form/atomix-form-chips/form.chips.models.mjs +2 -0
  18. package/esm2022/lib/lib/atomix-form/atomix-form-dropdown/atomix-form-dropdown.component.mjs +70 -0
  19. package/esm2022/lib/lib/atomix-form/atomix-form-input-component/atomix-form-input-component.component.mjs +80 -0
  20. package/esm2022/lib/lib/atomix-form/atomix-form-inputmask-component/atomix-form-inputmask-component.component.mjs +48 -0
  21. package/esm2022/lib/lib/atomix-form/atomix-form-password-component/atomix-form-password-component.component.mjs +48 -0
  22. package/esm2022/lib/lib/atomix-form/atomix-form-radio-button/atomix-radio-button.component.mjs +46 -0
  23. package/esm2022/lib/lib/atomix-form/atomix-form-textarea/atomix-form-textarea.component.mjs +46 -0
  24. package/esm2022/lib/lib/atomix-input/atomix-input.component.mjs +94 -0
  25. package/esm2022/lib/lib/atomix-input-switch/atomix-input-switch.component.mjs +85 -0
  26. package/esm2022/lib/lib/atomix-loading-overlay/atomix-loading-overlay.component.mjs +44 -0
  27. package/esm2022/lib/lib/atomix-messages/messages.component.mjs +33 -0
  28. package/esm2022/lib/lib/atomix-pagination/atomix-pagination.component.mjs +48 -0
  29. package/esm2022/lib/lib/atomix-radio-button/atomix-radio-button.component.mjs +50 -0
  30. package/esm2022/lib/lib/atomix-search-dropdown/atomix-search-dropdown.component.mjs +149 -0
  31. package/esm2022/lib/lib/atomix-select-button/atomix-select-button-models.mjs +2 -0
  32. package/esm2022/lib/lib/atomix-select-button/atomix-select-button.component.mjs +25 -0
  33. package/esm2022/lib/lib/atomix-snackbar/atomix-snackbar.component.mjs +29 -0
  34. package/esm2022/lib/lib/atomix-spinner/atomix-spinner.component.mjs +24 -0
  35. package/esm2022/lib/lib/atomix-steps/atomix-steps.component.mjs +41 -0
  36. package/esm2022/lib/lib/atomix-tabMenu/atomix-tabMenu.component.mjs +51 -0
  37. package/esm2022/lib/lib/atomix-table/atomix-table.component.mjs +454 -0
  38. package/esm2022/lib/lib/atomix-table/atomix-table.models.mjs +2 -0
  39. package/esm2022/lib/lib/atomix-tag/atomix-tag.component.mjs +24 -0
  40. package/esm2022/lib/lib/utils/prime-icons.util.mjs +10 -0
  41. package/esm2022/lib/primekit.component.mjs +11 -0
  42. package/esm2022/lib/primekit.module.mjs +322 -0
  43. package/esm2022/lib/primekit.service.mjs +14 -0
  44. package/esm2022/primekit.mjs +5 -0
  45. package/esm2022/public-api.mjs +44 -0
  46. package/fesm2022/primekit.mjs +3115 -0
  47. package/fesm2022/primekit.mjs.map +1 -0
  48. package/index.d.ts +5 -0
  49. package/lib/lib/atomix-alert/atomix-alert.component.d.ts +22 -0
  50. package/lib/lib/atomix-autocomplete/atomix-autocomplete.component.d.ts +34 -0
  51. package/lib/lib/atomix-button/atomix-button.component.d.ts +19 -0
  52. package/{src/lib/lib/atomix-button/atomix-button.models.ts → lib/lib/atomix-button/atomix-button.models.d.ts} +2 -2
  53. package/lib/lib/atomix-calendar/atomix-calendar.component.d.ts +27 -0
  54. package/lib/lib/atomix-card/atomix-card.component.d.ts +9 -0
  55. package/lib/lib/atomix-confirmation-dialog/atomix-confirmation-dialog.component.d.ts +12 -0
  56. package/lib/lib/atomix-daterange-calendar/atomix-daterange-calendar.component.d.ts +72 -0
  57. package/lib/lib/atomix-divider/atomix-divider.component.d.ts +12 -0
  58. package/lib/lib/atomix-dropdown/atomix-dropdown.component.d.ts +50 -0
  59. package/lib/lib/atomix-dynamic-dialog/atomix-dynamic-dialog.component.d.ts +15 -0
  60. package/lib/lib/atomix-dynamic-dialog/atomix-dynamic-dialog.models.d.ts +11 -0
  61. package/lib/lib/atomix-form/atomix-form-autocomplete/atomix-form-autocomplete.component.d.ts +25 -0
  62. package/lib/lib/atomix-form/atomix-form-calendar/atomix-form-calendar.component.d.ts +23 -0
  63. package/lib/lib/atomix-form/atomix-form-checkbox/atomix-form-checkbox.component.d.ts +18 -0
  64. package/lib/lib/atomix-form/atomix-form-chips/atomix-form-chips.component.d.ts +19 -0
  65. package/lib/lib/atomix-form/atomix-form-chips/form.chips.models.d.ts +5 -0
  66. package/lib/lib/atomix-form/atomix-form-dropdown/atomix-form-dropdown.component.d.ts +25 -0
  67. package/lib/lib/atomix-form/atomix-form-input-component/atomix-form-input-component.component.d.ts +28 -0
  68. package/lib/lib/atomix-form/atomix-form-inputmask-component/atomix-form-inputmask-component.component.d.ts +17 -0
  69. package/lib/lib/atomix-form/atomix-form-password-component/atomix-form-password-component.component.d.ts +17 -0
  70. package/lib/lib/atomix-form/atomix-form-radio-button/atomix-radio-button.component.d.ts +19 -0
  71. package/lib/lib/atomix-form/atomix-form-textarea/atomix-form-textarea.component.d.ts +17 -0
  72. package/lib/lib/atomix-input/atomix-input.component.d.ts +29 -0
  73. package/lib/lib/atomix-input-switch/atomix-input-switch.component.d.ts +30 -0
  74. package/lib/lib/atomix-loading-overlay/atomix-loading-overlay.component.d.ts +16 -0
  75. package/lib/lib/atomix-messages/messages.component.d.ts +13 -0
  76. package/lib/lib/atomix-pagination/atomix-pagination.component.d.ts +19 -0
  77. package/lib/lib/atomix-radio-button/atomix-radio-button.component.d.ts +15 -0
  78. package/lib/lib/atomix-search-dropdown/atomix-search-dropdown.component.d.ts +60 -0
  79. package/{src/lib/lib/atomix-select-button/atomix-select-button-models.ts → lib/lib/atomix-select-button/atomix-select-button-models.d.ts} +4 -4
  80. package/lib/lib/atomix-select-button/atomix-select-button.component.d.ts +12 -0
  81. package/lib/lib/atomix-snackbar/atomix-snackbar.component.d.ts +12 -0
  82. package/lib/lib/atomix-spinner/atomix-spinner.component.d.ts +9 -0
  83. package/lib/lib/atomix-steps/atomix-steps.component.d.ts +19 -0
  84. package/lib/lib/atomix-tabMenu/atomix-tabMenu.component.d.ts +19 -0
  85. package/lib/lib/atomix-table/atomix-table.component.d.ts +119 -0
  86. package/lib/lib/atomix-table/atomix-table.models.d.ts +43 -0
  87. package/lib/lib/atomix-tag/atomix-tag.component.d.ts +9 -0
  88. package/lib/lib/utils/prime-icons.util.d.ts +3 -0
  89. package/lib/primekit.component.d.ts +5 -0
  90. package/lib/primekit.module.d.ts +72 -0
  91. package/lib/primekit.service.d.ts +6 -0
  92. package/package.json +28 -12
  93. package/{src/public-api.ts → public-api.d.ts} +38 -47
  94. package/ng-package.json +0 -8
  95. package/src/lib/lib/atomix-alert/atomix-alert.component.css +0 -67
  96. package/src/lib/lib/atomix-alert/atomix-alert.component.html +0 -7
  97. package/src/lib/lib/atomix-alert/atomix-alert.component.spec.ts +0 -154
  98. package/src/lib/lib/atomix-alert/atomix-alert.component.ts +0 -75
  99. package/src/lib/lib/atomix-autocomplete/atomix-autocomplete.component.html +0 -35
  100. package/src/lib/lib/atomix-autocomplete/atomix-autocomplete.component.scss +0 -72
  101. package/src/lib/lib/atomix-autocomplete/atomix-autocomplete.component.spec.ts +0 -210
  102. package/src/lib/lib/atomix-autocomplete/atomix-autocomplete.component.ts +0 -70
  103. package/src/lib/lib/atomix-button/atomix-button.component.css +0 -70
  104. package/src/lib/lib/atomix-button/atomix-button.component.html +0 -20
  105. package/src/lib/lib/atomix-button/atomix-button.component.spec.ts +0 -135
  106. package/src/lib/lib/atomix-button/atomix-button.component.ts +0 -28
  107. package/src/lib/lib/atomix-calendar/atomix-calendar.component.css +0 -5
  108. package/src/lib/lib/atomix-calendar/atomix-calendar.component.html +0 -20
  109. package/src/lib/lib/atomix-calendar/atomix-calendar.component.spec.ts +0 -145
  110. package/src/lib/lib/atomix-calendar/atomix-calendar.component.ts +0 -71
  111. package/src/lib/lib/atomix-card/atomix-card.component.css +0 -4
  112. package/src/lib/lib/atomix-card/atomix-card.component.html +0 -3
  113. package/src/lib/lib/atomix-card/atomix-card.component.spec.ts +0 -63
  114. package/src/lib/lib/atomix-card/atomix-card.component.ts +0 -13
  115. package/src/lib/lib/atomix-confirmation-dialog/atomix-confirmation-dialog.component.css +0 -12
  116. package/src/lib/lib/atomix-confirmation-dialog/atomix-confirmation-dialog.component.html +0 -9
  117. package/src/lib/lib/atomix-confirmation-dialog/atomix-confirmation-dialog.component.spec.ts +0 -63
  118. package/src/lib/lib/atomix-confirmation-dialog/atomix-confirmation-dialog.component.ts +0 -22
  119. package/src/lib/lib/atomix-daterange-calendar/atomix-daterange-calendar.component.html +0 -233
  120. package/src/lib/lib/atomix-daterange-calendar/atomix-daterange-calendar.component.scss +0 -266
  121. package/src/lib/lib/atomix-daterange-calendar/atomix-daterange-calendar.component.spec.ts +0 -1465
  122. package/src/lib/lib/atomix-daterange-calendar/atomix-daterange-calendar.component.ts +0 -717
  123. package/src/lib/lib/atomix-divider/atomix-divider.component.css +0 -0
  124. package/src/lib/lib/atomix-divider/atomix-divider.component.html +0 -7
  125. package/src/lib/lib/atomix-divider/atomix-divider.component.spec.ts +0 -91
  126. package/src/lib/lib/atomix-divider/atomix-divider.component.ts +0 -17
  127. package/src/lib/lib/atomix-dropdown/atomix-dropdown.component.css +0 -25
  128. package/src/lib/lib/atomix-dropdown/atomix-dropdown.component.html +0 -37
  129. package/src/lib/lib/atomix-dropdown/atomix-dropdown.component.spec.ts +0 -178
  130. package/src/lib/lib/atomix-dropdown/atomix-dropdown.component.ts +0 -89
  131. package/src/lib/lib/atomix-dynamic-dialog/atomix-dynamic-dialog.component.css +0 -0
  132. package/src/lib/lib/atomix-dynamic-dialog/atomix-dynamic-dialog.component.html +0 -0
  133. package/src/lib/lib/atomix-dynamic-dialog/atomix-dynamic-dialog.component.spec.ts +0 -128
  134. package/src/lib/lib/atomix-dynamic-dialog/atomix-dynamic-dialog.component.ts +0 -42
  135. package/src/lib/lib/atomix-dynamic-dialog/atomix-dynamic-dialog.models.ts +0 -12
  136. package/src/lib/lib/atomix-form/atomix-form-autocomplete/atomix-form-autocomplete.component.html +0 -20
  137. package/src/lib/lib/atomix-form/atomix-form-autocomplete/atomix-form-autocomplete.component.scss +0 -7
  138. package/src/lib/lib/atomix-form/atomix-form-autocomplete/atomix-form-autocomplete.component.spec.ts +0 -169
  139. package/src/lib/lib/atomix-form/atomix-form-autocomplete/atomix-form-autocomplete.component.ts +0 -41
  140. package/src/lib/lib/atomix-form/atomix-form-calendar/atomix-form-calendar.component.html +0 -21
  141. package/src/lib/lib/atomix-form/atomix-form-calendar/atomix-form-calendar.component.scss +0 -7
  142. package/src/lib/lib/atomix-form/atomix-form-calendar/atomix-form-calendar.component.spec.ts +0 -142
  143. package/src/lib/lib/atomix-form/atomix-form-calendar/atomix-form-calendar.component.ts +0 -32
  144. package/src/lib/lib/atomix-form/atomix-form-checkbox/atomix-form-checkbox.component.html +0 -13
  145. package/src/lib/lib/atomix-form/atomix-form-checkbox/atomix-form-checkbox.component.scss +0 -14
  146. package/src/lib/lib/atomix-form/atomix-form-checkbox/atomix-form-checkbox.component.spec.ts +0 -112
  147. package/src/lib/lib/atomix-form/atomix-form-checkbox/atomix-form-checkbox.component.ts +0 -28
  148. package/src/lib/lib/atomix-form/atomix-form-chips/atomix-form-chips.component.html +0 -20
  149. package/src/lib/lib/atomix-form/atomix-form-chips/atomix-form-chips.component.scss +0 -3
  150. package/src/lib/lib/atomix-form/atomix-form-chips/atomix-form-chips.component.spec.ts +0 -153
  151. package/src/lib/lib/atomix-form/atomix-form-chips/atomix-form-chips.component.ts +0 -28
  152. package/src/lib/lib/atomix-form/atomix-form-chips/form.chips.models.ts +0 -5
  153. package/src/lib/lib/atomix-form/atomix-form-dropdown/atomix-form-dropdown.component.html +0 -24
  154. package/src/lib/lib/atomix-form/atomix-form-dropdown/atomix-form-dropdown.component.scss +0 -15
  155. package/src/lib/lib/atomix-form/atomix-form-dropdown/atomix-form-dropdown.component.spec.ts +0 -156
  156. package/src/lib/lib/atomix-form/atomix-form-dropdown/atomix-form-dropdown.component.ts +0 -36
  157. package/src/lib/lib/atomix-form/atomix-form-input-component/atomix-form-input-component.component.html +0 -33
  158. package/src/lib/lib/atomix-form/atomix-form-input-component/atomix-form-input-component.component.scss +0 -32
  159. package/src/lib/lib/atomix-form/atomix-form-input-component/atomix-form-input-component.component.spec.ts +0 -156
  160. package/src/lib/lib/atomix-form/atomix-form-input-component/atomix-form-input-component.component.ts +0 -42
  161. package/src/lib/lib/atomix-form/atomix-form-inputmask-component/atomix-form-inputmask-component.component.html +0 -14
  162. package/src/lib/lib/atomix-form/atomix-form-inputmask-component/atomix-form-inputmask-component.component.scss +0 -0
  163. package/src/lib/lib/atomix-form/atomix-form-inputmask-component/atomix-form-inputmask-component.component.spec.ts +0 -104
  164. package/src/lib/lib/atomix-form/atomix-form-inputmask-component/atomix-form-inputmask-component.component.ts +0 -24
  165. package/src/lib/lib/atomix-form/atomix-form-password-component/atomix-form-password-component.component.html +0 -16
  166. package/src/lib/lib/atomix-form/atomix-form-password-component/atomix-form-password-component.component.scss +0 -0
  167. package/src/lib/lib/atomix-form/atomix-form-password-component/atomix-form-password-component.component.spec.ts +0 -92
  168. package/src/lib/lib/atomix-form/atomix-form-password-component/atomix-form-password-component.component.ts +0 -24
  169. package/src/lib/lib/atomix-form/atomix-form-radio-button/atomix-radio-button.component.html +0 -23
  170. package/src/lib/lib/atomix-form/atomix-form-radio-button/atomix-radio-button.component.scss +0 -3
  171. package/src/lib/lib/atomix-form/atomix-form-radio-button/atomix-radio-button.component.spec.ts +0 -126
  172. package/src/lib/lib/atomix-form/atomix-form-radio-button/atomix-radio-button.component.ts +0 -26
  173. package/src/lib/lib/atomix-form/atomix-form-textarea/atomix-form-textarea.component.html +0 -17
  174. package/src/lib/lib/atomix-form/atomix-form-textarea/atomix-form-textarea.component.scss +0 -6
  175. package/src/lib/lib/atomix-form/atomix-form-textarea/atomix-form-textarea.component.spec.ts +0 -120
  176. package/src/lib/lib/atomix-form/atomix-form-textarea/atomix-form-textarea.component.ts +0 -24
  177. package/src/lib/lib/atomix-input/atomix-input.component.css +0 -52
  178. package/src/lib/lib/atomix-input/atomix-input.component.html +0 -45
  179. package/src/lib/lib/atomix-input/atomix-input.component.spec.ts +0 -229
  180. package/src/lib/lib/atomix-input/atomix-input.component.ts +0 -64
  181. package/src/lib/lib/atomix-input-switch/atomix-input-switch.component.css +0 -12
  182. package/src/lib/lib/atomix-input-switch/atomix-input-switch.component.html +0 -17
  183. package/src/lib/lib/atomix-input-switch/atomix-input-switch.component.spec.ts +0 -173
  184. package/src/lib/lib/atomix-input-switch/atomix-input-switch.component.ts +0 -62
  185. package/src/lib/lib/atomix-loading-overlay/atomix-loading-overlay.component.html +0 -47
  186. package/src/lib/lib/atomix-loading-overlay/atomix-loading-overlay.component.scss +0 -14
  187. package/src/lib/lib/atomix-loading-overlay/atomix-loading-overlay.component.spec.ts +0 -21
  188. package/src/lib/lib/atomix-loading-overlay/atomix-loading-overlay.component.ts +0 -25
  189. package/src/lib/lib/atomix-messages/messages.component.css +0 -0
  190. package/src/lib/lib/atomix-messages/messages.component.html +0 -9
  191. package/src/lib/lib/atomix-messages/messages.component.spec.ts +0 -115
  192. package/src/lib/lib/atomix-messages/messages.component.ts +0 -17
  193. package/src/lib/lib/atomix-pagination/atomix-pagination.component.css +0 -19
  194. package/src/lib/lib/atomix-pagination/atomix-pagination.component.html +0 -24
  195. package/src/lib/lib/atomix-pagination/atomix-pagination.component.spec.ts +0 -98
  196. package/src/lib/lib/atomix-pagination/atomix-pagination.component.ts +0 -36
  197. package/src/lib/lib/atomix-radio-button/atomix-radio-button.component.css +0 -0
  198. package/src/lib/lib/atomix-radio-button/atomix-radio-button.component.html +0 -7
  199. package/src/lib/lib/atomix-radio-button/atomix-radio-button.component.spec.ts +0 -116
  200. package/src/lib/lib/atomix-radio-button/atomix-radio-button.component.ts +0 -37
  201. package/src/lib/lib/atomix-search-dropdown/atomix-search-dropdown.component.css +0 -49
  202. package/src/lib/lib/atomix-search-dropdown/atomix-search-dropdown.component.html +0 -68
  203. package/src/lib/lib/atomix-search-dropdown/atomix-search-dropdown.component.spec.ts +0 -282
  204. package/src/lib/lib/atomix-search-dropdown/atomix-search-dropdown.component.ts +0 -119
  205. package/src/lib/lib/atomix-select-button/atomix-select-button.component.css +0 -5
  206. package/src/lib/lib/atomix-select-button/atomix-select-button.component.html +0 -7
  207. package/src/lib/lib/atomix-select-button/atomix-select-button.component.spec.ts +0 -73
  208. package/src/lib/lib/atomix-select-button/atomix-select-button.component.ts +0 -19
  209. package/src/lib/lib/atomix-snackbar/atomix-snackbar.component.css +0 -30
  210. package/src/lib/lib/atomix-snackbar/atomix-snackbar.component.html +0 -4
  211. package/src/lib/lib/atomix-snackbar/atomix-snackbar.component.spec.ts +0 -60
  212. package/src/lib/lib/atomix-snackbar/atomix-snackbar.component.ts +0 -27
  213. package/src/lib/lib/atomix-spinner/atomix-spinner.component.css +0 -0
  214. package/src/lib/lib/atomix-spinner/atomix-spinner.component.html +0 -7
  215. package/src/lib/lib/atomix-spinner/atomix-spinner.component.spec.ts +0 -70
  216. package/src/lib/lib/atomix-spinner/atomix-spinner.component.ts +0 -13
  217. package/src/lib/lib/atomix-steps/atomix-steps.component.html +0 -9
  218. package/src/lib/lib/atomix-steps/atomix-steps.component.scss +0 -0
  219. package/src/lib/lib/atomix-steps/atomix-steps.component.spec.ts +0 -120
  220. package/src/lib/lib/atomix-steps/atomix-steps.component.ts +0 -32
  221. package/src/lib/lib/atomix-tabMenu/atomix-tabMenu.component.css +0 -0
  222. package/src/lib/lib/atomix-tabMenu/atomix-tabMenu.component.html +0 -26
  223. package/src/lib/lib/atomix-tabMenu/atomix-tabMenu.component.spec.ts +0 -106
  224. package/src/lib/lib/atomix-tabMenu/atomix-tabMenu.component.ts +0 -36
  225. package/src/lib/lib/atomix-table/atomix-table.component.css +0 -152
  226. package/src/lib/lib/atomix-table/atomix-table.component.html +0 -647
  227. package/src/lib/lib/atomix-table/atomix-table.component.spec.ts +0 -1648
  228. package/src/lib/lib/atomix-table/atomix-table.component.ts +0 -422
  229. package/src/lib/lib/atomix-table/atomix-table.models.ts +0 -39
  230. package/src/lib/lib/atomix-tag/atomix-tag.component.css +0 -0
  231. package/src/lib/lib/atomix-tag/atomix-tag.component.html +0 -6
  232. package/src/lib/lib/atomix-tag/atomix-tag.component.spec.ts +0 -47
  233. package/src/lib/lib/atomix-tag/atomix-tag.component.ts +0 -13
  234. package/src/lib/lib/utils/prime-icons.util.spec.ts +0 -21
  235. package/src/lib/lib/utils/prime-icons.util.ts +0 -11
  236. package/src/lib/primekit.component.spec.ts +0 -19
  237. package/src/lib/primekit.component.ts +0 -10
  238. package/src/lib/primekit.module.spec.ts +0 -155
  239. package/src/lib/primekit.module.ts +0 -183
  240. package/src/lib/primekit.service.spec.ts +0 -17
  241. package/src/lib/primekit.service.ts +0 -8
  242. package/tsconfig.lib.json +0 -13
  243. package/tsconfig.lib.prod.json +0 -11
  244. package/tsconfig.spec.json +0 -10
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primekit.mjs","sources":["../../../projects/primekit/src/lib/primekit.service.ts","../../../projects/primekit/src/lib/primekit.component.ts","../../../projects/primekit/src/lib/lib/atomix-card/atomix-card.component.ts","../../../projects/primekit/src/lib/lib/atomix-card/atomix-card.component.html","../../../projects/primekit/src/lib/lib/atomix-button/atomix-button.component.ts","../../../projects/primekit/src/lib/lib/atomix-button/atomix-button.component.html","../../../projects/primekit/src/lib/lib/atomix-confirmation-dialog/atomix-confirmation-dialog.component.ts","../../../projects/primekit/src/lib/lib/atomix-confirmation-dialog/atomix-confirmation-dialog.component.html","../../../projects/primekit/src/lib/lib/atomix-input/atomix-input.component.ts","../../../projects/primekit/src/lib/lib/atomix-input/atomix-input.component.html","../../../projects/primekit/src/lib/lib/atomix-calendar/atomix-calendar.component.ts","../../../projects/primekit/src/lib/lib/atomix-calendar/atomix-calendar.component.html","../../../projects/primekit/src/lib/lib/atomix-daterange-calendar/atomix-daterange-calendar.component.ts","../../../projects/primekit/src/lib/lib/atomix-daterange-calendar/atomix-daterange-calendar.component.html","../../../projects/primekit/src/lib/lib/atomix-dropdown/atomix-dropdown.component.ts","../../../projects/primekit/src/lib/lib/atomix-dropdown/atomix-dropdown.component.html","../../../projects/primekit/src/lib/lib/atomix-snackbar/atomix-snackbar.component.ts","../../../projects/primekit/src/lib/lib/atomix-snackbar/atomix-snackbar.component.html","../../../projects/primekit/src/lib/lib/atomix-table/atomix-table.component.ts","../../../projects/primekit/src/lib/lib/atomix-table/atomix-table.component.html","../../../projects/primekit/src/lib/lib/atomix-pagination/atomix-pagination.component.ts","../../../projects/primekit/src/lib/lib/atomix-pagination/atomix-pagination.component.html","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-autocomplete/atomix-form-autocomplete.component.ts","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-autocomplete/atomix-form-autocomplete.component.html","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-calendar/atomix-form-calendar.component.ts","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-calendar/atomix-form-calendar.component.html","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-checkbox/atomix-form-checkbox.component.ts","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-checkbox/atomix-form-checkbox.component.html","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-chips/atomix-form-chips.component.ts","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-chips/atomix-form-chips.component.html","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-dropdown/atomix-form-dropdown.component.ts","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-dropdown/atomix-form-dropdown.component.html","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-input-component/atomix-form-input-component.component.ts","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-input-component/atomix-form-input-component.component.html","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-inputmask-component/atomix-form-inputmask-component.component.ts","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-inputmask-component/atomix-form-inputmask-component.component.html","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-password-component/atomix-form-password-component.component.ts","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-password-component/atomix-form-password-component.component.html","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-textarea/atomix-form-textarea.component.ts","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-textarea/atomix-form-textarea.component.html","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-radio-button/atomix-radio-button.component.ts","../../../projects/primekit/src/lib/lib/atomix-form/atomix-form-radio-button/atomix-radio-button.component.html","../../../projects/primekit/src/lib/lib/atomix-alert/atomix-alert.component.ts","../../../projects/primekit/src/lib/lib/atomix-alert/atomix-alert.component.html","../../../projects/primekit/src/lib/lib/atomix-messages/messages.component.ts","../../../projects/primekit/src/lib/lib/atomix-messages/messages.component.html","../../../projects/primekit/src/lib/lib/atomix-spinner/atomix-spinner.component.ts","../../../projects/primekit/src/lib/lib/atomix-spinner/atomix-spinner.component.html","../../../projects/primekit/src/lib/lib/atomix-radio-button/atomix-radio-button.component.ts","../../../projects/primekit/src/lib/lib/atomix-radio-button/atomix-radio-button.component.html","../../../projects/primekit/src/lib/lib/atomix-dynamic-dialog/atomix-dynamic-dialog.component.ts","../../../projects/primekit/src/lib/lib/atomix-dynamic-dialog/atomix-dynamic-dialog.component.html","../../../projects/primekit/src/lib/lib/atomix-select-button/atomix-select-button.component.ts","../../../projects/primekit/src/lib/lib/atomix-select-button/atomix-select-button.component.html","../../../projects/primekit/src/lib/lib/atomix-tag/atomix-tag.component.ts","../../../projects/primekit/src/lib/lib/atomix-tag/atomix-tag.component.html","../../../projects/primekit/src/lib/lib/atomix-search-dropdown/atomix-search-dropdown.component.ts","../../../projects/primekit/src/lib/lib/atomix-search-dropdown/atomix-search-dropdown.component.html","../../../projects/primekit/src/lib/lib/atomix-autocomplete/atomix-autocomplete.component.ts","../../../projects/primekit/src/lib/lib/atomix-autocomplete/atomix-autocomplete.component.html","../../../projects/primekit/src/lib/lib/atomix-divider/atomix-divider.component.ts","../../../projects/primekit/src/lib/lib/atomix-divider/atomix-divider.component.html","../../../projects/primekit/src/lib/lib/atomix-input-switch/atomix-input-switch.component.ts","../../../projects/primekit/src/lib/lib/atomix-input-switch/atomix-input-switch.component.html","../../../projects/primekit/src/lib/lib/atomix-tabMenu/atomix-tabMenu.component.ts","../../../projects/primekit/src/lib/lib/atomix-tabMenu/atomix-tabMenu.component.html","../../../projects/primekit/src/lib/lib/atomix-steps/atomix-steps.component.ts","../../../projects/primekit/src/lib/lib/atomix-steps/atomix-steps.component.html","../../../projects/primekit/src/lib/lib/atomix-loading-overlay/atomix-loading-overlay.component.ts","../../../projects/primekit/src/lib/lib/atomix-loading-overlay/atomix-loading-overlay.component.html","../../../projects/primekit/src/lib/primekit.module.ts","../../../projects/primekit/src/lib/lib/utils/prime-icons.util.ts","../../../projects/primekit/src/public-api.ts","../../../projects/primekit/src/primekit.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PrimekitService {\r\n constructor() {}\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-primekit',\r\n standalone: true,\r\n imports: [],\r\n template: ` <p>primekit works!</p> `,\r\n styles: ``,\r\n})\r\nexport class PrimekitComponent {}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'atomix-card',\r\n templateUrl: './atomix-card.component.html',\r\n styleUrls: ['./atomix-card.component.css'],\r\n})\r\nexport class AtomixCardComponent {\r\n @Input() header: string | undefined;\r\n @Input() footer: string | undefined;\r\n @Input() content: string | undefined;\r\n @Input() class: string | undefined;\r\n}\r\n","<p-card [class]=\"class\">\r\n <ng-content></ng-content>\r\n</p-card>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { ButtonSize, ButtonIconPosition } from './atomix-button.models';\r\n\r\n@Component({\r\n selector: 'atomix-button',\r\n templateUrl: './atomix-button.component.html',\r\n styleUrls: ['./atomix-button.component.css'],\r\n})\r\nexport class AtomixButtonComponent {\r\n @Input() label: string = '';\r\n @Input() disabled: boolean = false;\r\n @Input() loading: boolean = false;\r\n @Input() size: ButtonSize = 'small';\r\n @Input() buttonType: 'primary' | 'danger' | 'text' | 'outlined' | 'refresh' =\r\n 'primary';\r\n @Input() type: string = '';\r\n @Input() class: string = '';\r\n\r\n @Input() icon: string = '';\r\n @Input() iconPos: ButtonIconPosition = 'left';\r\n\r\n @Input() buttonData: any;\r\n @Output() buttonClick = new EventEmitter<Event>();\r\n\r\n onButtonClick(event: MouseEvent) {\r\n this.buttonClick.emit(event); // Emit the event when button is clicked\r\n }\r\n}\r\n","<button\r\n pButton\r\n pRipple\r\n [label]=\"label\"\r\n [ngClass]=\"[\r\n class,\r\n buttonType === 'primary' ? 'p-button-primary' : '',\r\n buttonType === 'outlined' ? 'p-button-outlined' : '',\r\n buttonType === 'text' ? 'p-button-text' : '',\r\n buttonType === 'refresh' ? 'refresh-button' : '',\r\n buttonType === 'danger' ? 'p-button-danger' : '',\r\n ]\"\r\n [disabled]=\"disabled\"\r\n [loading]=\"loading\"\r\n [size]=\"size\"\r\n [icon]=\"icon\"\r\n [iconPos]=\"iconPos\"\r\n (click)=\"onButtonClick($event)\"\r\n [type]=\"type\"\r\n></button>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\n@Component({\r\n selector: 'atomix-confirmation-dialog',\r\n templateUrl: './atomix-confirmation-dialog.component.html',\r\n styleUrls: ['./atomix-confirmation-dialog.component.css'],\r\n})\r\nexport class AtomixConfirmationDialogComponent {\r\n @Input() message: string = '';\r\n constructor(\r\n public config: DynamicDialogConfig,\r\n private ref: DynamicDialogRef\r\n ) {}\r\n onYesClick(): void {\r\n this.ref.close(true);\r\n }\r\n\r\n onNoClick(): void {\r\n this.ref.close(false);\r\n }\r\n}\r\n","<p class=\"global-sub-heading\">\r\n {{ config?.data?.message }}\r\n</p>\r\n\r\n<div class=\"action-button-container\">\r\n <atomix-button buttonType=\"outlined\" (buttonClick)=\"onNoClick()\" label=\"No\">\r\n </atomix-button>\r\n <atomix-button label=\"Yes\" (buttonClick)=\"onYesClick()\"></atomix-button>\r\n</div>\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ElementRef,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'atomix-input',\r\n templateUrl: './atomix-input.component.html',\r\n styleUrls: ['./atomix-input.component.css'],\r\n})\r\nexport class AtomixInputComponent {\r\n @ViewChild('inputEl') inputEl!: ElementRef<HTMLInputElement>;\r\n @Input() value: string = '';\r\n @Input() name: string = '';\r\n @Input() type: string = 'text';\r\n @Input() placeholder: string = '';\r\n @Output() valueChange = new EventEmitter<string>();\r\n @Input() withSearchIcon: boolean = false;\r\n @Input() searchIconPosition: 'left' | 'right' = 'right';\r\n @Input() iconName: string = '';\r\n @Input() containerClass: string = '';\r\n @Input() class: string = '';\r\n @Input() disabled: boolean = false;\r\n @Input() isCrossRequired: boolean = true;\r\n @Input() label: string = '';\r\n @Input() isLabelRequired: boolean = false;\r\n @Input() autofocus: boolean = false;\r\n @Output() changeValueHandler = new EventEmitter<string>();\r\n\r\n ngAfterViewInit(): void {\r\n if (this.autofocus) {\r\n // Timeout ensures input is available in the DOM\r\n setTimeout(() => this.inputEl?.nativeElement?.focus());\r\n }\r\n }\r\n\r\n onInput(event: Event): void {\r\n const input = event.target as HTMLInputElement;\r\n this.value = input.value;\r\n this.changeValueHandler.emit(this.value);\r\n }\r\n onEnter(): void {\r\n this.valueChange.emit(this.value);\r\n }\r\n clearValue(): void {\r\n this.value = '';\r\n this.changeValueHandler.emit(this.value);\r\n this.onEnter();\r\n }\r\n onSearchClear(event: Event) {\r\n const input = event.target as HTMLInputElement;\r\n if (input.value === '') {\r\n this.value = '';\r\n this.valueChange.emit('');\r\n }\r\n }\r\n focus(): void {\r\n this.inputEl?.nativeElement?.focus();\r\n }\r\n}\r\n","<label *ngIf=\"label\" for=\"name\"\r\n >{{ label }}\r\n <span *ngIf=\"isLabelRequired\" class=\"lib-error-asterisk\">*</span></label\r\n>\r\n\r\n<i\r\n class=\"pi pi-search search-icon\"\r\n [ngClass]=\"\r\n (searchIconPosition === 'left' ? 'search-icon-left' : 'search-icon-right') +\r\n (label ? ' with-label' : '')\r\n \"\r\n *ngIf=\"withSearchIcon\"\r\n (click)=\"onEnter()\"\r\n></i>\r\n\r\n<input\r\n [id]=\"name\"\r\n type=\"text\"\r\n pInputText\r\n [value]=\"value\"\r\n [attr.placeholder]=\"placeholder\"\r\n (input)=\"onInput($event)\"\r\n (keydown.enter)=\"onEnter()\"\r\n [ngClass]=\"\r\n class +\r\n ' lib-input-field' +\r\n (withSearchIcon ? ' with-search-icon-' + searchIconPosition : '') +\r\n (isCrossRequired ? ' with-cross-icon' : '')\r\n \"\r\n autocomplete=\"new-password\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n #inputEl\r\n/>\r\n<i\r\n class=\"pi pi-times filter-dropdown-icon\"\r\n [ngClass]=\"\r\n (withSearchIcon && searchIconPosition === 'right'\r\n ? 'filter-dropdown-icon-left'\r\n : '') + (label ? ' with-label' : '')\r\n \"\r\n style=\"cursor: pointer\"\r\n (click)=\"clearValue()\"\r\n *ngIf=\"isCrossRequired && value !== ''\"\r\n></i>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'atomix-calendar',\r\n templateUrl: './atomix-calendar.component.html',\r\n styleUrls: ['./atomix-calendar.component.css'],\r\n})\r\nexport class AtomixCalendarComponent {\r\n @Input() placeholder: string = '';\r\n @Input() selectionMode: 'single' | 'multiple' | 'range' = 'single';\r\n @Input() styleClass: string = '';\r\n @Input() inputStyleClass: string = '';\r\n @Input() disabled: boolean = false;\r\n @Input() selectedDate: Date[] | null | Date = null;\r\n @Output() dateRangeChange = new EventEmitter<any>();\r\n @Input() maxDate!: Date;\r\n @Input() minDate!: Date;\r\n\r\n enLocale = {\r\n firstDayOfWeek: 0,\r\n dayNames: [\r\n 'Sunday',\r\n 'Monday',\r\n 'Tuesday',\r\n 'Wednesday',\r\n 'Thursday',\r\n 'Friday',\r\n 'Saturday',\r\n ],\r\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\r\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\r\n monthNames: [\r\n 'January',\r\n 'February',\r\n 'March',\r\n 'April',\r\n 'May',\r\n 'June',\r\n 'July',\r\n 'August',\r\n 'September',\r\n 'October',\r\n 'November',\r\n 'December',\r\n ],\r\n monthNamesShort: [\r\n 'Jan',\r\n 'Feb',\r\n 'Mar',\r\n 'Apr',\r\n 'May',\r\n 'Jun',\r\n 'Jul',\r\n 'Aug',\r\n 'Sep',\r\n 'Oct',\r\n 'Nov',\r\n 'Dec',\r\n ],\r\n today: 'Today',\r\n clear: 'Clear',\r\n };\r\n\r\n clearDateRange() {\r\n this.selectedDate = null;\r\n }\r\n\r\n onDateRangeChange(dateRange: Date[] | null): void {\r\n this.dateRangeChange.emit(dateRange);\r\n }\r\n}\r\n","<p-calendar\r\n [(ngModel)]=\"selectedDate\"\r\n [selectionMode]=\"selectionMode\"\r\n [showButtonBar]=\"true\"\r\n [dateFormat]=\"'mm/dd/yy'\"\r\n [showOtherMonths]=\"true\"\r\n [showOnFocus]=\"true\"\r\n [locale]=\"enLocale\"\r\n [showIcon]=\"true\"\r\n [placeholder]=\"placeholder\"\r\n [styleClass]=\"styleClass\"\r\n [inputStyleClass]=\"inputStyleClass\"\r\n (ngModelChange)=\"onDateRangeChange($event)\"\r\n appendTo=\"body\"\r\n [showClear]=\"true\"\r\n [disabled]=\"disabled\"\r\n [maxDate]=\"maxDate\"\r\n [minDate]=\"minDate\"\r\n>\r\n</p-calendar>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewChild,\r\n OnChanges,\r\n SimpleChanges,\r\n OnInit,\r\n OnDestroy,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport { OverlayPanel } from 'primeng/overlaypanel';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'atomix-daterange-calendar',\r\n templateUrl: './atomix-daterange-calendar.component.html',\r\n styleUrls: ['./atomix-daterange-calendar.component.scss'],\r\n})\r\nexport class AtomixDaterangeCalendarComponent\r\n implements OnChanges, OnInit, OnDestroy\r\n{\r\n @Input() placeholder: string = '';\r\n @Input() styleClass: string = '';\r\n @Input() selectionMode: 'range' = 'range';\r\n @Input() inputStyleClass: string = '';\r\n @Input() inline: boolean = false;\r\n @Input() disabled: boolean = false;\r\n @Input() selectedDate: any = null;\r\n @Input() maxDate!: Date;\r\n @Input() minDate!: Date;\r\n @Input() defaultPreset:\r\n | 'today'\r\n | 'yesterday'\r\n | 'last7days'\r\n | 'last30days'\r\n | 'last3months'\r\n | 'last6months'\r\n | 'last1year'\r\n | null = null;\r\n @Input() preservePreset: boolean = false;\r\n\r\n customRangeMode: boolean = false;\r\n selectedPreset: string | null = null; // 'today' | 'yesterday' | 'last7days' | 'last30days' | 'last3months' | 'last6months' | 'last1year' | 'custom' | null\r\n @ViewChild('overlayPanel') overlayPanel?: OverlayPanel;\r\n @Output() dateRangeChange = new EventEmitter<any>();\r\n\r\n // internal model bound to p-calendar to avoid changing external selection during first-click selection\r\n modelDate: Date[] | null = null;\r\n\r\n enLocale = {\r\n firstDayOfWeek: 0,\r\n dayNames: [\r\n 'Sunday',\r\n 'Monday',\r\n 'Tuesday',\r\n 'Wednesday',\r\n 'Thursday',\r\n 'Friday',\r\n 'Saturday',\r\n ],\r\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\r\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\r\n monthNames: [\r\n 'January',\r\n 'February',\r\n 'March',\r\n 'April',\r\n 'May',\r\n 'June',\r\n 'July',\r\n 'August',\r\n 'September',\r\n 'October',\r\n 'November',\r\n 'December',\r\n ],\r\n monthNamesShort: [\r\n 'Jan',\r\n 'Feb',\r\n 'Mar',\r\n 'Apr',\r\n 'May',\r\n 'Jun',\r\n 'Jul',\r\n 'Aug',\r\n 'Sep',\r\n 'Oct',\r\n 'Nov',\r\n 'Dec',\r\n ],\r\n today: 'Today',\r\n clear: 'Clear',\r\n };\r\n\r\n // temporary storage for overlay session\r\n private _overlayInitialDate: Date[] | null = null;\r\n private _overlayInitialPreset: string | null = null;\r\n private _calendarObservers: MutationObserver[] = [];\r\n private _observedElements: Element[] = [];\r\n private _parentObservers: MutationObserver[] = [];\r\n private _observedParentElements: Element[] = [];\r\n private _updateRafId: number | null = null; // requestAnimationFrame id\r\n\r\n constructor(\r\n private datePipe: DatePipe,\r\n private renderer: Renderer2\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.selectedDate && this.defaultPreset) {\r\n this.applyPreset(this.defaultPreset);\r\n }\r\n // initialize internal model\r\n this.modelDate = this.selectedDate ? [...this.selectedDate] : null;\r\n // initial class update if there is a pre-selected range\r\n this._scheduleUpdate();\r\n // start observers if inline calendar is used\r\n if (this.inline) {\r\n this._startCalendarObservers();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['selectedDate']) {\r\n const sel = changes['selectedDate'].currentValue as Date[] | null;\r\n if (sel && Array.isArray(sel) && sel.length === 2 && sel[0] && sel[1]) {\r\n const preset = this.detectPreset(sel[0], sel[1]);\r\n this.selectedPreset = preset ?? 'custom';\r\n // sync internal model when external value changes\r\n this.modelDate = [...sel];\r\n } else if (sel == null) {\r\n this.selectedPreset = null;\r\n this.modelDate = null;\r\n }\r\n }\r\n }\r\n\r\n onInputKeyDown(event: KeyboardEvent) {\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n try {\r\n this.overlayPanel?.toggle(event as any);\r\n } catch (e) {}\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n onOverlayShow(): void {\r\n // store a deep copy of current selection/preset when overlay opens\r\n if (this.selectedDate && Array.isArray(this.selectedDate)) {\r\n this._overlayInitialDate = (this.selectedDate as Date[]).map((d) =>\r\n d ? new Date(d.getFullYear(), d.getMonth(), d.getDate()) : d\r\n );\r\n } else {\r\n this._overlayInitialDate = null;\r\n }\r\n this._overlayInitialPreset = this.selectedPreset;\r\n // ensure calendar model shows the currently committed selection when opening\r\n this.modelDate = this.selectedDate ? [...this.selectedDate] : null;\r\n // ensure preset buttons reflect current selection when overlay opens\r\n if (\r\n this.selectedDate &&\r\n Array.isArray(this.selectedDate) &&\r\n this.selectedDate.length === 2\r\n ) {\r\n const preset = this.detectPreset(\r\n this.selectedDate[0],\r\n this.selectedDate[1]\r\n );\r\n this.selectedPreset = preset ?? 'custom';\r\n } else if (!this.selectedDate) {\r\n this.selectedPreset = null;\r\n }\r\n // add start/end classes to range cells for styling\r\n this._scheduleUpdate();\r\n // observe DOM changes (PrimeNG may re-render inside overlay)\r\n this._startCalendarObservers();\r\n }\r\n\r\n onOverlayHide(): void {\r\n // if internal calendar model has an incomplete selection (partial range) revert to initial\r\n const model = this.modelDate;\r\n const isPartialModel = Boolean(\r\n model && Array.isArray(model) && model.length > 0 && model[0] && !model[1]\r\n );\r\n if (isPartialModel) {\r\n this.selectedDate = this._overlayInitialDate;\r\n this.selectedPreset = this._overlayInitialPreset;\r\n // reset internal model to synced value\r\n this.modelDate = this.selectedDate ? [...this.selectedDate] : null;\r\n }\r\n this._overlayInitialDate = null;\r\n this._overlayInitialPreset = null;\r\n this.customRangeMode = false;\r\n // cleanup any start/end classes to avoid stale classes\r\n this._scheduleUpdate();\r\n // stop observing\r\n this._stopCalendarObservers();\r\n }\r\n\r\n onModelChange(dateRange: Date[] | null) {\r\n // When user clicks a first date, PrimeNG may emit an array with 1 value. We don't want to\r\n // update the external selectedDate until the range is completed (two dates) so that\r\n // the calendar does not jump back to a previously selected end date's month.\r\n this.modelDate = dateRange ? [...dateRange] : null;\r\n if (\r\n dateRange &&\r\n Array.isArray(dateRange) &&\r\n dateRange.length === 2 &&\r\n dateRange[0] &&\r\n dateRange[1]\r\n ) {\r\n this.selectedPreset = this.detectPreset(dateRange[0], dateRange[1]);\r\n this.customRangeMode = false;\r\n this.selectedDate = [...dateRange];\r\n this.dateRangeChange.emit(this.selectedDate);\r\n // close overlay like when applying a preset\r\n try {\r\n this.overlayPanel?.hide();\r\n } catch (e) {}\r\n } else if (!dateRange) {\r\n // cleared selection\r\n this.selectedPreset = null;\r\n this.customRangeMode = false;\r\n this.selectedDate = null;\r\n this.dateRangeChange.emit(null);\r\n } else {\r\n // single date selecting (partial range) - do not emit change yet; just keep internal model\r\n // so the calendar's view remains where the user navigated to.\r\n this.selectedPreset = null;\r\n this.customRangeMode = false;\r\n }\r\n // update start/end classes while user is selecting or when range completes\r\n this._scheduleUpdate();\r\n }\r\n\r\n // Called when the calendar's visible month/year changes\r\n onCalendarViewChanged(event?: any): void {\r\n // Reapply classes after PrimeNG re-render\r\n this._scheduleUpdate();\r\n // Reattach observers after a small delay since PrimeNG will likely replace DOM nodes\r\n setTimeout(() => {\r\n try {\r\n this._stopCalendarObservers();\r\n this._startCalendarObservers();\r\n } catch (e) {}\r\n }, 40);\r\n }\r\n\r\n get hasSelection(): boolean {\r\n return Boolean(\r\n this.selectedDate &&\r\n Array.isArray(this.selectedDate) &&\r\n (this.selectedDate as Date[]).length === 2 &&\r\n !!(this.selectedDate as Date[])[0] &&\r\n !!(this.selectedDate as Date[])[1]\r\n );\r\n }\r\n\r\n private normalizeDate(d: Date): Date {\r\n return new Date(d.getFullYear(), d.getMonth(), d.getDate());\r\n }\r\n\r\n private isSameDate(a: Date, b: Date): boolean {\r\n return (\r\n a.getFullYear() === b.getFullYear() &&\r\n a.getMonth() === b.getMonth() &&\r\n a.getDate() === b.getDate()\r\n );\r\n }\r\n\r\n private detectPreset(startRaw: Date, endRaw: Date): string | null {\r\n const start = this.normalizeDate(startRaw);\r\n const end = this.normalizeDate(endRaw);\r\n const today = this.normalizeDate(new Date());\r\n // today\r\n if (this.isSameDate(start, today) && this.isSameDate(end, today))\r\n return 'today';\r\n // yesterday\r\n const y = new Date(today);\r\n y.setDate(y.getDate() - 1);\r\n if (this.isSameDate(start, y) && this.isSameDate(end, y))\r\n return 'yesterday';\r\n // last7days (last 7 days including today: start = today - 6, end = today)\r\n const l7End = new Date(today);\r\n const l7Start = new Date(today);\r\n l7Start.setDate(today.getDate() - 6);\r\n if (this.isSameDate(start, l7Start) && this.isSameDate(end, l7End))\r\n return 'last7days';\r\n // last30days (last 30 days including today: start = today - 29, end = today)\r\n const l30End = new Date(today);\r\n const l30Start = new Date(today);\r\n l30Start.setDate(today.getDate() - 29);\r\n if (this.isSameDate(start, l30Start) && this.isSameDate(end, l30End))\r\n return 'last30days';\r\n // last3months (last 3 months including today: start = today - 3 months, end = today)\r\n const l3mEnd = new Date(today);\r\n const l3mStart = new Date(today);\r\n l3mStart.setMonth(today.getMonth() - 3);\r\n if (this.isSameDate(start, l3mStart) && this.isSameDate(end, l3mEnd))\r\n return 'last3months';\r\n // last6months (last 6 months including today: start = today - 6 months, end = today)\r\n const l6mEnd = new Date(today);\r\n const l6mStart = new Date(today);\r\n l6mStart.setMonth(today.getMonth() - 6);\r\n if (this.isSameDate(start, l6mStart) && this.isSameDate(end, l6mEnd))\r\n return 'last6months';\r\n // last1year (last 1 year including today: start = today - 1 year, end = today)\r\n const l1yEnd = new Date(today);\r\n const l1yStart = new Date(today);\r\n l1yStart.setFullYear(today.getFullYear() - 1);\r\n if (this.isSameDate(start, l1yStart) && this.isSameDate(end, l1yEnd))\r\n return 'last1year';\r\n return null;\r\n }\r\n\r\n clearDateRange() {\r\n this.selectedDate = null;\r\n this.dateRangeChange.emit(this.selectedDate);\r\n this.selectedPreset = null;\r\n this.customRangeMode = false;\r\n this.modelDate = null;\r\n }\r\n\r\n resetAndClose() {\r\n this.clearDateRange();\r\n if (this.overlayPanel) {\r\n try {\r\n this.overlayPanel.hide();\r\n } catch (e) {}\r\n }\r\n }\r\n\r\n clearAndStop(event: Event) {\r\n this.clearDateRange();\r\n try {\r\n this.overlayPanel?.hide();\r\n } catch (e) {}\r\n event.stopPropagation();\r\n }\r\n\r\n toggleCustomRange() {\r\n this.customRangeMode = !this.customRangeMode;\r\n if (this.customRangeMode) this.selectedPreset = 'custom';\r\n }\r\n\r\n applyCustomRange() {\r\n // ensure external selectedDate is in sync with internal model\r\n this.selectedDate = this.modelDate ? [...this.modelDate] : null;\r\n this.dateRangeChange.emit(this.selectedDate);\r\n if (this.overlayPanel) {\r\n try {\r\n this.overlayPanel.hide();\r\n } catch (e) {}\r\n }\r\n this.customRangeMode = false;\r\n this.selectedPreset = 'custom';\r\n }\r\n\r\n getDateRangeLabel() {\r\n // Check the internal model first to show real-time updates while selecting\r\n const dateArray = this.modelDate || this.selectedDate;\r\n if (!dateArray || !Array.isArray(dateArray)) return '';\r\n\r\n const [start, end] = dateArray as (Date | null)[];\r\n const arrow = '\\u2794';\r\n\r\n // Show just the first date with an arrow if only first date is selected\r\n if (start && !end) {\r\n const startStr = this.datePipe.transform(start, 'MM/dd/yyyy');\r\n return `${startStr} ${arrow} `;\r\n }\r\n\r\n // Show the complete range if both dates are selected\r\n if (start && end) {\r\n const startStr = this.datePipe.transform(start, 'MM/dd/yyyy');\r\n const endStr = this.datePipe.transform(end, 'MM/dd/yyyy');\r\n return `${startStr} ${arrow} ${endStr}`;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n applyPreset(\r\n preset:\r\n | 'today'\r\n | 'yesterday'\r\n | 'last7days'\r\n | 'last30days'\r\n | 'last3months'\r\n | 'last6months'\r\n | 'last1year'\r\n ) {\r\n const today = new Date();\r\n let start: Date | null = null;\r\n let end: Date | null = null;\r\n switch (preset) {\r\n case 'today':\r\n start = end = new Date(\r\n today.getFullYear(),\r\n today.getMonth(),\r\n today.getDate()\r\n );\r\n break;\r\n case 'yesterday':\r\n const y = new Date(today);\r\n y.setDate(y.getDate() - 1);\r\n start = end = new Date(y.getFullYear(), y.getMonth(), y.getDate());\r\n break;\r\n case 'last7days': {\r\n end = new Date(today.getFullYear(), today.getMonth(), today.getDate());\r\n start = new Date(end);\r\n start.setDate(end.getDate() - 6);\r\n break;\r\n }\r\n case 'last30days': {\r\n end = new Date(today.getFullYear(), today.getMonth(), today.getDate());\r\n start = new Date(end);\r\n start.setDate(end.getDate() - 29);\r\n break;\r\n }\r\n case 'last3months': {\r\n end = new Date(today.getFullYear(), today.getMonth(), today.getDate());\r\n start = new Date(end);\r\n start.setMonth(end.getMonth() - 3);\r\n break;\r\n }\r\n case 'last6months': {\r\n end = new Date(today.getFullYear(), today.getMonth(), today.getDate());\r\n start = new Date(end);\r\n start.setMonth(end.getMonth() - 6);\r\n break;\r\n }\r\n case 'last1year': {\r\n end = new Date(today.getFullYear(), today.getMonth(), today.getDate());\r\n start = new Date(end);\r\n start.setFullYear(end.getFullYear() - 1);\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n if (start && end) {\r\n this.selectedDate = [start, end];\r\n this.modelDate = [start, end];\r\n if (this.preservePreset) {\r\n this.selectedDate = [start, end, { presets: preset }];\r\n }\r\n this.dateRangeChange.emit(this.selectedDate);\r\n this.selectedPreset = preset;\r\n this.customRangeMode = false;\r\n }\r\n try {\r\n this.overlayPanel?.hide();\r\n } catch (e) {}\r\n // ensure we update start/end classes after applying a preset\r\n this._scheduleUpdate();\r\n }\r\n\r\n onDateRangeChange(dateRange: Date[] | null): void {\r\n this.dateRangeChange.emit(dateRange);\r\n if (dateRange && Array.isArray(dateRange)) {\r\n this.selectedPreset = this.detectPreset(dateRange[0], dateRange[1]);\r\n this.customRangeMode = false;\r\n } else if (!dateRange) {\r\n this.selectedPreset = null;\r\n this.customRangeMode = false;\r\n }\r\n this._scheduleUpdate();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._stopCalendarObservers();\r\n this._cancelScheduledUpdate();\r\n }\r\n\r\n // Walk the rendered calendar DOM(s) (overlay + inline) and add start-range/end-range classes\r\n private _updateStartEndRangeClasses(): void {\r\n try {\r\n const calendarElements = this._getCalendarElements();\r\n\r\n calendarElements.forEach((calEl: Element) => {\r\n // Remove existing classes from spans first\r\n const allSpans = calEl.querySelectorAll('td > span');\r\n allSpans.forEach((span) => {\r\n this.renderer.removeClass(span, 'start-range');\r\n this.renderer.removeClass(span, 'end-range');\r\n this.renderer.removeClass(span, 'between-range');\r\n });\r\n\r\n // Collect span/date pairs, prefer data-date attribute\r\n // Cache header month/year for this calendar to avoid querying per-span\r\n const panelNode = calEl.closest('.p-datepicker') || calEl;\r\n const headerMonthNode = (panelNode as Element).querySelector(\r\n '.p-datepicker-header .p-datepicker-title .p-datepicker-month'\r\n );\r\n const headerYearNode = (panelNode as Element).querySelector(\r\n '.p-datepicker-header .p-datepicker-title .p-datepicker-year'\r\n );\r\n const headerMonthIdx =\r\n headerMonthNode && headerMonthNode.textContent\r\n ? (this.enLocale.monthNames || []).indexOf(\r\n headerMonthNode.textContent.trim()\r\n )\r\n : NaN;\r\n const headerYearVal =\r\n headerYearNode && headerYearNode.textContent\r\n ? parseInt(headerYearNode.textContent.trim(), 10)\r\n : NaN;\r\n const items: { dt: Date; span: Element; td?: HTMLElement | null }[] =\r\n [];\r\n const spans = calEl.querySelectorAll('td > span.p-highlight');\r\n spans.forEach((span) => {\r\n const td = span.closest('td') as HTMLElement | null;\r\n // Try to read data-date attribute, which some PrimeNG versions render on span/td\r\n let dataDate = span.getAttribute('data-date');\r\n if (!dataDate && td) dataDate = td.getAttribute('data-date');\r\n if (dataDate) {\r\n const parts = dataDate.split('-').map((p) => parseInt(p, 10));\r\n if (parts.length >= 3 && parts.every((n) => !isNaN(n))) {\r\n const [y, m, d] = parts;\r\n const dt = new Date(y, m - 1, d);\r\n items.push({ dt, td, span });\r\n return;\r\n }\r\n }\r\n // Fallback: parse day number and infer month/year from nearby header in the same .p-datepicker\r\n const dayText = (span.textContent || '').trim();\r\n const day = parseInt(dayText, 10);\r\n if (!isNaN(day) && td) {\r\n // Use cached header month/year when available\r\n if (!isNaN(headerMonthIdx) && !isNaN(headerYearVal)) {\r\n const dt = new Date(headerYearVal, headerMonthIdx, day);\r\n items.push({ dt, td, span });\r\n return;\r\n }\r\n }\r\n // last resort: ignore span if date cannot be determined\r\n });\r\n\r\n if (items.length === 0) return;\r\n\r\n // Sort items to find min/max (start & end)\r\n items.sort((a, b) => a.dt.getTime() - b.dt.getTime());\r\n const detectedStart = items[0].dt;\r\n const detectedEnd = items[items.length - 1].dt;\r\n\r\n // Preferred range is modelDate/selectedDate if present\r\n const range =\r\n this.selectedDate && this.selectedDate.length === 2\r\n ? this.selectedDate\r\n : this.modelDate && this.modelDate.length === 2\r\n ? this.modelDate\r\n : [detectedStart, detectedEnd];\r\n const startDate =\r\n range && range[0]\r\n ? this.normalizeDate(range[0] as Date)\r\n : detectedStart;\r\n const endDate =\r\n range && range[1]\r\n ? this.normalizeDate(range[1] as Date)\r\n : detectedEnd;\r\n\r\n // For each item, add start-range,end-range, or between-range based on date\r\n const sTime = startDate.getTime();\r\n const eTime = endDate.getTime();\r\n for (const it of items) {\r\n const t = it.dt.getTime();\r\n if (sTime === eTime && t === sTime) {\r\n // single-day range, mark both start & end\r\n this.renderer.addClass(it.span, 'start-range');\r\n this.renderer.addClass(it.span, 'end-range');\r\n } else if (t === sTime) {\r\n this.renderer.addClass(it.span, 'start-range');\r\n } else if (t === eTime) {\r\n this.renderer.addClass(it.span, 'end-range');\r\n } else if (t > sTime && t < eTime) {\r\n this.renderer.addClass(it.span, 'between-range');\r\n }\r\n }\r\n });\r\n } catch (e) {\r\n // ignore DOM errors (e.g., server-side rendering / missing elements)\r\n }\r\n }\r\n\r\n private isoDate(d: Date): string {\r\n const y = d.getFullYear();\r\n const m = String(d.getMonth() + 1).padStart(2, '0');\r\n const day = String(d.getDate()).padStart(2, '0');\r\n return `${y}-${m}-${day}`;\r\n }\r\n\r\n private _findElementByDate(date?: Date): HTMLElement | undefined {\r\n if (!date) return undefined;\r\n const y = date.getFullYear();\r\n const m = date.getMonth() + 1; // 1..12\r\n const d = date.getDate();\r\n const isoUnpadded = `${y}-${m}-${d}`; // e.g. 2025-11-1\r\n const isoPadded = `${y}-${String(m).padStart(2, '0')}-${String(d).padStart(2, '0')}`; // 2025-11-01\r\n const selectors = [\r\n `[data-date=\"${isoUnpadded}\"]`,\r\n `[data-date=\"${isoPadded}\"]`,\r\n ];\r\n for (const sel of selectors) {\r\n const foundInOverlay = document.querySelector(\r\n `.atomix-overlay-calendar ${sel}`\r\n ) as HTMLElement | null;\r\n if (foundInOverlay)\r\n return (\r\n (foundInOverlay.closest('td') as HTMLElement | null) || foundInOverlay\r\n );\r\n }\r\n for (const sel of selectors) {\r\n const found = document.querySelector(sel) as HTMLElement | null;\r\n if (found) return (found.closest('td') as HTMLElement | null) || found;\r\n }\r\n return undefined;\r\n }\r\n\r\n private _startCalendarObservers(): void {\r\n // stop first to avoid duplicates\r\n this._stopCalendarObservers();\r\n try {\r\n const calEls = this._getCalendarElements();\r\n try {\r\n const panel = this.overlayPanel as any;\r\n if (panel && panel.el && panel.el.nativeElement) {\r\n const el = panel.el.nativeElement.querySelector('.p-datepicker');\r\n if (el) calEls.push(el as Element);\r\n }\r\n } catch (e) {}\r\n\r\n calEls.forEach((el) => {\r\n const obs = new MutationObserver(() => {\r\n // Reapply classes after DOM changes (debounced)\r\n this._scheduleUpdate();\r\n });\r\n // Watch childList, subtree and class attribute changes (span class toggles are common)\r\n obs.observe(el, {\r\n childList: true,\r\n subtree: true,\r\n attributes: true,\r\n attributeFilter: ['class'],\r\n });\r\n this._calendarObservers.push(obs);\r\n this._observedElements.push(el);\r\n // Also observe parent - if PrimeNG replaces the .p-datepicker element, parent childList changes will fire\r\n const parent = el.parentElement;\r\n if (parent && this._observedParentElements.indexOf(parent) === -1) {\r\n const parentObs = new MutationObserver(() => {\r\n // reattach observers since the calEl may have been replaced\r\n this._scheduleUpdate();\r\n // detach and re-attach observers after DOM settles\r\n setTimeout(() => {\r\n try {\r\n this._stopCalendarObservers();\r\n this._startCalendarObservers();\r\n } catch (e) {}\r\n }, 100); // slightly larger delay to let PrimeNG finish the month rendering\r\n });\r\n parentObs.observe(parent, { childList: true, subtree: false });\r\n this._parentObservers.push(parentObs);\r\n this._observedParentElements.push(parent);\r\n }\r\n });\r\n } catch (e) {\r\n // ignore\r\n }\r\n }\r\n\r\n private _stopCalendarObservers(): void {\r\n try {\r\n this._calendarObservers.forEach((obs) => obs.disconnect());\r\n this._parentObservers.forEach((obs) => obs.disconnect());\r\n } catch (e) {}\r\n this._calendarObservers = [];\r\n this._observedElements = [];\r\n this._parentObservers = [];\r\n this._observedParentElements = [];\r\n }\r\n\r\n private _scheduleUpdate(): void {\r\n if (this._updateRafId != null) return; // already scheduled\r\n this._updateRafId = window.requestAnimationFrame(() => {\r\n this._updateRafId = null;\r\n this._updateStartEndRangeClasses();\r\n });\r\n }\r\n\r\n private _cancelScheduledUpdate(): void {\r\n if (this._updateRafId != null) {\r\n window.cancelAnimationFrame(this._updateRafId);\r\n this._updateRafId = null;\r\n }\r\n }\r\n\r\n private _getCalendarElements(): Element[] {\r\n const calEls: Element[] = [];\r\n const overlayCal = document.querySelector(\r\n '.atomix-overlay-calendar .p-datepicker'\r\n );\r\n const inlineCal = document.querySelector('.inline-calendar .p-datepicker');\r\n if (overlayCal) calEls.push(overlayCal);\r\n if (inlineCal) calEls.push(inlineCal);\r\n try {\r\n const panel = this.overlayPanel as any;\r\n if (panel && panel.el && panel.el.nativeElement) {\r\n const el = panel.el.nativeElement.querySelector('.p-datepicker');\r\n if (el) calEls.push(el as Element);\r\n }\r\n } catch (e) {}\r\n // remove duplicates\r\n return Array.from(new Set(calEls));\r\n }\r\n}\r\n","<div>\r\n <ng-container *ngIf=\"!inline; else inlineBlock\">\r\n <div [ngClass]=\"styleClass\" class=\"input-wrapper\">\r\n <input\r\n pInputText\r\n type=\"text\"\r\n [ngClass]=\"inputStyleClass\"\r\n [placeholder]=\"placeholder\"\r\n [value]=\"getDateRangeLabel()\"\r\n readonly\r\n [disabled]=\"disabled\"\r\n (click)=\"overlayPanel?.toggle($event)\"\r\n (keydown)=\"onInputKeyDown($event)\"\r\n />\r\n <i\r\n class=\"pi pi-calendar input-icon\"\r\n title=\"Open calendar\"\r\n (click)=\"!disabled && overlayPanel?.toggle($event)\"\r\n ></i>\r\n <i\r\n *ngIf=\"hasSelection\"\r\n class=\"pi pi-times input-clear-icon\"\r\n title=\"Clear\"\r\n tabindex=\"0\"\r\n (click)=\"!disabled && clearAndStop($event)\"\r\n (keydown.enter)=\"!disabled && clearAndStop($event)\"\r\n (keydown.space)=\"!disabled && clearAndStop($event)\"\r\n ></i>\r\n </div>\r\n\r\n <p-overlayPanel\r\n #overlayPanel\r\n [dismissable]=\"true\"\r\n appendTo=\"body\"\r\n styleClass=\"atomix-date-range-overlay\"\r\n (onShow)=\"onOverlayShow()\"\r\n (onHide)=\"onOverlayHide()\"\r\n >\r\n <div class=\"overlay-inner\">\r\n <div class=\"overlay-left\">\r\n <div class=\"preset-list\">\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n class=\"preset-btn\"\r\n (click)=\"applyPreset('today')\"\r\n [ngClass]=\"{ active: selectedPreset === 'today' }\"\r\n label=\"Today\"\r\n ></button>\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n class=\"preset-btn\"\r\n (click)=\"applyPreset('yesterday')\"\r\n [ngClass]=\"{ active: selectedPreset === 'yesterday' }\"\r\n label=\"Yesterday\"\r\n ></button>\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n class=\"preset-btn\"\r\n (click)=\"applyPreset('last7days')\"\r\n [ngClass]=\"{ active: selectedPreset === 'last7days' }\"\r\n label=\"Last 7 days\"\r\n ></button>\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n class=\"preset-btn\"\r\n (click)=\"applyPreset('last30days')\"\r\n [ngClass]=\"{ active: selectedPreset === 'last30days' }\"\r\n label=\"Last 30 days\"\r\n ></button>\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n class=\"preset-btn\"\r\n (click)=\"applyPreset('last3months')\"\r\n [ngClass]=\"{ active: selectedPreset === 'last3months' }\"\r\n label=\"Last 3 months\"\r\n ></button>\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n class=\"preset-btn\"\r\n (click)=\"applyPreset('last6months')\"\r\n [ngClass]=\"{ active: selectedPreset === 'last6months' }\"\r\n label=\"Last 6 months\"\r\n ></button>\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n class=\"preset-btn\"\r\n (click)=\"applyPreset('last1year')\"\r\n [ngClass]=\"{ active: selectedPreset === 'last1year' }\"\r\n label=\"Last 1 year\"\r\n ></button>\r\n <a class=\"reset-link\" (click)=\"resetAndClose()\">Reset</a>\r\n </div>\r\n </div>\r\n <div class=\"overlay-right\">\r\n <p-calendar\r\n [(ngModel)]=\"modelDate\"\r\n [selectionMode]=\"'range'\"\r\n [inline]=\"true\"\r\n [dateFormat]=\"'mm/dd/yyyy'\"\r\n [showOtherMonths]=\"true\"\r\n [locale]=\"enLocale\"\r\n [showIcon]=\"false\"\r\n [styleClass]=\"'atomix-overlay-calendar'\"\r\n (ngModelChange)=\"onModelChange($event)\"\r\n (onMonthChange)=\"onCalendarViewChanged($event)\"\r\n (onYearChange)=\"onCalendarViewChanged($event)\"\r\n [disabled]=\"disabled\"\r\n [maxDate]=\"maxDate\"\r\n [minDate]=\"minDate\"\r\n ></p-calendar>\r\n </div>\r\n </div>\r\n </p-overlayPanel>\r\n </ng-container>\r\n\r\n <ng-template #inlineBlock>\r\n <div [ngClass]=\"styleClass\" class=\"input-wrapper\">\r\n <input\r\n pInputText\r\n type=\"text\"\r\n [ngClass]=\"inputStyleClass\"\r\n [placeholder]=\"placeholder\"\r\n [value]=\"getDateRangeLabel()\"\r\n readonly\r\n [disabled]=\"disabled\"\r\n (keydown)=\"onInputKeyDown($event)\"\r\n />\r\n <i class=\"pi pi-calendar input-icon\" title=\"Open calendar\"></i>\r\n <i\r\n *ngIf=\"hasSelection\"\r\n class=\"pi pi-times input-clear-icon\"\r\n title=\"Clear\"\r\n tabindex=\"0\"\r\n (click)=\"clearAndStop($event)\"\r\n (keydown.enter)=\"clearAndStop($event)\"\r\n (keydown.space)=\"clearAndStop($event)\"\r\n ></i>\r\n </div>\r\n <div class=\"overlay-inner inline-calendar flex\">\r\n <div class=\"overlay-left\">\r\n <div class=\"preset-list\">\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n class=\"preset-btn\"\r\n (click)=\"applyPreset('today')\"\r\n [ngClass]=\"{ active: selectedPreset === 'today' }\"\r\n label=\"Today\"\r\n ></button>\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n class=\"preset-btn\"\r\n (click)=\"applyPreset('yesterday')\"\r\n [ngClass]=\"{ active: selectedPreset === 'yesterday' }\"\r\n label=\"Yesterday\"\r\n ></button>\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n class=\"preset-btn\"\r\n (click)=\"applyPreset('last7days')\"\r\n [ngClass]=\"{ active: selectedPreset === 'last7days' }\"\r\n label=\"Last 7 days\"\r\n ></button>\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n class=\"preset-btn\"\r\n (click)=\"applyPreset('last30days')\"\r\n [ngClass]=\"{ active: selectedPreset === 'last30days' }\"\r\n label=\"Last 30 days\"\r\n ></button>\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n class=\"preset-btn\"\r\n (click)=\"applyPreset('last3months')\"\r\n [ngClass]=\"{ active: selectedPreset === 'last3months' }\"\r\n label=\"Last 3 months\"\r\n ></button>\r\n <button\r\n pButton\r\n pRipple\r\n type=\"button\"\r\n class=\"preset-btn\"\r\n (click)=\"applyPreset('last1year')\"\r\n [ngClass]=\"{ active: selectedPreset === 'last1year' }\"\r\n label=\"Last 1 year\"\r\n ></button>\r\n <a class=\"reset-link\" (click)=\"resetAndClose()\">Reset</a>\r\n </div>\r\n </div>\r\n <div class=\"overlay-right\">\r\n <p-calendar\r\n [(ngModel)]=\"modelDate\"\r\n [selectionMode]=\"'range'\"\r\n [inline]=\"true\"\r\n [dateFormat]=\"'mm/dd/yyyy'\"\r\n [showOtherMonths]=\"true\"\r\n [locale]=\"enLocale\"\r\n [showIcon]=\"false\"\r\n [styleClass]=\"'atomix-overlay-calendar'\"\r\n (ngModelChange)=\"onModelChange($event)\"\r\n (onMonthChange)=\"onCalendarViewChanged($event)\"\r\n (onYearChange)=\"onCalendarViewChanged($event)\"\r\n [disabled]=\"disabled\"\r\n [maxDate]=\"maxDate\"\r\n [minDate]=\"minDate\"\r\n ></p-calendar>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n NgZone,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { DropdownFilterEvent } from 'primeng/dropdown';\r\nimport {\r\n debounceTime,\r\n distinctUntilChanged,\r\n Subject,\r\n Subscription,\r\n} from 'rxjs';\r\n\r\n@Component({\r\n selector: 'atomix-dropdown',\r\n templateUrl: './atomix-dropdown.component.html',\r\n styleUrls: ['./atomix-dropdown.component.css'],\r\n})\r\nexport class AtomixDropdownComponent {\r\n @Input() options: any[] = []; //\r\n @Input() selectedValues: any;\r\n @Input() optionValue: string = '';\r\n @Input() placeholder: string = '';\r\n @Input() optionLabel: string = '';\r\n @Input() filter: boolean = true;\r\n @Input() name: string = '';\r\n @Input() dropDownStyleClass: string = '';\r\n @Input() withIcon: boolean = false;\r\n @Input() disabled: boolean = false;\r\n @Input() showClear: boolean = true;\r\n @Input() iconName: string = '';\r\n @Input() containerClass: string = ''; //\r\n @Input() label: string = '';\r\n @Input() isLabelRequired: boolean = false;\r\n @Output() handleDropdownValueChange = new EventEmitter<any>();\r\n @Output() handleOnFilter = new EventEmitter<DropdownFilterEvent>();\r\n\r\n /**\r\n * The input from the user used to search list\r\n */\r\n filerValue = new Subject<DropdownFilterEvent>();\r\n\r\n /**\r\n * The time in ms that it takes to register when user is done typing\r\n */\r\n debounceTime = 300;\r\n\r\n /**\r\n * The trigger that uses the debounce time to create delay of when user types to actual filtering\r\n */\r\n trigger = this.filerValue.pipe(\r\n debounceTime(this.debounceTime),\r\n distinctUntilChanged()\r\n );\r\n\r\n /**\r\n * Subscription to trigger\r\n */\r\n subscription: Subscription = new Subscription();\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private ngZone: NgZone\r\n ) {\r\n this.subscription.add(\r\n this.trigger.subscribe(($event) => {\r\n this.handleOnFilter.emit($event);\r\n })\r\n );\r\n }\r\n\r\n onChange(event: any) {\r\n this.ngZone.run(() => {\r\n this.handleDropdownValueChange.emit([event.value, this.name]);\r\n this.cdr.detectChanges(); // Ensure changes are detected\r\n });\r\n }\r\n\r\n /**\r\n *\r\n * @param event\r\n */\r\n onFilter(event: DropdownFilterEvent) {\r\n this.filerValue.next(event);\r\n }\r\n}\r\n","<label *ngIf=\"label\"\r\n >{{ label }}\r\n <span *ngIf=\"isLabelRequired\" class=\"error-asterisk\">*</span></label\r\n>\r\n<p-dropdown\r\n [options]=\"options\"\r\n [(ngModel)]=\"selectedValues\"\r\n (onChange)=\"onChange($event)\"\r\n [optionValue]=\"optionValue\"\r\n [optionLabel]=\"optionLabel\"\r\n [showClear]=\"showClear\"\r\n [filter]=\"filter\"\r\n [filterBy]=\"optionLabel\"\r\n appendTo=\"body\"\r\n [disabled]=\"disabled\"\r\n [styleClass]=\"dropDownStyleClass + ' dropdown'\"\r\n (onFilter)=\"onFilter($event)\"\r\n [placeholder]=\"placeholder\"\r\n>\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"custom-item\">\r\n <i\r\n [ngClass]=\"option.dropdownIcon\"\r\n class=\"dropdown-logo\"\r\n *ngIf=\"option.dropdownIcon\"\r\n ></i>\r\n <img\r\n [alt]=\"option.dropdownImage\"\r\n [src]=\"option.dropdownImage\"\r\n *ngIf=\"option.dropdownImage\"\r\n class=\"dropdown-image\"\r\n />\r\n\r\n <span>{{ option[optionLabel] }}</span>\r\n </div>\r\n </ng-template>\r\n</p-dropdown>\r\n","import { ChangeDetectorRef, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'atomix-snackbar',\r\n templateUrl: './atomix-snackbar.component.html',\r\n styleUrls: ['./atomix-snackbar.component.css'],\r\n})\r\nexport class AtomixSnackbarComponent {\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n isVisible = false;\r\n message = '';\r\n\r\n showSnackbar(message: string) {\r\n this.message = message;\r\n this.isVisible = true;\r\n this.cdr.detectChanges();\r\n\r\n setTimeout(() => {\r\n this.isVisible = false;\r\n }, 3000);\r\n }\r\n\r\n hideSnackbar() {\r\n this.isVisible = false;\r\n }\r\n}\r\n","<div *ngIf=\"isVisible\" class=\"snackbar\">\r\n {{ message }}\r\n <span class=\"close-btn\" (click)=\"hideSnackbar()\">✖</span>\r\n</div>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n contentChild,\r\n ContentChild,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport type {\r\n Table,\r\n TablePageEvent,\r\n TableRowReorderEvent,\r\n} from 'primeng/table';\r\nimport { Column, Row, TableActionButton } from './atomix-table.models';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { DatePipe } from '@angular/common';\r\nimport { AtomixSnackbarComponent } from '../atomix-snackbar/atomix-snackbar.component';\r\nimport { CheckboxChangeEvent } from 'primeng/checkbox';\r\n\r\n@Component({\r\n selector: 'atomix-table',\r\n templateUrl: './atomix-table.component.html',\r\n styleUrls: ['./atomix-table.component.css'],\r\n})\r\nexport class AtomixTableComponent implements OnChanges {\r\n @ViewChild(AtomixSnackbarComponent)\r\n atomixSnackbarComponent!: AtomixSnackbarComponent;\r\n @Input() rows!: Row[];\r\n\r\n // The selected table rows passed from primeng\r\n selectedTableRows: Row[] | undefined;\r\n\r\n @Input() cols!: Column[];\r\n @Input() size: number = 25;\r\n @Input() currentPage: number = 0;\r\n @Input() expandedColumns: Column[] = [];\r\n\r\n @Input() emptyExpandableRowMessage = '';\r\n\r\n @Input() secondaryRowsKey = '';\r\n\r\n @Input() title = '';\r\n\r\n @Input() enablePaginator = false;\r\n\r\n @Input() reorderableColumns = true;\r\n\r\n @Input() enableReorderableRow = false;\r\n\r\n // Empty state properties\r\n @Input() emptyStateMessage: string = 'No records found';\r\n\r\n // TODO: Enable checkboxes if we can use checkboxes and press anywhere on row.\r\n // @Input() enableCheckboxes: boolean = false;\r\n\r\n // Enables multiselect without checkboxes\r\n @Input() enableMultiselect = false;\r\n\r\n // Enables an expandable row that another table fits inside of\r\n @Input() enableExpandableRow = false;\r\n\r\n // Enables an selecting all rows when the rows are initialized\r\n @Input() enableSelectAllOnInit = false;\r\n\r\n // Enables each column to have a filter checkbox. Also adds a \"Clear All\" button to remove all filters.\r\n @Input() enableColumnFilters = false;\r\n\r\n @Input() isLoading: boolean = false;\r\n\r\n @Input() pageSize = 25;\r\n\r\n // Required as only used when totalRecords must be set\r\n @Input() totalRecords!: number;\r\n\r\n // Hide main row actions when the row has child rows (useful for expandable tables)\r\n @Input() hideMainRowActionsWhenExpanded = false;\r\n\r\n // Disable expand button for rows without child rows (when using secondaryRowsKey)\r\n @Input() disableExpandWhenNoChildren = false;\r\n\r\n // Emits the rows the user has selected\r\n @Output() selectedRows: EventEmitter<Row[]> = new EventEmitter();\r\n\r\n @Output() pageChange: EventEmitter<{ page: number; size: number }> =\r\n new EventEmitter();\r\n\r\n @Output() filterChange: EventEmitter<any> = new EventEmitter();\r\n\r\n @Input() enableEditButtons = false;\r\n @Input() enableDeleteButtons = false;\r\n @Input() actionButtonConfig: {\r\n enabled: boolean;\r\n icon: string;\r\n message?: string;\r\n confirmation?: boolean;\r\n class?: string;\r\n } = {\r\n enabled: false,\r\n icon: '',\r\n message: '',\r\n confirmation: true,\r\n class: 'p-button-rounded p-button-help',\r\n };\r\n\r\n @Output() editRow: EventEmitter<any> = new EventEmitter();\r\n @Output() actionRow: EventEmitter<any> = new EventEmitter();\r\n @Output() deleteRow: EventEmitter<any> = new EventEmitter();\r\n @Output() actionButton: EventEmitter<Row> = new EventEmitter();\r\n @Output() expandedRow: EventEmitter<Row> = new EventEmitter();\r\n @Output() dropdownSelectionChanged: EventEmitter<{\r\n field: string;\r\n value: any;\r\n }> = new EventEmitter();\r\n @Output() rowReordered: EventEmitter<{\r\n previousIndex: number;\r\n currentIndex: number;\r\n }> = new EventEmitter();\r\n @Output() logButton: EventEmitter<any> = new EventEmitter();\r\n @Output() pageDropdownChange = new EventEmitter<any>();\r\n @Output() childRowAction = new EventEmitter<any>();\r\n @ContentChild(TemplateRef) rowDataOutlet!: TemplateRef<any>;\r\n\r\n // Sort Functionality\r\n @Input() sortBy: string = '';\r\n @Input() orderBy: string = '';\r\n @Input() isEnableSorting: boolean = false;\r\n @Output() sortHandler = new EventEmitter<any>();\r\n\r\n // Pagination Functionality\r\n options = [\r\n { label: 10, value: 10 },\r\n { label: 25, value: 25 },\r\n { label: 50, value: 50 },\r\n { label: 75, value: 75 },\r\n { label: 100, value: 100 },\r\n { label: 500, value: 500 },\r\n ];\r\n first2: number = 0;\r\n rows2: number = 10;\r\n\r\n page: number = 0;\r\n @Input() showPagination: boolean = true;\r\n @Input() childRowsActionButtonsData: TableActionButton[] = [];\r\n\r\n // Action Column\r\n @Input() showActionsColumn: boolean = false;\r\n @Input() showExpandedActionsColumn: boolean = false;\r\n @Input() actionButtonsData!: TableActionButton[];\r\n @ViewChild('dt1') dt1!: Table;\r\n\r\n @Input() getChipCss: (type: string) => string = () => '';\r\n @Input() getChipIcon: (type: string) => string = () => '';\r\n constructor(\r\n private confirmationService: ConfirmationService,\r\n private datePipe: DatePipe,\r\n private cdr: ChangeDetectorRef\r\n ) {}\r\n\r\n onRowsInit() {\r\n if (this.rows.length === 0) return;\r\n\r\n this.selectedTableRows = this.enableSelectAllOnInit ? this.rows : undefined;\r\n this.selectedRows.emit(this.selectedTableRows);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.onRowsInit();\r\n // if (changes['isLoading']) {\r\n // this.cdr.detectChanges(); // Force UI update\r\n // }\r\n }\r\n\r\n onRowSelect() {\r\n this.selectedRows.emit(this.selectedTableRows);\r\n }\r\n\r\n onRowUnselect() {\r\n this.selectedRows.emit(this.selectedTableRows);\r\n }\r\n\r\n onCheckboxSelect() {\r\n this.selectedRows.emit(this.selectedTableRows);\r\n }\r\n\r\n clearFilters() {\r\n if (this.dt1) {\r\n this.dt1.clear();\r\n this.filterChange.emit({});\r\n }\r\n }\r\n\r\n onPage(event: TablePageEvent) {\r\n const page = event.first === 0 ? 0 : event.first / event.rows;\r\n const size = event.rows;\r\n this.pageChange.emit({ page, size });\r\n }\r\n\r\n filterResults(event: any) {\r\n const filteredFilters: any = {};\r\n for (const field of Object?.keys(event.filters)) {\r\n const filtersArray = event.filters[field];\r\n const nonNullFilters = filtersArray?.filter(\r\n (item: any) => item.value !== null\r\n );\r\n\r\n if (nonNullFilters?.length > 0) {\r\n // Convert Date objects to formatted string for date filters\r\n const processedFilters = nonNullFilters.map((item: any) => {\r\n if (item.value instanceof Date) {\r\n return {\r\n ...item,\r\n matchMode: 'equals',\r\n value: this.datePipe.transform(item.value, 'yyyy-MM-dd'),\r\n operator: 'and',\r\n };\r\n }\r\n // Handle date range filters (array of dates)\r\n if (\r\n Array.isArray(item.value) &&\r\n item.value.length === 2 &&\r\n item.value.every((v: unknown) => v instanceof Date)\r\n ) {\r\n return {\r\n ...item,\r\n matchMode: 'between',\r\n value: item.value.map((date: Date) =>\r\n this.datePipe.transform(date, 'yyyy-MM-dd')\r\n ),\r\n operator: 'and',\r\n };\r\n }\r\n // For date filter strings, also normalize to equals matchMode\r\n if (item.matchMode === 'dateIs') {\r\n return {\r\n ...item,\r\n matchMode: 'equals',\r\n operator: 'and',\r\n };\r\n }\r\n return item;\r\n });\r\n filteredFilters[field] = processedFilters;\r\n }\r\n }\r\n this.filterChange.emit(filteredFilters);\r\n }\r\n\r\n deleteRowConfirmation(rowData: any) {\r\n this.confirmationService.confirm({\r\n message: 'Delete this item?',\r\n accept: () => {\r\n this.deleteRow.emit(rowData);\r\n },\r\n });\r\n }\r\n\r\n actionRowConfirmation(rowData: Row) {\r\n if (this.actionButtonConfig.confirmation) {\r\n this.confirmationService.confirm({\r\n message: this.actionButtonConfig.message,\r\n accept: () => {\r\n this.actionButton.emit(rowData);\r\n },\r\n });\r\n } else {\r\n this.actionButton.emit(rowData);\r\n }\r\n }\r\n\r\n onRowReorder(event: TableRowReorderEvent) {\r\n this.rowReordered.emit({\r\n previousIndex: event.dragIndex as number,\r\n currentIndex: event.dropIndex as number,\r\n });\r\n }\r\n\r\n getRowDataValue(rowData: any, field: string, type: string) {\r\n let value = field\r\n .split('.')\r\n .reduce((acc, part) => acc && acc[part], rowData);\r\n\r\n if (type === 'date') {\r\n value = this.datePipe.transform(value, 'MM/dd/yyyy');\r\n }\r\n\r\n return value;\r\n }\r\n copyHandler(event: Event, element: any) {\r\n event.stopPropagation();\r\n navigator.clipboard.writeText(element);\r\n this.atomixSnackbarComponent.showSnackbar(`Copied ${element} to clipboard`);\r\n }\r\n\r\n customSort(columnName: any) {\r\n let direction =\r\n this.sortBy !== columnName\r\n ? 'asc'\r\n : this.orderBy === 'asc'\r\n ? 'desc'\r\n : this.orderBy === 'desc'\r\n ? ''\r\n : 'asc';\r\n\r\n this.sortBy = columnName;\r\n this.orderBy = direction;\r\n this.sortHandler.emit({ columnName, direction });\r\n }\r\n\r\n handlePageChange(event: any) {\r\n this.pageChange.emit(event);\r\n }\r\n\r\n dropdownHandler(event: any) {\r\n this.pageDropdownChange.emit(event?.value);\r\n }\r\n\r\n handleActionClick(action: any, rowData: any) {\r\n if (action.click) {\r\n action.click(rowData); // Call the passed function with the row data\r\n }\r\n }\r\n\r\n handleChildActionClick(action: any, rowData: any) {\r\n if (action.click) {\r\n // If the action provides a custom click handler, call it\r\n action.click(rowData);\r\n } else {\r\n // Normalize the action to a string if action.action exists\r\n const actionName = action?.action || action?.tooltip || action;\r\n // Emit using the expected shape: { action, childRow }\r\n this.childRowAction.emit({ action: actionName, childRow: rowData });\r\n }\r\n }\r\n\r\n shouldShowAction(action: any, rowData: any): boolean {\r\n if (!action) return true;\r\n if (action.showOnlyWhen) {\r\n return Object.entries(action.showOnlyWhen).every(([key, value]) => {\r\n const rowVal = (rowData?.[key] ?? '')?.toString();\r\n if (!rowVal) return false;\r\n return rowVal.toLowerCase() === String(value).toLowerCase();\r\n });\r\n }\r\n return true;\r\n }\r\n\r\n @Input() isAllSelected: boolean = false;\r\n @Output() headerCheckboxHandler = new EventEmitter<boolean>();\r\n @Output() checkboxHandler = new EventEmitter<any>();\r\n isAnyRowSelected(): boolean {\r\n if (this.rows?.every((row) => row?.isSelected)) {\r\n this.isAllSelected = true;\r\n return false;\r\n } else if (this.rows?.some((row: any) => row.isSelected)) {\r\n this.isAllSelected = true;\r\n return true;\r\n } else {\r\n this.isAllSelected = false;\r\n return false;\r\n }\r\n }\r\n\r\n toggleAllRows(event: CheckboxChangeEvent) {\r\n this.rows?.forEach((row) => {\r\n row.isSelected = this.isAllSelected;\r\n });\r\n this.headerCheckboxHandler.emit(this.isAllSelected);\r\n this.checkboxHandler.emit();\r\n }\r\n\r\n singleCheckboxHandler(event: CheckboxChangeEvent, row: any) {\r\n this.isAllSelected = true;\r\n this.headerCheckboxHandler.emit(false);\r\n this.checkboxHandler.emit();\r\n }\r\n\r\n isString(value: any): boolean {\r\n return typeof value === 'string';\r\n }\r\n\r\n handleDateRangeFilter(\r\n value: any,\r\n filterCallback: (value: any) => void\r\n ): void {\r\n // Only apply filter when both dates are selected (array with 2 dates)\r\n if (\r\n Array.isArray(value) &&\r\n value.length === 2 &&\r\n value.every((v) => v instanceof Date)\r\n ) {\r\n filterCallback(value);\r\n } else if (value === null) {\r\n // Clear the filter when value is null (e.g., when cross icon is clicked)\r\n filterCallback(null);\r\n }\r\n }\r\n\r\n hasChildRows(rowData: any): boolean {\r\n if (!this.secondaryRowsKey) {\r\n return false;\r\n }\r\n const childRows = rowData[this.secondaryRowsKey];\r\n return Array.isArray(childRows) && childRows.length > 0;\r\n }\r\n\r\n shouldShowActionButton(action: any, rowData: any): boolean {\r\n if (this.hideMainRowActionsWhenExpanded && this.hasChildRows(rowData)) {\r\n return false;\r\n }\r\n\r\n if (action.showOnlyWhenNoChildRows && this.hasChildRows(rowData)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","<atomix-snackbar></atomix-snackbar>\r\n<atomix-card>\r\n <p-table\r\n #dt1\r\n [columns]=\"cols\"\r\n [reorderableColumns]=\"true\"\r\n [value]=\"rows\"\r\n [lazy]=\"true\"\r\n (onPage)=\"onPage($event)\"\r\n [(selection)]=\"selectedTableRows\"\r\n [selectionMode]=\"enableMultiselect ? 'multiple' : 'single'\"\r\n [metaKeySelection]=\"!enableMultiselect\"\r\n [totalRecords]=\"enablePaginator ? totalRecords : rows.length\"\r\n [tableStyle]=\"{ 'min-width': '50rem' }\"\r\n (onRowSelect)=\"onRowSelect()\"\r\n (onRowReorder)=\"onRowReorder($event)\"\r\n (onRowUnselect)=\"onRowUnselect()\"\r\n (onHeaderCheckboxToggle)=\"onCheckboxSelect()\"\r\n (onFilter)=\"filterResults($event)\"\r\n currentPageReportTemplate=\"Showing {first} to {last} of {totalRecords} entries\"\r\n dataKey=\"id\"\r\n styleClass=\"p-datatable-sm\"\r\n [customSort]=\"true\"\r\n [scrollable]=\"true\"\r\n [scrollHeight]=\"'68vh'\"\r\n [loading]=\"isLoading\"\r\n [showLoader]=\"false\"\r\n >\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngIf=\"enableMultiselect && rows.length > 0 && !isLoading\">\r\n <p-checkbox\r\n [(ngModel)]=\"isAllSelected\"\r\n [value]=\"isAllSelected\"\r\n [binary]=\"true\"\r\n inputId=\"binary\"\r\n (onChange)=\"toggleAllRows($event)\"\r\n class=\"lib-table-header-checkbox\"\r\n >\r\n <ng-template pTemplate=\"icon\">\r\n <i\r\n [class]=\"\r\n isAnyRowSelected()\r\n ? 'pi pi-minus'\r\n : isAllSelected\r\n ? 'pi pi-check'\r\n : ''\r\n \"\r\n ></i>\r\n </ng-template>\r\n </p-checkbox>\r\n </th>\r\n <th *ngIf=\"enableReorderableRow && !isLoading\"></th>\r\n <th *ngIf=\"enableExpandableRow && !isLoading\"></th>\r\n\r\n <!-- Reorder logic -->\r\n <th\r\n *ngFor=\"let col of columns\"\r\n pReorderableColumn\r\n (click)=\"customSort(col.field)\"\r\n >\r\n <span class=\"header-content icon-container\">\r\n <i\r\n [class]=\"\r\n sortBy === col.field && orderBy === 'desc'\r\n ? 'pi pi-arrow-down table-sort-icon'\r\n : 'pi pi-arrow-up table-sort-icon'\r\n \"\r\n [ngClass]=\"\r\n sortBy === col.field &&\r\n (orderBy === 'desc' || orderBy === 'asc')\r\n ? 'active-sort-column'\r\n : 'inactive-sort-column'\r\n \"\r\n *ngIf=\"isEnableSorting\"\r\n ></i>\r\n\r\n <span class=\"header-content-text\">{{ col.name }}</span>\r\n </span>\r\n <p-columnFilter\r\n *ngIf=\"\r\n enableColumnFilters &&\r\n !(col?.filterDisabled ?? false) &&\r\n !(col?.hideFilter ?? false) &&\r\n !col?.filterByDropdown &&\r\n !col?.filterByDate &&\r\n !col?.filterByDateRange\r\n \"\r\n type=\"text\"\r\n [field]=\"col.field\"\r\n display=\"menu\"\r\n [showMatchModes]=\"true\"\r\n [showOperator]=\"!(col.hideAdvancedFilters ?? false)\"\r\n [showClearButton]=\"true\"\r\n [maxConstraints]=\"col.hideAdvancedFilters ? 1 : 2\"\r\n [matchModeOptions]=\"\r\n col.hideAdvancedFilters\r\n ? [\r\n { label: 'Equals', value: 'equals' },\r\n { label: 'Not Equals', value: 'notEquals' },\r\n ]\r\n : undefined\r\n \"\r\n >\r\n </p-columnFilter>\r\n <p-columnFilter\r\n *ngIf=\"\r\n enableColumnFilters &&\r\n !(col?.filterDisabled ?? false) &&\r\n !(col?.hideFilter ?? false) &&\r\n col?.filterByDropdown\r\n \"\r\n [field]=\"col.field\"\r\n matchMode=\"equals\"\r\n display=\"menu\"\r\n [showMatchModes]=\"true\"\r\n [showOperator]=\"!(col.hideAdvancedFilters ?? false)\"\r\n [showClearButton]=\"true\"\r\n [maxConstraints]=\"col.hideAdvancedFilters ? 1 : 2\"\r\n [matchModeOptions]=\"\r\n col.hideAdvancedFilters\r\n ? [\r\n { label: 'Equals', value: 'equals' },\r\n { label: 'Not Equals', value: 'notEquals' },\r\n ]\r\n : undefined\r\n \"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <p-dropdown\r\n [ngModel]=\"value\"\r\n [filter]=\"true\"\r\n [options]=\"col.filterByDropdown\"\r\n (onChange)=\"filter($event.value)\"\r\n [placeholder]=\"'Select ' + col.name\"\r\n >\r\n <ng-template let-option pTemplate=\"item\">\r\n <span [class]=\"'customer-badge status-' + option.value\">{{\r\n option.label\r\n }}</span>\r\n </ng-template>\r\n </p-dropdown>\r\n </ng-template>\r\n </p-columnFilter>\r\n <p-columnFilter\r\n *ngIf=\"\r\n enableColumnFilters &&\r\n !(col?.filterDisabled ?? false) &&\r\n !(col?.hideFilter ?? false) &&\r\n !col?.filterByDropdown &&\r\n col?.filterByDate\r\n \"\r\n [field]=\"col.field\"\r\n matchMode=\"dateIs\"\r\n display=\"menu\"\r\n [showMatchModes]=\"false\"\r\n [showOperator]=\"false\"\r\n [showClearButton]=\"true\"\r\n [maxConstraints]=\"1\"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <p-calendar\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"filter($event)\"\r\n dateFormat=\"mm/dd/yy\"\r\n [placeholder]=\"'Select ' + col.name\"\r\n ></p-calendar>\r\n </ng-template>\r\n </p-columnFilter>\r\n <p-columnFilter\r\n *ngIf=\"\r\n enableColumnFilters &&\r\n !(col?.filterDisabled ?? false) &&\r\n !(col?.hideFilter ?? false) &&\r\n !col?.filterByDropdown &&\r\n !col?.filterByDate &&\r\n col?.filterByDateRange\r\n \"\r\n [field]=\"col.field\"\r\n matchMode=\"between\"\r\n display=\"menu\"\r\n [showMatchModes]=\"false\"\r\n [showOperator]=\"false\"\r\n [showClearButton]=\"true\"\r\n [maxConstraints]=\"1\"\r\n >\r\n <ng-template\r\n pTemplate=\"filter\"\r\n let-value\r\n let-filter=\"filterCallback\"\r\n >\r\n <atomix-daterange-calendar\r\n [selectedDate]=\"value\"\r\n (dateRangeChange)=\"handleDateRangeFilter($event, filter)\"\r\n [placeholder]=\"'Select ' + col.name\"\r\n [disabled]=\"isLoading\"\r\n [maxDate]=\"col?.maxDate\"\r\n [minDate]=\"col?.minDate\"\r\n [defaultPreset]=\"col?.defaultPreset\"\r\n styleClass=\"atomix-overlay-calendar\"\r\n inputStyleClass=\"atomix-table-date-input\"\r\n [inline]=\"true\"\r\n ></atomix-daterange-calendar>\r\n </ng-template>\r\n </p-columnFilter>\r\n </th>\r\n <th\r\n *ngIf=\"\r\n enableEditButtons ||\r\n enableDeleteButtons ||\r\n actionButtonConfig.enabled\r\n \"\r\n ></th>\r\n <th *ngIf=\"showActionsColumn && !isLoading\">\r\n <div class=\"header-content\" style=\"margin-left: 0.5rem\">\r\n <span class=\"header-content-text\">Actions</span>\r\n </div>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"loadingbody\" let-columns=\"columns\">\r\n <tr *ngFor=\"let record of [].constructor(10); let i = index\">\r\n <ng-container *ngFor=\"let item of cols\">\r\n <td>\r\n <p-skeleton width=\"100px\" height=\"2rem\"></p-skeleton>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <!--when loading state -->\r\n\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"100%\" class=\"empty-table-container\">\r\n <div class=\"empty-table-content\">\r\n <svg\r\n width=\"200px\"\r\n height=\"160px\"\r\n viewBox=\"0 0 200 160\"\r\n version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n class=\"empty-table-image\"\r\n >\r\n <title>Empty Table</title>\r\n <defs>\r\n <linearGradient\r\n x1=\"50%\"\r\n y1=\"0%\"\r\n x2=\"50%\"\r\n y2=\"100%\"\r\n id=\"linearGradient-1\"\r\n >\r\n <stop stop-color=\"#E2E8F0\" offset=\"0%\"></stop>\r\n <stop stop-color=\"#CBD5E1\" offset=\"100%\"></stop>\r\n </linearGradient>\r\n </defs>\r\n <g\r\n id=\"Empty-Table\"\r\n stroke=\"none\"\r\n stroke-width=\"1\"\r\n fill=\"none\"\r\n fill-rule=\"evenodd\"\r\n >\r\n <rect\r\n id=\"Table-Base\"\r\n fill=\"url(#linearGradient-1)\"\r\n x=\"20\"\r\n y=\"100\"\r\n width=\"160\"\r\n height=\"20\"\r\n rx=\"4\"\r\n ></rect>\r\n <rect\r\n id=\"Table-Top\"\r\n fill=\"#F1F5F9\"\r\n x=\"30\"\r\n y=\"40\"\r\n width=\"140\"\r\n height=\"60\"\r\n rx=\"4\"\r\n ></rect>\r\n <rect\r\n id=\"Table-Shadow\"\r\n fill=\"#94A3B8\"\r\n opacity=\"0.2\"\r\n x=\"20\"\r\n y=\"120\"\r\n width=\"160\"\r\n height=\"6\"\r\n rx=\"2\"\r\n ></rect>\r\n <g id=\"No-Data\" transform=\"translate(50, 55)\">\r\n <rect\r\n id=\"Cell-1\"\r\n fill=\"#E2E8F0\"\r\n x=\"0\"\r\n y=\"0\"\r\n width=\"100\"\r\n height=\"8\"\r\n rx=\"2\"\r\n ></rect>\r\n <rect\r\n id=\"Cell-2\"\r\n fill=\"#E2E8F0\"\r\n x=\"0\"\r\n y=\"16\"\r\n width=\"100\"\r\n height=\"8\"\r\n rx=\"2\"\r\n ></rect>\r\n <rect\r\n id=\"Cell-3\"\r\n fill=\"#E2E8F0\"\r\n x=\"0\"\r\n y=\"32\"\r\n width=\"60\"\r\n height=\"8\"\r\n rx=\"2\"\r\n ></rect>\r\n </g>\r\n <g id=\"Magnifying-Glass\" transform=\"translate(120, 30)\">\r\n <circle\r\n id=\"Glass\"\r\n stroke=\"#64748B\"\r\n stroke-width=\"4\"\r\n fill=\"#F8FAFC\"\r\n cx=\"15\"\r\n cy=\"15\"\r\n r=\"15\"\r\n ></circle>\r\n <line\r\n x1=\"26\"\r\n y1=\"26\"\r\n x2=\"40\"\r\n y2=\"40\"\r\n id=\"Handle\"\r\n stroke=\"#64748B\"\r\n stroke-width=\"4\"\r\n stroke-linecap=\"round\"\r\n ></line>\r\n <circle\r\n id=\"Reflection\"\r\n fill=\"#E2E8F0\"\r\n cx=\"10\"\r\n cy=\"10\"\r\n r=\"4\"\r\n ></circle>\r\n </g>\r\n </g>\r\n </svg>\r\n <div class=\"empty-table-message\">\r\n {{ emptyStateMessage || 'No records found' }}\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template\r\n pTemplate=\"body\"\r\n let-rowData\r\n let-columns=\"columns\"\r\n let-expanded=\"expanded\"\r\n let-index=\"rowIndex\"\r\n >\r\n <ng-template\r\n [ngTemplateOutlet]=\"rowDataOutlet || default\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: rowData,\r\n index,\r\n columns,\r\n }\"\r\n ></ng-template>\r\n <ng-content select=\"[body]\"> </ng-content>\r\n <ng-template #default>\r\n <tr\r\n *ngIf=\"!isLoading\"\r\n [pSelectableRow]=\"rowData\"\r\n [pReorderableRow]=\"index\"\r\n >\r\n <td *ngIf=\"enableMultiselect && rows.length > 0 && !isLoading\">\r\n <p-checkbox\r\n [(ngModel)]=\"rowData.isSelected\"\r\n [value]=\"rowData?.isSelected\"\r\n [binary]=\"true\"\r\n [pTooltip]=\"rowData?.tooltip\"\r\n inputId=\"binary\"\r\n (onChange)=\"singleCheckboxHandler($event, rowData)\"\r\n ></p-checkbox>\r\n </td>\r\n <td *ngIf=\"enableReorderableRow\">\r\n <span class=\"pi pi-bars\" pReorderableRowHandle></span>\r\n </td>\r\n\r\n <td *ngIf=\"enableExpandableRow\">\r\n <button\r\n type=\"button\"\r\n (click)=\"expandedRow.emit(rowData)\"\r\n pButton\r\n pRipple\r\n [pRowToggler]=\"rowData\"\r\n class=\"p-button-text p-button-rounded p-button-plain\"\r\n [icon]=\"expanded ? 'pi pi-chevron-down' : 'pi pi-chevron-right'\"\r\n [disabled]=\"disableExpandWhenNoChildren && !hasChildRows(rowData)\"\r\n ></button>\r\n </td>\r\n <td *ngFor=\"let col of columns\">\r\n <i\r\n class=\"pi pi-copy copy-icon\"\r\n title=\"Copy\"\r\n *ngIf=\"col.copyIcon === true && rowData[col.field]\"\r\n (click)=\"copyHandler($event, rowData[col.field])\"\r\n ></i>\r\n <span class=\"table-text\" *ngIf=\"!col.chip && !col.progress\">{{\r\n getRowDataValue(rowData, col.field, col.type) || '-'\r\n }}</span>\r\n <p-chip\r\n [label]=\"rowData[col.field] | titlecase\"\r\n [styleClass]=\"getChipCss(rowData[col.field])\"\r\n *ngIf=\"\r\n col.chip === true &&\r\n rowData[col.field] !== null &&\r\n rowData[col.field] !== '' &&\r\n isString(rowData[col.field])\r\n \"\r\n [title]=\"rowData[col.field] | titlecase\"\r\n >\r\n <i\r\n class=\"pi\"\r\n [ngClass]=\"getChipIcon(rowData[col.field])\"\r\n class=\"chip-icon\"\r\n *ngIf=\"col.chipIcon === true\"\r\n ></i>\r\n </p-chip>\r\n <div\r\n *ngIf=\"\r\n col.progress === true &&\r\n rowData[col.field] !== null &&\r\n rowData[col.field] !== ''\r\n \"\r\n class=\"progress-container\"\r\n >\r\n <div class=\"progress-bar-wrapper\">\r\n <p-progressBar\r\n [value]=\"rowData[col.field]\"\r\n [showValue]=\"false\"\r\n ></p-progressBar>\r\n <span class=\"progress-text-overlay\"\r\n >{{\r\n rowData[col.field] !== undefined ? rowData[col.field] : 0\r\n }}%</span\r\n >\r\n </div>\r\n </div>\r\n </td>\r\n\r\n <!-- actions -->\r\n <td\r\n *ngIf=\"\r\n showActionsColumn && !isLoading && (rowData.showActions ?? true)\r\n \"\r\n class=\"no-wrap\"\r\n >\r\n <div class=\"download-cell-content action-buttons-container\">\r\n <ng-container *ngFor=\"let action of actionButtonsData\">\r\n <button\r\n pButton\r\n class=\"p-button-text\"\r\n *ngIf=\"shouldShowActionButton(action, rowData)\"\r\n [ngClass]=\"\r\n rowData.disabled && action.icon === 'pi pi-trash'\r\n ? 'trash-icon-style-disabled'\r\n : action.class\r\n \"\r\n pButton\r\n [icon]=\"action.icon || ''\"\r\n [disabled]=\"action.disabled || false\"\r\n [pTooltip]=\"action.tooltip || ''\"\r\n (click)=\"handleActionClick(action, rowData)\"\r\n ></button>\r\n </ng-container>\r\n </div>\r\n </td>\r\n <td *ngIf=\"rowData.showActions === false\"></td>\r\n\r\n <td\r\n *ngIf=\"\r\n enableEditButtons ||\r\n enableDeleteButtons ||\r\n actionButtonConfig.enabled\r\n \"\r\n >\r\n <button\r\n expandedRow\r\n *ngIf=\"enableEditButtons\"\r\n pButton\r\n pRipple\r\n icon=\"pi pi-pencil\"\r\n class=\"p-button-rounded p-button-success mr-2\"\r\n (click)=\"editRow.emit(rowData)\"\r\n ></button>\r\n <button\r\n *ngIf=\"enableDeleteButtons\"\r\n pButton\r\n pRipple\r\n icon=\"pi pi-trash\"\r\n class=\"p-button-rounded p-button-warning mr-2\"\r\n (click)=\"deleteRowConfirmation(rowData)\"\r\n ></button>\r\n <button\r\n *ngIf=\"actionButtonConfig.enabled\"\r\n pButton\r\n pRipple\r\n [icon]=\"actionButtonConfig.icon\"\r\n [class]=\"actionButtonConfig.class\"\r\n (click)=\"\r\n actionButtonConfig.confirmation\r\n ? actionRowConfirmation(rowData)\r\n : actionRow.emit(rowData)\r\n \"\r\n ></button>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </ng-template>\r\n <ng-template pTemplate=\"rowexpansion\" let-rowData>\r\n <tr *ngIf=\"!isLoading\">\r\n <td colspan=\"40\">\r\n <div class=\"p-4\">\r\n <p-table [value]=\"rowData[secondaryRowsKey]\" dataKey=\"id\">\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"child-row-header\">\r\n <td *ngFor=\"let col of expandedColumns\">\r\n {{ col.name }}\r\n </td>\r\n <td *ngIf=\"showExpandedActionsColumn\">Actions</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowOrder>\r\n <tr>\r\n <td *ngFor=\"let col of expandedColumns\">\r\n <i\r\n class=\"pi pi-copy copy-icon\"\r\n title=\"Copy\"\r\n *ngIf=\"col.copyIcon === true && rowOrder[col.field]\"\r\n (click)=\"copyHandler($event, rowOrder[col.field])\"\r\n ></i>\r\n <span class=\"table-text\" *ngIf=\"!col.chip\">{{\r\n getRowDataValue(rowOrder, col.field, col.type || '') ||\r\n '-'\r\n }}</span>\r\n <p-chip\r\n [label]=\"rowOrder[col.field] | titlecase\"\r\n [styleClass]=\"getChipCss(rowOrder[col.field])\"\r\n *ngIf=\"\r\n col.chip === true &&\r\n rowOrder[col.field] !== null &&\r\n rowOrder[col.field] !== '' &&\r\n isString(rowOrder[col.field])\r\n \"\r\n [title]=\"rowOrder[col.field] | titlecase\"\r\n >\r\n <i\r\n class=\"pi\"\r\n [class]=\"getChipIcon(rowOrder[col.field])\"\r\n *ngIf=\"col.chipIcon === true\"\r\n ></i>\r\n </p-chip>\r\n </td>\r\n <td *ngIf=\"showExpandedActionsColumn\" class=\"no-wrap\">\r\n <div class=\"download-cell-content action-buttons-container\">\r\n <ng-container\r\n *ngFor=\"let action of childRowsActionButtonsData\"\r\n >\r\n <button\r\n pButton\r\n class=\"p-button-text\"\r\n *ngIf=\"shouldShowAction(action, rowOrder)\"\r\n [ngClass]=\"\r\n rowOrder.disabled && action.icon === 'pi pi-trash'\r\n ? 'trash-icon-style-disabled'\r\n : action.class\r\n \"\r\n [icon]=\"action.icon || ''\"\r\n [disabled]=\"action.disabled || false\"\r\n [pTooltip]=\"action.tooltip || ''\"\r\n (click)=\"handleChildActionClick(action, rowOrder)\"\r\n ></button>\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template\r\n pTemplate=\"emptymessage\"\r\n class=\"table-row-row-expansion\"\r\n >\r\n <tr>\r\n <td\r\n [colSpan]=\"\r\n expandedColumns.length +\r\n (showExpandedActionsColumn ? 1 : 0)\r\n \"\r\n >\r\n {{ emptyExpandableRowMessage }}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n <div class=\"pagination-container\" *ngIf=\"showPagination\">\r\n <span class=\"mx-1 text-color table-text\">Items per page: </span>\r\n <p-dropdown\r\n [options]=\"options\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n [(ngModel)]=\"size\"\r\n (onChange)=\"dropdownHandler($event)\"\r\n styleClass=\"pagination-dropdown\"\r\n appendTo=\"body\"\r\n />\r\n <p-paginator\r\n [first]=\"currentPage * size\"\r\n [rows]=\"size\"\r\n [totalRecords]=\"totalRecords\"\r\n (onPageChange)=\"handlePageChange($event)\"\r\n [showCurrentPageReport]=\"true\"\r\n currentPageReportTemplate=\"{first} - {last} of {totalRecords}\"\r\n [showPageLinks]=\"false\"\r\n [showFirstLastIcon]=\"false\"\r\n ></p-paginator>\r\n </div>\r\n</atomix-card>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n Output,\r\n} from '@angular/core';\r\nimport { DropdownChangeEvent } from 'primeng/dropdown';\r\n\r\n@Component({\r\n selector: 'app-pagination',\r\n templateUrl: './atomix-pagination.component.html',\r\n styleUrls: ['./atomix-pagination.component.css'],\r\n})\r\nexport class AtomixPaginationComponent {\r\n @Input() dataLength: number = 0;\r\n @Input() totalRecords: number = 0;\r\n @Input() page: number = 0;\r\n @Input() size: number = 25;\r\n @Output() handleDropdownValueChange = new EventEmitter<DropdownChangeEvent>();\r\n @Output() paginatorChange = new EventEmitter<any>();\r\n getScreenWidth: number = 0;\r\n options = [\r\n { label: 10, value: 10 },\r\n { label: 25, value: 25 },\r\n { label: 50, value: 50 },\r\n { label: 75, value: 75 },\r\n { label: 100, value: 100 },\r\n { label: 500, value: 500 },\r\n ];\r\n\r\n @HostListener('window:resize', ['$event'])\r\n onWindowResize() {\r\n this.getScreenWidth = window.innerWidth;\r\n }\r\n}\r\n","<div class=\"pagination-container\">\r\n <span class=\"mx-1 text-color table-text\" *ngIf=\"getScreenWidth > 768\"\r\n >Items per page:\r\n </span>\r\n <p-dropdown\r\n *ngIf=\"getScreenWidth > 768\"\r\n [options]=\"options\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n [(ngModel)]=\"size\"\r\n (onChange)=\"handleDropdownValueChange.emit($event)\"\r\n styleClass=\"pagination-dropdown\"\r\n />\r\n <p-paginator\r\n [first]=\"page * size\"\r\n [rows]=\"size\"\r\n [totalRecords]=\"totalRecords\"\r\n (onPageChange)=\"paginatorChange.emit($event)\"\r\n [showCurrentPageReport]=\"true\"\r\n currentPageReportTemplate=\"{first} - {last} of {totalRecords}\"\r\n [showPageLinks]=\"false\"\r\n [showFirstLastIcon]=\"false\"\r\n ></p-paginator>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport {\r\n AutoCompleteCompleteEvent,\r\n AutoCompleteSelectEvent,\r\n} from 'primeng/autocomplete';\r\n\r\n@Component({\r\n selector: 'atomix-form-autocomplete',\r\n templateUrl: './atomix-form-autocomplete.component.html',\r\n styleUrls: ['./atomix-form-autocomplete.component.scss'],\r\n})\r\nexport class AtomixFormAutocompleteComponent {\r\n @Input() controlName!: string;\r\n @Input() form!: FormGroup;\r\n @Input() label = '';\r\n @Input() suggestions: any[] = [];\r\n @Input() placeholder = '';\r\n @Input() type = 'text';\r\n @Input() tooltip!: string;\r\n @Input() styleClass!: string;\r\n @Input() isLabelRequired: boolean = false;\r\n @Input() tooltipPosition: 'right' | 'left' | 'top' | 'bottom' = 'bottom';\r\n @Input() field: string = '';\r\n @Input() dropdown = true;\r\n @Output() queryEvent = new EventEmitter<string>();\r\n @Output() onSelect = new EventEmitter<AutoCompleteSelectEvent | Event>();\r\n\r\n onQuery(event: AutoCompleteCompleteEvent) {\r\n this.queryEvent.emit(event.query);\r\n }\r\n\r\n onOptionSelected(event: AutoCompleteSelectEvent) {\r\n console.log('lib', event);\r\n this.onSelect.emit(event);\r\n }\r\n\r\n get control() {\r\n return this.form.get(this.controlName) as FormControl;\r\n }\r\n}\r\n","<label *ngIf=\"label\" [for]=\"controlName\"\r\n >{{ label }}\r\n <span *ngIf=\"isLabelRequired\" class=\"error-asterisk\">*</span></label\r\n>\r\n<p-autoComplete\r\n [appendTo]=\"'body'\"\r\n [formControl]=\"control\"\r\n [id]=\"controlName\"\r\n [suggestions]=\"suggestions\"\r\n [placeholder]=\"placeholder\"\r\n [pTooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n field=\"name\"\r\n (completeMethod)=\"onQuery($event)\"\r\n (onSelect)=\"onOptionSelected($event)\"\r\n [showClear]=\"true\"\r\n [dropdown]=\"dropdown\"\r\n (onClear)=\"this.onSelect.emit($event)\"\r\n [styleClass]=\"styleClass + ' lib-form-autocomplete'\"\r\n/>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { CalendarTypeView } from 'primeng/calendar';\r\n\r\n@Component({\r\n selector: 'atomix-form-calendar',\r\n templateUrl: './atomix-form-calendar.component.html',\r\n styleUrls: ['./atomix-form-calendar.component.scss'],\r\n})\r\nexport class AtomixFormCalendarComponent {\r\n @Input() controlName!: string;\r\n @Input() form!: FormGroup;\r\n @Input() view!: CalendarTypeView;\r\n @Input() dateFormat!: string;\r\n @Input() label = '';\r\n @Input() isLabelRequired: boolean = false;\r\n\r\n @Input() maxDate!: Date;\r\n @Input() minDate!: Date;\r\n @Input() selectionMode!: 'single' | 'multiple' | 'range' | undefined;\r\n @Input() placeholder = '';\r\n\r\n @Input() styleClass = '';\r\n @Input() inputStyleClass = '';\r\n\r\n @Output() dateSelectHandler = new EventEmitter<any>();\r\n @Output() dateChangeHandler = new EventEmitter<any>();\r\n\r\n get control() {\r\n return this.form.get(this.controlName) as FormControl;\r\n }\r\n}\r\n","<label *ngIf=\"label\" [for]=\"controlName\"\r\n >{{ label }}\r\n <span *ngIf=\"isLabelRequired\" class=\"error-asterisk\">*</span></label\r\n>\r\n<p-calendar\r\n [formControl]=\"control\"\r\n id=\"calendar\"\r\n tooltipPosition=\"top\"\r\n [view]=\"view\"\r\n [dateFormat]=\"dateFormat\"\r\n [maxDate]=\"maxDate\"\r\n [minDate]=\"minDate\"\r\n [selectionMode]=\"selectionMode\"\r\n [readonlyInput]=\"true\"\r\n [placeholder]=\"placeholder\"\r\n (onClose)=\"dateSelectHandler.emit()\"\r\n [inputStyleClass]=\"inputStyleClass\"\r\n [styleClass]=\"styleClass + ' form-calendar'\"\r\n appendTo=\"body\"\r\n (onSelect)=\"dateChangeHandler.emit($event)\"\r\n/>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'atomix-form-checkbox',\r\n templateUrl: './atomix-form-checkbox.component.html',\r\n styleUrls: ['./atomix-form-checkbox.component.scss'],\r\n})\r\nexport class AtomixFormCheckboxComponent {\r\n @Input() binary = false;\r\n @Input() controlName!: string;\r\n @Input() form!: FormGroup;\r\n @Input() inline = false;\r\n @Input() label = '';\r\n @Input() tooltip!: string;\r\n @Input() tooltipPosition: 'right' | 'left' | 'top' | 'bottom' = 'bottom';\r\n @Input() value!: string;\r\n\r\n @Output() valueChange = new EventEmitter();\r\n\r\n get control() {\r\n return this.form.get(this.controlName) as FormControl;\r\n }\r\n\r\n onChange(event: any) {\r\n this.valueChange.emit(event);\r\n }\r\n}\r\n","<div [ngClass]=\"inline ? 'checkbox-item-inline' : 'checkbox-item'\">\r\n <label [htmlFor]=\"controlName\" *ngIf=\"label\" [htmlFor]=\"controlName\">{{\r\n label\r\n }}</label>\r\n <p-checkbox\r\n [binary]=\"true\"\r\n [formControl]=\"control\"\r\n [inputId]=\"controlName\"\r\n [pTooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n (onChange)=\"onChange($event)\"\r\n ></p-checkbox>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { LabelIconData } from './form.chips.models';\r\n\r\n@Component({\r\n selector: 'atomix-form-chips',\r\n templateUrl: './atomix-form-chips.component.html',\r\n styleUrls: ['./atomix-form-chips.component.scss'],\r\n})\r\nexport class AtomixFormChipsComponent {\r\n @Input() controlName!: string;\r\n @Input() form!: FormGroup;\r\n @Input() label = '';\r\n @Input() placeholder = '';\r\n @Input() tooltip!: string;\r\n @Input() tooltipPosition: 'right' | 'left' | 'top' | 'bottom' = 'bottom';\r\n @Input() type = 'text';\r\n @Input() styleClass = '';\r\n @Input() allowDuplicate: boolean = false;\r\n @Input() isLabelIconData: LabelIconData = {\r\n iconClass: '',\r\n tooltip: '',\r\n };\r\n @Input() isLabelIconRequired: boolean = false;\r\n get control() {\r\n return this.form.get(this.controlName) as FormControl;\r\n }\r\n}\r\n","<div class=\"item flex flex-column\">\r\n <label *ngIf=\"label\" [htmlFor]=\"controlName\"\r\n >{{ label }}\r\n <i\r\n *ngIf=\"isLabelIconRequired\"\r\n [class]=\"isLabelIconData?.iconClass + ' ml-2'\"\r\n [pTooltip]=\"isLabelIconData?.tooltip\"\r\n ></i\r\n ></label>\r\n <p-chips\r\n separator=\",\"\r\n placeholder=\"Separate values with a comma or enter.\"\r\n [formControl]=\"control\"\r\n [id]=\"controlName\"\r\n [pTooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [styleClass]=\"styleClass + ' lib-form-chips'\"\r\n [allowDuplicate]=\"allowDuplicate\"\r\n ></p-chips>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { LabelIconData } from '../atomix-form-chips/form.chips.models';\r\n\r\n@Component({\r\n selector: 'atomix-form-dropdown',\r\n templateUrl: './atomix-form-dropdown.component.html',\r\n styleUrls: ['./atomix-form-dropdown.component.scss'],\r\n})\r\nexport class AtomixFormDropdownComponent {\r\n @Input() controlName!: string;\r\n @Input() filterResults = false;\r\n @Input() form!: FormGroup;\r\n @Input() label = '';\r\n @Input() optionLabel = '';\r\n @Input() optionValue = '';\r\n @Input() options!: any;\r\n @Input() placeholder = '';\r\n @Input() showClear = true;\r\n @Input() tooltip!: string;\r\n @Input() tooltipPosition: 'right' | 'left' | 'top' | 'bottom' = 'bottom';\r\n @Input() isLabelRequired: boolean = false;\r\n @Input() styleClass!: string;\r\n @Input() isLabelIconData: LabelIconData = {\r\n iconClass: '',\r\n tooltip: '',\r\n required: false,\r\n };\r\n\r\n @Output() selectionChange = new EventEmitter();\r\n @Output() filterEvent = new EventEmitter<string>();\r\n\r\n get control() {\r\n return this.form.get(this.controlName) as FormControl;\r\n }\r\n}\r\n","<label *ngIf=\"label\" [for]=\"controlName\"\r\n >{{ label }}\r\n <span *ngIf=\"isLabelRequired\" class=\"lib-error-asterisk\">*</span>\r\n <i\r\n *ngIf=\"isLabelIconData.required\"\r\n [class]=\"isLabelIconData?.iconClass\"\r\n [pTooltip]=\"isLabelIconData?.tooltip\"\r\n ></i\r\n></label>\r\n<p-dropdown\r\n [filter]=\"filterResults\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [options]=\"options\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [showClear]=\"showClear\"\r\n [pTooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n (onChange)=\"selectionChange.emit($event)\"\r\n [styleClass]=\"styleClass + ' form-dropdown'\"\r\n appendTo=\"body\"\r\n>\r\n</p-dropdown>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { LabelIconData } from '../atomix-form-chips/form.chips.models';\r\n\r\n@Component({\r\n selector: 'atomix-form-input',\r\n templateUrl: './atomix-form-input-component.component.html',\r\n styleUrls: ['./atomix-form-input-component.component.scss'],\r\n})\r\nexport class AtomixFormInputComponent {\r\n @Input() controlName!: string;\r\n @Input() form!: FormGroup;\r\n @Input() label = '';\r\n @Input() max!: number | null;\r\n @Input() min!: number;\r\n @Input() placeholder = '';\r\n @Input() type = 'text';\r\n @Input() tooltip!: string;\r\n @Input() class!: string;\r\n @Input() style: any;\r\n @Input() isLabelIconData: LabelIconData = {\r\n iconClass: '',\r\n tooltip: '',\r\n };\r\n @Input() isLabelIconRequired: boolean = false;\r\n @Input() isLabelRequired: boolean = false;\r\n @Input() tooltipPosition: 'right' | 'left' | 'top' | 'bottom' = 'bottom';\r\n @Input() buttonText: string = '';\r\n @Input() buttonType: 'button' | 'submit' = 'button';\r\n @Output() changeValueHandler = new EventEmitter<string>();\r\n @Output() buttonClick = new EventEmitter<void>();\r\n\r\n get control() {\r\n return this.form.get(this.controlName) as FormControl;\r\n }\r\n onInput(event: Event): void {\r\n console.log(this.buttonType);\r\n const input = event.target as HTMLInputElement;\r\n\r\n this.changeValueHandler.emit(input.value);\r\n }\r\n}\r\n","<label *ngIf=\"label\" [for]=\"controlName\"\r\n >{{ label }} <span *ngIf=\"isLabelRequired\" class=\"error-asterisk\">*</span\r\n ><i\r\n *ngIf=\"isLabelIconRequired\"\r\n [class]=\"isLabelIconData?.iconClass + ' ml-2'\"\r\n [pTooltip]=\"isLabelIconData?.tooltip\"\r\n ></i\r\n></label>\r\n<div class=\"input-wrapper\">\r\n <input\r\n pInputText\r\n [id]=\"controlName\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [maxlength]=\"max\"\r\n [min]=\"min\"\r\n (input)=\"onInput($event)\"\r\n [pTooltip]=\"tooltip\"\r\n [type]=\"type\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [ngClass]=\"class + ' lib-input-field' + (buttonText ? ' with-button' : '')\"\r\n autocomplete=\"new-password\"\r\n [style]=\"style\"\r\n />\r\n <button\r\n *ngIf=\"buttonText\"\r\n (click)=\"buttonClick.emit()\"\r\n class=\"inline-button\"\r\n [type]=\"buttonType\"\r\n >\r\n {{ buttonText }}\r\n </button>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'atomix-form-inputmask',\r\n templateUrl: './atomix-form-inputmask-component.component.html',\r\n styleUrls: ['./atomix-form-inputmask-component.component.scss'],\r\n})\r\nexport class AtomixFormInputmaskComponent {\r\n @Input() controlName!: string;\r\n @Input() form!: FormGroup;\r\n @Input() mask = 'text';\r\n @Input() label = '';\r\n @Input() placeholder = '';\r\n @Input() slotChar = '';\r\n @Input() tooltip!: string;\r\n @Input() tooltipPosition: 'right' | 'left' | 'top' | 'bottom' = 'bottom';\r\n @Input() isLabelRequired: boolean = false;\r\n @Input() class!: string;\r\n\r\n get control() {\r\n return this.form.get(this.controlName) as FormControl;\r\n }\r\n}\r\n","<label *ngIf=\"label\" [for]=\"controlName\"\r\n >{{ label }}\r\n <span *ngIf=\"isLabelRequired\" class=\"error-asterisk\">*</span></label\r\n>\r\n<p-inputMask\r\n [formControl]=\"control\"\r\n [id]=\"controlName\"\r\n [mask]=\"mask\"\r\n [placeholder]=\"placeholder\"\r\n [pTooltip]=\"tooltip\"\r\n [slotChar]=\"slotChar\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [ngClass]=\"class\"\r\n/>\r\n","import { Component, Input } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'atomix-form-password',\r\n templateUrl: './atomix-form-password-component.component.html',\r\n styleUrls: ['./atomix-form-password-component.component.scss'],\r\n})\r\nexport class AtomixFormPasswordComponent {\r\n @Input() controlName!: string;\r\n @Input() form!: FormGroup;\r\n @Input() label = '';\r\n @Input() placeholder = '';\r\n @Input() type = 'text';\r\n @Input() tooltip!: string;\r\n @Input() class!: string;\r\n @Input() feedback: boolean = false;\r\n @Input() isLabelRequired: boolean = false;\r\n @Input() tooltipPosition: 'right' | 'left' | 'top' | 'bottom' = 'bottom';\r\n\r\n get control() {\r\n return this.form.get(this.controlName) as FormControl;\r\n }\r\n}\r\n","<label *ngIf=\"label\" [for]=\"controlName\"\r\n >{{ label }}\r\n <span *ngIf=\"isLabelRequired\" class=\"error-asterisk\">*</span></label\r\n>\r\n<p-password\r\n [id]=\"controlName\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [pTooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [ngClass]=\"class\"\r\n autocomplete=\"off\"\r\n [feedback]=\"feedback\"\r\n [toggleMask]=\"true\"\r\n autocomplete=\"new-password\"\r\n/>\r\n","import { Component, Input } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'atomix-form-textarea',\r\n templateUrl: './atomix-form-textarea.component.html',\r\n styleUrls: ['./atomix-form-textarea.component.scss'],\r\n})\r\nexport class AtomixFormTextareaComponent {\r\n @Input() controlName!: string;\r\n @Input() form!: FormGroup;\r\n @Input() label = '';\r\n @Input() rows: number = 5;\r\n @Input() cols: number = 30;\r\n @Input() placeholder = '';\r\n @Input() disabled: boolean = false;\r\n @Input() class!: string;\r\n @Input() isLabelRequired: boolean = false;\r\n @Input() height: string = '';\r\n\r\n get control() {\r\n return this.form.get(this.controlName) as FormControl;\r\n }\r\n}\r\n","<label *ngIf=\"label\"\r\n >{{ label }}\r\n <span *ngIf=\"isLabelRequired\" class=\"error-asterisk\">*</span></label\r\n>\r\n<textarea\r\n variant=\"filled\"\r\n pInputTextarea\r\n [rows]=\"rows\"\r\n [id]=\"controlName\"\r\n [cols]=\"cols\"\r\n [ngClass]=\"class + ' atomix-form-textarea'\"\r\n [disabled]=\"disabled\"\r\n autocomplete=\"new-password\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [style.height]=\"height\"\r\n></textarea>\r\n","import { Component, Input } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { LabelIconData } from '../atomix-form-chips/form.chips.models';\r\n\r\n@Component({\r\n selector: 'atomix-form-radio-group',\r\n templateUrl: './atomix-radio-button.component.html',\r\n styleUrls: ['./atomix-radio-button.component.scss'],\r\n})\r\nexport class AtomixFormRadioButtonComponent {\r\n @Input() controlName!: string;\r\n @Input() form!: FormGroup;\r\n @Input() value: { name: string; key: string } = { name: '', key: '' };\r\n @Input() label = '';\r\n @Input() isLabelRequired: boolean = false;\r\n @Input() radioGroupOptions!: any;\r\n @Input() labelIconData: LabelIconData = {\r\n iconClass: '',\r\n tooltip: '',\r\n required: false,\r\n };\r\n @Input() radioButtonContainerClass = '';\r\n get control() {\r\n return this.form.get(this.controlName) as FormControl;\r\n }\r\n}\r\n","<div>\r\n <label *ngIf=\"label\" [for]=\"controlName\"\r\n >{{ label }} <span *ngIf=\"isLabelRequired\" class=\"error-asterisk\">*</span>\r\n <i\r\n *ngIf=\"labelIconData?.required\"\r\n [class]=\"labelIconData?.iconClass + ' ml-2'\"\r\n [pTooltip]=\"labelIconData?.tooltip\"\r\n ></i\r\n ></label>\r\n</div>\r\n<div style=\"margin-top: 0.2rem\" [class]=\"radioButtonContainerClass\">\r\n <span\r\n *ngFor=\"let option of radioGroupOptions; let i = index\"\r\n [ngClass]=\"{ indented: i > 0 }\"\r\n >\r\n <p-radioButton\r\n [formControl]=\"control\"\r\n [inputId]=\"controlName\"\r\n [value]=\"option.key\"\r\n ></p-radioButton>\r\n <label [for]=\"controlName\" class=\"ml-2\">{{ option.name }}</label>\r\n </span>\r\n</div>\r\n","import {\r\n Component,\r\n ContentChildren,\r\n Input,\r\n QueryList,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MessageService, PrimeTemplate } from 'primeng/api';\r\nimport { Toast, ToastPositionType } from 'primeng/toast';\r\n\r\n@Component({\r\n selector: 'atomix-toast',\r\n templateUrl: './atomix-alert.component.html',\r\n styleUrls: ['./atomix-alert.component.css'],\r\n})\r\nexport class AtomixToastComponent {\r\n constructor(\r\n private messageService: MessageService,\r\n private router: Router\r\n ) {}\r\n\r\n @ViewChild('toast') toast!: Toast;\r\n @ContentChildren(PrimeTemplate) templates!: QueryList<PrimeTemplate>;\r\n\r\n @Input() key?: string;\r\n @Input() position: ToastPositionType = 'top-right';\r\n\r\n messageTemplate: TemplateRef<any> | null = null;\r\n\r\n ngAfterContentInit() {\r\n this.templates.forEach((item) => {\r\n if (item.getType() === 'message') {\r\n this.messageTemplate = item.template;\r\n }\r\n });\r\n }\r\n\r\n showSuccess(title: string, message: string): void {\r\n this.messageService.add({\r\n severity: 'success',\r\n summary: title,\r\n detail: message,\r\n key: this.key || undefined,\r\n });\r\n }\r\n\r\n showWarning(title: string, message: string): void {\r\n this.messageService.add({\r\n severity: 'warn',\r\n summary: title,\r\n detail: message,\r\n key: this.key || undefined,\r\n });\r\n }\r\n\r\n showError(title: string, message: string): void {\r\n this.messageService.add({\r\n severity: 'error',\r\n summary: title,\r\n detail: message,\r\n key: this.key || undefined,\r\n });\r\n }\r\n\r\n showInfo(title: string, message: string): void {\r\n this.messageService.add({\r\n severity: 'info',\r\n summary: title,\r\n detail: message,\r\n key: this.key || undefined,\r\n });\r\n }\r\n}\r\n","<p-toast [key]=\"key || undefined\" [position]=\"position\">\r\n <ng-template let-message pTemplate=\"message\" *ngIf=\"messageTemplate\">\r\n <ng-container\r\n *ngTemplateOutlet=\"messageTemplate; context: { $implicit: message }\"\r\n ></ng-container>\r\n </ng-template>\r\n</p-toast>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Message } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'atomix-messages',\r\n templateUrl: './messages.component.html',\r\n styleUrls: ['./messages.component.css'],\r\n})\r\nexport class AtomixMessagesComponent {\r\n @Input() value: Message[] = [];\r\n @Input() closable: boolean = true;\r\n @Input() severity: string = '';\r\n @Input() escape: boolean = true;\r\n @Input() enableService: boolean = true;\r\n @Input() styleClass: string = '';\r\n @Input() text: string = '';\r\n}\r\n","<p-messages\r\n [(value)]=\"value\"\r\n [enableService]=\"false\"\r\n [closable]=\"closable\"\r\n [severity]=\"severity\"\r\n [escape]=\"escape\"\r\n [enableService]=\"enableService\"\r\n [styleClass]=\"styleClass\"\r\n></p-messages>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'atomix-spinner',\r\n templateUrl: './atomix-spinner.component.html',\r\n styleUrls: ['./atomix-spinner.component.css'],\r\n})\r\nexport class AtomixSpinnerComponent {\r\n @Input() animationDuration: string = '2s';\r\n @Input() styleClass: string = '';\r\n @Input() strokeWidth: string = '2';\r\n @Input() fill: string = 'none';\r\n}\r\n","<p-progressSpinner\r\n ariaLabel=\"loading\"\r\n [animationDuration]=\"animationDuration\"\r\n [styleClass]=\"styleClass\"\r\n [strokeWidth]=\"strokeWidth\"\r\n [fill]=\"fill\"\r\n/>\r\n","import { Component, Input, forwardRef } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'atomix-radio-button',\r\n templateUrl: './atomix-radio-button.component.html',\r\n styleUrl: './atomix-radio-button.component.css',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AtomixRadioButtonComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class AtomixRadioButtonComponent {\r\n @Input() name: string = '';\r\n @Input() value: string = '';\r\n @Input() selectedValue: string = '';\r\n @Input() inputId: string = '';\r\n model: any;\r\n\r\n onChange = (_: any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.selectedValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n}\r\n","<p-radioButton\r\n [name]=\"name\"\r\n [value]=\"value\"\r\n [(ngModel)]=\"selectedValue\"\r\n [inputId]=\"inputId\"\r\n (onChange)=\"onChange($event)\"\r\n/>\r\n","import { Component } from '@angular/core';\r\nimport {\r\n DialogService,\r\n DynamicDialogConfig,\r\n DynamicDialogRef,\r\n} from 'primeng/dynamicdialog';\r\nimport { AtomixDialogConfig } from './atomix-dynamic-dialog.models';\r\n\r\n@Component({\r\n selector: 'atomix-dynamic-dialog',\r\n templateUrl: './atomix-dynamic-dialog.component.html',\r\n styleUrl: './atomix-dynamic-dialog.component.css',\r\n})\r\nexport class AtomixDynamicDialogComponent {\r\n constructor(private dialogService: DialogService) {}\r\n\r\n /**\r\n * Open a dynamic dialog with the given configuration\r\n * @param config Configuration object for the dialog\r\n * @returns DynamicDialogRef instance\r\n */\r\n public openDialog(config: AtomixDialogConfig): DynamicDialogRef {\r\n // Extract the component and create a dialog configuration\r\n const { component, ...dialogConfig } = config;\r\n\r\n // Set default values if not provided\r\n const finalConfig: DynamicDialogConfig = {\r\n header: '',\r\n width: '80%',\r\n height: 'fit-content',\r\n styleClass: 'dialog-width',\r\n dismissableMask: true,\r\n maximizable: true,\r\n ...dialogConfig,\r\n };\r\n\r\n // Open the dialog\r\n const dialogRef = this.dialogService.open(component, finalConfig);\r\n\r\n return dialogRef;\r\n }\r\n}\r\n","","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { SelectButtonOptionClickEvent } from 'primeng/selectbutton';\r\nimport { SelectButtonStateOption } from './atomix-select-button-models';\r\n\r\n@Component({\r\n selector: 'atomix-select-button',\r\n templateUrl: './atomix-select-button.component.html',\r\n styleUrls: ['./atomix-select-button.component.css'],\r\n})\r\nexport class AtomixSelectButtonComponent {\r\n @Output() onOptionClick = new EventEmitter<SelectButtonOptionClickEvent>();\r\n @Input() stateOptions: SelectButtonStateOption[] = [];\r\n\r\n @Input() value: string = '';\r\n\r\n optionClickHandler(event: SelectButtonOptionClickEvent) {\r\n this.onOptionClick.emit(event);\r\n }\r\n}\r\n","<p-selectButton\r\n [options]=\"stateOptions\"\r\n [(ngModel)]=\"value\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n (onOptionClick)=\"optionClickHandler($event.option.value)\"\r\n/>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'atomix-tag',\r\n templateUrl: './atomix-tag.component.html',\r\n styleUrls: ['./atomix-tag.component.css'],\r\n})\r\nexport class AtomixTagComponent {\r\n @Input() value!: string;\r\n @Input() rounded!: boolean;\r\n @Input() icon!: string;\r\n @Input() styleClass!: string;\r\n}\r\n","<p-tag\r\n [value]=\"value\"\r\n [rounded]=\"rounded\"\r\n [icon]=\"icon\"\r\n [styleClass]=\"styleClass\"\r\n/>\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ElementRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { DropdownFilterEvent } from 'primeng/dropdown';\r\nimport {\r\n debounceTime,\r\n distinctUntilChanged,\r\n Subject,\r\n Subscription,\r\n} from 'rxjs';\r\n\r\n@Component({\r\n selector: 'atomix-search-dropdown',\r\n templateUrl: './atomix-search-dropdown.component.html',\r\n styleUrls: ['./atomix-search-dropdown.component.css'],\r\n})\r\nexport class AtomixSearchDropdownComponent {\r\n @ViewChild('searchInputEl') searchInputEl!: ElementRef<HTMLInputElement>;\r\n\r\n @Input() searchValue: string = '';\r\n @Input() searchPlaceholder: string = 'Search';\r\n @Input() searchType: string = 'search';\r\n @Input() searchDisabled: boolean = false;\r\n @Input() searchLabel: string = '';\r\n @Input() searchIsLabelRequired: boolean = false;\r\n @Input() searchClass: string = '';\r\n @Input() searchIsCrossRequired: boolean = true;\r\n @Input() searchName: string = '';\r\n\r\n @Input() dropdownOptions: any[] = [];\r\n @Input() dropdownSelected: any;\r\n @Input() dropdownPlaceholder: string = 'Column';\r\n @Input() dropdownOptionLabel: string = 'display';\r\n @Input() dropdownOptionValue: string = '';\r\n @Input() dropdownDisabled: boolean = false;\r\n @Input() dropdownShowClear: boolean = true;\r\n @Input() dropdownFilter: boolean = false;\r\n @Input() dropdownLabel: string = '';\r\n @Input() dropdownIsLabelRequired: boolean = false;\r\n @Input() dropdownStyleClass: string = '';\r\n @Input() dropdownName: string = '';\r\n\r\n @Input() label: string = '';\r\n @Input() isLabelRequired: boolean = false;\r\n @Input() isCustomFilter?: boolean;\r\n\r\n @Input() containerClass: string =\r\n 'billing-input-column-container search-filter-container';\r\n\r\n @Output() searchValueChange = new EventEmitter<string>();\r\n @Output() dropdownValueChange = new EventEmitter<any>();\r\n @Output() dropdownFilterChange = new EventEmitter<DropdownFilterEvent>();\r\n\r\n /**\r\n * The input from the user used to search dropdown list\r\n */\r\n dropdownFilterValue = new Subject<DropdownFilterEvent>();\r\n\r\n /**\r\n * The time in ms that it takes to register when user is done typing\r\n */\r\n debounceTime = 300;\r\n\r\n /**\r\n * The trigger that uses the debounce time to create delay of when user types to actual filtering\r\n */\r\n dropdownFilterTrigger = this.dropdownFilterValue.pipe(\r\n debounceTime(this.debounceTime),\r\n distinctUntilChanged()\r\n );\r\n\r\n /**\r\n * Subscription to trigger\r\n */\r\n subscription: Subscription = new Subscription();\r\n\r\n constructor() {\r\n this.subscription.add(\r\n this.dropdownFilterTrigger.subscribe(($event) => {\r\n this.dropdownFilterChange.emit($event);\r\n })\r\n );\r\n }\r\n\r\n onSearchInput(event: Event): void {\r\n const input = event.target as HTMLInputElement;\r\n this.searchValue = input.value;\r\n\r\n if (this.isCustomFilter) {\r\n this.searchValueChange.emit(this.searchValue);\r\n }\r\n }\r\n\r\n onSearchEnter(): void {\r\n this.searchValueChange.emit(this.searchValue);\r\n }\r\n\r\n clearSearchValue(): void {\r\n this.searchValue = '';\r\n this.searchValueChange.emit(this.searchValue);\r\n }\r\n\r\n onDropdownChange(event: any): void {\r\n this.dropdownValueChange.emit([event.value, this.dropdownName]);\r\n }\r\n\r\n onDropdownFilter(event: DropdownFilterEvent): void {\r\n this.dropdownFilterValue.next(event);\r\n }\r\n\r\n focusSearch(): void {\r\n this.searchInputEl?.nativeElement?.focus();\r\n }\r\n}\r\n","<label *ngIf=\"label\" for=\"searchName\">\r\n {{ label }}\r\n <span *ngIf=\"isLabelRequired\" class=\"lib-error-asterisk\">*</span>\r\n</label>\r\n\r\n<div [ngClass]=\"containerClass\">\r\n <div class=\"search-dropdown-container\">\r\n <input\r\n [id]=\"searchName\"\r\n type=\"text\"\r\n pInputText\r\n [value]=\"searchValue\"\r\n [attr.placeholder]=\"searchPlaceholder\"\r\n (input)=\"onSearchInput($event)\"\r\n (keydown.enter)=\"onSearchEnter()\"\r\n [ngClass]=\"searchClass + ' lib-input-field'\"\r\n autocomplete=\"new-password\"\r\n [disabled]=\"searchDisabled\"\r\n [type]=\"searchType\"\r\n #searchInputEl\r\n class=\"search-input\"\r\n />\r\n <span>\r\n <i\r\n class=\"pi pi-times filter-dropdown-icon\"\r\n style=\"cursor: pointer\"\r\n (click)=\"clearSearchValue()\"\r\n *ngIf=\"!searchDisabled && searchIsCrossRequired && searchValue !== ''\"\r\n ></i>\r\n </span>\r\n </div>\r\n\r\n <p-dropdown\r\n [options]=\"dropdownOptions\"\r\n [(ngModel)]=\"dropdownSelected\"\r\n (onChange)=\"onDropdownChange($event)\"\r\n [name]=\"dropdownName\"\r\n [optionValue]=\"dropdownOptionValue\"\r\n [optionLabel]=\"dropdownOptionLabel\"\r\n [showClear]=\"dropdownShowClear\"\r\n [filter]=\"dropdownFilter\"\r\n [filterBy]=\"dropdownOptionLabel\"\r\n appendTo=\"body\"\r\n [disabled]=\"dropdownDisabled\"\r\n [styleClass]=\"dropdownStyleClass\"\r\n (onFilter)=\"onDropdownFilter($event)\"\r\n [placeholder]=\"dropdownPlaceholder\"\r\n class=\"search-dropdown\"\r\n >\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"custom-item\">\r\n <i\r\n [ngClass]=\"option.dropdownIcon\"\r\n class=\"dropdown-logo\"\r\n *ngIf=\"option.dropdownIcon\"\r\n ></i>\r\n <img\r\n [alt]=\"option.dropdownImage\"\r\n [src]=\"option.dropdownImage\"\r\n *ngIf=\"option.dropdownImage\"\r\n class=\"dropdown-image\"\r\n />\r\n\r\n <span>{{ option[dropdownOptionLabel] }}</span>\r\n </div>\r\n </ng-template>\r\n </p-dropdown>\r\n</div>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n forwardRef,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'atomix-autocomplete',\r\n templateUrl: './atomix-autocomplete.component.html',\r\n styleUrls: ['./atomix-autocomplete.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AtomixAutocompleteComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class AtomixAutocompleteComponent implements ControlValueAccessor {\r\n @Input() suggestions: any[] = [];\r\n @Input() placeholder: string = '';\r\n @Input() optionLabel: string = '';\r\n @Input() optionValue: string = '';\r\n @Input() optionDescription: string = '';\r\n @Input() name: string = '';\r\n @Input() disabled: boolean = false;\r\n @Input() showClear: boolean = true;\r\n @Input() dropdown: boolean = false;\r\n @Input() styleClass: string = '';\r\n @Input() autocompleteContainer: string = '';\r\n @Input() label: string = '';\r\n @Input() delay: number = 300;\r\n @Input() virtualScroll: boolean = false;\r\n @Input() virtualScrollItemSize: number = 32;\r\n @Input() isLabelRequired: boolean = false;\r\n\r\n @Output() queryHandler = new EventEmitter<any>();\r\n @Output() selectOptionHandler = new EventEmitter<any>();\r\n\r\n @Input() selectedValues: any;\r\n @Output() selectedValuesChange = new EventEmitter<any>();\r\n private onChange = (value: any) => {};\r\n private onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.selectedValues = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onModelChange(value: any): void {\r\n this.selectedValues = value;\r\n this.onChange(value);\r\n this.onTouched();\r\n this.selectedValuesChange.emit(value);\r\n }\r\n}\r\n","<label *ngIf=\"label\"\r\n >{{ label }}\r\n <span *ngIf=\"isLabelRequired\" class=\"error-asterisk\">*</span></label\r\n>\r\n<div [class]=\"autocompleteContainer + ' atomix-autocomplete-wrapper'\">\r\n <p-autoComplete\r\n [(ngModel)]=\"selectedValues\"\r\n [suggestions]=\"suggestions\"\r\n [placeholder]=\"placeholder\"\r\n [optionLabel]=\"optionLabel\"\r\n [showClear]=\"showClear\"\r\n [dropdown]=\"dropdown\"\r\n [name]=\"name\"\r\n [styleClass]=\"styleClass\"\r\n (completeMethod)=\"queryHandler.emit([$event, name])\"\r\n (onSelect)=\"selectOptionHandler.emit([$event, name])\"\r\n (onClear)=\"selectOptionHandler.emit([$event, name])\"\r\n [showEmptyMessage]=\"true\"\r\n appendTo=\"body\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [virtualScrollItemSize]=\"virtualScrollItemSize\"\r\n [delay]=\"delay\"\r\n [disabled]=\"disabled\"\r\n (ngModelChange)=\"onModelChange($event)\"\r\n >\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"autocomplete-item\">\r\n <div class=\"font-semibold\">{{ item[optionLabel] }}</div>\r\n <div class=\"text-xs text-gray-500\">\r\n {{ item[optionDescription] }}\r\n </div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'atomix-divider',\r\n templateUrl: './atomix-divider.component.html',\r\n})\r\nexport class AtomixDividerComponent {\r\n @Input() style?: { [key: string]: any };\r\n\r\n @Input() styleClass?: string;\r\n\r\n @Input() layout: 'horizontal' | 'vertical' = 'horizontal';\r\n\r\n @Input() type: 'solid' | 'dashed' | 'dotted' = 'solid';\r\n\r\n @Input() align?: 'left' | 'right' | 'top' | 'bottom' | 'center';\r\n}\r\n","<p-divider\r\n [layout]=\"layout\"\r\n [type]=\"type\"\r\n [align]=\"align\"\r\n [style]=\"style\"\r\n [styleClass]=\"styleClass\"\r\n></p-divider>\r\n","import { Component, Input, forwardRef } from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n FormControl,\r\n} from '@angular/forms';\r\nimport { InputSwitchChangeEvent } from 'primeng/inputswitch';\r\n\r\n@Component({\r\n selector: 'atomix-inputSwitch',\r\n templateUrl: './atomix-input-switch.component.html',\r\n styleUrls: ['./atomix-input-switch.component.css'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AtomixInputSwitchComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class AtomixInputSwitchComponent implements ControlValueAccessor {\r\n @Input() style?: { [key: string]: any };\r\n @Input() styleClass?: string;\r\n @Input() tabindex?: number;\r\n @Input() inputId?: string;\r\n @Input() name?: string;\r\n @Input() disabled = false;\r\n @Input() readonly = false;\r\n @Input() trueValue: any = true;\r\n @Input() falseValue: any = false;\r\n @Input() ariaLabel?: string;\r\n @Input() ariaLabelledBy?: string;\r\n @Input() autofocus = false;\r\n @Input() formControl?: FormControl;\r\n\r\n value: any = false;\r\n\r\n onChange = (_: any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value ?? this.falseValue;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(disabled: boolean): void {\r\n this.disabled = disabled;\r\n }\r\n\r\n handleChange(event: InputSwitchChangeEvent) {\r\n this.value = event.checked ? this.trueValue : this.falseValue;\r\n this.onChange(this.value);\r\n this.onTouched();\r\n }\r\n}\r\n","<p-inputSwitch\r\n [(ngModel)]=\"value\"\r\n [trueValue]=\"trueValue\"\r\n [falseValue]=\"falseValue\"\r\n [style]=\"style\"\r\n [styleClass]=\"styleClass\"\r\n [tabindex]=\"tabindex\"\r\n [inputId]=\"inputId\"\r\n [attr.name]=\"name\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [ariaLabel]=\"ariaLabel\"\r\n [ariaLabelledBy]=\"ariaLabelledBy\"\r\n [autofocus]=\"autofocus\"\r\n (onChange)=\"handleChange($event)\"\r\n (onBlur)=\"onTouched()\"\r\n></p-inputSwitch>\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n TemplateRef,\r\n ContentChild,\r\n} from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'atomix-tabMenu',\r\n templateUrl: './atomix-tabMenu.component.html',\r\n styleUrls: ['./atomix-tabMenu.component.css'],\r\n})\r\nexport class AtomixTabMenuComponent {\r\n @Input() model: MenuItem[] = [];\r\n @Input() activeItem?: MenuItem;\r\n @Input() scrollable: boolean = false;\r\n @Input() style?: any;\r\n @Input() styleClass?: string;\r\n @Input() ariaLabel?: string;\r\n @Input() ariaLabelledBy?: string;\r\n\r\n @Input() nextIconTemplate?: TemplateRef<any>;\r\n @Input() previousIconTemplate?: TemplateRef<any>;\r\n\r\n @ContentChild(TemplateRef) itemTemplate?: TemplateRef<any>;\r\n\r\n @Output() activeItemChange: EventEmitter<MenuItem> =\r\n new EventEmitter<MenuItem>();\r\n\r\n onTabChange(event: any) {\r\n this.activeItemChange.emit(event);\r\n }\r\n}\r\n","<p-tabMenu\r\n [model]=\"model\"\r\n [(activeItem)]=\"activeItem\"\r\n [scrollable]=\"scrollable\"\r\n [style]=\"style\"\r\n [styleClass]=\"styleClass\"\r\n [ariaLabel]=\"ariaLabel\"\r\n [ariaLabelledBy]=\"ariaLabelledBy\"\r\n (activeItemChange)=\"onTabChange($event)\"\r\n>\r\n <ng-template pTemplate=\"item\" let-item let-i=\"index\">\r\n <ng-container *ngIf=\"itemTemplate\">\r\n <ng-container\r\n *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item, index: i }\"\r\n ></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"nexticon\" *ngIf=\"nextIconTemplate\">\r\n <ng-container *ngTemplateOutlet=\"nextIconTemplate\"></ng-container>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"previousicon\" *ngIf=\"previousIconTemplate\">\r\n <ng-container *ngTemplateOutlet=\"previousIconTemplate\"></ng-container>\r\n </ng-template>\r\n</p-tabMenu>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ChangeDetectionStrategy,\r\n} from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'atomix-steps',\r\n templateUrl: './atomix-steps.component.html',\r\n styleUrls: ['./atomix-steps.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AtomixStepsComponent {\r\n @Input() activeIndex = 0;\r\n @Input() model: MenuItem[] = [];\r\n @Input() readonly = true;\r\n @Input() exact = true;\r\n @Input() style: any;\r\n @Input() styleClass?: string;\r\n\r\n @Output() activeIndexChange = new EventEmitter<number>();\r\n @Output() stepChange = new EventEmitter<{ index: number; item?: MenuItem }>();\r\n\r\n onIndexChange(index: number) {\r\n this.activeIndex = index;\r\n this.activeIndexChange.emit(index);\r\n this.stepChange.emit({ index, item: this.model?.[index] });\r\n }\r\n}\r\n","<p-steps\r\n [model]=\"model\"\r\n [activeIndex]=\"activeIndex\"\r\n [readonly]=\"readonly\"\r\n [style]=\"style\"\r\n [styleClass]=\"styleClass\"\r\n [exact]=\"exact\"\r\n (activeIndexChange)=\"onIndexChange($event)\"\r\n></p-steps>\r\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'atomix-loading-overlay',\r\n templateUrl: './atomix-loading-overlay.component.html',\r\n styleUrls: ['./atomix-loading-overlay.component.scss'],\r\n})\r\nexport class AtomixLoadingOverlayComponent implements OnChanges {\r\n @Input() loading = false;\r\n @Input() target: any;\r\n @Input() message = 'Processing...';\r\n @Input() icon = 'pi pi-spin pi-spinner';\r\n @Input() iconSize = '3rem';\r\n @Input() customClass = '';\r\n @Input() fullscreen = false;\r\n @Input() transparent = false;\r\n\r\n blocked = false;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['loading']) {\r\n this.blocked = this.loading;\r\n }\r\n }\r\n}\r\n","<ng-container *ngIf=\"target && !fullscreen\">\r\n <p-blockUI [blocked]=\"blocked\" [target]=\"target\">\r\n <div\r\n class=\"flex flex-column align-items-center justify-content-center p-3 {{\r\n customClass\r\n }}\"\r\n >\r\n <p-progressSpinner\r\n *ngIf=\"icon === 'pi pi-spin pi-spinner'\"\r\n styleClass=\"w-{{ iconSize }} h-{{ iconSize }}\"\r\n strokeWidth=\"4\"\r\n animationDuration=\".5s\"\r\n >\r\n </p-progressSpinner>\r\n\r\n <i\r\n *ngIf=\"icon !== 'pi pi-spin pi-spinner'\"\r\n class=\"{{ icon }} text-{{ iconSize }} mb-3\"\r\n >\r\n </i>\r\n\r\n <span *ngIf=\"message\" class=\"mt-3 font-bold text-lg\">{{ message }}</span>\r\n </div>\r\n </p-blockUI>\r\n</ng-container>\r\n\r\n<div\r\n *ngIf=\"fullscreen && blocked\"\r\n class=\"atomix-loading-overlay-fullscreen flex flex-column align-items-center justify-content-center\"\r\n [ngClass]=\"{ 'atomix-loading-overlay-transparent': transparent }\"\r\n>\r\n <p-progressSpinner\r\n *ngIf=\"icon === 'pi pi-spin pi-spinner'\"\r\n styleClass=\"w-{{ iconSize }} h-{{ iconSize }}\"\r\n strokeWidth=\"4\"\r\n animationDuration=\".5s\"\r\n >\r\n </p-progressSpinner>\r\n\r\n <i\r\n *ngIf=\"icon !== 'pi pi-spin pi-spinner'\"\r\n class=\"{{ icon }} text-{{ iconSize }} mb-3\"\r\n >\r\n </i>\r\n\r\n <span *ngIf=\"message\" class=\"mt-3 font-bold text-lg\">{{ message }}</span>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n// Primeng Components\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { CardModule } from 'primeng/card';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { TableModule } from 'primeng/table';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { PaginatorModule } from 'primeng/paginator';\r\nimport { InputMaskModule } from 'primeng/inputmask';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { ChipsModule } from 'primeng/chips';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { PasswordModule } from 'primeng/password';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\r\nimport { AutoFocusModule } from 'primeng/autofocus';\r\nimport { SelectButtonModule } from 'primeng/selectbutton';\r\nimport { TagModule } from 'primeng/tag';\r\nimport { ChipModule } from 'primeng/chip';\r\nimport { ProgressBarModule } from 'primeng/progressbar';\r\nimport { DividerModule } from 'primeng/divider';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\n// Common Components\r\nimport { AtomixCardComponent } from './lib/atomix-card/atomix-card.component';\r\nimport { AtomixConfirmationDialogComponent } from './lib/atomix-confirmation-dialog/atomix-confirmation-dialog.component';\r\nimport { AtomixInputComponent } from './lib/atomix-input/atomix-input.component';\r\nimport { AtomixButtonComponent } from './lib/atomix-button/atomix-button.component';\r\nimport { AtomixCalendarComponent } from './lib/atomix-calendar/atomix-calendar.component';\r\nimport { AtomixDaterangeCalendarComponent } from './lib/atomix-daterange-calendar/atomix-daterange-calendar.component';\r\nimport { AtomixDropdownComponent } from './lib/atomix-dropdown/atomix-dropdown.component';\r\nimport { AtomixTableComponent } from './lib/atomix-table/atomix-table.component';\r\nimport { AtomixSnackbarComponent } from './lib/atomix-snackbar/atomix-snackbar.component';\r\nimport { AtomixPaginationComponent } from './lib/atomix-pagination/atomix-pagination.component';\r\nimport { AtomixFormAutocompleteComponent } from './lib/atomix-form/atomix-form-autocomplete/atomix-form-autocomplete.component';\r\nimport { AtomixFormCalendarComponent } from './lib/atomix-form/atomix-form-calendar/atomix-form-calendar.component';\r\nimport { AtomixFormCheckboxComponent } from './lib/atomix-form/atomix-form-checkbox/atomix-form-checkbox.component';\r\nimport { AtomixFormChipsComponent } from './lib/atomix-form/atomix-form-chips/atomix-form-chips.component';\r\nimport { AtomixFormDropdownComponent } from './lib/atomix-form/atomix-form-dropdown/atomix-form-dropdown.component';\r\nimport { AtomixFormInputComponent } from './lib/atomix-form/atomix-form-input-component/atomix-form-input-component.component';\r\nimport { AtomixFormInputmaskComponent } from './lib/atomix-form/atomix-form-inputmask-component/atomix-form-inputmask-component.component';\r\nimport { AtomixFormPasswordComponent } from './lib/atomix-form/atomix-form-password-component/atomix-form-password-component.component';\r\nimport { AtomixFormTextareaComponent } from './lib/atomix-form/atomix-form-textarea/atomix-form-textarea.component';\r\nimport { AtomixFormRadioButtonComponent } from './lib/atomix-form/atomix-form-radio-button/atomix-radio-button.component';\r\nimport { AtomixToastComponent } from './lib/atomix-alert/atomix-alert.component';\r\nimport { AtomixMessagesComponent } from './lib/atomix-messages/messages.component';\r\nimport { AtomixSpinnerComponent } from './lib/atomix-spinner/atomix-spinner.component';\r\nimport { AtomixRadioButtonComponent } from './lib/atomix-radio-button/atomix-radio-button.component';\r\nimport { AtomixDynamicDialogComponent } from './lib/atomix-dynamic-dialog/atomix-dynamic-dialog.component';\r\nimport { AtomixSelectButtonComponent } from './lib/atomix-select-button/atomix-select-button.component';\r\nimport { AtomixTagComponent } from './lib/atomix-tag/atomix-tag.component';\r\nimport { AtomixSearchDropdownComponent } from './lib/atomix-search-dropdown/atomix-search-dropdown.component';\r\nimport { AtomixAutocompleteComponent } from './lib/atomix-autocomplete/atomix-autocomplete.component';\r\nimport { AtomixDividerComponent } from './lib/atomix-divider/atomix-divider.component';\r\nimport { AtomixInputSwitchComponent } from './lib/atomix-input-switch/atomix-input-switch.component';\r\nimport { TabMenuModule } from 'primeng/tabmenu';\r\nimport { AtomixTabMenuComponent } from './lib/atomix-tabMenu/atomix-tabMenu.component';\r\nimport { AtomixStepsComponent } from './lib/atomix-steps/atomix-steps.component';\r\nimport { AtomixLoadingOverlayComponent } from './lib/atomix-loading-overlay/atomix-loading-overlay.component';\r\nimport { StepsModule } from 'primeng/steps';\r\nimport { BlockUIModule } from 'primeng/blockui';\r\n\r\n@NgModule({\r\n declarations: [\r\n AtomixButtonComponent,\r\n AtomixCardComponent,\r\n AtomixConfirmationDialogComponent,\r\n AtomixInputComponent,\r\n AtomixCalendarComponent,\r\n AtomixDaterangeCalendarComponent,\r\n AtomixDropdownComponent,\r\n AtomixTableComponent,\r\n AtomixSnackbarComponent,\r\n AtomixPaginationComponent,\r\n AtomixFormAutocompleteComponent,\r\n AtomixFormCalendarComponent,\r\n AtomixFormCheckboxComponent,\r\n AtomixFormChipsComponent,\r\n AtomixFormDropdownComponent,\r\n AtomixFormInputComponent,\r\n AtomixFormInputmaskComponent,\r\n AtomixFormPasswordComponent,\r\n AtomixFormTextareaComponent,\r\n AtomixFormRadioButtonComponent,\r\n AtomixToastComponent,\r\n AtomixMessagesComponent,\r\n AtomixSpinnerComponent,\r\n AtomixRadioButtonComponent,\r\n AtomixDynamicDialogComponent,\r\n AtomixSelectButtonComponent,\r\n AtomixTagComponent,\r\n AtomixSearchDropdownComponent,\r\n AtomixAutocompleteComponent,\r\n AtomixDividerComponent,\r\n AtomixInputSwitchComponent,\r\n AtomixTabMenuComponent,\r\n AtomixStepsComponent,\r\n AtomixLoadingOverlayComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n ButtonModule,\r\n CardModule,\r\n DialogModule,\r\n InputTextModule,\r\n CalendarModule,\r\n OverlayPanelModule,\r\n DropdownModule,\r\n FormsModule,\r\n TableModule,\r\n SkeletonModule,\r\n PaginatorModule,\r\n TooltipModule,\r\n AutoCompleteModule,\r\n ReactiveFormsModule,\r\n CheckboxModule,\r\n ChipsModule,\r\n InputMaskModule,\r\n PasswordModule,\r\n RadioButtonModule,\r\n ToastModule,\r\n MessagesModule,\r\n ProgressSpinnerModule,\r\n AutoFocusModule,\r\n SelectButtonModule,\r\n TagModule,\r\n ChipModule,\r\n ProgressBarModule,\r\n DividerModule,\r\n InputSwitchModule,\r\n TabMenuModule,\r\n StepsModule,\r\n BlockUIModule,\r\n ], // Import the PrimeNG Module here\r\n providers: [DatePipe],\r\n exports: [\r\n AtomixButtonComponent,\r\n AtomixCardComponent,\r\n AtomixConfirmationDialogComponent,\r\n AtomixInputComponent,\r\n AtomixCalendarComponent,\r\n AtomixDaterangeCalendarComponent,\r\n AtomixDropdownComponent,\r\n AtomixTableComponent,\r\n AtomixSnackbarComponent,\r\n AtomixPaginationComponent,\r\n AtomixFormAutocompleteComponent,\r\n ReactiveFormsModule,\r\n AtomixFormCalendarComponent,\r\n AtomixFormCheckboxComponent,\r\n AtomixFormChipsComponent,\r\n AtomixFormDropdownComponent,\r\n AtomixFormInputComponent,\r\n AtomixFormInputmaskComponent,\r\n AtomixFormPasswordComponent,\r\n AtomixFormTextareaComponent,\r\n AtomixFormRadioButtonComponent,\r\n AtomixToastComponent,\r\n AtomixMessagesComponent,\r\n AtomixSpinnerComponent,\r\n AtomixRadioButtonComponent,\r\n AtomixDynamicDialogComponent,\r\n AtomixSelectButtonComponent,\r\n AtomixTagComponent,\r\n AtomixSearchDropdownComponent,\r\n AtomixAutocompleteComponent,\r\n AtomixDividerComponent,\r\n AtomixInputSwitchComponent,\r\n AtomixTabMenuComponent,\r\n AtomixStepsComponent,\r\n AtomixLoadingOverlayComponent,\r\n ], // Export your component\r\n})\r\nexport class PrimekitModule {}\r\n","export function getEditIcon(): string {\r\n return 'pi pi-pencil';\r\n}\r\n\r\nexport function getTrashIcon(): string {\r\n return 'pi pi-trash';\r\n}\r\n\r\nexport function getPowerOffIcon(): string {\r\n return 'pi pi-power-off';\r\n}\r\n","/*\r\n * Public API Surface of primekit\r\n */\r\n\r\nexport * from './lib/primekit.service';\r\nexport * from './lib/primekit.component';\r\nexport * from './lib/primekit.module';\r\n\r\nexport * from './lib/lib/atomix-button/atomix-button.component';\r\nexport * from './lib/lib/atomix-card/atomix-card.component';\r\nexport * from './lib/lib/atomix-confirmation-dialog/atomix-confirmation-dialog.component';\r\nexport * from './lib/lib/atomix-input/atomix-input.component';\r\nexport * from './lib/lib/atomix-calendar/atomix-calendar.component';\r\nexport * from './lib/lib/atomix-daterange-calendar/atomix-daterange-calendar.component';\r\nexport * from './lib/lib/atomix-dropdown/atomix-dropdown.component';\r\nexport * from './lib/lib/atomix-table/atomix-table.component';\r\nexport * from './lib/lib/atomix-snackbar/atomix-snackbar.component';\r\nexport * from './lib/lib/atomix-pagination/atomix-pagination.component';\r\nexport * from './lib/lib/atomix-alert/atomix-alert.component';\r\nexport * from './lib/lib/atomix-messages/messages.component';\r\nexport * from './lib/lib/atomix-spinner/atomix-spinner.component';\r\nexport * from './lib/lib/atomix-radio-button/atomix-radio-button.component';\r\nexport * from './lib/lib/atomix-dynamic-dialog/atomix-dynamic-dialog.component';\r\nexport * from './lib/lib/atomix-select-button/atomix-select-button.component';\r\nexport * from './lib/lib/atomix-tag/atomix-tag.component';\r\nexport * from './lib/lib/atomix-search-dropdown/atomix-search-dropdown.component';\r\nexport * from './lib/lib/atomix-divider/atomix-divider.component';\r\nexport * from './lib/lib/atomix-input-switch/atomix-input-switch.component';\r\nexport * from './lib/lib/atomix-tabMenu/atomix-tabMenu.component';\r\nexport * from './lib/lib/atomix-steps/atomix-steps.component';\r\nexport * from './lib/lib/atomix-loading-overlay/atomix-loading-overlay.component';\r\n\r\n// Autocomplete\r\nexport * from './lib/lib/atomix-autocomplete/atomix-autocomplete.component';\r\nexport * from './lib/lib/atomix-form/atomix-form-autocomplete/atomix-form-autocomplete.component';\r\nexport * from './lib/lib/atomix-form/atomix-form-calendar/atomix-form-calendar.component';\r\nexport * from './lib/lib/atomix-form/atomix-form-checkbox/atomix-form-checkbox.component';\r\nexport * from './lib/lib/atomix-form/atomix-form-chips/atomix-form-chips.component';\r\nexport * from './lib/lib/atomix-form/atomix-form-dropdown/atomix-form-dropdown.component';\r\nexport * from './lib/lib/atomix-form/atomix-form-input-component/atomix-form-input-component.component';\r\nexport * from './lib/lib/atomix-form/atomix-form-inputmask-component/atomix-form-inputmask-component.component';\r\nexport * from './lib/lib/atomix-form/atomix-form-password-component/atomix-form-password-component.component';\r\nexport * from './lib/lib/atomix-form/atomix-form-textarea/atomix-form-textarea.component';\r\nexport * from './lib/lib/atomix-form/atomix-form-radio-button/atomix-radio-button.component';\r\n\r\n// Utils\r\nexport * from './lib/lib/utils/prime-icons.util';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.AtomixButtonComponent","i2","i3","i6","i4","i5","i10","i14.AtomixCardComponent","i15.AtomixDaterangeCalendarComponent","i16.AtomixSnackbarComponent"],"mappings":"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"}