@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
@@ -3,11 +3,10 @@ import { LucideAngularModule } from 'lucide-angular';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "lucide-angular";
5
5
  /**
6
- * Componente per il riepilogo errori del form.
6
+ * Riepilogo stato validazione del form.
7
7
  *
8
- * Mostra un indicatore con il conteggio degli errori e un dropdown
9
- * con il dettaglio per campo. Click su un errore emette `fieldClick`
10
- * per consentire lo scroll-to-field con highlight nel form builder.
8
+ * Con errori: indicatore + dropdown hover/click per il dettaglio e navigazione ai campi.
9
+ * Senza errori: messaggio di stato positivo fisso (no dropdown), UI prevedibile.
11
10
  *
12
11
  * @selector ui-form-error-summary
13
12
  */
@@ -17,11 +16,17 @@ export class UiFormErrorSummaryComponent {
17
16
  this.errors = [];
18
17
  /** Conteggio totale degli errori (somma di tutti i messaggi). */
19
18
  this.totalErrorCount = 0;
19
+ /** Testo mostrato quando non ci sono errori. */
20
+ this.validMessage = 'Il form è compilato correttamente';
20
21
  /** Emesso quando l'utente clicca su un errore per navigare al campo. */
21
22
  this.fieldClick = new EventEmitter();
22
- /** @internal Stato del dropdown. */
23
+ /** @internal Stato del dropdown (solo con errori). */
23
24
  this.showDropdown = false;
24
25
  }
26
+ /** True se il form ha almeno un errore da mostrare nel summary. */
27
+ get hasErrors() {
28
+ return this.displayCount > 0;
29
+ }
25
30
  /** Conteggio da visualizzare: usa totalErrorCount se fornito, altrimenti conta dai dettagli. */
26
31
  get displayCount() {
27
32
  return this.totalErrorCount > 0 ? this.totalErrorCount : this.errors.reduce((sum, d) => sum + d.errors.length, 0);
@@ -32,130 +37,154 @@ export class UiFormErrorSummaryComponent {
32
37
  this.fieldClick.emit(fieldKey);
33
38
  }
34
39
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiFormErrorSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UiFormErrorSummaryComponent, isStandalone: true, selector: "ui-form-error-summary", inputs: { errors: "errors", totalErrorCount: "totalErrorCount" }, outputs: { fieldClick: "fieldClick" }, ngImport: i0, template: `
36
- @if (errors.length > 0) {
37
- <div
38
- class="ui-form-error-summary"
39
- (mouseenter)="showDropdown = true"
40
- (mouseleave)="showDropdown = false"
41
- >
42
- <!-- Indicatore errori con icona e messaggio -->
43
- <div class="ui-form-error-summary__heading"
44
- (click)="showDropdown = !showDropdown"
45
- role="button"
46
- tabindex="0"
47
- [attr.aria-label]="displayCount + ' errori nel form'"
48
- (keydown.enter)="showDropdown = !showDropdown"
49
- (keydown.space)="showDropdown = !showDropdown; $event.preventDefault()"
50
- >
51
- <lucide-icon name="alert-circle" [size]="20" class="ui-form-error-summary__icon" aria-hidden="true" />
52
- <p class="ui-form-error-summary__text">
53
- Sono presenti <strong>{{ displayCount }}</strong>
54
- {{ displayCount === 1 ? 'errore' : 'errori' }} nel form.
55
- </p>
56
- </div>
57
-
58
- <!-- Dropdown dettaglio -->
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UiFormErrorSummaryComponent, isStandalone: true, selector: "ui-form-error-summary", inputs: { errors: "errors", totalErrorCount: "totalErrorCount", validMessage: "validMessage" }, outputs: { fieldClick: "fieldClick" }, ngImport: i0, template: `
41
+ <div
42
+ class="ui-form-error-summary"
43
+ [class.ui-form-error-summary--invalid]="hasErrors"
44
+ [class.ui-form-error-summary--valid]="!hasErrors"
45
+ >
46
+ @if (hasErrors) {
59
47
  <div
60
- class="ui-form-error-summary__dropdown"
61
- [class.ui-form-error-summary__dropdown--visible]="showDropdown"
62
- role="list"
63
- aria-label="Elenco errori del form"
48
+ class="ui-form-error-summary__panel ui-form-error-summary__panel--invalid"
49
+ (mouseenter)="showDropdown = true"
50
+ (mouseleave)="showDropdown = false"
64
51
  >
65
- <div class="ui-form-error-summary__dropdown-content">
66
- <h4 class="ui-form-error-summary__dropdown-title">Dettagli errori:</h4>
67
- <ul class="ui-form-error-summary__list">
68
- @for (detail of errors; track detail.fieldKey) {
69
- <li
70
- class="ui-form-error-summary__item"
71
- role="listitem"
72
- (click)="onFieldClick(detail.fieldKey)"
73
- tabindex="0"
74
- (keydown.enter)="onFieldClick(detail.fieldKey)"
75
- >
76
- <div class="ui-form-error-summary__field-name">
77
- <lucide-icon name="arrow-right" [size]="14" class="ui-form-error-summary__arrow" aria-hidden="true" />
78
- {{ detail.fieldLabel }}
79
- </div>
80
- <div class="ui-form-error-summary__messages">
81
- @for (err of detail.errors; track $index; let last = $last) {
82
- <span>{{ err }}@if (!last) {, }</span>
83
- }
84
- </div>
85
- </li>
86
- }
87
- </ul>
52
+ <div
53
+ class="ui-form-error-summary__heading"
54
+ (click)="showDropdown = !showDropdown"
55
+ role="button"
56
+ tabindex="0"
57
+ [attr.aria-expanded]="showDropdown"
58
+ [attr.aria-label]="displayCount + ' errori nel form'"
59
+ (keydown.enter)="showDropdown = !showDropdown"
60
+ (keydown.space)="showDropdown = !showDropdown; $event.preventDefault()"
61
+ >
62
+ <lucide-icon name="alert-circle" [size]="20" class="ui-form-error-summary__icon" aria-hidden="true" />
63
+ <p class="ui-form-error-summary__text">
64
+ Sono presenti <strong>{{ displayCount }}</strong>
65
+ {{ displayCount === 1 ? 'errore' : 'errori' }} nel form.
66
+ </p>
88
67
  </div>
68
+
69
+ <div
70
+ class="ui-form-error-summary__dropdown"
71
+ [class.ui-form-error-summary__dropdown--visible]="showDropdown"
72
+ role="list"
73
+ aria-label="Elenco errori del form"
74
+ >
75
+ <div class="ui-form-error-summary__dropdown-content">
76
+ <h4 class="ui-form-error-summary__dropdown-title">Dettagli errori:</h4>
77
+ <ul class="ui-form-error-summary__list">
78
+ @for (detail of errors; track detail.fieldKey) {
79
+ <li
80
+ class="ui-form-error-summary__item"
81
+ role="listitem"
82
+ (click)="onFieldClick(detail.fieldKey)"
83
+ tabindex="0"
84
+ (keydown.enter)="onFieldClick(detail.fieldKey)"
85
+ >
86
+ <div class="ui-form-error-summary__field-name">
87
+ <lucide-icon name="arrow-right" [size]="14" class="ui-form-error-summary__arrow" aria-hidden="true" />
88
+ {{ detail.fieldLabel }}
89
+ </div>
90
+ <div class="ui-form-error-summary__messages">
91
+ @for (err of detail.errors; track $index; let last = $last) {
92
+ <span>{{ err }}@if (!last) {, }</span>
93
+ }
94
+ </div>
95
+ </li>
96
+ }
97
+ </ul>
98
+ </div>
99
+ </div>
100
+ </div>
101
+ } @else {
102
+ <div class="ui-form-error-summary__panel ui-form-error-summary__panel--valid" role="status" aria-live="polite">
103
+ <lucide-icon name="check-circle" [size]="20" class="ui-form-error-summary__icon-valid" aria-hidden="true" />
104
+ <p class="ui-form-error-summary__text-valid">{{ validMessage }}</p>
89
105
  </div>
90
- </div>
91
- }
92
- `, isInline: true, styles: [".ui-form-error-summary{position:relative;cursor:pointer}.ui-form-error-summary__heading{display:flex;align-items:center;gap:var(--ui-spacing-2, 8px);padding:var(--ui-spacing-2, 8px) 0;outline:none}.ui-form-error-summary__heading:focus{outline:none}.ui-form-error-summary__heading:focus-visible{outline:var(--ui-focus-ring-width) solid var(--ui-focus-ring-color);outline-offset:var(--ui-focus-ring-offset)}.ui-form-error-summary__icon{color:var(--ui-color-error, #dc2626);flex-shrink:0}.ui-form-error-summary__text{margin:0;color:var(--ui-color-error, #dc2626);font-size:var(--ui-font-size-sm, 14px);font-family:var(--ui-font-family);line-height:1.4}.ui-form-error-summary__text strong{font-weight:var(--ui-font-weight-semibold, 600)}.ui-form-error-summary__dropdown{position:absolute;bottom:100%;left:0;right:0;min-width:320px;max-height:300px;overflow-y:auto;background:var(--ui-color-surface, #fff);border:1px solid var(--ui-color-border, #e5e7eb);border-radius:var(--ui-radius-lg, 8px);box-shadow:0 -10px 25px -3px #0000001a,0 -4px 6px -2px #0000000d;z-index:1000;margin-bottom:var(--ui-spacing-2, 8px);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s ease-in-out,visibility .2s ease-in-out,transform .2s ease-in-out}.ui-form-error-summary__dropdown--visible{opacity:1;visibility:visible;transform:translateY(0)}.ui-form-error-summary__dropdown-content{padding:var(--ui-spacing-4, 16px)}.ui-form-error-summary__dropdown-title{margin:0 0 var(--ui-spacing-3, 12px) 0;color:var(--ui-color-text, #374151);font-size:var(--ui-font-size-sm, 14px);font-weight:var(--ui-font-weight-semibold, 600);font-family:var(--ui-font-family)}.ui-form-error-summary__list{list-style:none;padding:0;margin:0}.ui-form-error-summary__item{padding:var(--ui-spacing-3, 12px);border-radius:var(--ui-radius-md, 6px);cursor:pointer;transition:background-color .15s ease;border:1px solid transparent;margin-bottom:var(--ui-spacing-2, 8px);outline:none}.ui-form-error-summary__item:focus{outline:none}.ui-form-error-summary__item:focus-visible{outline:var(--ui-focus-ring-width) solid var(--ui-focus-ring-color);outline-offset:var(--ui-focus-ring-offset)}.ui-form-error-summary__item:last-child{margin-bottom:0}.ui-form-error-summary__item:hover{background:var(--ui-color-surface-hover, #f9fafb);border-color:var(--ui-color-border, #e5e7eb)}.ui-form-error-summary__field-name{display:flex;align-items:center;gap:var(--ui-spacing-2, 8px);font-weight:var(--ui-font-weight-semibold, 600);color:var(--ui-color-text, #374151);font-size:var(--ui-font-size-sm, 14px);font-family:var(--ui-font-family);margin-bottom:4px}.ui-form-error-summary__arrow{color:var(--ui-color-text-muted, #6b7280);flex-shrink:0;transition:transform .15s ease}.ui-form-error-summary__item:hover .ui-form-error-summary__arrow{transform:translate(4px)}.ui-form-error-summary__messages{color:var(--ui-color-error, #dc2626);font-size:var(--ui-font-size-xs, 13px);font-family:var(--ui-font-family);line-height:1.4;margin-left:22px}@media (max-width: 768px){.ui-form-error-summary__dropdown{position:fixed;inset:50% 16px auto;transform:translateY(-50%);margin-bottom:0}.ui-form-error-summary__dropdown--visible{transform:translateY(-50%)}}\n"], dependencies: [{ 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 }); }
106
+ }
107
+ </div>
108
+ `, isInline: true, styles: [".ui-form-error-summary{position:relative}.ui-form-error-summary--invalid{cursor:pointer}.ui-form-error-summary--valid{cursor:default}.ui-form-error-summary__panel--valid{display:flex;align-items:center;gap:var(--ui-spacing-2, 8px);padding:var(--ui-spacing-2, 8px) 0}.ui-form-error-summary__icon-valid{color:var(--ui-color-success, #16a34a);flex-shrink:0}.ui-form-error-summary__text-valid{margin:0;color:var(--ui-color-success, #15803d);font-size:var(--ui-font-size-sm, 14px);font-family:var(--ui-font-family);line-height:1.4}.ui-form-error-summary__heading{display:flex;align-items:center;gap:var(--ui-spacing-2, 8px);padding:var(--ui-spacing-2, 8px) 0;outline:none}.ui-form-error-summary__heading:focus{outline:none}.ui-form-error-summary__heading:focus-visible{outline:var(--ui-focus-ring-width) solid var(--ui-focus-ring-color);outline-offset:var(--ui-focus-ring-offset)}.ui-form-error-summary__icon{color:var(--ui-color-error, #dc2626);flex-shrink:0}.ui-form-error-summary__text{margin:0;color:var(--ui-color-error, #dc2626);font-size:var(--ui-font-size-sm, 14px);font-family:var(--ui-font-family);line-height:1.4}.ui-form-error-summary__text strong{font-weight:var(--ui-font-weight-semibold, 600)}.ui-form-error-summary__dropdown{position:absolute;bottom:100%;left:0;right:0;min-width:320px;max-height:300px;overflow-y:auto;background:var(--ui-color-surface, #fff);border:1px solid var(--ui-color-border, #e5e7eb);border-radius:var(--ui-radius-lg, 8px);box-shadow:0 -10px 25px -3px #0000001a,0 -4px 6px -2px #0000000d;z-index:1000;margin-bottom:var(--ui-spacing-2, 8px);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s ease-in-out,visibility .2s ease-in-out,transform .2s ease-in-out}.ui-form-error-summary__dropdown--visible{opacity:1;visibility:visible;transform:translateY(0)}.ui-form-error-summary__dropdown-content{padding:var(--ui-spacing-4, 16px)}.ui-form-error-summary__dropdown-title{margin:0 0 var(--ui-spacing-3, 12px) 0;color:var(--ui-color-text, #374151);font-size:var(--ui-font-size-sm, 14px);font-weight:var(--ui-font-weight-semibold, 600);font-family:var(--ui-font-family)}.ui-form-error-summary__list{list-style:none;padding:0;margin:0}.ui-form-error-summary__item{padding:var(--ui-spacing-3, 12px);border-radius:var(--ui-radius-md, 6px);cursor:pointer;transition:background-color .15s ease;border:1px solid transparent;margin-bottom:var(--ui-spacing-2, 8px);outline:none}.ui-form-error-summary__item:focus{outline:none}.ui-form-error-summary__item:focus-visible{outline:var(--ui-focus-ring-width) solid var(--ui-focus-ring-color);outline-offset:var(--ui-focus-ring-offset)}.ui-form-error-summary__item:last-child{margin-bottom:0}.ui-form-error-summary__item:hover{background:var(--ui-color-surface-hover, #f9fafb);border-color:var(--ui-color-border, #e5e7eb)}.ui-form-error-summary__field-name{display:flex;align-items:center;gap:var(--ui-spacing-2, 8px);font-weight:var(--ui-font-weight-semibold, 600);color:var(--ui-color-text, #374151);font-size:var(--ui-font-size-sm, 14px);font-family:var(--ui-font-family);margin-bottom:4px}.ui-form-error-summary__arrow{color:var(--ui-color-text-muted, #6b7280);flex-shrink:0;transition:transform .15s ease}.ui-form-error-summary__item:hover .ui-form-error-summary__arrow{transform:translate(4px)}.ui-form-error-summary__messages{color:var(--ui-color-error, #dc2626);font-size:var(--ui-font-size-xs, 13px);font-family:var(--ui-font-family);line-height:1.4;margin-left:22px}@media (max-width: 768px){.ui-form-error-summary__dropdown{position:fixed;inset:50% 16px auto;transform:translateY(-50%);margin-bottom:0}.ui-form-error-summary__dropdown--visible{transform:translateY(-50%)}}\n"], dependencies: [{ 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 }); }
93
109
  }
94
110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiFormErrorSummaryComponent, decorators: [{
95
111
  type: Component,
96
112
  args: [{ selector: 'ui-form-error-summary', standalone: true, imports: [LucideAngularModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
97
- @if (errors.length > 0) {
98
- <div
99
- class="ui-form-error-summary"
100
- (mouseenter)="showDropdown = true"
101
- (mouseleave)="showDropdown = false"
102
- >
103
- <!-- Indicatore errori con icona e messaggio -->
104
- <div class="ui-form-error-summary__heading"
105
- (click)="showDropdown = !showDropdown"
106
- role="button"
107
- tabindex="0"
108
- [attr.aria-label]="displayCount + ' errori nel form'"
109
- (keydown.enter)="showDropdown = !showDropdown"
110
- (keydown.space)="showDropdown = !showDropdown; $event.preventDefault()"
111
- >
112
- <lucide-icon name="alert-circle" [size]="20" class="ui-form-error-summary__icon" aria-hidden="true" />
113
- <p class="ui-form-error-summary__text">
114
- Sono presenti <strong>{{ displayCount }}</strong>
115
- {{ displayCount === 1 ? 'errore' : 'errori' }} nel form.
116
- </p>
117
- </div>
118
-
119
- <!-- Dropdown dettaglio -->
113
+ <div
114
+ class="ui-form-error-summary"
115
+ [class.ui-form-error-summary--invalid]="hasErrors"
116
+ [class.ui-form-error-summary--valid]="!hasErrors"
117
+ >
118
+ @if (hasErrors) {
120
119
  <div
121
- class="ui-form-error-summary__dropdown"
122
- [class.ui-form-error-summary__dropdown--visible]="showDropdown"
123
- role="list"
124
- aria-label="Elenco errori del form"
120
+ class="ui-form-error-summary__panel ui-form-error-summary__panel--invalid"
121
+ (mouseenter)="showDropdown = true"
122
+ (mouseleave)="showDropdown = false"
125
123
  >
126
- <div class="ui-form-error-summary__dropdown-content">
127
- <h4 class="ui-form-error-summary__dropdown-title">Dettagli errori:</h4>
128
- <ul class="ui-form-error-summary__list">
129
- @for (detail of errors; track detail.fieldKey) {
130
- <li
131
- class="ui-form-error-summary__item"
132
- role="listitem"
133
- (click)="onFieldClick(detail.fieldKey)"
134
- tabindex="0"
135
- (keydown.enter)="onFieldClick(detail.fieldKey)"
136
- >
137
- <div class="ui-form-error-summary__field-name">
138
- <lucide-icon name="arrow-right" [size]="14" class="ui-form-error-summary__arrow" aria-hidden="true" />
139
- {{ detail.fieldLabel }}
140
- </div>
141
- <div class="ui-form-error-summary__messages">
142
- @for (err of detail.errors; track $index; let last = $last) {
143
- <span>{{ err }}@if (!last) {, }</span>
144
- }
145
- </div>
146
- </li>
147
- }
148
- </ul>
124
+ <div
125
+ class="ui-form-error-summary__heading"
126
+ (click)="showDropdown = !showDropdown"
127
+ role="button"
128
+ tabindex="0"
129
+ [attr.aria-expanded]="showDropdown"
130
+ [attr.aria-label]="displayCount + ' errori nel form'"
131
+ (keydown.enter)="showDropdown = !showDropdown"
132
+ (keydown.space)="showDropdown = !showDropdown; $event.preventDefault()"
133
+ >
134
+ <lucide-icon name="alert-circle" [size]="20" class="ui-form-error-summary__icon" aria-hidden="true" />
135
+ <p class="ui-form-error-summary__text">
136
+ Sono presenti <strong>{{ displayCount }}</strong>
137
+ {{ displayCount === 1 ? 'errore' : 'errori' }} nel form.
138
+ </p>
149
139
  </div>
140
+
141
+ <div
142
+ class="ui-form-error-summary__dropdown"
143
+ [class.ui-form-error-summary__dropdown--visible]="showDropdown"
144
+ role="list"
145
+ aria-label="Elenco errori del form"
146
+ >
147
+ <div class="ui-form-error-summary__dropdown-content">
148
+ <h4 class="ui-form-error-summary__dropdown-title">Dettagli errori:</h4>
149
+ <ul class="ui-form-error-summary__list">
150
+ @for (detail of errors; track detail.fieldKey) {
151
+ <li
152
+ class="ui-form-error-summary__item"
153
+ role="listitem"
154
+ (click)="onFieldClick(detail.fieldKey)"
155
+ tabindex="0"
156
+ (keydown.enter)="onFieldClick(detail.fieldKey)"
157
+ >
158
+ <div class="ui-form-error-summary__field-name">
159
+ <lucide-icon name="arrow-right" [size]="14" class="ui-form-error-summary__arrow" aria-hidden="true" />
160
+ {{ detail.fieldLabel }}
161
+ </div>
162
+ <div class="ui-form-error-summary__messages">
163
+ @for (err of detail.errors; track $index; let last = $last) {
164
+ <span>{{ err }}@if (!last) {, }</span>
165
+ }
166
+ </div>
167
+ </li>
168
+ }
169
+ </ul>
170
+ </div>
171
+ </div>
172
+ </div>
173
+ } @else {
174
+ <div class="ui-form-error-summary__panel ui-form-error-summary__panel--valid" role="status" aria-live="polite">
175
+ <lucide-icon name="check-circle" [size]="20" class="ui-form-error-summary__icon-valid" aria-hidden="true" />
176
+ <p class="ui-form-error-summary__text-valid">{{ validMessage }}</p>
150
177
  </div>
151
- </div>
152
- }
153
- `, styles: [".ui-form-error-summary{position:relative;cursor:pointer}.ui-form-error-summary__heading{display:flex;align-items:center;gap:var(--ui-spacing-2, 8px);padding:var(--ui-spacing-2, 8px) 0;outline:none}.ui-form-error-summary__heading:focus{outline:none}.ui-form-error-summary__heading:focus-visible{outline:var(--ui-focus-ring-width) solid var(--ui-focus-ring-color);outline-offset:var(--ui-focus-ring-offset)}.ui-form-error-summary__icon{color:var(--ui-color-error, #dc2626);flex-shrink:0}.ui-form-error-summary__text{margin:0;color:var(--ui-color-error, #dc2626);font-size:var(--ui-font-size-sm, 14px);font-family:var(--ui-font-family);line-height:1.4}.ui-form-error-summary__text strong{font-weight:var(--ui-font-weight-semibold, 600)}.ui-form-error-summary__dropdown{position:absolute;bottom:100%;left:0;right:0;min-width:320px;max-height:300px;overflow-y:auto;background:var(--ui-color-surface, #fff);border:1px solid var(--ui-color-border, #e5e7eb);border-radius:var(--ui-radius-lg, 8px);box-shadow:0 -10px 25px -3px #0000001a,0 -4px 6px -2px #0000000d;z-index:1000;margin-bottom:var(--ui-spacing-2, 8px);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s ease-in-out,visibility .2s ease-in-out,transform .2s ease-in-out}.ui-form-error-summary__dropdown--visible{opacity:1;visibility:visible;transform:translateY(0)}.ui-form-error-summary__dropdown-content{padding:var(--ui-spacing-4, 16px)}.ui-form-error-summary__dropdown-title{margin:0 0 var(--ui-spacing-3, 12px) 0;color:var(--ui-color-text, #374151);font-size:var(--ui-font-size-sm, 14px);font-weight:var(--ui-font-weight-semibold, 600);font-family:var(--ui-font-family)}.ui-form-error-summary__list{list-style:none;padding:0;margin:0}.ui-form-error-summary__item{padding:var(--ui-spacing-3, 12px);border-radius:var(--ui-radius-md, 6px);cursor:pointer;transition:background-color .15s ease;border:1px solid transparent;margin-bottom:var(--ui-spacing-2, 8px);outline:none}.ui-form-error-summary__item:focus{outline:none}.ui-form-error-summary__item:focus-visible{outline:var(--ui-focus-ring-width) solid var(--ui-focus-ring-color);outline-offset:var(--ui-focus-ring-offset)}.ui-form-error-summary__item:last-child{margin-bottom:0}.ui-form-error-summary__item:hover{background:var(--ui-color-surface-hover, #f9fafb);border-color:var(--ui-color-border, #e5e7eb)}.ui-form-error-summary__field-name{display:flex;align-items:center;gap:var(--ui-spacing-2, 8px);font-weight:var(--ui-font-weight-semibold, 600);color:var(--ui-color-text, #374151);font-size:var(--ui-font-size-sm, 14px);font-family:var(--ui-font-family);margin-bottom:4px}.ui-form-error-summary__arrow{color:var(--ui-color-text-muted, #6b7280);flex-shrink:0;transition:transform .15s ease}.ui-form-error-summary__item:hover .ui-form-error-summary__arrow{transform:translate(4px)}.ui-form-error-summary__messages{color:var(--ui-color-error, #dc2626);font-size:var(--ui-font-size-xs, 13px);font-family:var(--ui-font-family);line-height:1.4;margin-left:22px}@media (max-width: 768px){.ui-form-error-summary__dropdown{position:fixed;inset:50% 16px auto;transform:translateY(-50%);margin-bottom:0}.ui-form-error-summary__dropdown--visible{transform:translateY(-50%)}}\n"] }]
178
+ }
179
+ </div>
180
+ `, styles: [".ui-form-error-summary{position:relative}.ui-form-error-summary--invalid{cursor:pointer}.ui-form-error-summary--valid{cursor:default}.ui-form-error-summary__panel--valid{display:flex;align-items:center;gap:var(--ui-spacing-2, 8px);padding:var(--ui-spacing-2, 8px) 0}.ui-form-error-summary__icon-valid{color:var(--ui-color-success, #16a34a);flex-shrink:0}.ui-form-error-summary__text-valid{margin:0;color:var(--ui-color-success, #15803d);font-size:var(--ui-font-size-sm, 14px);font-family:var(--ui-font-family);line-height:1.4}.ui-form-error-summary__heading{display:flex;align-items:center;gap:var(--ui-spacing-2, 8px);padding:var(--ui-spacing-2, 8px) 0;outline:none}.ui-form-error-summary__heading:focus{outline:none}.ui-form-error-summary__heading:focus-visible{outline:var(--ui-focus-ring-width) solid var(--ui-focus-ring-color);outline-offset:var(--ui-focus-ring-offset)}.ui-form-error-summary__icon{color:var(--ui-color-error, #dc2626);flex-shrink:0}.ui-form-error-summary__text{margin:0;color:var(--ui-color-error, #dc2626);font-size:var(--ui-font-size-sm, 14px);font-family:var(--ui-font-family);line-height:1.4}.ui-form-error-summary__text strong{font-weight:var(--ui-font-weight-semibold, 600)}.ui-form-error-summary__dropdown{position:absolute;bottom:100%;left:0;right:0;min-width:320px;max-height:300px;overflow-y:auto;background:var(--ui-color-surface, #fff);border:1px solid var(--ui-color-border, #e5e7eb);border-radius:var(--ui-radius-lg, 8px);box-shadow:0 -10px 25px -3px #0000001a,0 -4px 6px -2px #0000000d;z-index:1000;margin-bottom:var(--ui-spacing-2, 8px);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s ease-in-out,visibility .2s ease-in-out,transform .2s ease-in-out}.ui-form-error-summary__dropdown--visible{opacity:1;visibility:visible;transform:translateY(0)}.ui-form-error-summary__dropdown-content{padding:var(--ui-spacing-4, 16px)}.ui-form-error-summary__dropdown-title{margin:0 0 var(--ui-spacing-3, 12px) 0;color:var(--ui-color-text, #374151);font-size:var(--ui-font-size-sm, 14px);font-weight:var(--ui-font-weight-semibold, 600);font-family:var(--ui-font-family)}.ui-form-error-summary__list{list-style:none;padding:0;margin:0}.ui-form-error-summary__item{padding:var(--ui-spacing-3, 12px);border-radius:var(--ui-radius-md, 6px);cursor:pointer;transition:background-color .15s ease;border:1px solid transparent;margin-bottom:var(--ui-spacing-2, 8px);outline:none}.ui-form-error-summary__item:focus{outline:none}.ui-form-error-summary__item:focus-visible{outline:var(--ui-focus-ring-width) solid var(--ui-focus-ring-color);outline-offset:var(--ui-focus-ring-offset)}.ui-form-error-summary__item:last-child{margin-bottom:0}.ui-form-error-summary__item:hover{background:var(--ui-color-surface-hover, #f9fafb);border-color:var(--ui-color-border, #e5e7eb)}.ui-form-error-summary__field-name{display:flex;align-items:center;gap:var(--ui-spacing-2, 8px);font-weight:var(--ui-font-weight-semibold, 600);color:var(--ui-color-text, #374151);font-size:var(--ui-font-size-sm, 14px);font-family:var(--ui-font-family);margin-bottom:4px}.ui-form-error-summary__arrow{color:var(--ui-color-text-muted, #6b7280);flex-shrink:0;transition:transform .15s ease}.ui-form-error-summary__item:hover .ui-form-error-summary__arrow{transform:translate(4px)}.ui-form-error-summary__messages{color:var(--ui-color-error, #dc2626);font-size:var(--ui-font-size-xs, 13px);font-family:var(--ui-font-family);line-height:1.4;margin-left:22px}@media (max-width: 768px){.ui-form-error-summary__dropdown{position:fixed;inset:50% 16px auto;transform:translateY(-50%);margin-bottom:0}.ui-form-error-summary__dropdown--visible{transform:translateY(-50%)}}\n"] }]
154
181
  }], propDecorators: { errors: [{
155
182
  type: Input
156
183
  }], totalErrorCount: [{
157
184
  type: Input
185
+ }], validMessage: [{
186
+ type: Input
158
187
  }], fieldClick: [{
159
188
  type: Output
160
189
  }] } });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXVpLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1idWlsZGVyL3N1Yi1jb21wb25lbnRzL2Vycm9yLXN1bW1hcnkvZm9ybS1lcnJvci1zdW1tYXJ5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHckQ7Ozs7Ozs7O0dBUUc7QUFtRUgsTUFBTSxPQUFPLDJCQUEyQjtJQWxFeEM7UUFtRUUsNkNBQTZDO1FBQ3BDLFdBQU0sR0FBd0IsRUFBRSxDQUFDO1FBRTFDLGlFQUFpRTtRQUN4RCxvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUU3Qix3RUFBd0U7UUFDOUQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFbEQsb0NBQW9DO1FBQ3BDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0tBWXRCO0lBVkMsZ0dBQWdHO0lBQ2hHLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BILENBQUM7SUFFRCwwQ0FBMEM7SUFDMUMsWUFBWSxDQUFDLFFBQWdCO1FBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7K0dBdEJVLDJCQUEyQjttR0FBM0IsMkJBQTJCLDBMQTVENUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlEVCw4c0dBNURTLG1CQUFtQjs7NEZBK0RsQiwyQkFBMkI7a0JBbEV2QyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsQ0FBQyxtQkFDYix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFlBQzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5RFQ7OEJBS1EsTUFBTTtzQkFBZCxLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTHVjaWRlQW5ndWxhck1vZHVsZSB9IGZyb20gJ2x1Y2lkZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgVWlGb3JtRXJyb3JEZXRhaWwgfSBmcm9tICcuLi8uLi90eXBlcy92YWxpZGF0aW9uLnR5cGVzJztcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIHBlciBpbCByaWVwaWxvZ28gZXJyb3JpIGRlbCBmb3JtLlxyXG4gKlxyXG4gKiBNb3N0cmEgdW4gaW5kaWNhdG9yZSBjb24gaWwgY29udGVnZ2lvIGRlZ2xpIGVycm9yaSBlIHVuIGRyb3Bkb3duXHJcbiAqIGNvbiBpbCBkZXR0YWdsaW8gcGVyIGNhbXBvLiBDbGljayBzdSB1biBlcnJvcmUgZW1ldHRlIGBmaWVsZENsaWNrYFxyXG4gKiBwZXIgY29uc2VudGlyZSBsbyBzY3JvbGwtdG8tZmllbGQgY29uIGhpZ2hsaWdodCBuZWwgZm9ybSBidWlsZGVyLlxyXG4gKlxyXG4gKiBAc2VsZWN0b3IgdWktZm9ybS1lcnJvci1zdW1tYXJ5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3VpLWZvcm0tZXJyb3Itc3VtbWFyeScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTHVjaWRlQW5ndWxhck1vZHVsZV0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgQGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ1aS1mb3JtLWVycm9yLXN1bW1hcnlcIlxyXG4gICAgICAgIChtb3VzZWVudGVyKT1cInNob3dEcm9wZG93biA9IHRydWVcIlxyXG4gICAgICAgIChtb3VzZWxlYXZlKT1cInNob3dEcm9wZG93biA9IGZhbHNlXCJcclxuICAgICAgPlxyXG4gICAgICAgIDwhLS0gSW5kaWNhdG9yZSBlcnJvcmkgY29uIGljb25hIGUgbWVzc2FnZ2lvIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1aS1mb3JtLWVycm9yLXN1bW1hcnlfX2hlYWRpbmdcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNob3dEcm9wZG93biA9ICFzaG93RHJvcGRvd25cIlxyXG4gICAgICAgICAgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJkaXNwbGF5Q291bnQgKyAnIGVycm9yaSBuZWwgZm9ybSdcIlxyXG4gICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2hvd0Ryb3Bkb3duID0gIXNob3dEcm9wZG93blwiXHJcbiAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJzaG93RHJvcGRvd24gPSAhc2hvd0Ryb3Bkb3duOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJhbGVydC1jaXJjbGVcIiBbc2l6ZV09XCIyMFwiIGNsYXNzPVwidWktZm9ybS1lcnJvci1zdW1tYXJ5X19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cclxuICAgICAgICAgIDxwIGNsYXNzPVwidWktZm9ybS1lcnJvci1zdW1tYXJ5X190ZXh0XCI+XHJcbiAgICAgICAgICAgIFNvbm8gcHJlc2VudGkgPHN0cm9uZz57eyBkaXNwbGF5Q291bnQgfX08L3N0cm9uZz5cclxuICAgICAgICAgICAge3sgZGlzcGxheUNvdW50ID09PSAxID8gJ2Vycm9yZScgOiAnZXJyb3JpJyB9fSBuZWwgZm9ybS5cclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBEcm9wZG93biBkZXR0YWdsaW8gLS0+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJ1aS1mb3JtLWVycm9yLXN1bW1hcnlfX2Ryb3Bkb3duXCJcclxuICAgICAgICAgIFtjbGFzcy51aS1mb3JtLWVycm9yLXN1bW1hcnlfX2Ryb3Bkb3duLS12aXNpYmxlXT1cInNob3dEcm9wZG93blwiXHJcbiAgICAgICAgICByb2xlPVwibGlzdFwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiRWxlbmNvIGVycm9yaSBkZWwgZm9ybVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInVpLWZvcm0tZXJyb3Itc3VtbWFyeV9fZHJvcGRvd24tY29udGVudFwiPlxyXG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJ1aS1mb3JtLWVycm9yLXN1bW1hcnlfX2Ryb3Bkb3duLXRpdGxlXCI+RGV0dGFnbGkgZXJyb3JpOjwvaDQ+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cInVpLWZvcm0tZXJyb3Itc3VtbWFyeV9fbGlzdFwiPlxyXG4gICAgICAgICAgICAgIEBmb3IgKGRldGFpbCBvZiBlcnJvcnM7IHRyYWNrIGRldGFpbC5maWVsZEtleSkge1xyXG4gICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidWktZm9ybS1lcnJvci1zdW1tYXJ5X19pdGVtXCJcclxuICAgICAgICAgICAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRmllbGRDbGljayhkZXRhaWwuZmllbGRLZXkpXCJcclxuICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25GaWVsZENsaWNrKGRldGFpbC5maWVsZEtleSlcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWktZm9ybS1lcnJvci1zdW1tYXJ5X19maWVsZC1uYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJhcnJvdy1yaWdodFwiIFtzaXplXT1cIjE0XCIgY2xhc3M9XCJ1aS1mb3JtLWVycm9yLXN1bW1hcnlfX2Fycm93XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICB7eyBkZXRhaWwuZmllbGRMYWJlbCB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpLWZvcm0tZXJyb3Itc3VtbWFyeV9fbWVzc2FnZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICBAZm9yIChlcnIgb2YgZGV0YWlsLmVycm9yczsgdHJhY2sgJGluZGV4OyBsZXQgbGFzdCA9ICRsYXN0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBlcnIgfX1AaWYgKCFsYXN0KSB7LCB9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICBgLFxyXG4gIHN0eWxlVXJsOiAnLi9mb3JtLWVycm9yLXN1bW1hcnkuY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlGb3JtRXJyb3JTdW1tYXJ5Q29tcG9uZW50IHtcclxuICAvKiogTGlzdGEgZGkgZXJyb3JpIGRldHRhZ2xpYXRpIHBlciBjYW1wby4gKi9cclxuICBASW5wdXQoKSBlcnJvcnM6IFVpRm9ybUVycm9yRGV0YWlsW10gPSBbXTtcclxuXHJcbiAgLyoqIENvbnRlZ2dpbyB0b3RhbGUgZGVnbGkgZXJyb3JpIChzb21tYSBkaSB0dXR0aSBpIG1lc3NhZ2dpKS4gKi9cclxuICBASW5wdXQoKSB0b3RhbEVycm9yQ291bnQgPSAwO1xyXG5cclxuICAvKiogRW1lc3NvIHF1YW5kbyBsJ3V0ZW50ZSBjbGljY2Egc3UgdW4gZXJyb3JlIHBlciBuYXZpZ2FyZSBhbCBjYW1wby4gKi9cclxuICBAT3V0cHV0KCkgZmllbGRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAvKiogQGludGVybmFsIFN0YXRvIGRlbCBkcm9wZG93bi4gKi9cclxuICBzaG93RHJvcGRvd24gPSBmYWxzZTtcclxuXHJcbiAgLyoqIENvbnRlZ2dpbyBkYSB2aXN1YWxpenphcmU6IHVzYSB0b3RhbEVycm9yQ291bnQgc2UgZm9ybml0bywgYWx0cmltZW50aSBjb250YSBkYWkgZGV0dGFnbGkuICovXHJcbiAgZ2V0IGRpc3BsYXlDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudG90YWxFcnJvckNvdW50ID4gMCA/IHRoaXMudG90YWxFcnJvckNvdW50IDogdGhpcy5lcnJvcnMucmVkdWNlKChzdW0sIGQpID0+IHN1bSArIGQuZXJyb3JzLmxlbmd0aCwgMCk7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIEdlc3Rpb25lIGNsaWNrIHN1IGVycm9yZS4gKi9cclxuICBvbkZpZWxkQ2xpY2soZmllbGRLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93RHJvcGRvd24gPSBmYWxzZTtcclxuICAgIHRoaXMuZmllbGRDbGljay5lbWl0KGZpZWxkS2V5KTtcclxuICB9XHJcbn1cclxuIl19
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXVpLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1idWlsZGVyL3N1Yi1jb21wb25lbnRzL2Vycm9yLXN1bW1hcnkvZm9ybS1lcnJvci1zdW1tYXJ5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHckQ7Ozs7Ozs7R0FPRztBQThFSCxNQUFNLE9BQU8sMkJBQTJCO0lBN0V4QztRQThFRSw2Q0FBNkM7UUFDcEMsV0FBTSxHQUF3QixFQUFFLENBQUM7UUFFMUMsaUVBQWlFO1FBQ3hELG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBRTdCLGdEQUFnRDtRQUN2QyxpQkFBWSxHQUFHLG1DQUFtQyxDQUFDO1FBRTVELHdFQUF3RTtRQUM5RCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVsRCxzREFBc0Q7UUFDdEQsaUJBQVksR0FBRyxLQUFLLENBQUM7S0FpQnRCO0lBZkMsbUVBQW1FO0lBQ25FLElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELGdHQUFnRztJQUNoRyxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRUQsMENBQTBDO0lBQzFDLFlBQVksQ0FBQyxRQUFnQjtRQUMzQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxDQUFDOytHQTlCVSwyQkFBMkI7bUdBQTNCLDJCQUEyQix3TkF2RTVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9FVCxvcUhBdkVTLG1CQUFtQjs7NEZBMEVsQiwyQkFBMkI7a0JBN0V2QyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsQ0FBQyxtQkFDYix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFlBQzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9FVDs4QkFLUSxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEx1Y2lkZUFuZ3VsYXJNb2R1bGUgfSBmcm9tICdsdWNpZGUtYW5ndWxhcic7XHJcbmltcG9ydCB7IFVpRm9ybUVycm9yRGV0YWlsIH0gZnJvbSAnLi4vLi4vdHlwZXMvdmFsaWRhdGlvbi50eXBlcyc7XHJcblxyXG4vKipcclxuICogUmllcGlsb2dvIHN0YXRvIHZhbGlkYXppb25lIGRlbCBmb3JtLlxyXG4gKlxyXG4gKiBDb24gZXJyb3JpOiBpbmRpY2F0b3JlICsgZHJvcGRvd24gaG92ZXIvY2xpY2sgcGVyIGlsIGRldHRhZ2xpbyBlIG5hdmlnYXppb25lIGFpIGNhbXBpLlxyXG4gKiBTZW56YSBlcnJvcmk6IG1lc3NhZ2dpbyBkaSBzdGF0byBwb3NpdGl2byBmaXNzbyAobm8gZHJvcGRvd24pLCBVSSBwcmV2ZWRpYmlsZS5cclxuICpcclxuICogQHNlbGVjdG9yIHVpLWZvcm0tZXJyb3Itc3VtbWFyeVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1mb3JtLWVycm9yLXN1bW1hcnknLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0x1Y2lkZUFuZ3VsYXJNb2R1bGVdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJ1aS1mb3JtLWVycm9yLXN1bW1hcnlcIlxyXG4gICAgICBbY2xhc3MudWktZm9ybS1lcnJvci1zdW1tYXJ5LS1pbnZhbGlkXT1cImhhc0Vycm9yc1wiXHJcbiAgICAgIFtjbGFzcy51aS1mb3JtLWVycm9yLXN1bW1hcnktLXZhbGlkXT1cIiFoYXNFcnJvcnNcIlxyXG4gICAgPlxyXG4gICAgICBAaWYgKGhhc0Vycm9ycykge1xyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwidWktZm9ybS1lcnJvci1zdW1tYXJ5X19wYW5lbCB1aS1mb3JtLWVycm9yLXN1bW1hcnlfX3BhbmVsLS1pbnZhbGlkXCJcclxuICAgICAgICAgIChtb3VzZWVudGVyKT1cInNob3dEcm9wZG93biA9IHRydWVcIlxyXG4gICAgICAgICAgKG1vdXNlbGVhdmUpPVwic2hvd0Ryb3Bkb3duID0gZmFsc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJ1aS1mb3JtLWVycm9yLXN1bW1hcnlfX2hlYWRpbmdcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2hvd0Ryb3Bkb3duID0gIXNob3dEcm9wZG93blwiXHJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInNob3dEcm9wZG93blwiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGlzcGxheUNvdW50ICsgJyBlcnJvcmkgbmVsIGZvcm0nXCJcclxuICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2hvd0Ryb3Bkb3duID0gIXNob3dEcm9wZG93blwiXHJcbiAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInNob3dEcm9wZG93biA9ICFzaG93RHJvcGRvd247ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJhbGVydC1jaXJjbGVcIiBbc2l6ZV09XCIyMFwiIGNsYXNzPVwidWktZm9ybS1lcnJvci1zdW1tYXJ5X19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ1aS1mb3JtLWVycm9yLXN1bW1hcnlfX3RleHRcIj5cclxuICAgICAgICAgICAgICBTb25vIHByZXNlbnRpIDxzdHJvbmc+e3sgZGlzcGxheUNvdW50IH19PC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAge3sgZGlzcGxheUNvdW50ID09PSAxID8gJ2Vycm9yZScgOiAnZXJyb3JpJyB9fSBuZWwgZm9ybS5cclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInVpLWZvcm0tZXJyb3Itc3VtbWFyeV9fZHJvcGRvd25cIlxyXG4gICAgICAgICAgICBbY2xhc3MudWktZm9ybS1lcnJvci1zdW1tYXJ5X19kcm9wZG93bi0tdmlzaWJsZV09XCJzaG93RHJvcGRvd25cIlxyXG4gICAgICAgICAgICByb2xlPVwibGlzdFwiXHJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJFbGVuY28gZXJyb3JpIGRlbCBmb3JtXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpLWZvcm0tZXJyb3Itc3VtbWFyeV9fZHJvcGRvd24tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgIDxoNCBjbGFzcz1cInVpLWZvcm0tZXJyb3Itc3VtbWFyeV9fZHJvcGRvd24tdGl0bGVcIj5EZXR0YWdsaSBlcnJvcmk6PC9oND5cclxuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJ1aS1mb3JtLWVycm9yLXN1bW1hcnlfX2xpc3RcIj5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGRldGFpbCBvZiBlcnJvcnM7IHRyYWNrIGRldGFpbC5maWVsZEtleSkge1xyXG4gICAgICAgICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInVpLWZvcm0tZXJyb3Itc3VtbWFyeV9faXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25GaWVsZENsaWNrKGRldGFpbC5maWVsZEtleSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25GaWVsZENsaWNrKGRldGFpbC5maWVsZEtleSlcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpLWZvcm0tZXJyb3Itc3VtbWFyeV9fZmllbGQtbmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJhcnJvdy1yaWdodFwiIFtzaXplXT1cIjE0XCIgY2xhc3M9XCJ1aS1mb3JtLWVycm9yLXN1bW1hcnlfX2Fycm93XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7IGRldGFpbC5maWVsZExhYmVsIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVpLWZvcm0tZXJyb3Itc3VtbWFyeV9fbWVzc2FnZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGVyciBvZiBkZXRhaWwuZXJyb3JzOyB0cmFjayAkaW5kZXg7IGxldCBsYXN0ID0gJGxhc3QpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgZXJyIH19QGlmICghbGFzdCkgeywgfTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwidWktZm9ybS1lcnJvci1zdW1tYXJ5X19wYW5lbCB1aS1mb3JtLWVycm9yLXN1bW1hcnlfX3BhbmVsLS12YWxpZFwiIHJvbGU9XCJzdGF0dXNcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cclxuICAgICAgICAgIDxsdWNpZGUtaWNvbiBuYW1lPVwiY2hlY2stY2lyY2xlXCIgW3NpemVdPVwiMjBcIiBjbGFzcz1cInVpLWZvcm0tZXJyb3Itc3VtbWFyeV9faWNvbi12YWxpZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cInVpLWZvcm0tZXJyb3Itc3VtbWFyeV9fdGV4dC12YWxpZFwiPnt7IHZhbGlkTWVzc2FnZSB9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBzdHlsZVVybDogJy4vZm9ybS1lcnJvci1zdW1tYXJ5LmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpRm9ybUVycm9yU3VtbWFyeUNvbXBvbmVudCB7XHJcbiAgLyoqIExpc3RhIGRpIGVycm9yaSBkZXR0YWdsaWF0aSBwZXIgY2FtcG8uICovXHJcbiAgQElucHV0KCkgZXJyb3JzOiBVaUZvcm1FcnJvckRldGFpbFtdID0gW107XHJcblxyXG4gIC8qKiBDb250ZWdnaW8gdG90YWxlIGRlZ2xpIGVycm9yaSAoc29tbWEgZGkgdHV0dGkgaSBtZXNzYWdnaSkuICovXHJcbiAgQElucHV0KCkgdG90YWxFcnJvckNvdW50ID0gMDtcclxuXHJcbiAgLyoqIFRlc3RvIG1vc3RyYXRvIHF1YW5kbyBub24gY2kgc29ubyBlcnJvcmkuICovXHJcbiAgQElucHV0KCkgdmFsaWRNZXNzYWdlID0gJ0lsIGZvcm0gw6ggY29tcGlsYXRvIGNvcnJldHRhbWVudGUnO1xyXG5cclxuICAvKiogRW1lc3NvIHF1YW5kbyBsJ3V0ZW50ZSBjbGljY2Egc3UgdW4gZXJyb3JlIHBlciBuYXZpZ2FyZSBhbCBjYW1wby4gKi9cclxuICBAT3V0cHV0KCkgZmllbGRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAvKiogQGludGVybmFsIFN0YXRvIGRlbCBkcm9wZG93biAoc29sbyBjb24gZXJyb3JpKS4gKi9cclxuICBzaG93RHJvcGRvd24gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFRydWUgc2UgaWwgZm9ybSBoYSBhbG1lbm8gdW4gZXJyb3JlIGRhIG1vc3RyYXJlIG5lbCBzdW1tYXJ5LiAqL1xyXG4gIGdldCBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5Q291bnQgPiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqIENvbnRlZ2dpbyBkYSB2aXN1YWxpenphcmU6IHVzYSB0b3RhbEVycm9yQ291bnQgc2UgZm9ybml0bywgYWx0cmltZW50aSBjb250YSBkYWkgZGV0dGFnbGkuICovXHJcbiAgZ2V0IGRpc3BsYXlDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudG90YWxFcnJvckNvdW50ID4gMCA/IHRoaXMudG90YWxFcnJvckNvdW50IDogdGhpcy5lcnJvcnMucmVkdWNlKChzdW0sIGQpID0+IHN1bSArIGQuZXJyb3JzLmxlbmd0aCwgMCk7XHJcbiAgfVxyXG5cclxuICAvKiogQGludGVybmFsIEdlc3Rpb25lIGNsaWNrIHN1IGVycm9yZS4gKi9cclxuICBvbkZpZWxkQ2xpY2soZmllbGRLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93RHJvcGRvd24gPSBmYWxzZTtcclxuICAgIHRoaXMuZmllbGRDbGljay5lbWl0KGZpZWxkS2V5KTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,113 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation, inject, } from '@angular/core';
2
+ import { FormControl, ReactiveFormsModule } from '@angular/forms';
3
+ import { ErrorStateMatcher } from '@angular/material/core';
4
+ import { MatFormFieldModule } from '@angular/material/form-field';
5
+ import { MatInputModule } from '@angular/material/input';
6
+ import { MatTooltipModule } from '@angular/material/tooltip';
7
+ import { LucideAngularModule } from 'lucide-angular';
8
+ import { UiCurrencyInputDirective } from '../../directives/currency-input.directive';
9
+ import { UiFormErrorStateMatcher } from '../../services/form-error-state.matcher';
10
+ import { UiFormFieldErrorService } from '../../services/form-field-error.service';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/forms";
13
+ import * as i2 from "@angular/material/form-field";
14
+ import * as i3 from "@angular/material/input";
15
+ import * as i4 from "@angular/material/tooltip";
16
+ import * as i5 from "lucide-angular";
17
+ /**
18
+
19
+ * Campo atomico number / currency — stesso rendering del form-builder.
20
+
21
+ *
22
+
23
+ * @selector ui-form-number-field
24
+
25
+ */
26
+ export class UiFormNumberFieldComponent {
27
+ constructor() {
28
+ this.fieldErrorService = inject(UiFormFieldErrorService);
29
+ this.readonly = false;
30
+ this.errors = null;
31
+ /** Modalità valuta standalone (equivalente a `field.metadata.type === 'currency'`). */
32
+ this.currencyMode = false;
33
+ this.currencySymbol = 'EUR';
34
+ this.decimalPlaces = 2;
35
+ this.blurred = new EventEmitter();
36
+ }
37
+ get effectiveLabel() {
38
+ return this.field?.label ?? this.label ?? '';
39
+ }
40
+ get effectivePlaceholder() {
41
+ return this.field?.placeholder ?? this.placeholder ?? '';
42
+ }
43
+ get isReadonly() {
44
+ return this.readonly || this.field?.readonly === true;
45
+ }
46
+ get isCurrency() {
47
+ if (this.field?.metadata?.['type'] === 'currency')
48
+ return true;
49
+ return this.currencyMode;
50
+ }
51
+ get effectiveCurrencySymbol() {
52
+ return this.field?.metadata?.['currency'] || this.currencySymbol;
53
+ }
54
+ get effectiveDecimalPlaces() {
55
+ const fromField = this.field?.metadata?.['decimals'];
56
+ return fromField != null ? Number(fromField) : this.decimalPlaces;
57
+ }
58
+ get effectiveRules() {
59
+ return this.field?.validation ?? this.validationRules ?? [];
60
+ }
61
+ get fieldControl() {
62
+ if (!this.field || !this.formGroup)
63
+ return null;
64
+ const c = this.formGroup.get(this.field.key);
65
+ return c instanceof FormControl ? c : null;
66
+ }
67
+ resolvedErrors(control) {
68
+ if (this.errors != null)
69
+ return this.errors;
70
+ return this.fieldErrorService.getFieldErrors(control, this.effectiveRules);
71
+ }
72
+ onBlur() {
73
+ this.blurred.emit();
74
+ }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiFormNumberFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
76
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UiFormNumberFieldComponent, isStandalone: true, selector: "ui-form-number-field", inputs: { field: "field", formGroup: "formGroup", readonly: "readonly", errors: "errors", control: "control", label: "label", placeholder: "placeholder", validationRules: "validationRules", currencyMode: "currencyMode", currencySymbol: "currencySymbol", decimalPlaces: "decimalPlaces" }, outputs: { blurred: "blurred" }, providers: [{ provide: ErrorStateMatcher, useClass: UiFormErrorStateMatcher }], ngImport: i0, template: "@if (field && formGroup) {\r\n <div [formGroup]=\"formGroup\" class=\"ui-fb-field-ctx\">\r\n <mat-form-field appearance=\"outline\" class=\"ui-form-builder__full-width\" subscriptSizing=\"dynamic\">\r\n <mat-label>{{ effectiveLabel }}</mat-label>\r\n @if (isCurrency) {\r\n <input\r\n matInput\r\n type=\"text\"\r\n [formControlName]=\"field.key\"\r\n [placeholder]=\"effectivePlaceholder\"\r\n [readonly]=\"isReadonly\"\r\n uiCurrencyInput\r\n [currencySymbol]=\"effectiveCurrencySymbol\"\r\n [decimalPlaces]=\"effectiveDecimalPlaces\"\r\n (blur)=\"onBlur()\"\r\n />\r\n } @else {\r\n <input\r\n matInput\r\n type=\"number\"\r\n [formControlName]=\"field.key\"\r\n [placeholder]=\"effectivePlaceholder\"\r\n [readonly]=\"isReadonly\"\r\n (blur)=\"onBlur()\"\r\n />\r\n }\r\n @if (field.iconTooltip) {\r\n <button\r\n matSuffix\r\n mat-icon-button\r\n type=\"button\"\r\n [matTooltip]=\"field.iconTooltip.text\"\r\n [attr.aria-label]=\"field.iconTooltip.text\"\r\n >\r\n <lucide-icon [name]=\"field.iconTooltip.icon || 'info'\" [size]=\"18\" />\r\n </button>\r\n }\r\n <mat-error>\r\n @for (err of resolvedErrors(fieldControl); track $index) {\r\n <div>{{ err }}</div>\r\n }\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n} @else if (control) {\r\n <div class=\"ui-form-field-atom\">\r\n <mat-form-field appearance=\"outline\" class=\"ui-form-builder__full-width\" subscriptSizing=\"dynamic\">\r\n @if (effectiveLabel) {\r\n <mat-label>{{ effectiveLabel }}</mat-label>\r\n }\r\n @if (isCurrency) {\r\n <input\r\n matInput\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"effectivePlaceholder\"\r\n uiCurrencyInput\r\n [currencySymbol]=\"effectiveCurrencySymbol\"\r\n [decimalPlaces]=\"effectiveDecimalPlaces\"\r\n (blur)=\"onBlur()\"\r\n />\r\n } @else {\r\n <input\r\n matInput\r\n type=\"number\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"effectivePlaceholder\"\r\n (blur)=\"onBlur()\"\r\n />\r\n }\r\n <mat-error>\r\n @for (err of resolvedErrors(control); track $index) {\r\n <div>{{ err }}</div>\r\n }\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n}\r\n", styles: ["ui-form-text-field,ui-form-textarea-field,ui-form-number-field,ui-form-select-field,ui-form-radio-field{display:block;width:100%}.ui-form-field-atom{display:block;width:100%}.ui-form-field-atom mat-error,ui-form-text-field mat-error,ui-form-textarea-field mat-error,ui-form-number-field mat-error,ui-form-select-field mat-error{font-size:var(--ui-font-size-xs, 12px);display:flex;flex-direction:column;gap:2px;transform:translateY(-5px)}.ui-form-field-atom .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__leading,.ui-form-field-atom .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__notch,.ui-form-field-atom .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__trailing,ui-form-text-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__leading,ui-form-text-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__notch,ui-form-text-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__trailing,ui-form-textarea-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__leading,ui-form-textarea-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__notch,ui-form-textarea-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__trailing,ui-form-number-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__leading,ui-form-number-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__notch,ui-form-number-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__trailing,ui-form-select-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__leading,ui-form-select-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__notch,ui-form-select-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__trailing{border-color:var(--ui-color-error, #dc2626)!important}.ui-form-field-atom .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-floating-label,ui-form-text-field .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-floating-label,ui-form-textarea-field .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-floating-label,ui-form-number-field .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-floating-label,ui-form-select-field .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-floating-label{color:var(--ui-color-error, #dc2626)}.ui-form-field-atom mat-hint.ui-form-builder__char-count,ui-form-text-field mat-hint.ui-form-builder__char-count,ui-form-textarea-field mat-hint.ui-form-builder__char-count{font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted);padding:var(--ui-spacing-2)}.ui-form-field-atom mat-hint.ui-form-builder__char-count.ui-form-builder__char-count--warn,ui-form-text-field mat-hint.ui-form-builder__char-count.ui-form-builder__char-count--warn,ui-form-textarea-field mat-hint.ui-form-builder__char-count.ui-form-builder__char-count--warn{color:var(--ui-color-warn, #d97706)}.ui-form-field-atom mat-hint.ui-form-builder__char-count.ui-form-builder__char-count--error,ui-form-text-field mat-hint.ui-form-builder__char-count.ui-form-builder__char-count--error,ui-form-textarea-field mat-hint.ui-form-builder__char-count.ui-form-builder__char-count--error{color:var(--ui-color-error, #dc2626);font-weight:var(--ui-font-weight-semibold)}.ui-form-field-atom .ui-form-builder__textarea-wrapper,ui-form-textarea-field .ui-form-builder__textarea-wrapper{position:relative}ui-form-radio-field .ui-form-builder__field-label,.ui-form-field-atom.ui-form-builder__radio-wrapper .ui-form-builder__field-label{display:block;font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text);margin-bottom:var(--ui-spacing-4)}ui-form-radio-field .ui-form-builder__required,.ui-form-field-atom.ui-form-builder__radio-wrapper .ui-form-builder__required{color:var(--ui-color-error, #dc2626);margin-left:2px}ui-form-radio-field .ui-form-builder__field-error,.ui-form-field-atom.ui-form-builder__radio-wrapper .ui-form-builder__field-error{margin-top:var(--ui-spacing-1);font-size:var(--ui-font-size-xs);color:var(--ui-color-error, #dc2626);display:flex;flex-direction:column;gap:2px}ui-form-radio-field mat-radio-group,.ui-form-field-atom.ui-form-builder__radio-wrapper mat-radio-group{display:flex;flex-wrap:wrap;gap:var(--ui-spacing-3)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i5.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }, { kind: "directive", type: UiCurrencyInputDirective, selector: "[uiCurrencyInput]", inputs: ["currencySymbol", "decimalPlaces"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
77
+ }
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiFormNumberFieldComponent, decorators: [{
79
+ type: Component,
80
+ args: [{ selector: 'ui-form-number-field', standalone: true, imports: [
81
+ ReactiveFormsModule,
82
+ MatFormFieldModule,
83
+ MatInputModule,
84
+ MatTooltipModule,
85
+ LucideAngularModule,
86
+ UiCurrencyInputDirective,
87
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: ErrorStateMatcher, useClass: UiFormErrorStateMatcher }], template: "@if (field && formGroup) {\r\n <div [formGroup]=\"formGroup\" class=\"ui-fb-field-ctx\">\r\n <mat-form-field appearance=\"outline\" class=\"ui-form-builder__full-width\" subscriptSizing=\"dynamic\">\r\n <mat-label>{{ effectiveLabel }}</mat-label>\r\n @if (isCurrency) {\r\n <input\r\n matInput\r\n type=\"text\"\r\n [formControlName]=\"field.key\"\r\n [placeholder]=\"effectivePlaceholder\"\r\n [readonly]=\"isReadonly\"\r\n uiCurrencyInput\r\n [currencySymbol]=\"effectiveCurrencySymbol\"\r\n [decimalPlaces]=\"effectiveDecimalPlaces\"\r\n (blur)=\"onBlur()\"\r\n />\r\n } @else {\r\n <input\r\n matInput\r\n type=\"number\"\r\n [formControlName]=\"field.key\"\r\n [placeholder]=\"effectivePlaceholder\"\r\n [readonly]=\"isReadonly\"\r\n (blur)=\"onBlur()\"\r\n />\r\n }\r\n @if (field.iconTooltip) {\r\n <button\r\n matSuffix\r\n mat-icon-button\r\n type=\"button\"\r\n [matTooltip]=\"field.iconTooltip.text\"\r\n [attr.aria-label]=\"field.iconTooltip.text\"\r\n >\r\n <lucide-icon [name]=\"field.iconTooltip.icon || 'info'\" [size]=\"18\" />\r\n </button>\r\n }\r\n <mat-error>\r\n @for (err of resolvedErrors(fieldControl); track $index) {\r\n <div>{{ err }}</div>\r\n }\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n} @else if (control) {\r\n <div class=\"ui-form-field-atom\">\r\n <mat-form-field appearance=\"outline\" class=\"ui-form-builder__full-width\" subscriptSizing=\"dynamic\">\r\n @if (effectiveLabel) {\r\n <mat-label>{{ effectiveLabel }}</mat-label>\r\n }\r\n @if (isCurrency) {\r\n <input\r\n matInput\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"effectivePlaceholder\"\r\n uiCurrencyInput\r\n [currencySymbol]=\"effectiveCurrencySymbol\"\r\n [decimalPlaces]=\"effectiveDecimalPlaces\"\r\n (blur)=\"onBlur()\"\r\n />\r\n } @else {\r\n <input\r\n matInput\r\n type=\"number\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"effectivePlaceholder\"\r\n (blur)=\"onBlur()\"\r\n />\r\n }\r\n <mat-error>\r\n @for (err of resolvedErrors(control); track $index) {\r\n <div>{{ err }}</div>\r\n }\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n}\r\n", styles: ["ui-form-text-field,ui-form-textarea-field,ui-form-number-field,ui-form-select-field,ui-form-radio-field{display:block;width:100%}.ui-form-field-atom{display:block;width:100%}.ui-form-field-atom mat-error,ui-form-text-field mat-error,ui-form-textarea-field mat-error,ui-form-number-field mat-error,ui-form-select-field mat-error{font-size:var(--ui-font-size-xs, 12px);display:flex;flex-direction:column;gap:2px;transform:translateY(-5px)}.ui-form-field-atom .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__leading,.ui-form-field-atom .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__notch,.ui-form-field-atom .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__trailing,ui-form-text-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__leading,ui-form-text-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__notch,ui-form-text-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__trailing,ui-form-textarea-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__leading,ui-form-textarea-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__notch,ui-form-textarea-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__trailing,ui-form-number-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__leading,ui-form-number-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__notch,ui-form-number-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__trailing,ui-form-select-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__leading,ui-form-select-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__notch,ui-form-select-field .mat-mdc-form-field.mat-form-field-invalid .mdc-notched-outline__trailing{border-color:var(--ui-color-error, #dc2626)!important}.ui-form-field-atom .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-floating-label,ui-form-text-field .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-floating-label,ui-form-textarea-field .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-floating-label,ui-form-number-field .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-floating-label,ui-form-select-field .mat-mdc-form-field.mat-form-field-invalid .mat-mdc-floating-label{color:var(--ui-color-error, #dc2626)}.ui-form-field-atom mat-hint.ui-form-builder__char-count,ui-form-text-field mat-hint.ui-form-builder__char-count,ui-form-textarea-field mat-hint.ui-form-builder__char-count{font-size:var(--ui-font-size-xs);color:var(--ui-color-text-muted);padding:var(--ui-spacing-2)}.ui-form-field-atom mat-hint.ui-form-builder__char-count.ui-form-builder__char-count--warn,ui-form-text-field mat-hint.ui-form-builder__char-count.ui-form-builder__char-count--warn,ui-form-textarea-field mat-hint.ui-form-builder__char-count.ui-form-builder__char-count--warn{color:var(--ui-color-warn, #d97706)}.ui-form-field-atom mat-hint.ui-form-builder__char-count.ui-form-builder__char-count--error,ui-form-text-field mat-hint.ui-form-builder__char-count.ui-form-builder__char-count--error,ui-form-textarea-field mat-hint.ui-form-builder__char-count.ui-form-builder__char-count--error{color:var(--ui-color-error, #dc2626);font-weight:var(--ui-font-weight-semibold)}.ui-form-field-atom .ui-form-builder__textarea-wrapper,ui-form-textarea-field .ui-form-builder__textarea-wrapper{position:relative}ui-form-radio-field .ui-form-builder__field-label,.ui-form-field-atom.ui-form-builder__radio-wrapper .ui-form-builder__field-label{display:block;font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-weight-medium);color:var(--ui-color-text);margin-bottom:var(--ui-spacing-4)}ui-form-radio-field .ui-form-builder__required,.ui-form-field-atom.ui-form-builder__radio-wrapper .ui-form-builder__required{color:var(--ui-color-error, #dc2626);margin-left:2px}ui-form-radio-field .ui-form-builder__field-error,.ui-form-field-atom.ui-form-builder__radio-wrapper .ui-form-builder__field-error{margin-top:var(--ui-spacing-1);font-size:var(--ui-font-size-xs);color:var(--ui-color-error, #dc2626);display:flex;flex-direction:column;gap:2px}ui-form-radio-field mat-radio-group,.ui-form-field-atom.ui-form-builder__radio-wrapper mat-radio-group{display:flex;flex-wrap:wrap;gap:var(--ui-spacing-3)}\n"] }]
88
+ }], propDecorators: { field: [{
89
+ type: Input
90
+ }], formGroup: [{
91
+ type: Input
92
+ }], readonly: [{
93
+ type: Input
94
+ }], errors: [{
95
+ type: Input
96
+ }], control: [{
97
+ type: Input
98
+ }], label: [{
99
+ type: Input
100
+ }], placeholder: [{
101
+ type: Input
102
+ }], validationRules: [{
103
+ type: Input
104
+ }], currencyMode: [{
105
+ type: Input
106
+ }], currencySymbol: [{
107
+ type: Input
108
+ }], decimalPlaces: [{
109
+ type: Input
110
+ }], blurred: [{
111
+ type: Output
112
+ }] } });
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1udW1iZXItZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWJ1aWxkZXIvc3ViLWNvbXBvbmVudHMvZm9ybS1maWVsZHMvZm9ybS1udW1iZXItZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctdWktc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWJ1aWxkZXIvc3ViLWNvbXBvbmVudHMvZm9ybS1maWVsZHMvZm9ybS1udW1iZXItZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFFTCxNQUFNLEVBRU4saUJBQWlCLEVBRWpCLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXJGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRWxGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7O0FBUWxGOzs7Ozs7OztHQVFHO0FBb0NILE1BQU0sT0FBTywwQkFBMEI7SUFsQ3ZDO1FBb0NtQixzQkFBaUIsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQVE1RCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLFdBQU0sR0FBb0IsSUFBSSxDQUFDO1FBWXhDLHVGQUF1RjtRQUU5RSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2QixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUlqQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQTRGOUM7SUF4RkMsSUFBSSxjQUFjO1FBRWhCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFFL0MsQ0FBQztJQUlELElBQUksb0JBQW9CO1FBRXRCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFFM0QsQ0FBQztJQUlELElBQUksVUFBVTtRQUVaLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsS0FBSyxJQUFJLENBQUM7SUFFeEQsQ0FBQztJQUlELElBQUksVUFBVTtRQUVaLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxVQUFVO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFL0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBRTNCLENBQUM7SUFJRCxJQUFJLHVCQUF1QjtRQUV6QixPQUFRLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsVUFBVSxDQUFZLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUUvRSxDQUFDO0lBSUQsSUFBSSxzQkFBc0I7UUFFeEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVyRCxPQUFPLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUVwRSxDQUFDO0lBSUQsSUFBSSxjQUFjO1FBRWhCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7SUFFOUQsQ0FBQztJQUlELElBQUksWUFBWTtRQUVkLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVoRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTdDLE9BQU8sQ0FBQyxZQUFZLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFN0MsQ0FBQztJQUlELGNBQWMsQ0FBQyxPQUEyQjtRQUV4QyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUU1QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUU3RSxDQUFDO0lBSUQsTUFBTTtRQUVKLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFdEIsQ0FBQzsrR0E1SFUsMEJBQTBCO21HQUExQiwwQkFBMEIsb1lBUjFCLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLENBQUMsMEJDOUVoRixra0ZBOEVBLCt4SURsQkksbUJBQW1CLHdyQ0FFbkIsa0JBQWtCLHdnQkFFbEIsY0FBYywwV0FFZCxnQkFBZ0IsNFRBRWhCLG1CQUFtQixnUEFFbkIsd0JBQXdCOzs0RkFnQmYsMEJBQTBCO2tCQWxDdEMsU0FBUzsrQkFFRSxzQkFBc0IsY0FFcEIsSUFBSSxXQUVQO3dCQUVQLG1CQUFtQjt3QkFFbkIsa0JBQWtCO3dCQUVsQixjQUFjO3dCQUVkLGdCQUFnQjt3QkFFaEIsbUJBQW1CO3dCQUVuQix3QkFBd0I7cUJBRXpCLG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUVoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBRTFCLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLENBQUM7OEJBY3JFLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUlHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUlHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUlJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcclxuICBDb21wb25lbnQsXHJcclxuICBFdmVudEVtaXR0ZXIsXHJcclxuICBJbnB1dCxcclxyXG4gIE91dHB1dCxcclxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXHJcbiAgaW5qZWN0LFxyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxyXG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxyXG5pbXBvcnQgeyBMdWNpZGVBbmd1bGFyTW9kdWxlIH0gZnJvbSAnbHVjaWRlLWFuZ3VsYXInO1xyXHJcbmltcG9ydCB7IFVpQ3VycmVuY3lJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlJztcclxyXG5pbXBvcnQgeyBVaUZvcm1FcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0tZXJyb3Itc3RhdGUubWF0Y2hlcic7XHJcclxuaW1wb3J0IHsgVWlGb3JtRmllbGRFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLWZpZWxkLWVycm9yLnNlcnZpY2UnO1xyXHJcbmltcG9ydCB7IFVpRm9ybUZpZWxkRGVzY3JpcHRvciB9IGZyb20gJy4uLy4uL3R5cGVzL2ZpZWxkLnR5cGVzJztcclxyXG5pbXBvcnQgeyBVaVZhbGlkYXRpb25SdWxlIH0gZnJvbSAnLi4vLi4vdHlwZXMvdmFsaWRhdGlvbi50eXBlcyc7XHJcclxuXHJcclxuLyoqXHJcclxuICogQ2FtcG8gYXRvbWljbyBudW1iZXIgLyBjdXJyZW5jeSDigJQgc3Rlc3NvIHJlbmRlcmluZyBkZWwgZm9ybS1idWlsZGVyLlxyXHJcbiAqXHJcclxuICogQHNlbGVjdG9yIHVpLWZvcm0tbnVtYmVyLWZpZWxkXHJcclxuICovXHJcclxuQENvbXBvbmVudCh7XHJcclxuICBzZWxlY3RvcjogJ3VpLWZvcm0tbnVtYmVyLWZpZWxkJyxcclxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcclxuICBpbXBvcnRzOiBbXHJcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcclxuICAgIEx1Y2lkZUFuZ3VsYXJNb2R1bGUsXHJcclxuICAgIFVpQ3VycmVuY3lJbnB1dERpcmVjdGl2ZSxcclxyXG4gIF0sXHJcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEVycm9yU3RhdGVNYXRjaGVyLCB1c2VDbGFzczogVWlGb3JtRXJyb3JTdGF0ZU1hdGNoZXIgfV0sXHJcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1udW1iZXItZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXHJcbiAgc3R5bGVVcmw6ICcuL2Zvcm0tZmllbGRzLnNjc3MnLFxyXHJcbn0pXHJcclxuZXhwb3J0IGNsYXNzIFVpRm9ybU51bWJlckZpZWxkQ29tcG9uZW50IHtcclxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZmllbGRFcnJvclNlcnZpY2UgPSBpbmplY3QoVWlGb3JtRmllbGRFcnJvclNlcnZpY2UpO1xyXHJcblxyXHJcbiAgQElucHV0KCkgZmllbGQ/OiBVaUZvcm1GaWVsZERlc2NyaXB0b3I7XHJcclxuICBASW5wdXQoKSBmb3JtR3JvdXA/OiBGb3JtR3JvdXA7XHJcclxuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xyXHJcbiAgQElucHV0KCkgZXJyb3JzOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xyXHJcblxyXHJcbiAgQElucHV0KCkgY29udHJvbD86IEZvcm1Db250cm9sO1xyXHJcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XHJcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZztcclxyXG4gIEBJbnB1dCgpIHZhbGlkYXRpb25SdWxlcz86IFVpVmFsaWRhdGlvblJ1bGVbXTtcclxyXG4gIC8qKiBNb2RhbGl0w6AgdmFsdXRhIHN0YW5kYWxvbmUgKGVxdWl2YWxlbnRlIGEgYGZpZWxkLm1ldGFkYXRhLnR5cGUgPT09ICdjdXJyZW5jeSdgKS4gKi9cclxyXG4gIEBJbnB1dCgpIGN1cnJlbmN5TW9kZSA9IGZhbHNlO1xyXHJcbiAgQElucHV0KCkgY3VycmVuY3lTeW1ib2wgPSAnRVVSJztcclxyXG4gIEBJbnB1dCgpIGRlY2ltYWxQbGFjZXMgPSAyO1xyXHJcblxyXHJcbiAgQE91dHB1dCgpIGJsdXJyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcclxuXHJcclxuICBnZXQgZWZmZWN0aXZlTGFiZWwoKTogc3RyaW5nIHtcclxyXG4gICAgcmV0dXJuIHRoaXMuZmllbGQ/LmxhYmVsID8/IHRoaXMubGFiZWwgPz8gJyc7XHJcclxuICB9XHJcclxuXHJcclxuICBnZXQgZWZmZWN0aXZlUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcclxyXG4gICAgcmV0dXJuIHRoaXMuZmllbGQ/LnBsYWNlaG9sZGVyID8/IHRoaXMucGxhY2Vob2xkZXIgPz8gJyc7XHJcclxuICB9XHJcclxuXHJcclxuICBnZXQgaXNSZWFkb25seSgpOiBib29sZWFuIHtcclxyXG4gICAgcmV0dXJuIHRoaXMucmVhZG9ubHkgfHwgdGhpcy5maWVsZD8ucmVhZG9ubHkgPT09IHRydWU7XHJcclxuICB9XHJcclxuXHJcclxuICBnZXQgaXNDdXJyZW5jeSgpOiBib29sZWFuIHtcclxyXG4gICAgaWYgKHRoaXMuZmllbGQ/Lm1ldGFkYXRhPy5bJ3R5cGUnXSA9PT0gJ2N1cnJlbmN5JykgcmV0dXJuIHRydWU7XHJcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbmN5TW9kZTtcclxyXG4gIH1cclxyXG5cclxyXG4gIGdldCBlZmZlY3RpdmVDdXJyZW5jeVN5bWJvbCgpOiBzdHJpbmcge1xyXHJcbiAgICByZXR1cm4gKHRoaXMuZmllbGQ/Lm1ldGFkYXRhPy5bJ2N1cnJlbmN5J10gYXMgc3RyaW5nKSB8fCB0aGlzLmN1cnJlbmN5U3ltYm9sO1xyXHJcbiAgfVxyXHJcblxyXHJcbiAgZ2V0IGVmZmVjdGl2ZURlY2ltYWxQbGFjZXMoKTogbnVtYmVyIHtcclxyXG4gICAgY29uc3QgZnJvbUZpZWxkID0gdGhpcy5maWVsZD8ubWV0YWRhdGE/LlsnZGVjaW1hbHMnXTtcclxyXG4gICAgcmV0dXJuIGZyb21GaWVsZCAhPSBudWxsID8gTnVtYmVyKGZyb21GaWVsZCkgOiB0aGlzLmRlY2ltYWxQbGFjZXM7XHJcclxuICB9XHJcclxuXHJcclxuICBnZXQgZWZmZWN0aXZlUnVsZXMoKTogVWlWYWxpZGF0aW9uUnVsZVtdIHtcclxyXG4gICAgcmV0dXJuIHRoaXMuZmllbGQ/LnZhbGlkYXRpb24gPz8gdGhpcy52YWxpZGF0aW9uUnVsZXMgPz8gW107XHJcclxuICB9XHJcclxuXHJcclxuICBnZXQgZmllbGRDb250cm9sKCk6IEZvcm1Db250cm9sIHwgbnVsbCB7XHJcclxuICAgIGlmICghdGhpcy5maWVsZCB8fCAhdGhpcy5mb3JtR3JvdXApIHJldHVybiBudWxsO1xyXHJcbiAgICBjb25zdCBjID0gdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZmllbGQua2V5KTtcclxyXG4gICAgcmV0dXJuIGMgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCA/IGMgOiBudWxsO1xyXHJcbiAgfVxyXHJcblxyXHJcbiAgcmVzb2x2ZWRFcnJvcnMoY29udHJvbDogRm9ybUNvbnRyb2wgfCBudWxsKTogc3RyaW5nW10ge1xyXHJcbiAgICBpZiAodGhpcy5lcnJvcnMgIT0gbnVsbCkgcmV0dXJuIHRoaXMuZXJyb3JzO1xyXHJcbiAgICByZXR1cm4gdGhpcy5maWVsZEVycm9yU2VydmljZS5nZXRGaWVsZEVycm9ycyhjb250cm9sLCB0aGlzLmVmZmVjdGl2ZVJ1bGVzKTtcclxyXG4gIH1cclxyXG5cclxyXG4gIG9uQmx1cigpOiB2b2lkIHtcclxyXG4gICAgdGhpcy5ibHVycmVkLmVtaXQoKTtcclxyXG4gIH1cclxyXG59XHJcclxuXHIiLCJAaWYgKGZpZWxkICYmIGZvcm1Hcm91cCkge1xyXG4gIDxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBjbGFzcz1cInVpLWZiLWZpZWxkLWN0eFwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ1aS1mb3JtLWJ1aWxkZXJfX2Z1bGwtd2lkdGhcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgZWZmZWN0aXZlTGFiZWwgfX08L21hdC1sYWJlbD5cclxuICAgICAgQGlmIChpc0N1cnJlbmN5KSB7XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5rZXlcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVmZmVjdGl2ZVBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgIFtyZWFkb25seV09XCJpc1JlYWRvbmx5XCJcclxuICAgICAgICAgIHVpQ3VycmVuY3lJbnB1dFxyXG4gICAgICAgICAgW2N1cnJlbmN5U3ltYm9sXT1cImVmZmVjdGl2ZUN1cnJlbmN5U3ltYm9sXCJcclxuICAgICAgICAgIFtkZWNpbWFsUGxhY2VzXT1cImVmZmVjdGl2ZURlY2ltYWxQbGFjZXNcIlxyXG4gICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5rZXlcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVmZmVjdGl2ZVBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgIFtyZWFkb25seV09XCJpc1JlYWRvbmx5XCJcclxuICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICAvPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoZmllbGQuaWNvblRvb2x0aXApIHtcclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBtYXRTdWZmaXhcclxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJmaWVsZC5pY29uVG9vbHRpcC50ZXh0XCJcclxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZmllbGQuaWNvblRvb2x0aXAudGV4dFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGx1Y2lkZS1pY29uIFtuYW1lXT1cImZpZWxkLmljb25Ub29sdGlwLmljb24gfHwgJ2luZm8nXCIgW3NpemVdPVwiMThcIiAvPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIDxtYXQtZXJyb3I+XHJcbiAgICAgICAgQGZvciAoZXJyIG9mIHJlc29sdmVkRXJyb3JzKGZpZWxkQ29udHJvbCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgPGRpdj57eyBlcnIgfX08L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxufSBAZWxzZSBpZiAoY29udHJvbCkge1xyXG4gIDxkaXYgY2xhc3M9XCJ1aS1mb3JtLWZpZWxkLWF0b21cIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwidWktZm9ybS1idWlsZGVyX19mdWxsLXdpZHRoXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxyXG4gICAgICBAaWYgKGVmZmVjdGl2ZUxhYmVsKSB7XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eyBlZmZlY3RpdmVMYWJlbCB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoaXNDdXJyZW5jeSkge1xyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJlZmZlY3RpdmVQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICB1aUN1cnJlbmN5SW5wdXRcclxuICAgICAgICAgIFtjdXJyZW5jeVN5bWJvbF09XCJlZmZlY3RpdmVDdXJyZW5jeVN5bWJvbFwiXHJcbiAgICAgICAgICBbZGVjaW1hbFBsYWNlc109XCJlZmZlY3RpdmVEZWNpbWFsUGxhY2VzXCJcclxuICAgICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICAvPlxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJlZmZlY3RpdmVQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgfVxyXG4gICAgICA8bWF0LWVycm9yPlxyXG4gICAgICAgIEBmb3IgKGVyciBvZiByZXNvbHZlZEVycm9ycyhjb250cm9sKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICA8ZGl2Pnt7IGVyciB9fTwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==