@gnggln/ng-ui-system 1.0.0-alpha.2 → 1.0.0-alpha.21

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 (721) hide show
  1. package/accordion/entry-accordion.d.ts +4 -0
  2. package/accordion/index.d.ts +5 -0
  3. package/accordion/lib/components/accordion/accordion.component.d.ts +125 -0
  4. package/accordion/lib/components/accordion/accordion.types.d.ts +64 -0
  5. package/accordion/lib/components/accordion/index.d.ts +2 -0
  6. package/accordion/lib/core/types/index.d.ts +133 -0
  7. package/base-layout/entry-base-layout.d.ts +4 -0
  8. package/base-layout/index.d.ts +5 -0
  9. package/base-layout/lib/components/base-layout/base-layout.component.d.ts +108 -0
  10. package/base-layout/lib/components/base-layout/base-layout.types.d.ts +40 -0
  11. package/base-layout/lib/components/base-layout/index.d.ts +13 -0
  12. package/base-layout/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  13. package/base-layout/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  14. package/base-layout/lib/components/blackbox/blackbox.service.d.ts +144 -0
  15. package/base-layout/lib/components/blackbox/blackbox.types.d.ts +238 -0
  16. package/base-layout/lib/components/button/button-area.component.d.ts +93 -0
  17. package/base-layout/lib/components/button/button.component.d.ts +61 -0
  18. package/base-layout/lib/components/button/button.types.d.ts +75 -0
  19. package/base-layout/lib/components/page-header/breadcrumb.service.d.ts +96 -0
  20. package/base-layout/lib/components/page-header/page-header.component.d.ts +59 -0
  21. package/base-layout/lib/components/page-header/page-header.types.d.ts +96 -0
  22. package/base-layout/lib/core/types/index.d.ts +133 -0
  23. package/blackbox/entry-blackbox.d.ts +4 -0
  24. package/blackbox/index.d.ts +5 -0
  25. package/blackbox/lib/components/blackbox/blackbox-debugger.component.d.ts +80 -0
  26. package/blackbox/lib/components/blackbox/blackbox-debugger.service.d.ts +34 -0
  27. package/blackbox/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  28. package/blackbox/lib/components/blackbox/blackbox-json-viewer.component.d.ts +18 -0
  29. package/blackbox/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  30. package/blackbox/lib/components/blackbox/blackbox.interceptor.d.ts +38 -0
  31. package/blackbox/lib/components/blackbox/blackbox.service.d.ts +144 -0
  32. package/blackbox/lib/components/blackbox/blackbox.types.d.ts +238 -0
  33. package/blackbox/lib/components/blackbox/index.d.ts +23 -0
  34. package/blackbox/lib/components/blackbox/ui-track.directive.d.ts +20 -0
  35. package/blackbox/lib/components/button/button-area.component.d.ts +93 -0
  36. package/blackbox/lib/components/button/button.component.d.ts +61 -0
  37. package/blackbox/lib/components/button/button.types.d.ts +75 -0
  38. package/blackbox/lib/components/button/index.d.ts +15 -0
  39. package/blackbox/lib/components/modal/confirm-dialog.component.d.ts +46 -0
  40. package/blackbox/lib/components/modal/index.d.ts +4 -0
  41. package/blackbox/lib/components/modal/modal.component.d.ts +44 -0
  42. package/blackbox/lib/components/modal/modal.service.d.ts +93 -0
  43. package/blackbox/lib/components/modal/modal.types.d.ts +110 -0
  44. package/blackbox/lib/core/types/index.d.ts +133 -0
  45. package/button/entry-button.d.ts +4 -0
  46. package/button/index.d.ts +5 -0
  47. package/button/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  48. package/button/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  49. package/button/lib/components/blackbox/blackbox.service.d.ts +144 -0
  50. package/button/lib/components/blackbox/blackbox.types.d.ts +238 -0
  51. package/button/lib/components/button/button-area.component.d.ts +93 -0
  52. package/button/lib/components/button/button.component.d.ts +61 -0
  53. package/button/lib/components/button/button.types.d.ts +75 -0
  54. package/button/lib/components/button/index.d.ts +15 -0
  55. package/button/lib/core/types/index.d.ts +133 -0
  56. package/core/entry-core.d.ts +5 -0
  57. package/core/index.d.ts +5 -0
  58. package/core/lib/core/types/index.d.ts +133 -0
  59. package/core/lib/core/utils/index.d.ts +60 -0
  60. package/crud-table/entry-crud-table.d.ts +4 -0
  61. package/crud-table/index.d.ts +5 -0
  62. package/crud-table/lib/components/accordion/accordion.component.d.ts +125 -0
  63. package/crud-table/lib/components/accordion/accordion.types.d.ts +64 -0
  64. package/crud-table/lib/components/accordion/index.d.ts +2 -0
  65. package/crud-table/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  66. package/crud-table/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  67. package/crud-table/lib/components/blackbox/blackbox.service.d.ts +144 -0
  68. package/crud-table/lib/components/blackbox/blackbox.types.d.ts +238 -0
  69. package/crud-table/lib/components/button/button-area.component.d.ts +93 -0
  70. package/crud-table/lib/components/button/button.component.d.ts +61 -0
  71. package/crud-table/lib/components/button/button.types.d.ts +75 -0
  72. package/crud-table/lib/components/button/index.d.ts +15 -0
  73. package/crud-table/lib/components/crud-table/crud-table.component.d.ts +143 -0
  74. package/crud-table/lib/components/crud-table/crud-table.types.d.ts +207 -0
  75. package/crud-table/lib/components/crud-table/index.d.ts +15 -0
  76. package/crud-table/lib/components/form-builder/adapters/it-date-adapter.d.ts +32 -0
  77. package/crud-table/lib/components/form-builder/directives/currency-input.directive.d.ts +48 -0
  78. package/crud-table/lib/components/form-builder/form-builder.component.d.ts +279 -0
  79. package/crud-table/lib/components/form-builder/services/form-condition.service.d.ts +46 -0
  80. package/crud-table/lib/components/form-builder/services/form-error-state.matcher.d.ts +9 -0
  81. package/crud-table/lib/components/form-builder/services/form-field-error.service.d.ts +38 -0
  82. package/crud-table/lib/components/form-builder/services/form-validation.service.d.ts +63 -0
  83. package/crud-table/lib/components/form-builder/services/location.service.d.ts +83 -0
  84. package/crud-table/lib/components/form-builder/services/nominatim-geocoding.service.d.ts +37 -0
  85. package/crud-table/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +31 -0
  86. package/crud-table/lib/components/form-builder/sub-components/file-input/file-input.component.d.ts +41 -0
  87. package/crud-table/lib/components/form-builder/sub-components/form-fields/form-number-field.component.d.ts +42 -0
  88. package/crud-table/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.d.ts +45 -0
  89. package/crud-table/lib/components/form-builder/sub-components/form-fields/form-select-field.component.d.ts +44 -0
  90. package/crud-table/lib/components/form-builder/sub-components/form-fields/form-text-field.component.d.ts +62 -0
  91. package/crud-table/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.d.ts +39 -0
  92. package/crud-table/lib/components/form-builder/sub-components/form-fields/index.d.ts +5 -0
  93. package/crud-table/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.d.ts +84 -0
  94. package/crud-table/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +145 -0
  95. package/crud-table/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.d.ts +108 -0
  96. package/crud-table/lib/components/form-builder/types/condition.types.d.ts +51 -0
  97. package/crud-table/lib/components/form-builder/types/field.types.d.ts +330 -0
  98. package/crud-table/lib/components/form-builder/types/geocoded-location.types.d.ts +116 -0
  99. package/crud-table/lib/components/form-builder/types/schema.types.d.ts +304 -0
  100. package/crud-table/lib/components/form-builder/types/territoriale.types.d.ts +170 -0
  101. package/crud-table/lib/components/form-builder/types/validation.types.d.ts +179 -0
  102. package/crud-table/lib/components/modal/confirm-dialog.component.d.ts +46 -0
  103. package/crud-table/lib/components/modal/modal.service.d.ts +93 -0
  104. package/crud-table/lib/components/modal/modal.types.d.ts +110 -0
  105. package/crud-table/lib/core/logging/logger.config.d.ts +18 -0
  106. package/crud-table/lib/core/logging/logger.service.d.ts +75 -0
  107. package/crud-table/lib/core/logging/logger.types.d.ts +70 -0
  108. package/crud-table/lib/core/types/index.d.ts +133 -0
  109. package/esm2022/accordion/entry-accordion.mjs +5 -0
  110. package/esm2022/accordion/gnggln-ng-ui-system-accordion.mjs +5 -0
  111. package/esm2022/accordion/lib/components/accordion/accordion.component.mjs +398 -0
  112. package/esm2022/accordion/lib/components/accordion/accordion.types.mjs +6 -0
  113. package/esm2022/accordion/lib/components/accordion/index.mjs +2 -0
  114. package/esm2022/accordion/lib/core/types/index.mjs +6 -0
  115. package/esm2022/base-layout/entry-base-layout.mjs +5 -0
  116. package/esm2022/base-layout/gnggln-ng-ui-system-base-layout.mjs +5 -0
  117. package/esm2022/base-layout/lib/components/base-layout/base-layout.component.mjs +272 -0
  118. package/esm2022/base-layout/lib/components/base-layout/base-layout.types.mjs +6 -0
  119. package/esm2022/base-layout/lib/components/base-layout/index.mjs +14 -0
  120. package/esm2022/base-layout/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  121. package/esm2022/base-layout/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  122. package/esm2022/base-layout/lib/components/blackbox/blackbox.service.mjs +323 -0
  123. package/esm2022/base-layout/lib/components/blackbox/blackbox.types.mjs +25 -0
  124. package/esm2022/base-layout/lib/components/button/button-area.component.mjs +210 -0
  125. package/esm2022/base-layout/lib/components/button/button.component.mjs +180 -0
  126. package/esm2022/base-layout/lib/components/button/button.types.mjs +6 -0
  127. package/esm2022/base-layout/lib/components/page-header/breadcrumb.service.mjs +243 -0
  128. package/esm2022/base-layout/lib/components/page-header/page-header.component.mjs +243 -0
  129. package/esm2022/base-layout/lib/components/page-header/page-header.types.mjs +21 -0
  130. package/esm2022/base-layout/lib/core/types/index.mjs +6 -0
  131. package/esm2022/blackbox/entry-blackbox.mjs +5 -0
  132. package/esm2022/blackbox/gnggln-ng-ui-system-blackbox.mjs +5 -0
  133. package/esm2022/blackbox/lib/components/blackbox/blackbox-debugger.component.mjs +904 -0
  134. package/esm2022/blackbox/lib/components/blackbox/blackbox-debugger.service.mjs +51 -0
  135. package/esm2022/blackbox/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  136. package/esm2022/blackbox/lib/components/blackbox/blackbox-json-viewer.component.mjs +66 -0
  137. package/esm2022/blackbox/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  138. package/esm2022/blackbox/lib/components/blackbox/blackbox.interceptor.mjs +135 -0
  139. package/esm2022/blackbox/lib/components/blackbox/blackbox.service.mjs +323 -0
  140. package/esm2022/blackbox/lib/components/blackbox/blackbox.types.mjs +25 -0
  141. package/esm2022/blackbox/lib/components/blackbox/index.mjs +27 -0
  142. package/esm2022/blackbox/lib/components/blackbox/ui-track.directive.mjs +69 -0
  143. package/esm2022/blackbox/lib/components/button/button-area.component.mjs +210 -0
  144. package/esm2022/blackbox/lib/components/button/button.component.mjs +180 -0
  145. package/esm2022/blackbox/lib/components/button/button.types.mjs +6 -0
  146. package/esm2022/blackbox/lib/components/button/index.mjs +16 -0
  147. package/esm2022/blackbox/lib/components/modal/confirm-dialog.component.mjs +151 -0
  148. package/esm2022/blackbox/lib/components/modal/index.mjs +4 -0
  149. package/esm2022/blackbox/lib/components/modal/modal.component.mjs +139 -0
  150. package/esm2022/blackbox/lib/components/modal/modal.service.mjs +197 -0
  151. package/esm2022/blackbox/lib/components/modal/modal.types.mjs +6 -0
  152. package/esm2022/blackbox/lib/core/types/index.mjs +6 -0
  153. package/esm2022/button/entry-button.mjs +5 -0
  154. package/esm2022/button/gnggln-ng-ui-system-button.mjs +5 -0
  155. package/esm2022/button/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  156. package/esm2022/button/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  157. package/esm2022/button/lib/components/blackbox/blackbox.service.mjs +323 -0
  158. package/esm2022/button/lib/components/blackbox/blackbox.types.mjs +25 -0
  159. package/esm2022/button/lib/components/button/button-area.component.mjs +210 -0
  160. package/esm2022/button/lib/components/button/button.component.mjs +180 -0
  161. package/esm2022/button/lib/components/button/button.types.mjs +6 -0
  162. package/esm2022/button/lib/components/button/index.mjs +16 -0
  163. package/esm2022/button/lib/core/types/index.mjs +6 -0
  164. package/esm2022/core/entry-core.mjs +6 -0
  165. package/esm2022/core/gnggln-ng-ui-system-core.mjs +5 -0
  166. package/esm2022/core/lib/core/types/index.mjs +6 -0
  167. package/esm2022/core/lib/core/utils/index.mjs +102 -0
  168. package/esm2022/crud-table/entry-crud-table.mjs +5 -0
  169. package/esm2022/crud-table/gnggln-ng-ui-system-crud-table.mjs +5 -0
  170. package/esm2022/crud-table/lib/components/accordion/accordion.component.mjs +398 -0
  171. package/esm2022/crud-table/lib/components/accordion/accordion.types.mjs +6 -0
  172. package/esm2022/crud-table/lib/components/accordion/index.mjs +2 -0
  173. package/esm2022/crud-table/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  174. package/esm2022/crud-table/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  175. package/esm2022/crud-table/lib/components/blackbox/blackbox.service.mjs +323 -0
  176. package/esm2022/crud-table/lib/components/blackbox/blackbox.types.mjs +25 -0
  177. package/esm2022/crud-table/lib/components/button/button-area.component.mjs +210 -0
  178. package/esm2022/crud-table/lib/components/button/button.component.mjs +180 -0
  179. package/esm2022/crud-table/lib/components/button/button.types.mjs +6 -0
  180. package/esm2022/crud-table/lib/components/button/index.mjs +16 -0
  181. package/esm2022/crud-table/lib/components/crud-table/crud-table.component.mjs +789 -0
  182. package/esm2022/crud-table/lib/components/crud-table/crud-table.types.mjs +6 -0
  183. package/esm2022/crud-table/lib/components/crud-table/index.mjs +16 -0
  184. package/esm2022/crud-table/lib/components/form-builder/adapters/it-date-adapter.mjs +82 -0
  185. package/esm2022/crud-table/lib/components/form-builder/directives/currency-input.directive.mjs +184 -0
  186. package/esm2022/crud-table/lib/components/form-builder/form-builder.component.mjs +1351 -0
  187. package/esm2022/crud-table/lib/components/form-builder/services/form-condition.service.mjs +132 -0
  188. package/esm2022/crud-table/lib/components/form-builder/services/form-error-state.matcher.mjs +10 -0
  189. package/esm2022/crud-table/lib/components/form-builder/services/form-field-error.service.mjs +103 -0
  190. package/esm2022/crud-table/lib/components/form-builder/services/form-validation.service.mjs +381 -0
  191. package/esm2022/crud-table/lib/components/form-builder/services/location.service.mjs +141 -0
  192. package/esm2022/crud-table/lib/components/form-builder/services/nominatim-geocoding.service.mjs +120 -0
  193. package/esm2022/crud-table/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +190 -0
  194. package/esm2022/crud-table/lib/components/form-builder/sub-components/file-input/file-input.component.mjs +310 -0
  195. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +113 -0
  196. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +105 -0
  197. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +126 -0
  198. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-text-field.component.mjs +147 -0
  199. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.mjs +99 -0
  200. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/index.mjs +6 -0
  201. package/esm2022/crud-table/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.mjs +322 -0
  202. package/esm2022/crud-table/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +648 -0
  203. package/esm2022/crud-table/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +432 -0
  204. package/esm2022/crud-table/lib/components/form-builder/types/condition.types.mjs +6 -0
  205. package/esm2022/crud-table/lib/components/form-builder/types/field.types.mjs +6 -0
  206. package/esm2022/crud-table/lib/components/form-builder/types/geocoded-location.types.mjs +6 -0
  207. package/esm2022/crud-table/lib/components/form-builder/types/schema.types.mjs +6 -0
  208. package/esm2022/crud-table/lib/components/form-builder/types/territoriale.types.mjs +6 -0
  209. package/esm2022/crud-table/lib/components/form-builder/types/validation.types.mjs +10 -0
  210. package/esm2022/crud-table/lib/components/modal/confirm-dialog.component.mjs +151 -0
  211. package/esm2022/crud-table/lib/components/modal/modal.service.mjs +197 -0
  212. package/esm2022/crud-table/lib/components/modal/modal.types.mjs +6 -0
  213. package/esm2022/crud-table/lib/core/logging/logger.config.mjs +18 -0
  214. package/esm2022/crud-table/lib/core/logging/logger.service.mjs +295 -0
  215. package/esm2022/crud-table/lib/core/logging/logger.types.mjs +7 -0
  216. package/esm2022/crud-table/lib/core/types/index.mjs +6 -0
  217. package/esm2022/crud-table/lib/sources/location-data.opt.json +8942 -0
  218. package/esm2022/crud-table/lib/sources/nazioni.opt.json +215 -0
  219. package/esm2022/form-builder/entry-form-builder.mjs +5 -0
  220. package/esm2022/form-builder/gnggln-ng-ui-system-form-builder.mjs +5 -0
  221. package/esm2022/form-builder/lib/components/accordion/accordion.component.mjs +398 -0
  222. package/esm2022/form-builder/lib/components/accordion/accordion.types.mjs +6 -0
  223. package/esm2022/form-builder/lib/components/accordion/index.mjs +2 -0
  224. package/esm2022/form-builder/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  225. package/esm2022/form-builder/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  226. package/esm2022/form-builder/lib/components/blackbox/blackbox.service.mjs +323 -0
  227. package/esm2022/form-builder/lib/components/blackbox/blackbox.types.mjs +25 -0
  228. package/esm2022/form-builder/lib/components/button/button-area.component.mjs +210 -0
  229. package/esm2022/form-builder/lib/components/button/button.component.mjs +180 -0
  230. package/esm2022/form-builder/lib/components/button/button.types.mjs +6 -0
  231. package/esm2022/form-builder/lib/components/button/index.mjs +16 -0
  232. package/esm2022/form-builder/lib/components/form-builder/adapters/it-date-adapter.mjs +82 -0
  233. package/esm2022/form-builder/lib/components/form-builder/directives/currency-input.directive.mjs +184 -0
  234. package/esm2022/form-builder/lib/components/form-builder/form-builder.component.mjs +1351 -0
  235. package/esm2022/form-builder/lib/components/form-builder/form-wizard.component.mjs +1064 -0
  236. package/esm2022/form-builder/lib/components/form-builder/index.mjs +24 -0
  237. package/esm2022/form-builder/lib/components/form-builder/services/form-condition.service.mjs +132 -0
  238. package/esm2022/form-builder/lib/components/form-builder/services/form-error-state.matcher.mjs +10 -0
  239. package/esm2022/form-builder/lib/components/form-builder/services/form-field-error.service.mjs +103 -0
  240. package/esm2022/form-builder/lib/components/form-builder/services/form-validation.service.mjs +381 -0
  241. package/esm2022/form-builder/lib/components/form-builder/services/location.service.mjs +141 -0
  242. package/esm2022/form-builder/lib/components/form-builder/services/nominatim-geocoding.service.mjs +120 -0
  243. package/esm2022/form-builder/lib/components/form-builder/services/wizard-sync.service.mjs +84 -0
  244. package/esm2022/form-builder/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +190 -0
  245. package/esm2022/form-builder/lib/components/form-builder/sub-components/file-input/file-input.component.mjs +310 -0
  246. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +113 -0
  247. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +105 -0
  248. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +126 -0
  249. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-text-field.component.mjs +147 -0
  250. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.mjs +99 -0
  251. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/index.mjs +6 -0
  252. package/esm2022/form-builder/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.mjs +322 -0
  253. package/esm2022/form-builder/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +648 -0
  254. package/esm2022/form-builder/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +432 -0
  255. package/esm2022/form-builder/lib/components/form-builder/types/condition.types.mjs +6 -0
  256. package/esm2022/form-builder/lib/components/form-builder/types/field.types.mjs +6 -0
  257. package/esm2022/form-builder/lib/components/form-builder/types/geocoded-location.types.mjs +6 -0
  258. package/esm2022/form-builder/lib/components/form-builder/types/index.mjs +3 -0
  259. package/esm2022/form-builder/lib/components/form-builder/types/schema.types.mjs +6 -0
  260. package/esm2022/form-builder/lib/components/form-builder/types/territoriale.types.mjs +6 -0
  261. package/esm2022/form-builder/lib/components/form-builder/types/validation.types.mjs +10 -0
  262. package/esm2022/form-builder/lib/core/logging/logger.config.mjs +18 -0
  263. package/esm2022/form-builder/lib/core/logging/logger.service.mjs +295 -0
  264. package/esm2022/form-builder/lib/core/logging/logger.types.mjs +7 -0
  265. package/esm2022/form-builder/lib/core/types/index.mjs +6 -0
  266. package/esm2022/form-builder/lib/sources/location-data.opt.json +8942 -0
  267. package/esm2022/form-builder/lib/sources/nazioni.opt.json +215 -0
  268. package/esm2022/form-builder-editor/entry-form-builder-editor.mjs +5 -0
  269. package/esm2022/form-builder-editor/gnggln-ng-ui-system-form-builder-editor.mjs +5 -0
  270. package/esm2022/form-builder-editor/lib/components/accordion/accordion.component.mjs +398 -0
  271. package/esm2022/form-builder-editor/lib/components/accordion/accordion.types.mjs +6 -0
  272. package/esm2022/form-builder-editor/lib/components/accordion/index.mjs +2 -0
  273. package/esm2022/form-builder-editor/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  274. package/esm2022/form-builder-editor/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  275. package/esm2022/form-builder-editor/lib/components/blackbox/blackbox.service.mjs +323 -0
  276. package/esm2022/form-builder-editor/lib/components/blackbox/blackbox.types.mjs +25 -0
  277. package/esm2022/form-builder-editor/lib/components/button/button-area.component.mjs +210 -0
  278. package/esm2022/form-builder-editor/lib/components/button/button.component.mjs +180 -0
  279. package/esm2022/form-builder-editor/lib/components/button/button.types.mjs +6 -0
  280. package/esm2022/form-builder-editor/lib/components/button/index.mjs +16 -0
  281. package/esm2022/form-builder-editor/lib/components/form-builder/adapters/it-date-adapter.mjs +82 -0
  282. package/esm2022/form-builder-editor/lib/components/form-builder/directives/currency-input.directive.mjs +184 -0
  283. package/esm2022/form-builder-editor/lib/components/form-builder/form-builder.component.mjs +1351 -0
  284. package/esm2022/form-builder-editor/lib/components/form-builder/services/form-condition.service.mjs +132 -0
  285. package/esm2022/form-builder-editor/lib/components/form-builder/services/form-error-state.matcher.mjs +10 -0
  286. package/esm2022/form-builder-editor/lib/components/form-builder/services/form-field-error.service.mjs +103 -0
  287. package/esm2022/form-builder-editor/lib/components/form-builder/services/form-validation.service.mjs +381 -0
  288. package/esm2022/form-builder-editor/lib/components/form-builder/services/location.service.mjs +141 -0
  289. package/esm2022/form-builder-editor/lib/components/form-builder/services/nominatim-geocoding.service.mjs +120 -0
  290. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +190 -0
  291. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/file-input/file-input.component.mjs +310 -0
  292. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +113 -0
  293. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +105 -0
  294. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +126 -0
  295. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-text-field.component.mjs +147 -0
  296. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.mjs +99 -0
  297. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/index.mjs +6 -0
  298. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.mjs +322 -0
  299. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +648 -0
  300. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +432 -0
  301. package/esm2022/form-builder-editor/lib/components/form-builder/types/condition.types.mjs +6 -0
  302. package/esm2022/form-builder-editor/lib/components/form-builder/types/field.types.mjs +6 -0
  303. package/esm2022/form-builder-editor/lib/components/form-builder/types/geocoded-location.types.mjs +6 -0
  304. package/esm2022/form-builder-editor/lib/components/form-builder/types/index.mjs +3 -0
  305. package/esm2022/form-builder-editor/lib/components/form-builder/types/schema.types.mjs +6 -0
  306. package/esm2022/form-builder-editor/lib/components/form-builder/types/territoriale.types.mjs +6 -0
  307. package/esm2022/form-builder-editor/lib/components/form-builder/types/validation.types.mjs +10 -0
  308. package/esm2022/form-builder-editor/lib/components/form-builder-editor/form-builder-editor.component.mjs +730 -0
  309. package/esm2022/form-builder-editor/lib/components/form-builder-editor/form-builder-editor.service.mjs +56 -0
  310. package/esm2022/form-builder-editor/lib/components/form-builder-editor/index.mjs +23 -0
  311. package/esm2022/form-builder-editor/lib/components/form-builder-editor/presets/editor-presets.mjs +395 -0
  312. package/esm2022/form-builder-editor/lib/components/form-builder-editor/services/editor-persistence.service.mjs +190 -0
  313. package/esm2022/form-builder-editor/lib/components/form-builder-editor/services/editor-state.service.mjs +324 -0
  314. package/esm2022/form-builder-editor/lib/components/form-builder-editor/services/field-factory.service.mjs +188 -0
  315. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/condition-editor/condition-editor.component.mjs +667 -0
  316. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/editor-toolbar/editor-toolbar.component.mjs +317 -0
  317. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/field-config-panel/field-config-panel.component.mjs +611 -0
  318. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/field-palette/field-palette.component.mjs +267 -0
  319. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/form-values-panel/form-values-panel.component.mjs +276 -0
  320. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/options-editor/options-editor.component.mjs +323 -0
  321. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/preview-container/preview-container.component.mjs +238 -0
  322. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/section-editor/section-editor.component.mjs +473 -0
  323. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/validation-editor/validation-editor.component.mjs +473 -0
  324. package/esm2022/form-builder-editor/lib/components/form-builder-editor/types/editor.types.mjs +6 -0
  325. package/esm2022/form-builder-editor/lib/components/modal/confirm-dialog.component.mjs +151 -0
  326. package/esm2022/form-builder-editor/lib/components/modal/index.mjs +4 -0
  327. package/esm2022/form-builder-editor/lib/components/modal/modal.component.mjs +139 -0
  328. package/esm2022/form-builder-editor/lib/components/modal/modal.service.mjs +197 -0
  329. package/esm2022/form-builder-editor/lib/components/modal/modal.types.mjs +6 -0
  330. package/esm2022/form-builder-editor/lib/core/logging/logger.config.mjs +18 -0
  331. package/esm2022/form-builder-editor/lib/core/logging/logger.service.mjs +295 -0
  332. package/esm2022/form-builder-editor/lib/core/logging/logger.types.mjs +7 -0
  333. package/esm2022/form-builder-editor/lib/core/types/index.mjs +6 -0
  334. package/esm2022/form-builder-editor/lib/sources/location-data.opt.json +8942 -0
  335. package/esm2022/form-builder-editor/lib/sources/nazioni.opt.json +215 -0
  336. package/esm2022/http/entry-http.mjs +5 -0
  337. package/esm2022/http/gnggln-ng-ui-system-http.mjs +5 -0
  338. package/esm2022/http/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  339. package/esm2022/http/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  340. package/esm2022/http/lib/components/blackbox/blackbox.service.mjs +323 -0
  341. package/esm2022/http/lib/components/blackbox/blackbox.types.mjs +25 -0
  342. package/esm2022/http/lib/components/http/http-message.handler.mjs +143 -0
  343. package/esm2022/http/lib/components/http/http.service.mjs +228 -0
  344. package/esm2022/http/lib/components/http/http.tokens.mjs +29 -0
  345. package/esm2022/http/lib/components/http/http.types.mjs +6 -0
  346. package/esm2022/http/lib/components/http/index.mjs +19 -0
  347. package/esm2022/http/lib/components/layout-builder/layout-builder.types.mjs +9 -0
  348. package/esm2022/http/lib/components/layout-builder/layout.service.mjs +239 -0
  349. package/esm2022/http/lib/components/toast/toast-container.component.mjs +80 -0
  350. package/esm2022/http/lib/components/toast/toast.component.mjs +151 -0
  351. package/esm2022/http/lib/components/toast/toast.service.mjs +156 -0
  352. package/esm2022/http/lib/components/toast/toast.types.mjs +12 -0
  353. package/esm2022/http/lib/core/types/index.mjs +6 -0
  354. package/esm2022/http/lib/core/utils/index.mjs +102 -0
  355. package/esm2022/layout-builder/entry-layout-builder.mjs +5 -0
  356. package/esm2022/layout-builder/gnggln-ng-ui-system-layout-builder.mjs +5 -0
  357. package/esm2022/layout-builder/lib/components/layout-builder/index.mjs +18 -0
  358. package/esm2022/layout-builder/lib/components/layout-builder/layout-builder.component.mjs +1804 -0
  359. package/esm2022/layout-builder/lib/components/layout-builder/layout-builder.types.mjs +9 -0
  360. package/esm2022/layout-builder/lib/components/layout-builder/layout.service.mjs +239 -0
  361. package/esm2022/layout-builder/lib/core/types/index.mjs +6 -0
  362. package/esm2022/lib/components/accordion/accordion.component.mjs +106 -61
  363. package/esm2022/lib/components/accordion/accordion.types.mjs +1 -1
  364. package/esm2022/lib/components/base-layout/base-layout.component.mjs +88 -34
  365. package/esm2022/lib/components/base-layout/base-layout.types.mjs +1 -1
  366. package/esm2022/lib/components/base-layout/index.mjs +1 -1
  367. package/esm2022/lib/components/blackbox/blackbox-debugger.component.mjs +904 -0
  368. package/esm2022/lib/components/blackbox/blackbox-debugger.service.mjs +51 -0
  369. package/esm2022/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  370. package/esm2022/lib/components/blackbox/blackbox-json-viewer.component.mjs +66 -0
  371. package/esm2022/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  372. package/esm2022/lib/components/blackbox/blackbox.interceptor.mjs +135 -0
  373. package/esm2022/lib/components/blackbox/blackbox.service.mjs +323 -0
  374. package/esm2022/lib/components/blackbox/blackbox.types.mjs +25 -0
  375. package/esm2022/lib/components/blackbox/index.mjs +27 -0
  376. package/esm2022/lib/components/blackbox/ui-track.directive.mjs +69 -0
  377. package/esm2022/lib/components/button/button-area.component.mjs +16 -2
  378. package/esm2022/lib/components/button/button.component.mjs +23 -7
  379. package/esm2022/lib/components/button/button.types.mjs +1 -1
  380. package/esm2022/lib/components/crud-table/crud-table.component.mjs +14 -14
  381. package/esm2022/lib/components/form-builder/form-builder.component.mjs +710 -183
  382. package/esm2022/lib/components/form-builder/form-wizard.component.mjs +789 -235
  383. package/esm2022/lib/components/form-builder/index.mjs +7 -2
  384. package/esm2022/lib/components/form-builder/services/form-error-state.matcher.mjs +10 -0
  385. package/esm2022/lib/components/form-builder/services/form-field-error.service.mjs +103 -0
  386. package/esm2022/lib/components/form-builder/services/location.service.mjs +4 -3
  387. package/esm2022/lib/components/form-builder/services/nominatim-geocoding.service.mjs +120 -0
  388. package/esm2022/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +142 -113
  389. package/esm2022/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +113 -0
  390. package/esm2022/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +105 -0
  391. package/esm2022/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +126 -0
  392. package/esm2022/lib/components/form-builder/sub-components/form-fields/form-text-field.component.mjs +147 -0
  393. package/esm2022/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.mjs +99 -0
  394. package/esm2022/lib/components/form-builder/sub-components/form-fields/index.mjs +6 -0
  395. package/esm2022/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.mjs +322 -0
  396. package/esm2022/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +3 -3
  397. package/esm2022/lib/components/form-builder/types/field.types.mjs +1 -1
  398. package/esm2022/lib/components/form-builder/types/geocoded-location.types.mjs +6 -0
  399. package/esm2022/lib/components/form-builder/types/index.mjs +3 -2
  400. package/esm2022/lib/components/form-builder/types/schema.types.mjs +1 -1
  401. package/esm2022/lib/components/form-builder/types/validation.types.mjs +6 -2
  402. package/esm2022/lib/components/form-builder-editor/form-builder-editor.component.mjs +3 -3
  403. package/esm2022/lib/components/form-builder-editor/index.mjs +3 -1
  404. package/esm2022/lib/components/form-builder-editor/presets/editor-presets.mjs +395 -0
  405. package/esm2022/lib/components/form-builder-editor/sub-components/preview-container/preview-container.component.mjs +2 -2
  406. package/esm2022/lib/components/form-builder-editor/sub-components/section-editor/section-editor.component.mjs +2 -1
  407. package/esm2022/lib/components/http/http-message.handler.mjs +143 -0
  408. package/esm2022/lib/components/http/http.service.mjs +228 -0
  409. package/esm2022/lib/components/http/http.tokens.mjs +29 -0
  410. package/esm2022/lib/components/http/http.types.mjs +6 -0
  411. package/esm2022/lib/components/http/index.mjs +19 -0
  412. package/esm2022/lib/components/layout-builder/layout-builder.component.mjs +27 -15
  413. package/esm2022/lib/components/modal/confirm-dialog.component.mjs +3 -3
  414. package/esm2022/lib/components/modal/modal.service.mjs +5 -2
  415. package/esm2022/lib/components/page-header/breadcrumb.service.mjs +5 -4
  416. package/esm2022/lib/components/table/paginated-table.component.mjs +17 -3
  417. package/esm2022/lib/components/table/table.types.mjs +1 -1
  418. package/esm2022/lib/components/toast/index.mjs +18 -0
  419. package/esm2022/lib/components/toast/toast-container.component.mjs +80 -0
  420. package/esm2022/lib/components/toast/toast.component.mjs +151 -0
  421. package/esm2022/lib/components/toast/toast.service.mjs +156 -0
  422. package/esm2022/lib/components/toast/toast.types.mjs +12 -0
  423. package/esm2022/lib/core/logging/index.mjs +10 -0
  424. package/esm2022/lib/core/logging/logger.config.mjs +18 -0
  425. package/esm2022/lib/core/logging/logger.service.mjs +295 -0
  426. package/esm2022/lib/core/logging/logger.types.mjs +7 -0
  427. package/esm2022/lib/core/types/index.mjs +1 -1
  428. package/esm2022/lib/core/utils/index.mjs +50 -1
  429. package/esm2022/lib/version/ng-ui-system-version.mjs +12 -0
  430. package/esm2022/modal/entry-modal.mjs +5 -0
  431. package/esm2022/modal/gnggln-ng-ui-system-modal.mjs +5 -0
  432. package/esm2022/modal/lib/components/button/button.component.mjs +180 -0
  433. package/esm2022/modal/lib/components/button/button.types.mjs +6 -0
  434. package/esm2022/modal/lib/components/modal/confirm-dialog.component.mjs +151 -0
  435. package/esm2022/modal/lib/components/modal/index.mjs +4 -0
  436. package/esm2022/modal/lib/components/modal/modal.component.mjs +139 -0
  437. package/esm2022/modal/lib/components/modal/modal.service.mjs +197 -0
  438. package/esm2022/modal/lib/components/modal/modal.types.mjs +6 -0
  439. package/esm2022/modal/lib/core/types/index.mjs +6 -0
  440. package/esm2022/page-header/entry-page-header.mjs +5 -0
  441. package/esm2022/page-header/gnggln-ng-ui-system-page-header.mjs +5 -0
  442. package/esm2022/page-header/lib/components/page-header/breadcrumb.service.mjs +243 -0
  443. package/esm2022/page-header/lib/components/page-header/index.mjs +20 -0
  444. package/esm2022/page-header/lib/components/page-header/page-header.component.mjs +243 -0
  445. package/esm2022/page-header/lib/components/page-header/page-header.types.mjs +21 -0
  446. package/esm2022/public-api.mjs +17 -8
  447. package/esm2022/table/entry-table.mjs +5 -0
  448. package/esm2022/table/gnggln-ng-ui-system-table.mjs +5 -0
  449. package/esm2022/table/lib/components/table/index.mjs +2 -0
  450. package/esm2022/table/lib/components/table/paginated-table.component.mjs +421 -0
  451. package/esm2022/table/lib/components/table/table.types.mjs +6 -0
  452. package/esm2022/table/lib/core/utils/index.mjs +102 -0
  453. package/esm2022/toast/entry-toast.mjs +5 -0
  454. package/esm2022/toast/gnggln-ng-ui-system-toast.mjs +5 -0
  455. package/esm2022/toast/lib/components/toast/index.mjs +18 -0
  456. package/esm2022/toast/lib/components/toast/toast-container.component.mjs +80 -0
  457. package/esm2022/toast/lib/components/toast/toast.component.mjs +151 -0
  458. package/esm2022/toast/lib/components/toast/toast.service.mjs +156 -0
  459. package/esm2022/toast/lib/components/toast/toast.types.mjs +12 -0
  460. package/esm2022/toast/lib/core/types/index.mjs +6 -0
  461. package/esm2022/toast/lib/core/utils/index.mjs +102 -0
  462. package/fesm2022/gnggln-ng-ui-system-accordion.mjs +409 -0
  463. package/fesm2022/gnggln-ng-ui-system-accordion.mjs.map +1 -0
  464. package/fesm2022/gnggln-ng-ui-system-base-layout.mjs +1905 -0
  465. package/fesm2022/gnggln-ng-ui-system-base-layout.mjs.map +1 -0
  466. package/fesm2022/gnggln-ng-ui-system-blackbox.mjs +2829 -0
  467. package/fesm2022/gnggln-ng-ui-system-blackbox.mjs.map +1 -0
  468. package/fesm2022/gnggln-ng-ui-system-button.mjs +1148 -0
  469. package/fesm2022/gnggln-ng-ui-system-button.mjs.map +1 -0
  470. package/fesm2022/gnggln-ng-ui-system-core.mjs +117 -0
  471. package/fesm2022/gnggln-ng-ui-system-core.mjs.map +1 -0
  472. package/fesm2022/gnggln-ng-ui-system-crud-table.mjs +49600 -0
  473. package/fesm2022/gnggln-ng-ui-system-crud-table.mjs.map +1 -0
  474. package/fesm2022/gnggln-ng-ui-system-form-builder-editor.mjs +54332 -0
  475. package/fesm2022/gnggln-ng-ui-system-form-builder-editor.mjs.map +1 -0
  476. package/fesm2022/gnggln-ng-ui-system-form-builder.mjs +49609 -0
  477. package/fesm2022/gnggln-ng-ui-system-form-builder.mjs.map +1 -0
  478. package/fesm2022/gnggln-ng-ui-system-http.mjs +1878 -0
  479. package/fesm2022/gnggln-ng-ui-system-http.mjs.map +1 -0
  480. package/fesm2022/gnggln-ng-ui-system-layout-builder.mjs +2064 -0
  481. package/fesm2022/gnggln-ng-ui-system-layout-builder.mjs.map +1 -0
  482. package/fesm2022/gnggln-ng-ui-system-modal.mjs +664 -0
  483. package/fesm2022/gnggln-ng-ui-system-modal.mjs.map +1 -0
  484. package/fesm2022/gnggln-ng-ui-system-page-header.mjs +526 -0
  485. package/fesm2022/gnggln-ng-ui-system-page-header.mjs.map +1 -0
  486. package/fesm2022/gnggln-ng-ui-system-table.mjs +533 -0
  487. package/fesm2022/gnggln-ng-ui-system-table.mjs.map +1 -0
  488. package/fesm2022/gnggln-ng-ui-system-toast.mjs +516 -0
  489. package/fesm2022/gnggln-ng-ui-system-toast.mjs.map +1 -0
  490. package/fesm2022/gnggln-ng-ui-system.mjs +10068 -4234
  491. package/fesm2022/gnggln-ng-ui-system.mjs.map +1 -1
  492. package/form-builder/entry-form-builder.d.ts +4 -0
  493. package/form-builder/index.d.ts +5 -0
  494. package/form-builder/lib/components/accordion/accordion.component.d.ts +125 -0
  495. package/form-builder/lib/components/accordion/accordion.types.d.ts +64 -0
  496. package/form-builder/lib/components/accordion/index.d.ts +2 -0
  497. package/form-builder/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  498. package/form-builder/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  499. package/form-builder/lib/components/blackbox/blackbox.service.d.ts +144 -0
  500. package/form-builder/lib/components/blackbox/blackbox.types.d.ts +238 -0
  501. package/form-builder/lib/components/button/button-area.component.d.ts +93 -0
  502. package/form-builder/lib/components/button/button.component.d.ts +61 -0
  503. package/form-builder/lib/components/button/button.types.d.ts +75 -0
  504. package/form-builder/lib/components/button/index.d.ts +15 -0
  505. package/form-builder/lib/components/form-builder/adapters/it-date-adapter.d.ts +32 -0
  506. package/form-builder/lib/components/form-builder/directives/currency-input.directive.d.ts +48 -0
  507. package/form-builder/lib/components/form-builder/form-builder.component.d.ts +279 -0
  508. package/form-builder/lib/components/form-builder/form-wizard.component.d.ts +172 -0
  509. package/form-builder/lib/components/form-builder/index.d.ts +19 -0
  510. package/form-builder/lib/components/form-builder/services/form-condition.service.d.ts +46 -0
  511. package/form-builder/lib/components/form-builder/services/form-error-state.matcher.d.ts +9 -0
  512. package/form-builder/lib/components/form-builder/services/form-field-error.service.d.ts +38 -0
  513. package/form-builder/lib/components/form-builder/services/form-validation.service.d.ts +63 -0
  514. package/form-builder/lib/components/form-builder/services/location.service.d.ts +83 -0
  515. package/form-builder/lib/components/form-builder/services/nominatim-geocoding.service.d.ts +37 -0
  516. package/form-builder/lib/components/form-builder/services/wizard-sync.service.d.ts +63 -0
  517. package/form-builder/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +31 -0
  518. package/form-builder/lib/components/form-builder/sub-components/file-input/file-input.component.d.ts +41 -0
  519. package/form-builder/lib/components/form-builder/sub-components/form-fields/form-number-field.component.d.ts +42 -0
  520. package/form-builder/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.d.ts +45 -0
  521. package/form-builder/lib/components/form-builder/sub-components/form-fields/form-select-field.component.d.ts +44 -0
  522. package/form-builder/lib/components/form-builder/sub-components/form-fields/form-text-field.component.d.ts +62 -0
  523. package/form-builder/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.d.ts +39 -0
  524. package/form-builder/lib/components/form-builder/sub-components/form-fields/index.d.ts +5 -0
  525. package/form-builder/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.d.ts +84 -0
  526. package/form-builder/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +145 -0
  527. package/form-builder/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.d.ts +108 -0
  528. package/form-builder/lib/components/form-builder/types/condition.types.d.ts +51 -0
  529. package/form-builder/lib/components/form-builder/types/field.types.d.ts +330 -0
  530. package/form-builder/lib/components/form-builder/types/geocoded-location.types.d.ts +116 -0
  531. package/form-builder/lib/components/form-builder/types/index.d.ts +6 -0
  532. package/form-builder/lib/components/form-builder/types/schema.types.d.ts +304 -0
  533. package/form-builder/lib/components/form-builder/types/territoriale.types.d.ts +170 -0
  534. package/form-builder/lib/components/form-builder/types/validation.types.d.ts +179 -0
  535. package/form-builder/lib/core/logging/logger.config.d.ts +18 -0
  536. package/form-builder/lib/core/logging/logger.service.d.ts +75 -0
  537. package/form-builder/lib/core/logging/logger.types.d.ts +70 -0
  538. package/form-builder/lib/core/types/index.d.ts +133 -0
  539. package/form-builder-editor/entry-form-builder-editor.d.ts +4 -0
  540. package/form-builder-editor/index.d.ts +5 -0
  541. package/form-builder-editor/lib/components/accordion/accordion.component.d.ts +125 -0
  542. package/form-builder-editor/lib/components/accordion/accordion.types.d.ts +64 -0
  543. package/form-builder-editor/lib/components/accordion/index.d.ts +2 -0
  544. package/form-builder-editor/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  545. package/form-builder-editor/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  546. package/form-builder-editor/lib/components/blackbox/blackbox.service.d.ts +144 -0
  547. package/form-builder-editor/lib/components/blackbox/blackbox.types.d.ts +238 -0
  548. package/form-builder-editor/lib/components/button/button-area.component.d.ts +93 -0
  549. package/form-builder-editor/lib/components/button/button.component.d.ts +61 -0
  550. package/form-builder-editor/lib/components/button/button.types.d.ts +75 -0
  551. package/form-builder-editor/lib/components/button/index.d.ts +15 -0
  552. package/form-builder-editor/lib/components/form-builder/adapters/it-date-adapter.d.ts +32 -0
  553. package/form-builder-editor/lib/components/form-builder/directives/currency-input.directive.d.ts +48 -0
  554. package/form-builder-editor/lib/components/form-builder/form-builder.component.d.ts +279 -0
  555. package/form-builder-editor/lib/components/form-builder/services/form-condition.service.d.ts +46 -0
  556. package/form-builder-editor/lib/components/form-builder/services/form-error-state.matcher.d.ts +9 -0
  557. package/form-builder-editor/lib/components/form-builder/services/form-field-error.service.d.ts +38 -0
  558. package/form-builder-editor/lib/components/form-builder/services/form-validation.service.d.ts +63 -0
  559. package/form-builder-editor/lib/components/form-builder/services/location.service.d.ts +83 -0
  560. package/form-builder-editor/lib/components/form-builder/services/nominatim-geocoding.service.d.ts +37 -0
  561. package/form-builder-editor/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +31 -0
  562. package/form-builder-editor/lib/components/form-builder/sub-components/file-input/file-input.component.d.ts +41 -0
  563. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-number-field.component.d.ts +42 -0
  564. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.d.ts +45 -0
  565. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-select-field.component.d.ts +44 -0
  566. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-text-field.component.d.ts +62 -0
  567. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.d.ts +39 -0
  568. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/index.d.ts +5 -0
  569. package/form-builder-editor/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.d.ts +84 -0
  570. package/form-builder-editor/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +145 -0
  571. package/form-builder-editor/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.d.ts +108 -0
  572. package/form-builder-editor/lib/components/form-builder/types/condition.types.d.ts +51 -0
  573. package/form-builder-editor/lib/components/form-builder/types/field.types.d.ts +330 -0
  574. package/form-builder-editor/lib/components/form-builder/types/geocoded-location.types.d.ts +116 -0
  575. package/form-builder-editor/lib/components/form-builder/types/index.d.ts +6 -0
  576. package/form-builder-editor/lib/components/form-builder/types/schema.types.d.ts +304 -0
  577. package/form-builder-editor/lib/components/form-builder/types/territoriale.types.d.ts +170 -0
  578. package/form-builder-editor/lib/components/form-builder/types/validation.types.d.ts +179 -0
  579. package/form-builder-editor/lib/components/form-builder-editor/form-builder-editor.component.d.ts +117 -0
  580. package/form-builder-editor/lib/components/form-builder-editor/form-builder-editor.service.d.ts +38 -0
  581. package/form-builder-editor/lib/components/form-builder-editor/index.d.ts +17 -0
  582. package/form-builder-editor/lib/components/form-builder-editor/presets/editor-presets.d.ts +25 -0
  583. package/form-builder-editor/lib/components/form-builder-editor/services/editor-persistence.service.d.ts +42 -0
  584. package/form-builder-editor/lib/components/form-builder-editor/services/editor-state.service.d.ts +66 -0
  585. package/form-builder-editor/lib/components/form-builder-editor/services/field-factory.service.d.ts +28 -0
  586. package/form-builder-editor/lib/components/form-builder-editor/sub-components/condition-editor/condition-editor.component.d.ts +139 -0
  587. package/form-builder-editor/lib/components/form-builder-editor/sub-components/editor-toolbar/editor-toolbar.component.d.ts +43 -0
  588. package/form-builder-editor/lib/components/form-builder-editor/sub-components/field-config-panel/field-config-panel.component.d.ts +83 -0
  589. package/form-builder-editor/lib/components/form-builder-editor/sub-components/field-palette/field-palette.component.d.ts +40 -0
  590. package/form-builder-editor/lib/components/form-builder-editor/sub-components/form-values-panel/form-values-panel.component.d.ts +51 -0
  591. package/form-builder-editor/lib/components/form-builder-editor/sub-components/options-editor/options-editor.component.d.ts +63 -0
  592. package/form-builder-editor/lib/components/form-builder-editor/sub-components/preview-container/preview-container.component.d.ts +68 -0
  593. package/form-builder-editor/lib/components/form-builder-editor/sub-components/section-editor/section-editor.component.d.ts +82 -0
  594. package/form-builder-editor/lib/components/form-builder-editor/sub-components/validation-editor/validation-editor.component.d.ts +112 -0
  595. package/form-builder-editor/lib/components/form-builder-editor/types/editor.types.d.ts +124 -0
  596. package/form-builder-editor/lib/components/modal/confirm-dialog.component.d.ts +46 -0
  597. package/form-builder-editor/lib/components/modal/index.d.ts +4 -0
  598. package/form-builder-editor/lib/components/modal/modal.component.d.ts +44 -0
  599. package/form-builder-editor/lib/components/modal/modal.service.d.ts +93 -0
  600. package/form-builder-editor/lib/components/modal/modal.types.d.ts +110 -0
  601. package/form-builder-editor/lib/core/logging/logger.config.d.ts +18 -0
  602. package/form-builder-editor/lib/core/logging/logger.service.d.ts +75 -0
  603. package/form-builder-editor/lib/core/logging/logger.types.d.ts +70 -0
  604. package/form-builder-editor/lib/core/types/index.d.ts +133 -0
  605. package/http/entry-http.d.ts +4 -0
  606. package/http/index.d.ts +5 -0
  607. package/http/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  608. package/http/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  609. package/http/lib/components/blackbox/blackbox.service.d.ts +144 -0
  610. package/http/lib/components/blackbox/blackbox.types.d.ts +238 -0
  611. package/http/lib/components/http/http-message.handler.d.ts +59 -0
  612. package/http/lib/components/http/http.service.d.ts +98 -0
  613. package/http/lib/components/http/http.tokens.d.ts +29 -0
  614. package/http/lib/components/http/http.types.d.ts +50 -0
  615. package/http/lib/components/http/index.d.ts +17 -0
  616. package/http/lib/components/layout-builder/layout-builder.types.d.ts +436 -0
  617. package/http/lib/components/layout-builder/layout.service.d.ts +100 -0
  618. package/http/lib/components/toast/toast-container.component.d.ts +27 -0
  619. package/http/lib/components/toast/toast.component.d.ts +37 -0
  620. package/http/lib/components/toast/toast.service.d.ts +39 -0
  621. package/http/lib/components/toast/toast.types.d.ts +52 -0
  622. package/http/lib/core/types/index.d.ts +133 -0
  623. package/http/lib/core/utils/index.d.ts +60 -0
  624. package/layout-builder/entry-layout-builder.d.ts +4 -0
  625. package/layout-builder/index.d.ts +5 -0
  626. package/layout-builder/lib/components/layout-builder/index.d.ts +16 -0
  627. package/layout-builder/lib/components/layout-builder/layout-builder.component.d.ts +85 -0
  628. package/layout-builder/lib/components/layout-builder/layout-builder.types.d.ts +436 -0
  629. package/layout-builder/lib/components/layout-builder/layout.service.d.ts +100 -0
  630. package/layout-builder/lib/core/types/index.d.ts +133 -0
  631. package/lib/components/accordion/accordion.component.d.ts +10 -3
  632. package/lib/components/accordion/accordion.types.d.ts +2 -0
  633. package/lib/components/base-layout/base-layout.component.d.ts +36 -11
  634. package/lib/components/base-layout/base-layout.types.d.ts +14 -0
  635. package/lib/components/base-layout/index.d.ts +1 -1
  636. package/lib/components/blackbox/blackbox-debugger.component.d.ts +80 -0
  637. package/lib/components/blackbox/blackbox-debugger.service.d.ts +34 -0
  638. package/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  639. package/lib/components/blackbox/blackbox-json-viewer.component.d.ts +18 -0
  640. package/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  641. package/lib/components/blackbox/blackbox.interceptor.d.ts +38 -0
  642. package/lib/components/blackbox/blackbox.service.d.ts +144 -0
  643. package/lib/components/blackbox/blackbox.types.d.ts +238 -0
  644. package/lib/components/blackbox/index.d.ts +23 -0
  645. package/lib/components/blackbox/ui-track.directive.d.ts +20 -0
  646. package/lib/components/button/button-area.component.d.ts +6 -1
  647. package/lib/components/button/button.component.d.ts +8 -2
  648. package/lib/components/button/button.types.d.ts +5 -0
  649. package/lib/components/form-builder/form-builder.component.d.ts +125 -29
  650. package/lib/components/form-builder/form-wizard.component.d.ts +89 -4
  651. package/lib/components/form-builder/index.d.ts +7 -1
  652. package/lib/components/form-builder/services/form-error-state.matcher.d.ts +9 -0
  653. package/lib/components/form-builder/services/form-field-error.service.d.ts +38 -0
  654. package/lib/components/form-builder/services/nominatim-geocoding.service.d.ts +37 -0
  655. package/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +9 -6
  656. package/lib/components/form-builder/sub-components/form-fields/form-number-field.component.d.ts +42 -0
  657. package/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.d.ts +45 -0
  658. package/lib/components/form-builder/sub-components/form-fields/form-select-field.component.d.ts +44 -0
  659. package/lib/components/form-builder/sub-components/form-fields/form-text-field.component.d.ts +62 -0
  660. package/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.d.ts +39 -0
  661. package/lib/components/form-builder/sub-components/form-fields/index.d.ts +5 -0
  662. package/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.d.ts +84 -0
  663. package/lib/components/form-builder/types/field.types.d.ts +48 -6
  664. package/lib/components/form-builder/types/geocoded-location.types.d.ts +116 -0
  665. package/lib/components/form-builder/types/index.d.ts +4 -3
  666. package/lib/components/form-builder/types/schema.types.d.ts +83 -6
  667. package/lib/components/form-builder/types/validation.types.d.ts +5 -0
  668. package/lib/components/form-builder-editor/index.d.ts +2 -0
  669. package/lib/components/form-builder-editor/presets/editor-presets.d.ts +25 -0
  670. package/lib/components/http/http-message.handler.d.ts +59 -0
  671. package/lib/components/http/http.service.d.ts +98 -0
  672. package/lib/components/http/http.tokens.d.ts +29 -0
  673. package/lib/components/http/http.types.d.ts +50 -0
  674. package/lib/components/http/index.d.ts +17 -0
  675. package/lib/components/page-header/breadcrumb.service.d.ts +2 -2
  676. package/lib/components/table/table.types.d.ts +5 -0
  677. package/lib/components/toast/index.d.ts +17 -0
  678. package/lib/components/toast/toast-container.component.d.ts +27 -0
  679. package/lib/components/toast/toast.component.d.ts +37 -0
  680. package/lib/components/toast/toast.service.d.ts +39 -0
  681. package/lib/components/toast/toast.types.d.ts +52 -0
  682. package/lib/core/logging/index.d.ts +8 -0
  683. package/lib/core/logging/logger.config.d.ts +18 -0
  684. package/lib/core/logging/logger.service.d.ts +75 -0
  685. package/lib/core/logging/logger.types.d.ts +70 -0
  686. package/lib/core/types/index.d.ts +76 -0
  687. package/lib/core/utils/index.d.ts +31 -0
  688. package/lib/version/ng-ui-system-version.d.ts +9 -0
  689. package/modal/entry-modal.d.ts +4 -0
  690. package/modal/index.d.ts +5 -0
  691. package/modal/lib/components/button/button.component.d.ts +61 -0
  692. package/modal/lib/components/button/button.types.d.ts +75 -0
  693. package/modal/lib/components/modal/confirm-dialog.component.d.ts +46 -0
  694. package/modal/lib/components/modal/index.d.ts +4 -0
  695. package/modal/lib/components/modal/modal.component.d.ts +44 -0
  696. package/modal/lib/components/modal/modal.service.d.ts +93 -0
  697. package/modal/lib/components/modal/modal.types.d.ts +110 -0
  698. package/modal/lib/core/types/index.d.ts +133 -0
  699. package/package.json +93 -8
  700. package/page-header/entry-page-header.d.ts +4 -0
  701. package/page-header/index.d.ts +5 -0
  702. package/page-header/lib/components/page-header/breadcrumb.service.d.ts +96 -0
  703. package/page-header/lib/components/page-header/index.d.ts +16 -0
  704. package/page-header/lib/components/page-header/page-header.component.d.ts +59 -0
  705. package/page-header/lib/components/page-header/page-header.types.d.ts +96 -0
  706. package/public-api.d.ts +11 -6
  707. package/table/entry-table.d.ts +4 -0
  708. package/table/index.d.ts +5 -0
  709. package/table/lib/components/table/index.d.ts +2 -0
  710. package/table/lib/components/table/paginated-table.component.d.ts +85 -0
  711. package/table/lib/components/table/table.types.d.ts +86 -0
  712. package/table/lib/core/utils/index.d.ts +60 -0
  713. package/toast/entry-toast.d.ts +4 -0
  714. package/toast/index.d.ts +5 -0
  715. package/toast/lib/components/toast/index.d.ts +17 -0
  716. package/toast/lib/components/toast/toast-container.component.d.ts +27 -0
  717. package/toast/lib/components/toast/toast.component.d.ts +37 -0
  718. package/toast/lib/components/toast/toast.service.d.ts +39 -0
  719. package/toast/lib/components/toast/toast.types.d.ts +52 -0
  720. package/toast/lib/core/types/index.d.ts +133 -0
  721. package/toast/lib/core/utils/index.d.ts +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gnggln-ng-ui-system-table.mjs","sources":["../../../packages/ng-ui-system/src/lib/core/utils/index.ts","../../../packages/ng-ui-system/src/lib/components/table/paginated-table.component.ts","../../../packages/ng-ui-system/src/entry-table.ts","../../../packages/ng-ui-system/src/gnggln-ng-ui-system-table.ts"],"sourcesContent":["/**\r\n * Shared utility functions for ng-ui-system components.\r\n */\r\n\r\n/**\r\n * Generates a unique ID with an optional prefix.\r\n * Uses crypto.randomUUID() when available for better randomness, falls back to crypto.getRandomValues().\r\n * Useful for linking labels to form controls, ARIA attributes, etc.\r\n *\r\n * @param prefix - Optional prefix for the generated ID.\r\n * @returns A unique string ID.\r\n */\r\nexport function uiUniqueId(prefix = 'ui'): string {\r\n let randomPart: string;\r\n\r\n // Try crypto.randomUUID() first (modern browsers/Node 19+)\r\n if (typeof crypto !== 'undefined' && crypto.randomUUID) {\r\n randomPart = crypto.randomUUID().substring(0, 8);\r\n }\r\n // Fallback to crypto.getRandomValues()\r\n else if (typeof crypto !== 'undefined' && crypto.getRandomValues) {\r\n const array = new Uint8Array(4);\r\n crypto.getRandomValues(array);\r\n randomPart = Array.from(array, (byte) => byte.toString(36))\r\n .join('')\r\n .substring(0, 8);\r\n }\r\n // Final fallback to Math.random() for older environments\r\n else {\r\n randomPart = Math.random().toString(36).substring(2, 9); // NOSONAR - Fallback for environments without crypto API\r\n }\r\n\r\n return `${prefix}-${randomPart}`;\r\n}\r\n\r\n/**\r\n * Coerces a value to a boolean.\r\n * Useful for handling string boolean attributes in templates.\r\n *\r\n * @param value - The value to coerce.\r\n * @returns The boolean representation.\r\n */\r\nexport function uiCoerceBoolean(value: unknown): boolean {\r\n return value != null && `${value}` !== 'false';\r\n}\r\n\r\n/**\r\n * Clamps a number between a minimum and maximum value.\r\n *\r\n * @param value - The value to clamp.\r\n * @param min - The minimum allowed value.\r\n * @param max - The maximum allowed value.\r\n * @returns The clamped value.\r\n */\r\nexport function uiClamp(value: number, min: number, max: number): number {\r\n return Math.max(min, Math.min(max, value));\r\n}\r\n\r\n/**\r\n * Removes all `null` and `undefined` values from an object.\r\n * Returns a new object — the original is not mutated.\r\n *\r\n * @param obj - The source object.\r\n * @returns A shallow copy with nullish entries removed.\r\n *\r\n * @example\r\n * ```typescript\r\n * uiFilterNullish({ a: 1, b: null, c: 'x', d: undefined });\r\n * // → { a: 1, c: 'x' }\r\n * ```\r\n */\r\nexport function uiFilterNullish<T extends Record<string, unknown>>(obj: T): Partial<T> {\r\n return Object.entries(obj)\r\n .filter(([, value]) => value !== null && value !== undefined)\r\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {} as Partial<T>);\r\n}\r\n\r\n/**\r\n * Converts a key-value object into a URL query string.\r\n * Nullish values are filtered out automatically.\r\n *\r\n * @param params - Query parameter object.\r\n * @returns A query string like `?key=value&key2=value2`, or an empty string if no params.\r\n *\r\n * @example\r\n * ```typescript\r\n * uiQueryParamsToPath({ search: 'test', page: 1, active: true });\r\n * // → '?search=test&page=1&active=true'\r\n *\r\n * uiQueryParamsToPath(undefined);\r\n * // → ''\r\n * ```\r\n */\r\nexport function uiQueryParamsToPath(params?: Record<string, unknown>): string {\r\n if (!params) return '';\r\n const searchParams = new URLSearchParams();\r\n Object.entries(uiFilterNullish(params)).forEach(([key, value]) => {\r\n if (Array.isArray(value)) {\r\n value.forEach((v) => searchParams.append(key, String(v ?? '')));\r\n } else {\r\n searchParams.append(key, String(value ?? ''));\r\n }\r\n });\r\n const str = searchParams.toString();\r\n return str ? `?${str}` : '';\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectionStrategy,\r\n ViewEncapsulation,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { MatPaginatorModule, PageEvent } from '@angular/material/paginator';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { LucideAngularModule } from 'lucide-angular';\r\nimport { UiTableColumn, UiTableSortEvent, UiTablePageEvent } from './table.types';\r\nimport { uiUniqueId } from '../../core/utils';\r\n\r\n/**\r\n * Tabella paginata standalone con ordinamento, colonne sticky,\r\n * ellipsis automatica, stato di caricamento e template personalizzabili.\r\n *\r\n * Progettata per paginazione server-side: emette eventi di cambio pagina\r\n * e ordinamento che il componente genitore gestisce per il recupero dati.\r\n *\r\n * @selector ui-paginated-table\r\n *\r\n * @example\r\n * ```html\r\n * <ui-paginated-table\r\n * [data]=\"users\"\r\n * [columns]=\"columns\"\r\n * [totalItems]=\"totalUsers\"\r\n * [pageSize]=\"10\"\r\n * [loading]=\"isLoading\"\r\n * (pageChange)=\"onPageChange($event)\"\r\n * (sortChange)=\"onSort($event)\"\r\n * (rowClick)=\"onUserClick($event)\"\r\n * />\r\n * ```\r\n */\r\n@Component({\r\n selector: 'ui-paginated-table',\r\n standalone: true,\r\n imports: [NgTemplateOutlet, MatPaginatorModule, MatTooltipModule, LucideAngularModule],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n host: { class: 'ui-paginated-table-host' },\r\n template: `\r\n <div class=\"ui-table\" [attr.id]=\"tableId\">\r\n <div class=\"ui-table__container\">\r\n @if (data.length > 0) {\r\n <table class=\"ui-table__table\" role=\"grid\" [attr.aria-busy]=\"loading\">\r\n <thead>\r\n <tr>\r\n @for (col of columns; track col.property) {\r\n <th\r\n [class]=\"getHeaderClasses(col)\"\r\n [style.width]=\"col.width || null\"\r\n [style.text-align]=\"col.align || 'left'\"\r\n [attr.aria-sort]=\"getAriaSort(col)\"\r\n [attr.role]=\"col.sortable ? 'columnheader button' : 'columnheader'\"\r\n [attr.tabindex]=\"col.sortable ? 0 : null\"\r\n (click)=\"onHeaderClick(col)\"\r\n (keydown.enter)=\"onHeaderClick(col)\"\r\n (keydown.space)=\"onHeaderClick(col); $event.preventDefault()\"\r\n >\r\n <div class=\"ui-table__header-content\">\r\n @if (col.headerTemplate) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"col.headerTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: col, column: col }\"\r\n />\r\n } @else {\r\n <span class=\"ui-table__header-text\">{{ col.header }}</span>\r\n }\r\n @if (col.sortable) {\r\n <span class=\"ui-table__sort-icon\" aria-hidden=\"true\">\r\n @if (isColumnSorted(col)) {\r\n @if (currentSortDirection === 'asc') {\r\n <lucide-icon name=\"chevron-up\" [size]=\"14\" />\r\n } @else {\r\n <lucide-icon name=\"chevron-down\" [size]=\"14\" />\r\n }\r\n } @else {\r\n <span class=\"ui-table__sort-hint\">\r\n <lucide-icon name=\"chevron-up\" [size]=\"10\" />\r\n <lucide-icon name=\"chevron-down\" [size]=\"10\" />\r\n </span>\r\n }\r\n </span>\r\n }\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (row of data; track trackRow($index, row)) {\r\n <tr\r\n class=\"ui-table__row\"\r\n [class.ui-table__row--clickable]=\"rowClick.observed\"\r\n (click)=\"onRowClick(row)\"\r\n [attr.tabindex]=\"rowClick.observed ? 0 : null\"\r\n (keydown.enter)=\"rowClick.observed ? onRowClick(row) : null\"\r\n >\r\n @for (col of columns; track col.property) {\r\n <td\r\n [class]=\"getCellClasses(col)\"\r\n [style.text-align]=\"col.align || 'left'\"\r\n >\r\n @if (col.template) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"col.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: row, column: col }\"\r\n />\r\n } @else if (col.ellipsis && shouldTruncate(row[col.property], col)) {\r\n <span\r\n class=\"ui-table__ellipsis\"\r\n [matTooltip]=\"'' + row[col.property]\"\r\n >{{ truncateText(row[col.property], col) }}</span>\r\n } @else {\r\n {{ row[col.property] }}\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </tbody>\r\n </table>\r\n } @else if (!loading) {\r\n <div class=\"ui-table__empty\" role=\"status\">\r\n @if (emptyTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"emptyTemplate\" />\r\n } @else {\r\n <lucide-icon name=\"info\" [size]=\"24\" class=\"ui-table__empty-icon\" aria-hidden=\"true\" />\r\n <p class=\"ui-table__empty-text\">{{ emptyMessage }}</p>\r\n }\r\n </div>\r\n }\r\n\r\n @if (loading) {\r\n <div class=\"ui-table__loading\" aria-live=\"polite\">\r\n <span class=\"ui-table__spinner\" aria-hidden=\"true\"></span>\r\n <span class=\"ui-table__sr-only\">Caricamento in corso</span>\r\n </div>\r\n }\r\n </div>\r\n\r\n @if (showPaginator && totalItems > 0) {\r\n <mat-paginator\r\n [length]=\"totalItems\"\r\n [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\"\r\n [pageIndex]=\"pageIndex\"\r\n (page)=\"onPageChange($event)\"\r\n showFirstLastButtons\r\n />\r\n }\r\n </div>\r\n `,\r\n styleUrl: './paginated-table.component.scss',\r\n})\r\nexport class UiPaginatedTableComponent {\r\n /** @internal Identificatore univoco per l'istanza. */\r\n readonly tableId = uiUniqueId('ui-table');\r\n\r\n // ── Inputs dati ──────────────────────────────────────────────\r\n\r\n /** Array di righe da visualizzare nella pagina corrente. */\r\n @Input() data: Record<string, any>[] = [];\r\n\r\n /** Definizione delle colonne della tabella. */\r\n @Input() columns: UiTableColumn[] = [];\r\n\r\n /** Numero totale di elementi (per la paginazione server-side). */\r\n @Input() totalItems = 0;\r\n\r\n // ── Inputs paginazione ───────────────────────────────────────\r\n\r\n /** Numero di righe per pagina. */\r\n @Input() pageSize = 10;\r\n\r\n /** Opzioni selezionabili per il numero di righe per pagina. */\r\n @Input() pageSizeOptions: number[] = [5, 10, 25, 50];\r\n\r\n /** Indice della pagina corrente (0-based). */\r\n @Input() pageIndex = 0;\r\n\r\n /** Mostra il paginatore sotto la tabella. */\r\n @Input() showPaginator = true;\r\n\r\n // ── Inputs stato ─────────────────────────────────────────────\r\n\r\n /** Mostra l'overlay di caricamento sopra la tabella. */\r\n @Input() loading = false;\r\n\r\n /** Messaggio visualizzato quando non ci sono dati. */\r\n @Input() emptyMessage = 'Nessun risultato trovato';\r\n\r\n /** Template personalizzato per lo stato vuoto. */\r\n @Input() emptyTemplate: TemplateRef<unknown> | null = null;\r\n\r\n // ── Outputs ──────────────────────────────────────────────────\r\n\r\n /** Emesso quando l'utente cambia pagina o numero di righe. */\r\n @Output() pageChange = new EventEmitter<UiTablePageEvent>();\r\n\r\n /** Emesso quando l'utente ordina una colonna. */\r\n @Output() sortChange = new EventEmitter<UiTableSortEvent>();\r\n\r\n /** Emesso quando l'utente clicca su una riga. */\r\n @Output() rowClick = new EventEmitter<Record<string, any>>();\r\n\r\n // ── Stato ordinamento interno ────────────────────────────────\r\n\r\n /** @internal Colonna attualmente ordinata. */\r\n currentSortColumn: string | null = null;\r\n\r\n /** @internal Direzione ordinamento corrente. */\r\n currentSortDirection: 'asc' | 'desc' | null = null;\r\n\r\n // ── Gestione header ──────────────────────────────────────────\r\n\r\n /** @internal Gestisce il click su un'intestazione di colonna. */\r\n onHeaderClick(col: UiTableColumn): void {\r\n if (!col.sortable) return;\r\n\r\n if (this.currentSortColumn === col.property) {\r\n this.currentSortDirection = this.nextSortDirection(this.currentSortDirection);\r\n if (this.currentSortDirection === null) {\r\n this.currentSortColumn = null;\r\n }\r\n } else {\r\n this.currentSortColumn = col.property;\r\n this.currentSortDirection = 'asc';\r\n }\r\n\r\n this.sortChange.emit({\r\n column: col.property,\r\n direction: this.currentSortDirection,\r\n sortType: col.sortType || 'text',\r\n });\r\n }\r\n\r\n /** @internal Indica se la colonna e attualmente ordinata. */\r\n isColumnSorted(col: UiTableColumn): boolean {\r\n return col.sortable === true && col.property === this.currentSortColumn && this.currentSortDirection !== null;\r\n }\r\n\r\n /** @internal Attributo aria-sort per accessibilita. */\r\n getAriaSort(col: UiTableColumn): string | null {\r\n if (!col.sortable) return null;\r\n if (!this.isColumnSorted(col)) return 'none';\r\n return this.currentSortDirection === 'asc' ? 'ascending' : 'descending';\r\n }\r\n\r\n // ── Gestione paginazione ─────────────────────────────────────\r\n\r\n /** @internal Gestisce il cambio pagina dal MatPaginator. */\r\n onPageChange(event: PageEvent): void {\r\n this.pageIndex = event.pageIndex;\r\n this.pageSize = event.pageSize;\r\n this.pageChange.emit({\r\n pageIndex: event.pageIndex,\r\n pageSize: event.pageSize,\r\n length: event.length,\r\n });\r\n }\r\n\r\n // ── Gestione righe ───────────────────────────────────────────\r\n\r\n /** @internal Gestisce il click su una riga. */\r\n onRowClick(row: Record<string, any>): void {\r\n this.rowClick.emit(row);\r\n }\r\n\r\n /** @internal Track function per il loop @for sulle righe. */\r\n trackRow(index: number, row: Record<string, any>): unknown {\r\n return row['id'] ?? index;\r\n }\r\n\r\n // ── Ellipsis ─────────────────────────────────────────────────\r\n\r\n /** @internal Verifica se il testo deve essere troncato. */\r\n shouldTruncate(value: unknown, col: UiTableColumn): boolean {\r\n if (value == null) return false;\r\n return String(value).length > (col.maxLength ?? 50);\r\n }\r\n\r\n /** @internal Tronca il testo con ellipsis. */\r\n truncateText(value: unknown, col: UiTableColumn): string {\r\n if (value == null) return '';\r\n const str = String(value);\r\n const max = col.maxLength ?? 50;\r\n return str.length > max ? str.substring(0, max) + '\\u2026' : str;\r\n }\r\n\r\n // ── Classi CSS ───────────────────────────────────────────────\r\n\r\n /** @internal Classi CSS per l'header di colonna. */\r\n getHeaderClasses(col: UiTableColumn): string {\r\n return [\r\n 'ui-table__th',\r\n col.sortable ? 'ui-table__th--sortable' : '',\r\n this.isColumnSorted(col) ? 'ui-table__th--sorted' : '',\r\n col.sticky ? 'ui-table__th--sticky' : '',\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n\r\n /** @internal Classi CSS per una cella. */\r\n getCellClasses(col: UiTableColumn): string {\r\n return ['ui-table__td', col.sticky ? 'ui-table__td--sticky' : ''].filter(Boolean).join(' ');\r\n }\r\n\r\n // ── Utilita private ──────────────────────────────────────────\r\n\r\n /** @internal Calcola la prossima direzione nel ciclo asc -> desc -> null. */\r\n private nextSortDirection(current: 'asc' | 'desc' | null): 'asc' | 'desc' | null {\r\n const cycle: ('asc' | 'desc' | null)[] = ['asc', 'desc', null];\r\n return cycle[(cycle.indexOf(current) + 1) % cycle.length];\r\n }\r\n}\r\n","/**\n * Bootstrap del secondary entry `@gnggln/ng-ui-system/table`. Tabella paginata.\n */\nexport * from './lib/components/table/index';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './entry-table';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,516 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, inject, ChangeDetectorRef, ApplicationRef, EnvironmentInjector, createComponent, Injectable } from '@angular/core';
3
+ import { CommonModule, DOCUMENT } from '@angular/common';
4
+ import * as i1 from 'lucide-angular';
5
+ import { LucideAngularModule } from 'lucide-angular';
6
+
7
+ /**
8
+ * Shared utility functions for ng-ui-system components.
9
+ */
10
+ /**
11
+ * Generates a unique ID with an optional prefix.
12
+ * Uses crypto.randomUUID() when available for better randomness, falls back to crypto.getRandomValues().
13
+ * Useful for linking labels to form controls, ARIA attributes, etc.
14
+ *
15
+ * @param prefix - Optional prefix for the generated ID.
16
+ * @returns A unique string ID.
17
+ */
18
+ function uiUniqueId(prefix = 'ui') {
19
+ let randomPart;
20
+ // Try crypto.randomUUID() first (modern browsers/Node 19+)
21
+ if (typeof crypto !== 'undefined' && crypto.randomUUID) {
22
+ randomPart = crypto.randomUUID().substring(0, 8);
23
+ }
24
+ // Fallback to crypto.getRandomValues()
25
+ else if (typeof crypto !== 'undefined' && crypto.getRandomValues) {
26
+ const array = new Uint8Array(4);
27
+ crypto.getRandomValues(array);
28
+ randomPart = Array.from(array, (byte) => byte.toString(36))
29
+ .join('')
30
+ .substring(0, 8);
31
+ }
32
+ // Final fallback to Math.random() for older environments
33
+ else {
34
+ randomPart = Math.random().toString(36).substring(2, 9); // NOSONAR - Fallback for environments without crypto API
35
+ }
36
+ return `${prefix}-${randomPart}`;
37
+ }
38
+ /**
39
+ * Coerces a value to a boolean.
40
+ * Useful for handling string boolean attributes in templates.
41
+ *
42
+ * @param value - The value to coerce.
43
+ * @returns The boolean representation.
44
+ */
45
+ function uiCoerceBoolean(value) {
46
+ return value != null && `${value}` !== 'false';
47
+ }
48
+ /**
49
+ * Clamps a number between a minimum and maximum value.
50
+ *
51
+ * @param value - The value to clamp.
52
+ * @param min - The minimum allowed value.
53
+ * @param max - The maximum allowed value.
54
+ * @returns The clamped value.
55
+ */
56
+ function uiClamp(value, min, max) {
57
+ return Math.max(min, Math.min(max, value));
58
+ }
59
+ /**
60
+ * Removes all `null` and `undefined` values from an object.
61
+ * Returns a new object — the original is not mutated.
62
+ *
63
+ * @param obj - The source object.
64
+ * @returns A shallow copy with nullish entries removed.
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * uiFilterNullish({ a: 1, b: null, c: 'x', d: undefined });
69
+ * // → { a: 1, c: 'x' }
70
+ * ```
71
+ */
72
+ function uiFilterNullish(obj) {
73
+ return Object.entries(obj)
74
+ .filter(([, value]) => value !== null && value !== undefined)
75
+ .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});
76
+ }
77
+ /**
78
+ * Converts a key-value object into a URL query string.
79
+ * Nullish values are filtered out automatically.
80
+ *
81
+ * @param params - Query parameter object.
82
+ * @returns A query string like `?key=value&key2=value2`, or an empty string if no params.
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * uiQueryParamsToPath({ search: 'test', page: 1, active: true });
87
+ * // → '?search=test&page=1&active=true'
88
+ *
89
+ * uiQueryParamsToPath(undefined);
90
+ * // → ''
91
+ * ```
92
+ */
93
+ function uiQueryParamsToPath(params) {
94
+ if (!params)
95
+ return '';
96
+ const searchParams = new URLSearchParams();
97
+ Object.entries(uiFilterNullish(params)).forEach(([key, value]) => {
98
+ if (Array.isArray(value)) {
99
+ value.forEach((v) => searchParams.append(key, String(v ?? '')));
100
+ }
101
+ else {
102
+ searchParams.append(key, String(value ?? ''));
103
+ }
104
+ });
105
+ const str = searchParams.toString();
106
+ return str ? `?${str}` : '';
107
+ }
108
+
109
+ /**
110
+ * @module ng-ui-system/toast
111
+ * Types and interfaces for the proprietary toast notification system.
112
+ */
113
+ /** Defaults applied to every toast unless overridden. */
114
+ const UI_TOAST_DEFAULTS = {
115
+ duration: 5000,
116
+ position: 'top-right',
117
+ dismissible: true,
118
+ enableHtml: false,
119
+ };
120
+
121
+ /**
122
+ * Individual toast notification element.
123
+ *
124
+ * Rendered dynamically by `UiToastContainerComponent`.
125
+ * Handles its own enter/exit CSS animations and auto-dismiss countdown.
126
+ *
127
+ * @selector ui-toast
128
+ * @internal Not intended for direct use — managed by `UiToastService`.
129
+ */
130
+ class UiToastComponent {
131
+ constructor() {
132
+ /** Toast message text. */
133
+ this.message = '';
134
+ /** Toast type for styling. */
135
+ this.type = 'info';
136
+ /** Animation state. */
137
+ this.state = 'entering';
138
+ /** Whether the close button is shown. */
139
+ this.dismissible = true;
140
+ /** Whether HTML rendering is enabled. */
141
+ this.enableHtml = false;
142
+ /** Emitted when the user clicks the dismiss button. */
143
+ this.dismissed = new EventEmitter();
144
+ }
145
+ /** Resolved icon name based on type. */
146
+ get resolvedIcon() {
147
+ if (this.icon)
148
+ return this.icon;
149
+ switch (this.type) {
150
+ case 'success': return 'check-circle';
151
+ case 'error': return 'x-circle';
152
+ case 'warning': return 'alert-triangle';
153
+ case 'info':
154
+ default: return 'info';
155
+ }
156
+ }
157
+ ngOnInit() {
158
+ // Transition from entering → visible after the CSS animation completes
159
+ this.enterTimeout = setTimeout(() => {
160
+ this.state = 'visible';
161
+ }, 320);
162
+ }
163
+ ngOnDestroy() {
164
+ if (this.enterTimeout)
165
+ clearTimeout(this.enterTimeout);
166
+ }
167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
168
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UiToastComponent, isStandalone: true, selector: "ui-toast", inputs: { message: "message", type: "type", state: "state", dismissible: "dismissible", enableHtml: "enableHtml", icon: "icon", customClass: "customClass" }, outputs: { dismissed: "dismissed" }, host: { classAttribute: "ui-toast-host" }, ngImport: i0, template: `
169
+ <div
170
+ class="ui-toast {{ customClass || '' }}"
171
+ [class.ui-toast--success]="type === 'success'"
172
+ [class.ui-toast--error]="type === 'error'"
173
+ [class.ui-toast--warning]="type === 'warning'"
174
+ [class.ui-toast--info]="type === 'info'"
175
+ [class.ui-toast--entering]="state === 'entering'"
176
+ [class.ui-toast--visible]="state === 'visible'"
177
+ [class.ui-toast--exiting]="state === 'exiting'"
178
+ role="alert"
179
+ aria-live="assertive"
180
+ aria-atomic="true"
181
+ >
182
+ <div class="ui-toast__icon">
183
+ <lucide-icon [name]="resolvedIcon" [size]="20"></lucide-icon>
184
+ </div>
185
+
186
+ <div class="ui-toast__content">
187
+ @if (enableHtml) {
188
+ <span class="ui-toast__message" [innerHTML]="message"></span>
189
+ } @else {
190
+ <span class="ui-toast__message">{{ message }}</span>
191
+ }
192
+ </div>
193
+
194
+ @if (dismissible) {
195
+ <button
196
+ class="ui-toast__close"
197
+ type="button"
198
+ (click)="dismissed.emit()"
199
+ aria-label="Chiudi notifica"
200
+ >
201
+ <lucide-icon name="x" [size]="16"></lucide-icon>
202
+ </button>
203
+ }
204
+ </div>
205
+ `, isInline: true, styles: [".ui-toast-host{display:contents}.ui-toast{display:flex;align-items:flex-start;gap:var(--ui-spacing-3, 12px);padding:var(--ui-spacing-3, 12px) var(--ui-spacing-4, 16px);border-radius:var(--ui-radius-md, 8px);min-width:320px;max-width:440px;font-family:var(--ui-font-family, \"Inter\", sans-serif);font-size:var(--ui-font-size-sm, .875rem);font-weight:400;line-height:1.5;color:var(--ui-color-neutral-900, #111827);background:var(--ui-color-surface, #ffffff);border:1px solid var(--ui-color-neutral-200, #e5e7eb);box-shadow:var(--ui-shadow-md);pointer-events:auto;position:relative;overflow:hidden}.ui-toast:before{content:\"\";position:absolute;top:0;bottom:0;left:0;width:4px;background:transparent}.ui-toast--entering{animation:ui-toast-slide-in .25s cubic-bezier(.2,0,0,1) forwards}.ui-toast--visible{opacity:1;transform:translate(0)}.ui-toast--exiting{animation:ui-toast-slide-out .2s cubic-bezier(.4,0,1,1) forwards}.ui-toast--success:before{background:var(--ui-color-success, #10b981)}.ui-toast--success .ui-toast__icon{color:var(--ui-color-success, #10b981)}.ui-toast--error:before{background:var(--ui-color-warn, #ef4444)}.ui-toast--error .ui-toast__icon{color:var(--ui-color-warn, #ef4444)}.ui-toast--warning:before{background:var(--ui-color-warning, #f59e0b)}.ui-toast--warning .ui-toast__icon{color:var(--ui-color-warning, #f59e0b)}.ui-toast--info:before{background:var(--ui-color-info, #3b82f6)}.ui-toast--info .ui-toast__icon{color:var(--ui-color-info, #3b82f6)}.ui-toast__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-top:2px}.ui-toast__content{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;min-height:20px}.ui-toast__message{word-break:break-word;margin:0}.ui-toast__close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;margin:0 -4px 0 0;border:none;border-radius:var(--ui-radius-sm, 4px);background:transparent;color:var(--ui-color-neutral-400, #9ca3af);cursor:pointer;transition-property:background,color;transition-duration:var(--ui-transition-fast);transition-timing-function:ease}.ui-toast__close:hover{background:var(--ui-color-neutral-100, #f3f4f6);color:var(--ui-color-neutral-700, #374151)}.ui-toast__close:focus{outline:none}.ui-toast__close:focus-visible{outline:var(--ui-focus-ring-width) solid var(--ui-focus-ring-color);outline-offset:var(--ui-focus-ring-offset)}@keyframes ui-toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes ui-toast-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i1.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
206
+ }
207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiToastComponent, decorators: [{
208
+ type: Component,
209
+ args: [{ selector: 'ui-toast', standalone: true, imports: [CommonModule, LucideAngularModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
210
+ 'class': 'ui-toast-host',
211
+ }, template: `
212
+ <div
213
+ class="ui-toast {{ customClass || '' }}"
214
+ [class.ui-toast--success]="type === 'success'"
215
+ [class.ui-toast--error]="type === 'error'"
216
+ [class.ui-toast--warning]="type === 'warning'"
217
+ [class.ui-toast--info]="type === 'info'"
218
+ [class.ui-toast--entering]="state === 'entering'"
219
+ [class.ui-toast--visible]="state === 'visible'"
220
+ [class.ui-toast--exiting]="state === 'exiting'"
221
+ role="alert"
222
+ aria-live="assertive"
223
+ aria-atomic="true"
224
+ >
225
+ <div class="ui-toast__icon">
226
+ <lucide-icon [name]="resolvedIcon" [size]="20"></lucide-icon>
227
+ </div>
228
+
229
+ <div class="ui-toast__content">
230
+ @if (enableHtml) {
231
+ <span class="ui-toast__message" [innerHTML]="message"></span>
232
+ } @else {
233
+ <span class="ui-toast__message">{{ message }}</span>
234
+ }
235
+ </div>
236
+
237
+ @if (dismissible) {
238
+ <button
239
+ class="ui-toast__close"
240
+ type="button"
241
+ (click)="dismissed.emit()"
242
+ aria-label="Chiudi notifica"
243
+ >
244
+ <lucide-icon name="x" [size]="16"></lucide-icon>
245
+ </button>
246
+ }
247
+ </div>
248
+ `, styles: [".ui-toast-host{display:contents}.ui-toast{display:flex;align-items:flex-start;gap:var(--ui-spacing-3, 12px);padding:var(--ui-spacing-3, 12px) var(--ui-spacing-4, 16px);border-radius:var(--ui-radius-md, 8px);min-width:320px;max-width:440px;font-family:var(--ui-font-family, \"Inter\", sans-serif);font-size:var(--ui-font-size-sm, .875rem);font-weight:400;line-height:1.5;color:var(--ui-color-neutral-900, #111827);background:var(--ui-color-surface, #ffffff);border:1px solid var(--ui-color-neutral-200, #e5e7eb);box-shadow:var(--ui-shadow-md);pointer-events:auto;position:relative;overflow:hidden}.ui-toast:before{content:\"\";position:absolute;top:0;bottom:0;left:0;width:4px;background:transparent}.ui-toast--entering{animation:ui-toast-slide-in .25s cubic-bezier(.2,0,0,1) forwards}.ui-toast--visible{opacity:1;transform:translate(0)}.ui-toast--exiting{animation:ui-toast-slide-out .2s cubic-bezier(.4,0,1,1) forwards}.ui-toast--success:before{background:var(--ui-color-success, #10b981)}.ui-toast--success .ui-toast__icon{color:var(--ui-color-success, #10b981)}.ui-toast--error:before{background:var(--ui-color-warn, #ef4444)}.ui-toast--error .ui-toast__icon{color:var(--ui-color-warn, #ef4444)}.ui-toast--warning:before{background:var(--ui-color-warning, #f59e0b)}.ui-toast--warning .ui-toast__icon{color:var(--ui-color-warning, #f59e0b)}.ui-toast--info:before{background:var(--ui-color-info, #3b82f6)}.ui-toast--info .ui-toast__icon{color:var(--ui-color-info, #3b82f6)}.ui-toast__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-top:2px}.ui-toast__content{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;min-height:20px}.ui-toast__message{word-break:break-word;margin:0}.ui-toast__close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;margin:0 -4px 0 0;border:none;border-radius:var(--ui-radius-sm, 4px);background:transparent;color:var(--ui-color-neutral-400, #9ca3af);cursor:pointer;transition-property:background,color;transition-duration:var(--ui-transition-fast);transition-timing-function:ease}.ui-toast__close:hover{background:var(--ui-color-neutral-100, #f3f4f6);color:var(--ui-color-neutral-700, #374151)}.ui-toast__close:focus{outline:none}.ui-toast__close:focus-visible{outline:var(--ui-focus-ring-width) solid var(--ui-focus-ring-color);outline-offset:var(--ui-focus-ring-offset)}@keyframes ui-toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes ui-toast-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}\n"] }]
249
+ }], propDecorators: { message: [{
250
+ type: Input
251
+ }], type: [{
252
+ type: Input
253
+ }], state: [{
254
+ type: Input
255
+ }], dismissible: [{
256
+ type: Input
257
+ }], enableHtml: [{
258
+ type: Input
259
+ }], icon: [{
260
+ type: Input
261
+ }], customClass: [{
262
+ type: Input
263
+ }], dismissed: [{
264
+ type: Output
265
+ }] } });
266
+
267
+ /**
268
+ * Toast container — manages stacking and positioning of active toasts.
269
+ *
270
+ * Dynamically attached to the DOM by `UiToastService` on first use.
271
+ * Renders one `ui-toast` per active notification.
272
+ *
273
+ * @selector ui-toast-container
274
+ * @internal Not intended for direct use.
275
+ */
276
+ class UiToastContainerComponent {
277
+ constructor() {
278
+ this.cdr = inject(ChangeDetectorRef);
279
+ /** Active toasts — managed by UiToastService. */
280
+ this.toasts = [];
281
+ }
282
+ /** Called by UiToastService to add a toast. */
283
+ addToast(toast) {
284
+ this.toasts = [...this.toasts, toast];
285
+ this.cdr.markForCheck();
286
+ }
287
+ /** Called by UiToastService to remove a toast. */
288
+ removeToast(id) {
289
+ this.toasts = this.toasts.filter(t => t.id !== id);
290
+ this.cdr.markForCheck();
291
+ }
292
+ /** Update a toast's state (e.g. entering → exiting). */
293
+ updateToastState(id, state) {
294
+ const toast = this.toasts.find(t => t.id === id);
295
+ if (toast) {
296
+ toast.state = state;
297
+ this.cdr.markForCheck();
298
+ }
299
+ }
300
+ /** Dismiss handler from the toast component. */
301
+ onDismiss(toast) {
302
+ // This is handled by the service via dismiss()
303
+ if (toast.timeoutId)
304
+ clearTimeout(toast.timeoutId);
305
+ this.updateToastState(toast.id, 'exiting');
306
+ setTimeout(() => this.removeToast(toast.id), 260);
307
+ }
308
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiToastContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
309
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UiToastContainerComponent, isStandalone: true, selector: "ui-toast-container", host: { classAttribute: "ui-toast-container-host" }, ngImport: i0, template: `
310
+ @for (toast of toasts; track toast.id) {
311
+ <ui-toast
312
+ [message]="toast.message"
313
+ [type]="toast.type"
314
+ [state]="toast.state"
315
+ [dismissible]="toast.config.dismissible"
316
+ [enableHtml]="toast.config.enableHtml"
317
+ [icon]="toast.config.icon"
318
+ [customClass]="toast.config.customClass"
319
+ (dismissed)="onDismiss(toast)"
320
+ />
321
+ }
322
+ `, isInline: true, styles: [".ui-toast-container-host{position:fixed;z-index:10000;pointer-events:none;display:flex;flex-direction:column;gap:var(--ui-spacing-3, 12px);padding:var(--ui-spacing-6, 24px);max-height:100vh;overflow:hidden;top:0;right:0;align-items:flex-end}.ui-toast-container-host--top-right{top:0;right:0;align-items:flex-end}.ui-toast-container-host--top-left{top:0;left:0;align-items:flex-start}.ui-toast-container-host--bottom-right{top:auto;bottom:0;right:0;align-items:flex-end;flex-direction:column-reverse}.ui-toast-container-host--bottom-left{top:auto;bottom:0;left:0;align-items:flex-start;flex-direction:column-reverse}.ui-toast-container-host--top-center{top:0;left:50%;right:auto;transform:translate(-50%);align-items:center}.ui-toast-container-host--bottom-center{inset:auto auto 0 50%;transform:translate(-50%);align-items:center;flex-direction:column-reverse}\n"], dependencies: [{ kind: "component", type: UiToastComponent, selector: "ui-toast", inputs: ["message", "type", "state", "dismissible", "enableHtml", "icon", "customClass"], outputs: ["dismissed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
323
+ }
324
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiToastContainerComponent, decorators: [{
325
+ type: Component,
326
+ args: [{ selector: 'ui-toast-container', standalone: true, imports: [UiToastComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
327
+ 'class': 'ui-toast-container-host',
328
+ }, template: `
329
+ @for (toast of toasts; track toast.id) {
330
+ <ui-toast
331
+ [message]="toast.message"
332
+ [type]="toast.type"
333
+ [state]="toast.state"
334
+ [dismissible]="toast.config.dismissible"
335
+ [enableHtml]="toast.config.enableHtml"
336
+ [icon]="toast.config.icon"
337
+ [customClass]="toast.config.customClass"
338
+ (dismissed)="onDismiss(toast)"
339
+ />
340
+ }
341
+ `, styles: [".ui-toast-container-host{position:fixed;z-index:10000;pointer-events:none;display:flex;flex-direction:column;gap:var(--ui-spacing-3, 12px);padding:var(--ui-spacing-6, 24px);max-height:100vh;overflow:hidden;top:0;right:0;align-items:flex-end}.ui-toast-container-host--top-right{top:0;right:0;align-items:flex-end}.ui-toast-container-host--top-left{top:0;left:0;align-items:flex-start}.ui-toast-container-host--bottom-right{top:auto;bottom:0;right:0;align-items:flex-end;flex-direction:column-reverse}.ui-toast-container-host--bottom-left{top:auto;bottom:0;left:0;align-items:flex-start;flex-direction:column-reverse}.ui-toast-container-host--top-center{top:0;left:50%;right:auto;transform:translate(-50%);align-items:center}.ui-toast-container-host--bottom-center{inset:auto auto 0 50%;transform:translate(-50%);align-items:center;flex-direction:column-reverse}\n"] }]
342
+ }] });
343
+
344
+ /**
345
+ * @module ng-ui-system/toast
346
+ * Proprietary toast notification service.
347
+ *
348
+ * Zero external dependencies — renders toast components directly into the DOM
349
+ * via Angular's `ApplicationRef`.
350
+ *
351
+ * @usageNotes
352
+ * ### Basic usage
353
+ * ```typescript
354
+ * const toast = inject(UiToastService);
355
+ * toast.success('Record salvato!');
356
+ * toast.error('Errore durante il salvataggio');
357
+ * ```
358
+ *
359
+ * ### With config
360
+ * ```typescript
361
+ * toast.warning('Attenzione', { duration: 8000, position: 'bottom-right' });
362
+ * ```
363
+ *
364
+ * ### Programmatic dismiss
365
+ * ```typescript
366
+ * const ref = toast.info('Caricamento in corso...', { duration: 0 });
367
+ * // ...later
368
+ * ref.dismiss();
369
+ * ```
370
+ *
371
+ * @selector —
372
+ */
373
+ /**
374
+ * Central toast notification service.
375
+ *
376
+ * Manages a single `UiToastContainerComponent` in the DOM and provides
377
+ * convenience methods for showing typed notifications.
378
+ */
379
+ class UiToastService {
380
+ constructor() {
381
+ this.appRef = inject(ApplicationRef);
382
+ this.injector = inject(EnvironmentInjector);
383
+ this.document = inject(DOCUMENT);
384
+ /** Reference to the singleton container component. */
385
+ this.containerRef = null;
386
+ }
387
+ // ── Public API ─────────────────────────────────────────────────────
388
+ /** Show a **success** toast. */
389
+ success(message, config) {
390
+ return this.show(message, 'success', config);
391
+ }
392
+ /** Show an **error** toast. */
393
+ error(message, config) {
394
+ return this.show(message, 'error', config);
395
+ }
396
+ /** Show a **warning** toast. */
397
+ warning(message, config) {
398
+ return this.show(message, 'warning', config);
399
+ }
400
+ /** Show an **info** toast. */
401
+ info(message, config) {
402
+ return this.show(message, 'info', config);
403
+ }
404
+ /** Show a toast with explicit type. */
405
+ show(message, type = 'info', config) {
406
+ this.ensureContainer(config?.position);
407
+ const container = this.containerRef.instance;
408
+ const id = uiUniqueId('toast');
409
+ const merged = {
410
+ ...UI_TOAST_DEFAULTS,
411
+ ...config,
412
+ };
413
+ const data = {
414
+ id,
415
+ message,
416
+ type: config?.type ?? type,
417
+ config: merged,
418
+ state: 'entering',
419
+ };
420
+ // Auto-dismiss
421
+ if (merged.duration > 0) {
422
+ data.timeoutId = setTimeout(() => this.dismiss(id), merged.duration);
423
+ }
424
+ container.addToast(data);
425
+ return {
426
+ id,
427
+ dismiss: () => this.dismiss(id),
428
+ };
429
+ }
430
+ /** Dismiss a specific toast by ID. */
431
+ dismiss(id) {
432
+ const container = this.containerRef?.instance;
433
+ if (!container)
434
+ return;
435
+ const toast = container.toasts.find(t => t.id === id);
436
+ if (!toast || toast.state === 'exiting')
437
+ return;
438
+ if (toast.timeoutId)
439
+ clearTimeout(toast.timeoutId);
440
+ // Animate out, then remove
441
+ container.updateToastState(id, 'exiting');
442
+ setTimeout(() => container.removeToast(id), 260);
443
+ }
444
+ /** Dismiss all active toasts. */
445
+ dismissAll() {
446
+ const container = this.containerRef?.instance;
447
+ if (!container)
448
+ return;
449
+ const ids = container.toasts.map(t => t.id);
450
+ ids.forEach(id => this.dismiss(id));
451
+ }
452
+ // ── Internals ──────────────────────────────────────────────────────
453
+ /**
454
+ * Ensures the container component exists in the DOM.
455
+ * Creates it lazily on first toast call.
456
+ */
457
+ ensureContainer(position) {
458
+ if (this.containerRef) {
459
+ // Update position class if needed
460
+ if (position) {
461
+ const el = this.containerRef.location.nativeElement;
462
+ this.applyPositionClass(el, position);
463
+ }
464
+ return;
465
+ }
466
+ // Create the container component dynamically
467
+ this.containerRef = createComponent(UiToastContainerComponent, {
468
+ environmentInjector: this.injector,
469
+ });
470
+ // Attach to Angular's change detection
471
+ this.appRef.attachView(this.containerRef.hostView);
472
+ // Insert into the DOM
473
+ const el = this.containerRef.location.nativeElement;
474
+ this.applyPositionClass(el, position ?? UI_TOAST_DEFAULTS.position);
475
+ this.document.body.appendChild(el);
476
+ }
477
+ /** Apply CSS position modifier class to the container element. */
478
+ applyPositionClass(el, position) {
479
+ // Remove old position classes
480
+ el.className = el.className
481
+ .split(' ')
482
+ .filter(c => !c.startsWith('ui-toast-container-host--'))
483
+ .join(' ');
484
+ el.classList.add(`ui-toast-container-host--${position}`);
485
+ }
486
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
487
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiToastService, providedIn: 'root' }); }
488
+ }
489
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiToastService, decorators: [{
490
+ type: Injectable,
491
+ args: [{ providedIn: 'root' }]
492
+ }] });
493
+
494
+ /**
495
+ * ng-ui-system — Toast Notifications entry point.
496
+ *
497
+ * @example
498
+ * ```typescript
499
+ * import { UiToastService, UiToastConfig } from '@gnggln/ng-ui-system';
500
+ *
501
+ * const toast = inject(UiToastService);
502
+ * toast.success('Salvato!');
503
+ * ```
504
+ */
505
+ // Service
506
+
507
+ /**
508
+ * Bootstrap del secondary entry `@gnggln/ng-ui-system/toast`. Toast / notifiche.
509
+ */
510
+
511
+ /**
512
+ * Generated bundle index. Do not edit.
513
+ */
514
+
515
+ export { UI_TOAST_DEFAULTS, UiToastComponent, UiToastContainerComponent, UiToastService };
516
+ //# sourceMappingURL=gnggln-ng-ui-system-toast.mjs.map