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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (721) hide show
  1. package/accordion/entry-accordion.d.ts +4 -0
  2. package/accordion/index.d.ts +5 -0
  3. package/accordion/lib/components/accordion/accordion.component.d.ts +125 -0
  4. package/accordion/lib/components/accordion/accordion.types.d.ts +64 -0
  5. package/accordion/lib/components/accordion/index.d.ts +2 -0
  6. package/accordion/lib/core/types/index.d.ts +133 -0
  7. package/base-layout/entry-base-layout.d.ts +4 -0
  8. package/base-layout/index.d.ts +5 -0
  9. package/base-layout/lib/components/base-layout/base-layout.component.d.ts +108 -0
  10. package/base-layout/lib/components/base-layout/base-layout.types.d.ts +40 -0
  11. package/base-layout/lib/components/base-layout/index.d.ts +13 -0
  12. package/base-layout/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  13. package/base-layout/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  14. package/base-layout/lib/components/blackbox/blackbox.service.d.ts +144 -0
  15. package/base-layout/lib/components/blackbox/blackbox.types.d.ts +238 -0
  16. package/base-layout/lib/components/button/button-area.component.d.ts +93 -0
  17. package/base-layout/lib/components/button/button.component.d.ts +61 -0
  18. package/base-layout/lib/components/button/button.types.d.ts +75 -0
  19. package/base-layout/lib/components/page-header/breadcrumb.service.d.ts +96 -0
  20. package/base-layout/lib/components/page-header/page-header.component.d.ts +59 -0
  21. package/base-layout/lib/components/page-header/page-header.types.d.ts +96 -0
  22. package/base-layout/lib/core/types/index.d.ts +133 -0
  23. package/blackbox/entry-blackbox.d.ts +4 -0
  24. package/blackbox/index.d.ts +5 -0
  25. package/blackbox/lib/components/blackbox/blackbox-debugger.component.d.ts +80 -0
  26. package/blackbox/lib/components/blackbox/blackbox-debugger.service.d.ts +34 -0
  27. package/blackbox/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  28. package/blackbox/lib/components/blackbox/blackbox-json-viewer.component.d.ts +18 -0
  29. package/blackbox/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  30. package/blackbox/lib/components/blackbox/blackbox.interceptor.d.ts +38 -0
  31. package/blackbox/lib/components/blackbox/blackbox.service.d.ts +144 -0
  32. package/blackbox/lib/components/blackbox/blackbox.types.d.ts +238 -0
  33. package/blackbox/lib/components/blackbox/index.d.ts +23 -0
  34. package/blackbox/lib/components/blackbox/ui-track.directive.d.ts +20 -0
  35. package/blackbox/lib/components/button/button-area.component.d.ts +93 -0
  36. package/blackbox/lib/components/button/button.component.d.ts +61 -0
  37. package/blackbox/lib/components/button/button.types.d.ts +75 -0
  38. package/blackbox/lib/components/button/index.d.ts +15 -0
  39. package/blackbox/lib/components/modal/confirm-dialog.component.d.ts +46 -0
  40. package/blackbox/lib/components/modal/index.d.ts +4 -0
  41. package/blackbox/lib/components/modal/modal.component.d.ts +44 -0
  42. package/blackbox/lib/components/modal/modal.service.d.ts +93 -0
  43. package/blackbox/lib/components/modal/modal.types.d.ts +110 -0
  44. package/blackbox/lib/core/types/index.d.ts +133 -0
  45. package/button/entry-button.d.ts +4 -0
  46. package/button/index.d.ts +5 -0
  47. package/button/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  48. package/button/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  49. package/button/lib/components/blackbox/blackbox.service.d.ts +144 -0
  50. package/button/lib/components/blackbox/blackbox.types.d.ts +238 -0
  51. package/button/lib/components/button/button-area.component.d.ts +93 -0
  52. package/button/lib/components/button/button.component.d.ts +61 -0
  53. package/button/lib/components/button/button.types.d.ts +75 -0
  54. package/button/lib/components/button/index.d.ts +15 -0
  55. package/button/lib/core/types/index.d.ts +133 -0
  56. package/core/entry-core.d.ts +5 -0
  57. package/core/index.d.ts +5 -0
  58. package/core/lib/core/types/index.d.ts +133 -0
  59. package/core/lib/core/utils/index.d.ts +60 -0
  60. package/crud-table/entry-crud-table.d.ts +4 -0
  61. package/crud-table/index.d.ts +5 -0
  62. package/crud-table/lib/components/accordion/accordion.component.d.ts +125 -0
  63. package/crud-table/lib/components/accordion/accordion.types.d.ts +64 -0
  64. package/crud-table/lib/components/accordion/index.d.ts +2 -0
  65. package/crud-table/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  66. package/crud-table/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  67. package/crud-table/lib/components/blackbox/blackbox.service.d.ts +144 -0
  68. package/crud-table/lib/components/blackbox/blackbox.types.d.ts +238 -0
  69. package/crud-table/lib/components/button/button-area.component.d.ts +93 -0
  70. package/crud-table/lib/components/button/button.component.d.ts +61 -0
  71. package/crud-table/lib/components/button/button.types.d.ts +75 -0
  72. package/crud-table/lib/components/button/index.d.ts +15 -0
  73. package/crud-table/lib/components/crud-table/crud-table.component.d.ts +143 -0
  74. package/crud-table/lib/components/crud-table/crud-table.types.d.ts +207 -0
  75. package/crud-table/lib/components/crud-table/index.d.ts +15 -0
  76. package/crud-table/lib/components/form-builder/adapters/it-date-adapter.d.ts +32 -0
  77. package/crud-table/lib/components/form-builder/directives/currency-input.directive.d.ts +48 -0
  78. package/crud-table/lib/components/form-builder/form-builder.component.d.ts +279 -0
  79. package/crud-table/lib/components/form-builder/services/form-condition.service.d.ts +46 -0
  80. package/crud-table/lib/components/form-builder/services/form-error-state.matcher.d.ts +9 -0
  81. package/crud-table/lib/components/form-builder/services/form-field-error.service.d.ts +38 -0
  82. package/crud-table/lib/components/form-builder/services/form-validation.service.d.ts +63 -0
  83. package/crud-table/lib/components/form-builder/services/location.service.d.ts +83 -0
  84. package/crud-table/lib/components/form-builder/services/nominatim-geocoding.service.d.ts +37 -0
  85. package/crud-table/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +31 -0
  86. package/crud-table/lib/components/form-builder/sub-components/file-input/file-input.component.d.ts +41 -0
  87. package/crud-table/lib/components/form-builder/sub-components/form-fields/form-number-field.component.d.ts +42 -0
  88. package/crud-table/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.d.ts +45 -0
  89. package/crud-table/lib/components/form-builder/sub-components/form-fields/form-select-field.component.d.ts +44 -0
  90. package/crud-table/lib/components/form-builder/sub-components/form-fields/form-text-field.component.d.ts +62 -0
  91. package/crud-table/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.d.ts +39 -0
  92. package/crud-table/lib/components/form-builder/sub-components/form-fields/index.d.ts +5 -0
  93. package/crud-table/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.d.ts +84 -0
  94. package/crud-table/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +145 -0
  95. package/crud-table/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.d.ts +108 -0
  96. package/crud-table/lib/components/form-builder/types/condition.types.d.ts +51 -0
  97. package/crud-table/lib/components/form-builder/types/field.types.d.ts +330 -0
  98. package/crud-table/lib/components/form-builder/types/geocoded-location.types.d.ts +116 -0
  99. package/crud-table/lib/components/form-builder/types/schema.types.d.ts +304 -0
  100. package/crud-table/lib/components/form-builder/types/territoriale.types.d.ts +170 -0
  101. package/crud-table/lib/components/form-builder/types/validation.types.d.ts +179 -0
  102. package/crud-table/lib/components/modal/confirm-dialog.component.d.ts +46 -0
  103. package/crud-table/lib/components/modal/modal.service.d.ts +93 -0
  104. package/crud-table/lib/components/modal/modal.types.d.ts +110 -0
  105. package/crud-table/lib/core/logging/logger.config.d.ts +18 -0
  106. package/crud-table/lib/core/logging/logger.service.d.ts +75 -0
  107. package/crud-table/lib/core/logging/logger.types.d.ts +70 -0
  108. package/crud-table/lib/core/types/index.d.ts +133 -0
  109. package/esm2022/accordion/entry-accordion.mjs +5 -0
  110. package/esm2022/accordion/gnggln-ng-ui-system-accordion.mjs +5 -0
  111. package/esm2022/accordion/lib/components/accordion/accordion.component.mjs +398 -0
  112. package/esm2022/accordion/lib/components/accordion/accordion.types.mjs +6 -0
  113. package/esm2022/accordion/lib/components/accordion/index.mjs +2 -0
  114. package/esm2022/accordion/lib/core/types/index.mjs +6 -0
  115. package/esm2022/base-layout/entry-base-layout.mjs +5 -0
  116. package/esm2022/base-layout/gnggln-ng-ui-system-base-layout.mjs +5 -0
  117. package/esm2022/base-layout/lib/components/base-layout/base-layout.component.mjs +272 -0
  118. package/esm2022/base-layout/lib/components/base-layout/base-layout.types.mjs +6 -0
  119. package/esm2022/base-layout/lib/components/base-layout/index.mjs +14 -0
  120. package/esm2022/base-layout/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  121. package/esm2022/base-layout/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  122. package/esm2022/base-layout/lib/components/blackbox/blackbox.service.mjs +323 -0
  123. package/esm2022/base-layout/lib/components/blackbox/blackbox.types.mjs +25 -0
  124. package/esm2022/base-layout/lib/components/button/button-area.component.mjs +210 -0
  125. package/esm2022/base-layout/lib/components/button/button.component.mjs +180 -0
  126. package/esm2022/base-layout/lib/components/button/button.types.mjs +6 -0
  127. package/esm2022/base-layout/lib/components/page-header/breadcrumb.service.mjs +243 -0
  128. package/esm2022/base-layout/lib/components/page-header/page-header.component.mjs +243 -0
  129. package/esm2022/base-layout/lib/components/page-header/page-header.types.mjs +21 -0
  130. package/esm2022/base-layout/lib/core/types/index.mjs +6 -0
  131. package/esm2022/blackbox/entry-blackbox.mjs +5 -0
  132. package/esm2022/blackbox/gnggln-ng-ui-system-blackbox.mjs +5 -0
  133. package/esm2022/blackbox/lib/components/blackbox/blackbox-debugger.component.mjs +904 -0
  134. package/esm2022/blackbox/lib/components/blackbox/blackbox-debugger.service.mjs +51 -0
  135. package/esm2022/blackbox/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  136. package/esm2022/blackbox/lib/components/blackbox/blackbox-json-viewer.component.mjs +66 -0
  137. package/esm2022/blackbox/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  138. package/esm2022/blackbox/lib/components/blackbox/blackbox.interceptor.mjs +135 -0
  139. package/esm2022/blackbox/lib/components/blackbox/blackbox.service.mjs +323 -0
  140. package/esm2022/blackbox/lib/components/blackbox/blackbox.types.mjs +25 -0
  141. package/esm2022/blackbox/lib/components/blackbox/index.mjs +27 -0
  142. package/esm2022/blackbox/lib/components/blackbox/ui-track.directive.mjs +69 -0
  143. package/esm2022/blackbox/lib/components/button/button-area.component.mjs +210 -0
  144. package/esm2022/blackbox/lib/components/button/button.component.mjs +180 -0
  145. package/esm2022/blackbox/lib/components/button/button.types.mjs +6 -0
  146. package/esm2022/blackbox/lib/components/button/index.mjs +16 -0
  147. package/esm2022/blackbox/lib/components/modal/confirm-dialog.component.mjs +151 -0
  148. package/esm2022/blackbox/lib/components/modal/index.mjs +4 -0
  149. package/esm2022/blackbox/lib/components/modal/modal.component.mjs +139 -0
  150. package/esm2022/blackbox/lib/components/modal/modal.service.mjs +197 -0
  151. package/esm2022/blackbox/lib/components/modal/modal.types.mjs +6 -0
  152. package/esm2022/blackbox/lib/core/types/index.mjs +6 -0
  153. package/esm2022/button/entry-button.mjs +5 -0
  154. package/esm2022/button/gnggln-ng-ui-system-button.mjs +5 -0
  155. package/esm2022/button/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  156. package/esm2022/button/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  157. package/esm2022/button/lib/components/blackbox/blackbox.service.mjs +323 -0
  158. package/esm2022/button/lib/components/blackbox/blackbox.types.mjs +25 -0
  159. package/esm2022/button/lib/components/button/button-area.component.mjs +210 -0
  160. package/esm2022/button/lib/components/button/button.component.mjs +180 -0
  161. package/esm2022/button/lib/components/button/button.types.mjs +6 -0
  162. package/esm2022/button/lib/components/button/index.mjs +16 -0
  163. package/esm2022/button/lib/core/types/index.mjs +6 -0
  164. package/esm2022/core/entry-core.mjs +6 -0
  165. package/esm2022/core/gnggln-ng-ui-system-core.mjs +5 -0
  166. package/esm2022/core/lib/core/types/index.mjs +6 -0
  167. package/esm2022/core/lib/core/utils/index.mjs +102 -0
  168. package/esm2022/crud-table/entry-crud-table.mjs +5 -0
  169. package/esm2022/crud-table/gnggln-ng-ui-system-crud-table.mjs +5 -0
  170. package/esm2022/crud-table/lib/components/accordion/accordion.component.mjs +398 -0
  171. package/esm2022/crud-table/lib/components/accordion/accordion.types.mjs +6 -0
  172. package/esm2022/crud-table/lib/components/accordion/index.mjs +2 -0
  173. package/esm2022/crud-table/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  174. package/esm2022/crud-table/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  175. package/esm2022/crud-table/lib/components/blackbox/blackbox.service.mjs +323 -0
  176. package/esm2022/crud-table/lib/components/blackbox/blackbox.types.mjs +25 -0
  177. package/esm2022/crud-table/lib/components/button/button-area.component.mjs +210 -0
  178. package/esm2022/crud-table/lib/components/button/button.component.mjs +180 -0
  179. package/esm2022/crud-table/lib/components/button/button.types.mjs +6 -0
  180. package/esm2022/crud-table/lib/components/button/index.mjs +16 -0
  181. package/esm2022/crud-table/lib/components/crud-table/crud-table.component.mjs +789 -0
  182. package/esm2022/crud-table/lib/components/crud-table/crud-table.types.mjs +6 -0
  183. package/esm2022/crud-table/lib/components/crud-table/index.mjs +16 -0
  184. package/esm2022/crud-table/lib/components/form-builder/adapters/it-date-adapter.mjs +82 -0
  185. package/esm2022/crud-table/lib/components/form-builder/directives/currency-input.directive.mjs +184 -0
  186. package/esm2022/crud-table/lib/components/form-builder/form-builder.component.mjs +1351 -0
  187. package/esm2022/crud-table/lib/components/form-builder/services/form-condition.service.mjs +132 -0
  188. package/esm2022/crud-table/lib/components/form-builder/services/form-error-state.matcher.mjs +10 -0
  189. package/esm2022/crud-table/lib/components/form-builder/services/form-field-error.service.mjs +103 -0
  190. package/esm2022/crud-table/lib/components/form-builder/services/form-validation.service.mjs +381 -0
  191. package/esm2022/crud-table/lib/components/form-builder/services/location.service.mjs +141 -0
  192. package/esm2022/crud-table/lib/components/form-builder/services/nominatim-geocoding.service.mjs +120 -0
  193. package/esm2022/crud-table/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +190 -0
  194. package/esm2022/crud-table/lib/components/form-builder/sub-components/file-input/file-input.component.mjs +310 -0
  195. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +113 -0
  196. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +105 -0
  197. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +126 -0
  198. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-text-field.component.mjs +147 -0
  199. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.mjs +99 -0
  200. package/esm2022/crud-table/lib/components/form-builder/sub-components/form-fields/index.mjs +6 -0
  201. package/esm2022/crud-table/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.mjs +322 -0
  202. package/esm2022/crud-table/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +648 -0
  203. package/esm2022/crud-table/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +432 -0
  204. package/esm2022/crud-table/lib/components/form-builder/types/condition.types.mjs +6 -0
  205. package/esm2022/crud-table/lib/components/form-builder/types/field.types.mjs +6 -0
  206. package/esm2022/crud-table/lib/components/form-builder/types/geocoded-location.types.mjs +6 -0
  207. package/esm2022/crud-table/lib/components/form-builder/types/schema.types.mjs +6 -0
  208. package/esm2022/crud-table/lib/components/form-builder/types/territoriale.types.mjs +6 -0
  209. package/esm2022/crud-table/lib/components/form-builder/types/validation.types.mjs +10 -0
  210. package/esm2022/crud-table/lib/components/modal/confirm-dialog.component.mjs +151 -0
  211. package/esm2022/crud-table/lib/components/modal/modal.service.mjs +197 -0
  212. package/esm2022/crud-table/lib/components/modal/modal.types.mjs +6 -0
  213. package/esm2022/crud-table/lib/core/logging/logger.config.mjs +18 -0
  214. package/esm2022/crud-table/lib/core/logging/logger.service.mjs +295 -0
  215. package/esm2022/crud-table/lib/core/logging/logger.types.mjs +7 -0
  216. package/esm2022/crud-table/lib/core/types/index.mjs +6 -0
  217. package/esm2022/crud-table/lib/sources/location-data.opt.json +8942 -0
  218. package/esm2022/crud-table/lib/sources/nazioni.opt.json +215 -0
  219. package/esm2022/form-builder/entry-form-builder.mjs +5 -0
  220. package/esm2022/form-builder/gnggln-ng-ui-system-form-builder.mjs +5 -0
  221. package/esm2022/form-builder/lib/components/accordion/accordion.component.mjs +398 -0
  222. package/esm2022/form-builder/lib/components/accordion/accordion.types.mjs +6 -0
  223. package/esm2022/form-builder/lib/components/accordion/index.mjs +2 -0
  224. package/esm2022/form-builder/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  225. package/esm2022/form-builder/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  226. package/esm2022/form-builder/lib/components/blackbox/blackbox.service.mjs +323 -0
  227. package/esm2022/form-builder/lib/components/blackbox/blackbox.types.mjs +25 -0
  228. package/esm2022/form-builder/lib/components/button/button-area.component.mjs +210 -0
  229. package/esm2022/form-builder/lib/components/button/button.component.mjs +180 -0
  230. package/esm2022/form-builder/lib/components/button/button.types.mjs +6 -0
  231. package/esm2022/form-builder/lib/components/button/index.mjs +16 -0
  232. package/esm2022/form-builder/lib/components/form-builder/adapters/it-date-adapter.mjs +82 -0
  233. package/esm2022/form-builder/lib/components/form-builder/directives/currency-input.directive.mjs +184 -0
  234. package/esm2022/form-builder/lib/components/form-builder/form-builder.component.mjs +1351 -0
  235. package/esm2022/form-builder/lib/components/form-builder/form-wizard.component.mjs +1064 -0
  236. package/esm2022/form-builder/lib/components/form-builder/index.mjs +24 -0
  237. package/esm2022/form-builder/lib/components/form-builder/services/form-condition.service.mjs +132 -0
  238. package/esm2022/form-builder/lib/components/form-builder/services/form-error-state.matcher.mjs +10 -0
  239. package/esm2022/form-builder/lib/components/form-builder/services/form-field-error.service.mjs +103 -0
  240. package/esm2022/form-builder/lib/components/form-builder/services/form-validation.service.mjs +381 -0
  241. package/esm2022/form-builder/lib/components/form-builder/services/location.service.mjs +141 -0
  242. package/esm2022/form-builder/lib/components/form-builder/services/nominatim-geocoding.service.mjs +120 -0
  243. package/esm2022/form-builder/lib/components/form-builder/services/wizard-sync.service.mjs +84 -0
  244. package/esm2022/form-builder/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +190 -0
  245. package/esm2022/form-builder/lib/components/form-builder/sub-components/file-input/file-input.component.mjs +310 -0
  246. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +113 -0
  247. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +105 -0
  248. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +126 -0
  249. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-text-field.component.mjs +147 -0
  250. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.mjs +99 -0
  251. package/esm2022/form-builder/lib/components/form-builder/sub-components/form-fields/index.mjs +6 -0
  252. package/esm2022/form-builder/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.mjs +322 -0
  253. package/esm2022/form-builder/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +648 -0
  254. package/esm2022/form-builder/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +432 -0
  255. package/esm2022/form-builder/lib/components/form-builder/types/condition.types.mjs +6 -0
  256. package/esm2022/form-builder/lib/components/form-builder/types/field.types.mjs +6 -0
  257. package/esm2022/form-builder/lib/components/form-builder/types/geocoded-location.types.mjs +6 -0
  258. package/esm2022/form-builder/lib/components/form-builder/types/index.mjs +3 -0
  259. package/esm2022/form-builder/lib/components/form-builder/types/schema.types.mjs +6 -0
  260. package/esm2022/form-builder/lib/components/form-builder/types/territoriale.types.mjs +6 -0
  261. package/esm2022/form-builder/lib/components/form-builder/types/validation.types.mjs +10 -0
  262. package/esm2022/form-builder/lib/core/logging/logger.config.mjs +18 -0
  263. package/esm2022/form-builder/lib/core/logging/logger.service.mjs +295 -0
  264. package/esm2022/form-builder/lib/core/logging/logger.types.mjs +7 -0
  265. package/esm2022/form-builder/lib/core/types/index.mjs +6 -0
  266. package/esm2022/form-builder/lib/sources/location-data.opt.json +8942 -0
  267. package/esm2022/form-builder/lib/sources/nazioni.opt.json +215 -0
  268. package/esm2022/form-builder-editor/entry-form-builder-editor.mjs +5 -0
  269. package/esm2022/form-builder-editor/gnggln-ng-ui-system-form-builder-editor.mjs +5 -0
  270. package/esm2022/form-builder-editor/lib/components/accordion/accordion.component.mjs +398 -0
  271. package/esm2022/form-builder-editor/lib/components/accordion/accordion.types.mjs +6 -0
  272. package/esm2022/form-builder-editor/lib/components/accordion/index.mjs +2 -0
  273. package/esm2022/form-builder-editor/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  274. package/esm2022/form-builder-editor/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  275. package/esm2022/form-builder-editor/lib/components/blackbox/blackbox.service.mjs +323 -0
  276. package/esm2022/form-builder-editor/lib/components/blackbox/blackbox.types.mjs +25 -0
  277. package/esm2022/form-builder-editor/lib/components/button/button-area.component.mjs +210 -0
  278. package/esm2022/form-builder-editor/lib/components/button/button.component.mjs +180 -0
  279. package/esm2022/form-builder-editor/lib/components/button/button.types.mjs +6 -0
  280. package/esm2022/form-builder-editor/lib/components/button/index.mjs +16 -0
  281. package/esm2022/form-builder-editor/lib/components/form-builder/adapters/it-date-adapter.mjs +82 -0
  282. package/esm2022/form-builder-editor/lib/components/form-builder/directives/currency-input.directive.mjs +184 -0
  283. package/esm2022/form-builder-editor/lib/components/form-builder/form-builder.component.mjs +1351 -0
  284. package/esm2022/form-builder-editor/lib/components/form-builder/services/form-condition.service.mjs +132 -0
  285. package/esm2022/form-builder-editor/lib/components/form-builder/services/form-error-state.matcher.mjs +10 -0
  286. package/esm2022/form-builder-editor/lib/components/form-builder/services/form-field-error.service.mjs +103 -0
  287. package/esm2022/form-builder-editor/lib/components/form-builder/services/form-validation.service.mjs +381 -0
  288. package/esm2022/form-builder-editor/lib/components/form-builder/services/location.service.mjs +141 -0
  289. package/esm2022/form-builder-editor/lib/components/form-builder/services/nominatim-geocoding.service.mjs +120 -0
  290. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +190 -0
  291. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/file-input/file-input.component.mjs +310 -0
  292. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +113 -0
  293. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +105 -0
  294. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +126 -0
  295. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-text-field.component.mjs +147 -0
  296. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.mjs +99 -0
  297. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/form-fields/index.mjs +6 -0
  298. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.mjs +322 -0
  299. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.mjs +648 -0
  300. package/esm2022/form-builder-editor/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +432 -0
  301. package/esm2022/form-builder-editor/lib/components/form-builder/types/condition.types.mjs +6 -0
  302. package/esm2022/form-builder-editor/lib/components/form-builder/types/field.types.mjs +6 -0
  303. package/esm2022/form-builder-editor/lib/components/form-builder/types/geocoded-location.types.mjs +6 -0
  304. package/esm2022/form-builder-editor/lib/components/form-builder/types/index.mjs +3 -0
  305. package/esm2022/form-builder-editor/lib/components/form-builder/types/schema.types.mjs +6 -0
  306. package/esm2022/form-builder-editor/lib/components/form-builder/types/territoriale.types.mjs +6 -0
  307. package/esm2022/form-builder-editor/lib/components/form-builder/types/validation.types.mjs +10 -0
  308. package/esm2022/form-builder-editor/lib/components/form-builder-editor/form-builder-editor.component.mjs +730 -0
  309. package/esm2022/form-builder-editor/lib/components/form-builder-editor/form-builder-editor.service.mjs +56 -0
  310. package/esm2022/form-builder-editor/lib/components/form-builder-editor/index.mjs +23 -0
  311. package/esm2022/form-builder-editor/lib/components/form-builder-editor/presets/editor-presets.mjs +395 -0
  312. package/esm2022/form-builder-editor/lib/components/form-builder-editor/services/editor-persistence.service.mjs +190 -0
  313. package/esm2022/form-builder-editor/lib/components/form-builder-editor/services/editor-state.service.mjs +324 -0
  314. package/esm2022/form-builder-editor/lib/components/form-builder-editor/services/field-factory.service.mjs +188 -0
  315. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/condition-editor/condition-editor.component.mjs +667 -0
  316. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/editor-toolbar/editor-toolbar.component.mjs +317 -0
  317. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/field-config-panel/field-config-panel.component.mjs +611 -0
  318. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/field-palette/field-palette.component.mjs +267 -0
  319. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/form-values-panel/form-values-panel.component.mjs +276 -0
  320. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/options-editor/options-editor.component.mjs +323 -0
  321. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/preview-container/preview-container.component.mjs +238 -0
  322. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/section-editor/section-editor.component.mjs +473 -0
  323. package/esm2022/form-builder-editor/lib/components/form-builder-editor/sub-components/validation-editor/validation-editor.component.mjs +473 -0
  324. package/esm2022/form-builder-editor/lib/components/form-builder-editor/types/editor.types.mjs +6 -0
  325. package/esm2022/form-builder-editor/lib/components/modal/confirm-dialog.component.mjs +151 -0
  326. package/esm2022/form-builder-editor/lib/components/modal/index.mjs +4 -0
  327. package/esm2022/form-builder-editor/lib/components/modal/modal.component.mjs +139 -0
  328. package/esm2022/form-builder-editor/lib/components/modal/modal.service.mjs +197 -0
  329. package/esm2022/form-builder-editor/lib/components/modal/modal.types.mjs +6 -0
  330. package/esm2022/form-builder-editor/lib/core/logging/logger.config.mjs +18 -0
  331. package/esm2022/form-builder-editor/lib/core/logging/logger.service.mjs +295 -0
  332. package/esm2022/form-builder-editor/lib/core/logging/logger.types.mjs +7 -0
  333. package/esm2022/form-builder-editor/lib/core/types/index.mjs +6 -0
  334. package/esm2022/form-builder-editor/lib/sources/location-data.opt.json +8942 -0
  335. package/esm2022/form-builder-editor/lib/sources/nazioni.opt.json +215 -0
  336. package/esm2022/http/entry-http.mjs +5 -0
  337. package/esm2022/http/gnggln-ng-ui-system-http.mjs +5 -0
  338. package/esm2022/http/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  339. package/esm2022/http/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  340. package/esm2022/http/lib/components/blackbox/blackbox.service.mjs +323 -0
  341. package/esm2022/http/lib/components/blackbox/blackbox.types.mjs +25 -0
  342. package/esm2022/http/lib/components/http/http-message.handler.mjs +143 -0
  343. package/esm2022/http/lib/components/http/http.service.mjs +228 -0
  344. package/esm2022/http/lib/components/http/http.tokens.mjs +29 -0
  345. package/esm2022/http/lib/components/http/http.types.mjs +6 -0
  346. package/esm2022/http/lib/components/http/index.mjs +19 -0
  347. package/esm2022/http/lib/components/layout-builder/layout-builder.types.mjs +9 -0
  348. package/esm2022/http/lib/components/layout-builder/layout.service.mjs +239 -0
  349. package/esm2022/http/lib/components/toast/toast-container.component.mjs +80 -0
  350. package/esm2022/http/lib/components/toast/toast.component.mjs +151 -0
  351. package/esm2022/http/lib/components/toast/toast.service.mjs +156 -0
  352. package/esm2022/http/lib/components/toast/toast.types.mjs +12 -0
  353. package/esm2022/http/lib/core/types/index.mjs +6 -0
  354. package/esm2022/http/lib/core/utils/index.mjs +102 -0
  355. package/esm2022/layout-builder/entry-layout-builder.mjs +5 -0
  356. package/esm2022/layout-builder/gnggln-ng-ui-system-layout-builder.mjs +5 -0
  357. package/esm2022/layout-builder/lib/components/layout-builder/index.mjs +18 -0
  358. package/esm2022/layout-builder/lib/components/layout-builder/layout-builder.component.mjs +1804 -0
  359. package/esm2022/layout-builder/lib/components/layout-builder/layout-builder.types.mjs +9 -0
  360. package/esm2022/layout-builder/lib/components/layout-builder/layout.service.mjs +239 -0
  361. package/esm2022/layout-builder/lib/core/types/index.mjs +6 -0
  362. package/esm2022/lib/components/accordion/accordion.component.mjs +106 -61
  363. package/esm2022/lib/components/accordion/accordion.types.mjs +1 -1
  364. package/esm2022/lib/components/base-layout/base-layout.component.mjs +88 -34
  365. package/esm2022/lib/components/base-layout/base-layout.types.mjs +1 -1
  366. package/esm2022/lib/components/base-layout/index.mjs +1 -1
  367. package/esm2022/lib/components/blackbox/blackbox-debugger.component.mjs +904 -0
  368. package/esm2022/lib/components/blackbox/blackbox-debugger.service.mjs +51 -0
  369. package/esm2022/lib/components/blackbox/blackbox-fingerprint.service.mjs +116 -0
  370. package/esm2022/lib/components/blackbox/blackbox-json-viewer.component.mjs +66 -0
  371. package/esm2022/lib/components/blackbox/blackbox-storage.service.mjs +286 -0
  372. package/esm2022/lib/components/blackbox/blackbox.interceptor.mjs +135 -0
  373. package/esm2022/lib/components/blackbox/blackbox.service.mjs +323 -0
  374. package/esm2022/lib/components/blackbox/blackbox.types.mjs +25 -0
  375. package/esm2022/lib/components/blackbox/index.mjs +27 -0
  376. package/esm2022/lib/components/blackbox/ui-track.directive.mjs +69 -0
  377. package/esm2022/lib/components/button/button-area.component.mjs +16 -2
  378. package/esm2022/lib/components/button/button.component.mjs +23 -7
  379. package/esm2022/lib/components/button/button.types.mjs +1 -1
  380. package/esm2022/lib/components/crud-table/crud-table.component.mjs +14 -14
  381. package/esm2022/lib/components/form-builder/form-builder.component.mjs +710 -183
  382. package/esm2022/lib/components/form-builder/form-wizard.component.mjs +789 -235
  383. package/esm2022/lib/components/form-builder/index.mjs +7 -2
  384. package/esm2022/lib/components/form-builder/services/form-error-state.matcher.mjs +10 -0
  385. package/esm2022/lib/components/form-builder/services/form-field-error.service.mjs +103 -0
  386. package/esm2022/lib/components/form-builder/services/location.service.mjs +4 -3
  387. package/esm2022/lib/components/form-builder/services/nominatim-geocoding.service.mjs +120 -0
  388. package/esm2022/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.mjs +142 -113
  389. package/esm2022/lib/components/form-builder/sub-components/form-fields/form-number-field.component.mjs +113 -0
  390. package/esm2022/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.mjs +105 -0
  391. package/esm2022/lib/components/form-builder/sub-components/form-fields/form-select-field.component.mjs +126 -0
  392. package/esm2022/lib/components/form-builder/sub-components/form-fields/form-text-field.component.mjs +147 -0
  393. package/esm2022/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.mjs +99 -0
  394. package/esm2022/lib/components/form-builder/sub-components/form-fields/index.mjs +6 -0
  395. package/esm2022/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.mjs +322 -0
  396. package/esm2022/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.mjs +3 -3
  397. package/esm2022/lib/components/form-builder/types/field.types.mjs +1 -1
  398. package/esm2022/lib/components/form-builder/types/geocoded-location.types.mjs +6 -0
  399. package/esm2022/lib/components/form-builder/types/index.mjs +3 -2
  400. package/esm2022/lib/components/form-builder/types/schema.types.mjs +1 -1
  401. package/esm2022/lib/components/form-builder/types/validation.types.mjs +6 -2
  402. package/esm2022/lib/components/form-builder-editor/form-builder-editor.component.mjs +3 -3
  403. package/esm2022/lib/components/form-builder-editor/index.mjs +3 -1
  404. package/esm2022/lib/components/form-builder-editor/presets/editor-presets.mjs +395 -0
  405. package/esm2022/lib/components/form-builder-editor/sub-components/preview-container/preview-container.component.mjs +2 -2
  406. package/esm2022/lib/components/form-builder-editor/sub-components/section-editor/section-editor.component.mjs +2 -1
  407. package/esm2022/lib/components/http/http-message.handler.mjs +143 -0
  408. package/esm2022/lib/components/http/http.service.mjs +228 -0
  409. package/esm2022/lib/components/http/http.tokens.mjs +29 -0
  410. package/esm2022/lib/components/http/http.types.mjs +6 -0
  411. package/esm2022/lib/components/http/index.mjs +19 -0
  412. package/esm2022/lib/components/layout-builder/layout-builder.component.mjs +27 -15
  413. package/esm2022/lib/components/modal/confirm-dialog.component.mjs +3 -3
  414. package/esm2022/lib/components/modal/modal.service.mjs +5 -2
  415. package/esm2022/lib/components/page-header/breadcrumb.service.mjs +5 -4
  416. package/esm2022/lib/components/table/paginated-table.component.mjs +17 -3
  417. package/esm2022/lib/components/table/table.types.mjs +1 -1
  418. package/esm2022/lib/components/toast/index.mjs +18 -0
  419. package/esm2022/lib/components/toast/toast-container.component.mjs +80 -0
  420. package/esm2022/lib/components/toast/toast.component.mjs +151 -0
  421. package/esm2022/lib/components/toast/toast.service.mjs +156 -0
  422. package/esm2022/lib/components/toast/toast.types.mjs +12 -0
  423. package/esm2022/lib/core/logging/index.mjs +10 -0
  424. package/esm2022/lib/core/logging/logger.config.mjs +18 -0
  425. package/esm2022/lib/core/logging/logger.service.mjs +295 -0
  426. package/esm2022/lib/core/logging/logger.types.mjs +7 -0
  427. package/esm2022/lib/core/types/index.mjs +1 -1
  428. package/esm2022/lib/core/utils/index.mjs +50 -1
  429. package/esm2022/lib/version/ng-ui-system-version.mjs +12 -0
  430. package/esm2022/modal/entry-modal.mjs +5 -0
  431. package/esm2022/modal/gnggln-ng-ui-system-modal.mjs +5 -0
  432. package/esm2022/modal/lib/components/button/button.component.mjs +180 -0
  433. package/esm2022/modal/lib/components/button/button.types.mjs +6 -0
  434. package/esm2022/modal/lib/components/modal/confirm-dialog.component.mjs +151 -0
  435. package/esm2022/modal/lib/components/modal/index.mjs +4 -0
  436. package/esm2022/modal/lib/components/modal/modal.component.mjs +139 -0
  437. package/esm2022/modal/lib/components/modal/modal.service.mjs +197 -0
  438. package/esm2022/modal/lib/components/modal/modal.types.mjs +6 -0
  439. package/esm2022/modal/lib/core/types/index.mjs +6 -0
  440. package/esm2022/page-header/entry-page-header.mjs +5 -0
  441. package/esm2022/page-header/gnggln-ng-ui-system-page-header.mjs +5 -0
  442. package/esm2022/page-header/lib/components/page-header/breadcrumb.service.mjs +243 -0
  443. package/esm2022/page-header/lib/components/page-header/index.mjs +20 -0
  444. package/esm2022/page-header/lib/components/page-header/page-header.component.mjs +243 -0
  445. package/esm2022/page-header/lib/components/page-header/page-header.types.mjs +21 -0
  446. package/esm2022/public-api.mjs +17 -8
  447. package/esm2022/table/entry-table.mjs +5 -0
  448. package/esm2022/table/gnggln-ng-ui-system-table.mjs +5 -0
  449. package/esm2022/table/lib/components/table/index.mjs +2 -0
  450. package/esm2022/table/lib/components/table/paginated-table.component.mjs +421 -0
  451. package/esm2022/table/lib/components/table/table.types.mjs +6 -0
  452. package/esm2022/table/lib/core/utils/index.mjs +102 -0
  453. package/esm2022/toast/entry-toast.mjs +5 -0
  454. package/esm2022/toast/gnggln-ng-ui-system-toast.mjs +5 -0
  455. package/esm2022/toast/lib/components/toast/index.mjs +18 -0
  456. package/esm2022/toast/lib/components/toast/toast-container.component.mjs +80 -0
  457. package/esm2022/toast/lib/components/toast/toast.component.mjs +151 -0
  458. package/esm2022/toast/lib/components/toast/toast.service.mjs +156 -0
  459. package/esm2022/toast/lib/components/toast/toast.types.mjs +12 -0
  460. package/esm2022/toast/lib/core/types/index.mjs +6 -0
  461. package/esm2022/toast/lib/core/utils/index.mjs +102 -0
  462. package/fesm2022/gnggln-ng-ui-system-accordion.mjs +409 -0
  463. package/fesm2022/gnggln-ng-ui-system-accordion.mjs.map +1 -0
  464. package/fesm2022/gnggln-ng-ui-system-base-layout.mjs +1905 -0
  465. package/fesm2022/gnggln-ng-ui-system-base-layout.mjs.map +1 -0
  466. package/fesm2022/gnggln-ng-ui-system-blackbox.mjs +2829 -0
  467. package/fesm2022/gnggln-ng-ui-system-blackbox.mjs.map +1 -0
  468. package/fesm2022/gnggln-ng-ui-system-button.mjs +1148 -0
  469. package/fesm2022/gnggln-ng-ui-system-button.mjs.map +1 -0
  470. package/fesm2022/gnggln-ng-ui-system-core.mjs +117 -0
  471. package/fesm2022/gnggln-ng-ui-system-core.mjs.map +1 -0
  472. package/fesm2022/gnggln-ng-ui-system-crud-table.mjs +49600 -0
  473. package/fesm2022/gnggln-ng-ui-system-crud-table.mjs.map +1 -0
  474. package/fesm2022/gnggln-ng-ui-system-form-builder-editor.mjs +54332 -0
  475. package/fesm2022/gnggln-ng-ui-system-form-builder-editor.mjs.map +1 -0
  476. package/fesm2022/gnggln-ng-ui-system-form-builder.mjs +49609 -0
  477. package/fesm2022/gnggln-ng-ui-system-form-builder.mjs.map +1 -0
  478. package/fesm2022/gnggln-ng-ui-system-http.mjs +1878 -0
  479. package/fesm2022/gnggln-ng-ui-system-http.mjs.map +1 -0
  480. package/fesm2022/gnggln-ng-ui-system-layout-builder.mjs +2064 -0
  481. package/fesm2022/gnggln-ng-ui-system-layout-builder.mjs.map +1 -0
  482. package/fesm2022/gnggln-ng-ui-system-modal.mjs +664 -0
  483. package/fesm2022/gnggln-ng-ui-system-modal.mjs.map +1 -0
  484. package/fesm2022/gnggln-ng-ui-system-page-header.mjs +526 -0
  485. package/fesm2022/gnggln-ng-ui-system-page-header.mjs.map +1 -0
  486. package/fesm2022/gnggln-ng-ui-system-table.mjs +533 -0
  487. package/fesm2022/gnggln-ng-ui-system-table.mjs.map +1 -0
  488. package/fesm2022/gnggln-ng-ui-system-toast.mjs +516 -0
  489. package/fesm2022/gnggln-ng-ui-system-toast.mjs.map +1 -0
  490. package/fesm2022/gnggln-ng-ui-system.mjs +10068 -4234
  491. package/fesm2022/gnggln-ng-ui-system.mjs.map +1 -1
  492. package/form-builder/entry-form-builder.d.ts +4 -0
  493. package/form-builder/index.d.ts +5 -0
  494. package/form-builder/lib/components/accordion/accordion.component.d.ts +125 -0
  495. package/form-builder/lib/components/accordion/accordion.types.d.ts +64 -0
  496. package/form-builder/lib/components/accordion/index.d.ts +2 -0
  497. package/form-builder/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  498. package/form-builder/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  499. package/form-builder/lib/components/blackbox/blackbox.service.d.ts +144 -0
  500. package/form-builder/lib/components/blackbox/blackbox.types.d.ts +238 -0
  501. package/form-builder/lib/components/button/button-area.component.d.ts +93 -0
  502. package/form-builder/lib/components/button/button.component.d.ts +61 -0
  503. package/form-builder/lib/components/button/button.types.d.ts +75 -0
  504. package/form-builder/lib/components/button/index.d.ts +15 -0
  505. package/form-builder/lib/components/form-builder/adapters/it-date-adapter.d.ts +32 -0
  506. package/form-builder/lib/components/form-builder/directives/currency-input.directive.d.ts +48 -0
  507. package/form-builder/lib/components/form-builder/form-builder.component.d.ts +279 -0
  508. package/form-builder/lib/components/form-builder/form-wizard.component.d.ts +172 -0
  509. package/form-builder/lib/components/form-builder/index.d.ts +19 -0
  510. package/form-builder/lib/components/form-builder/services/form-condition.service.d.ts +46 -0
  511. package/form-builder/lib/components/form-builder/services/form-error-state.matcher.d.ts +9 -0
  512. package/form-builder/lib/components/form-builder/services/form-field-error.service.d.ts +38 -0
  513. package/form-builder/lib/components/form-builder/services/form-validation.service.d.ts +63 -0
  514. package/form-builder/lib/components/form-builder/services/location.service.d.ts +83 -0
  515. package/form-builder/lib/components/form-builder/services/nominatim-geocoding.service.d.ts +37 -0
  516. package/form-builder/lib/components/form-builder/services/wizard-sync.service.d.ts +63 -0
  517. package/form-builder/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +31 -0
  518. package/form-builder/lib/components/form-builder/sub-components/file-input/file-input.component.d.ts +41 -0
  519. package/form-builder/lib/components/form-builder/sub-components/form-fields/form-number-field.component.d.ts +42 -0
  520. package/form-builder/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.d.ts +45 -0
  521. package/form-builder/lib/components/form-builder/sub-components/form-fields/form-select-field.component.d.ts +44 -0
  522. package/form-builder/lib/components/form-builder/sub-components/form-fields/form-text-field.component.d.ts +62 -0
  523. package/form-builder/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.d.ts +39 -0
  524. package/form-builder/lib/components/form-builder/sub-components/form-fields/index.d.ts +5 -0
  525. package/form-builder/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.d.ts +84 -0
  526. package/form-builder/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +145 -0
  527. package/form-builder/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.d.ts +108 -0
  528. package/form-builder/lib/components/form-builder/types/condition.types.d.ts +51 -0
  529. package/form-builder/lib/components/form-builder/types/field.types.d.ts +330 -0
  530. package/form-builder/lib/components/form-builder/types/geocoded-location.types.d.ts +116 -0
  531. package/form-builder/lib/components/form-builder/types/index.d.ts +6 -0
  532. package/form-builder/lib/components/form-builder/types/schema.types.d.ts +304 -0
  533. package/form-builder/lib/components/form-builder/types/territoriale.types.d.ts +170 -0
  534. package/form-builder/lib/components/form-builder/types/validation.types.d.ts +179 -0
  535. package/form-builder/lib/core/logging/logger.config.d.ts +18 -0
  536. package/form-builder/lib/core/logging/logger.service.d.ts +75 -0
  537. package/form-builder/lib/core/logging/logger.types.d.ts +70 -0
  538. package/form-builder/lib/core/types/index.d.ts +133 -0
  539. package/form-builder-editor/entry-form-builder-editor.d.ts +4 -0
  540. package/form-builder-editor/index.d.ts +5 -0
  541. package/form-builder-editor/lib/components/accordion/accordion.component.d.ts +125 -0
  542. package/form-builder-editor/lib/components/accordion/accordion.types.d.ts +64 -0
  543. package/form-builder-editor/lib/components/accordion/index.d.ts +2 -0
  544. package/form-builder-editor/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  545. package/form-builder-editor/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  546. package/form-builder-editor/lib/components/blackbox/blackbox.service.d.ts +144 -0
  547. package/form-builder-editor/lib/components/blackbox/blackbox.types.d.ts +238 -0
  548. package/form-builder-editor/lib/components/button/button-area.component.d.ts +93 -0
  549. package/form-builder-editor/lib/components/button/button.component.d.ts +61 -0
  550. package/form-builder-editor/lib/components/button/button.types.d.ts +75 -0
  551. package/form-builder-editor/lib/components/button/index.d.ts +15 -0
  552. package/form-builder-editor/lib/components/form-builder/adapters/it-date-adapter.d.ts +32 -0
  553. package/form-builder-editor/lib/components/form-builder/directives/currency-input.directive.d.ts +48 -0
  554. package/form-builder-editor/lib/components/form-builder/form-builder.component.d.ts +279 -0
  555. package/form-builder-editor/lib/components/form-builder/services/form-condition.service.d.ts +46 -0
  556. package/form-builder-editor/lib/components/form-builder/services/form-error-state.matcher.d.ts +9 -0
  557. package/form-builder-editor/lib/components/form-builder/services/form-field-error.service.d.ts +38 -0
  558. package/form-builder-editor/lib/components/form-builder/services/form-validation.service.d.ts +63 -0
  559. package/form-builder-editor/lib/components/form-builder/services/location.service.d.ts +83 -0
  560. package/form-builder-editor/lib/components/form-builder/services/nominatim-geocoding.service.d.ts +37 -0
  561. package/form-builder-editor/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +31 -0
  562. package/form-builder-editor/lib/components/form-builder/sub-components/file-input/file-input.component.d.ts +41 -0
  563. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-number-field.component.d.ts +42 -0
  564. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.d.ts +45 -0
  565. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-select-field.component.d.ts +44 -0
  566. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-text-field.component.d.ts +62 -0
  567. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.d.ts +39 -0
  568. package/form-builder-editor/lib/components/form-builder/sub-components/form-fields/index.d.ts +5 -0
  569. package/form-builder-editor/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.d.ts +84 -0
  570. package/form-builder-editor/lib/components/form-builder/sub-components/specifica-territoriale/specifica-territoriale.component.d.ts +145 -0
  571. package/form-builder-editor/lib/components/form-builder/sub-components/table-territoriale/table-territoriale.component.d.ts +108 -0
  572. package/form-builder-editor/lib/components/form-builder/types/condition.types.d.ts +51 -0
  573. package/form-builder-editor/lib/components/form-builder/types/field.types.d.ts +330 -0
  574. package/form-builder-editor/lib/components/form-builder/types/geocoded-location.types.d.ts +116 -0
  575. package/form-builder-editor/lib/components/form-builder/types/index.d.ts +6 -0
  576. package/form-builder-editor/lib/components/form-builder/types/schema.types.d.ts +304 -0
  577. package/form-builder-editor/lib/components/form-builder/types/territoriale.types.d.ts +170 -0
  578. package/form-builder-editor/lib/components/form-builder/types/validation.types.d.ts +179 -0
  579. package/form-builder-editor/lib/components/form-builder-editor/form-builder-editor.component.d.ts +117 -0
  580. package/form-builder-editor/lib/components/form-builder-editor/form-builder-editor.service.d.ts +38 -0
  581. package/form-builder-editor/lib/components/form-builder-editor/index.d.ts +17 -0
  582. package/form-builder-editor/lib/components/form-builder-editor/presets/editor-presets.d.ts +25 -0
  583. package/form-builder-editor/lib/components/form-builder-editor/services/editor-persistence.service.d.ts +42 -0
  584. package/form-builder-editor/lib/components/form-builder-editor/services/editor-state.service.d.ts +66 -0
  585. package/form-builder-editor/lib/components/form-builder-editor/services/field-factory.service.d.ts +28 -0
  586. package/form-builder-editor/lib/components/form-builder-editor/sub-components/condition-editor/condition-editor.component.d.ts +139 -0
  587. package/form-builder-editor/lib/components/form-builder-editor/sub-components/editor-toolbar/editor-toolbar.component.d.ts +43 -0
  588. package/form-builder-editor/lib/components/form-builder-editor/sub-components/field-config-panel/field-config-panel.component.d.ts +83 -0
  589. package/form-builder-editor/lib/components/form-builder-editor/sub-components/field-palette/field-palette.component.d.ts +40 -0
  590. package/form-builder-editor/lib/components/form-builder-editor/sub-components/form-values-panel/form-values-panel.component.d.ts +51 -0
  591. package/form-builder-editor/lib/components/form-builder-editor/sub-components/options-editor/options-editor.component.d.ts +63 -0
  592. package/form-builder-editor/lib/components/form-builder-editor/sub-components/preview-container/preview-container.component.d.ts +68 -0
  593. package/form-builder-editor/lib/components/form-builder-editor/sub-components/section-editor/section-editor.component.d.ts +82 -0
  594. package/form-builder-editor/lib/components/form-builder-editor/sub-components/validation-editor/validation-editor.component.d.ts +112 -0
  595. package/form-builder-editor/lib/components/form-builder-editor/types/editor.types.d.ts +124 -0
  596. package/form-builder-editor/lib/components/modal/confirm-dialog.component.d.ts +46 -0
  597. package/form-builder-editor/lib/components/modal/index.d.ts +4 -0
  598. package/form-builder-editor/lib/components/modal/modal.component.d.ts +44 -0
  599. package/form-builder-editor/lib/components/modal/modal.service.d.ts +93 -0
  600. package/form-builder-editor/lib/components/modal/modal.types.d.ts +110 -0
  601. package/form-builder-editor/lib/core/logging/logger.config.d.ts +18 -0
  602. package/form-builder-editor/lib/core/logging/logger.service.d.ts +75 -0
  603. package/form-builder-editor/lib/core/logging/logger.types.d.ts +70 -0
  604. package/form-builder-editor/lib/core/types/index.d.ts +133 -0
  605. package/http/entry-http.d.ts +4 -0
  606. package/http/index.d.ts +5 -0
  607. package/http/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  608. package/http/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  609. package/http/lib/components/blackbox/blackbox.service.d.ts +144 -0
  610. package/http/lib/components/blackbox/blackbox.types.d.ts +238 -0
  611. package/http/lib/components/http/http-message.handler.d.ts +59 -0
  612. package/http/lib/components/http/http.service.d.ts +98 -0
  613. package/http/lib/components/http/http.tokens.d.ts +29 -0
  614. package/http/lib/components/http/http.types.d.ts +50 -0
  615. package/http/lib/components/http/index.d.ts +17 -0
  616. package/http/lib/components/layout-builder/layout-builder.types.d.ts +436 -0
  617. package/http/lib/components/layout-builder/layout.service.d.ts +100 -0
  618. package/http/lib/components/toast/toast-container.component.d.ts +27 -0
  619. package/http/lib/components/toast/toast.component.d.ts +37 -0
  620. package/http/lib/components/toast/toast.service.d.ts +39 -0
  621. package/http/lib/components/toast/toast.types.d.ts +52 -0
  622. package/http/lib/core/types/index.d.ts +133 -0
  623. package/http/lib/core/utils/index.d.ts +60 -0
  624. package/layout-builder/entry-layout-builder.d.ts +4 -0
  625. package/layout-builder/index.d.ts +5 -0
  626. package/layout-builder/lib/components/layout-builder/index.d.ts +16 -0
  627. package/layout-builder/lib/components/layout-builder/layout-builder.component.d.ts +85 -0
  628. package/layout-builder/lib/components/layout-builder/layout-builder.types.d.ts +436 -0
  629. package/layout-builder/lib/components/layout-builder/layout.service.d.ts +100 -0
  630. package/layout-builder/lib/core/types/index.d.ts +133 -0
  631. package/lib/components/accordion/accordion.component.d.ts +10 -3
  632. package/lib/components/accordion/accordion.types.d.ts +2 -0
  633. package/lib/components/base-layout/base-layout.component.d.ts +36 -11
  634. package/lib/components/base-layout/base-layout.types.d.ts +14 -0
  635. package/lib/components/base-layout/index.d.ts +1 -1
  636. package/lib/components/blackbox/blackbox-debugger.component.d.ts +80 -0
  637. package/lib/components/blackbox/blackbox-debugger.service.d.ts +34 -0
  638. package/lib/components/blackbox/blackbox-fingerprint.service.d.ts +36 -0
  639. package/lib/components/blackbox/blackbox-json-viewer.component.d.ts +18 -0
  640. package/lib/components/blackbox/blackbox-storage.service.d.ts +55 -0
  641. package/lib/components/blackbox/blackbox.interceptor.d.ts +38 -0
  642. package/lib/components/blackbox/blackbox.service.d.ts +144 -0
  643. package/lib/components/blackbox/blackbox.types.d.ts +238 -0
  644. package/lib/components/blackbox/index.d.ts +23 -0
  645. package/lib/components/blackbox/ui-track.directive.d.ts +20 -0
  646. package/lib/components/button/button-area.component.d.ts +6 -1
  647. package/lib/components/button/button.component.d.ts +8 -2
  648. package/lib/components/button/button.types.d.ts +5 -0
  649. package/lib/components/form-builder/form-builder.component.d.ts +125 -29
  650. package/lib/components/form-builder/form-wizard.component.d.ts +89 -4
  651. package/lib/components/form-builder/index.d.ts +7 -1
  652. package/lib/components/form-builder/services/form-error-state.matcher.d.ts +9 -0
  653. package/lib/components/form-builder/services/form-field-error.service.d.ts +38 -0
  654. package/lib/components/form-builder/services/nominatim-geocoding.service.d.ts +37 -0
  655. package/lib/components/form-builder/sub-components/error-summary/form-error-summary.component.d.ts +9 -6
  656. package/lib/components/form-builder/sub-components/form-fields/form-number-field.component.d.ts +42 -0
  657. package/lib/components/form-builder/sub-components/form-fields/form-radio-field.component.d.ts +45 -0
  658. package/lib/components/form-builder/sub-components/form-fields/form-select-field.component.d.ts +44 -0
  659. package/lib/components/form-builder/sub-components/form-fields/form-text-field.component.d.ts +62 -0
  660. package/lib/components/form-builder/sub-components/form-fields/form-textarea-field.component.d.ts +39 -0
  661. package/lib/components/form-builder/sub-components/form-fields/index.d.ts +5 -0
  662. package/lib/components/form-builder/sub-components/location-geocoded/location-geocoded.component.d.ts +84 -0
  663. package/lib/components/form-builder/types/field.types.d.ts +48 -6
  664. package/lib/components/form-builder/types/geocoded-location.types.d.ts +116 -0
  665. package/lib/components/form-builder/types/index.d.ts +4 -3
  666. package/lib/components/form-builder/types/schema.types.d.ts +83 -6
  667. package/lib/components/form-builder/types/validation.types.d.ts +5 -0
  668. package/lib/components/form-builder-editor/index.d.ts +2 -0
  669. package/lib/components/form-builder-editor/presets/editor-presets.d.ts +25 -0
  670. package/lib/components/http/http-message.handler.d.ts +59 -0
  671. package/lib/components/http/http.service.d.ts +98 -0
  672. package/lib/components/http/http.tokens.d.ts +29 -0
  673. package/lib/components/http/http.types.d.ts +50 -0
  674. package/lib/components/http/index.d.ts +17 -0
  675. package/lib/components/page-header/breadcrumb.service.d.ts +2 -2
  676. package/lib/components/table/table.types.d.ts +5 -0
  677. package/lib/components/toast/index.d.ts +17 -0
  678. package/lib/components/toast/toast-container.component.d.ts +27 -0
  679. package/lib/components/toast/toast.component.d.ts +37 -0
  680. package/lib/components/toast/toast.service.d.ts +39 -0
  681. package/lib/components/toast/toast.types.d.ts +52 -0
  682. package/lib/core/logging/index.d.ts +8 -0
  683. package/lib/core/logging/logger.config.d.ts +18 -0
  684. package/lib/core/logging/logger.service.d.ts +75 -0
  685. package/lib/core/logging/logger.types.d.ts +70 -0
  686. package/lib/core/types/index.d.ts +76 -0
  687. package/lib/core/utils/index.d.ts +31 -0
  688. package/lib/version/ng-ui-system-version.d.ts +9 -0
  689. package/modal/entry-modal.d.ts +4 -0
  690. package/modal/index.d.ts +5 -0
  691. package/modal/lib/components/button/button.component.d.ts +61 -0
  692. package/modal/lib/components/button/button.types.d.ts +75 -0
  693. package/modal/lib/components/modal/confirm-dialog.component.d.ts +46 -0
  694. package/modal/lib/components/modal/index.d.ts +4 -0
  695. package/modal/lib/components/modal/modal.component.d.ts +44 -0
  696. package/modal/lib/components/modal/modal.service.d.ts +93 -0
  697. package/modal/lib/components/modal/modal.types.d.ts +110 -0
  698. package/modal/lib/core/types/index.d.ts +133 -0
  699. package/package.json +93 -8
  700. package/page-header/entry-page-header.d.ts +4 -0
  701. package/page-header/index.d.ts +5 -0
  702. package/page-header/lib/components/page-header/breadcrumb.service.d.ts +96 -0
  703. package/page-header/lib/components/page-header/index.d.ts +16 -0
  704. package/page-header/lib/components/page-header/page-header.component.d.ts +59 -0
  705. package/page-header/lib/components/page-header/page-header.types.d.ts +96 -0
  706. package/public-api.d.ts +11 -6
  707. package/table/entry-table.d.ts +4 -0
  708. package/table/index.d.ts +5 -0
  709. package/table/lib/components/table/index.d.ts +2 -0
  710. package/table/lib/components/table/paginated-table.component.d.ts +85 -0
  711. package/table/lib/components/table/table.types.d.ts +86 -0
  712. package/table/lib/core/utils/index.d.ts +60 -0
  713. package/toast/entry-toast.d.ts +4 -0
  714. package/toast/index.d.ts +5 -0
  715. package/toast/lib/components/toast/index.d.ts +17 -0
  716. package/toast/lib/components/toast/toast-container.component.d.ts +27 -0
  717. package/toast/lib/components/toast/toast.component.d.ts +37 -0
  718. package/toast/lib/components/toast/toast.service.d.ts +39 -0
  719. package/toast/lib/components/toast/toast.types.d.ts +52 -0
  720. package/toast/lib/core/types/index.d.ts +133 -0
  721. package/toast/lib/core/utils/index.d.ts +60 -0
@@ -0,0 +1,611 @@
1
+ import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter, inject, } from '@angular/core';
2
+ import { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';
3
+ import { MatExpansionModule } from '@angular/material/expansion';
4
+ import { MatFormFieldModule } from '@angular/material/form-field';
5
+ import { MatInputModule } from '@angular/material/input';
6
+ import { MatSelectModule } from '@angular/material/select';
7
+ import { MatCheckboxModule } from '@angular/material/checkbox';
8
+ import { MatTooltipModule } from '@angular/material/tooltip';
9
+ import { LucideAngularModule } from 'lucide-angular';
10
+ import { Subject } from 'rxjs';
11
+ import { debounceTime, takeUntil } from 'rxjs/operators';
12
+ import { UiValidationEditorComponent } from '../validation-editor/validation-editor.component';
13
+ import { UiOptionsEditorComponent } from '../options-editor/options-editor.component';
14
+ import { UiConditionEditorComponent } from '../condition-editor/condition-editor.component';
15
+ import * as i0 from "@angular/core";
16
+ import * as i1 from "@angular/forms";
17
+ import * as i2 from "@angular/material/expansion";
18
+ import * as i3 from "@angular/material/form-field";
19
+ import * as i4 from "@angular/material/input";
20
+ import * as i5 from "@angular/material/select";
21
+ import * as i6 from "@angular/material/core";
22
+ import * as i7 from "@angular/material/checkbox";
23
+ import * as i8 from "lucide-angular";
24
+ /**
25
+ * Tutti i tipi di campo supportati dal form builder.
26
+ * Utilizzati per popolare la select del tipo nella configurazione campo.
27
+ */
28
+ const FIELD_TYPES = [
29
+ { value: 'text', label: 'Testo' },
30
+ { value: 'email', label: 'Email' },
31
+ { value: 'password', label: 'Password' },
32
+ { value: 'number', label: 'Numero' },
33
+ { value: 'textarea', label: 'Area di testo' },
34
+ { value: 'select', label: 'Select' },
35
+ { value: 'multiselect', label: 'Multiselect' },
36
+ { value: 'freemultiselect', label: 'Multiselect libero' },
37
+ { value: 'checkbox', label: 'Checkbox' },
38
+ { value: 'switch', label: 'Switch' },
39
+ { value: 'radio', label: 'Radio' },
40
+ { value: 'date', label: 'Data' },
41
+ { value: 'datetime', label: 'Data e ora' },
42
+ { value: 'file', label: 'File' },
43
+ { value: 'custom', label: 'Custom' },
44
+ { value: 'divider', label: 'Separatore' },
45
+ { value: 'flag', label: 'Flag' },
46
+ { value: 'location', label: 'Location' },
47
+ { value: 'location-table', label: 'Location Table' },
48
+ ];
49
+ /**
50
+ * Tipi di campo che supportano la configurazione delle opzioni.
51
+ * Per questi tipi viene mostrato il pannello opzioni nell'editor.
52
+ */
53
+ const OPTIONS_FIELD_TYPES = ['select', 'multiselect', 'freemultiselect', 'radio'];
54
+ /**
55
+ * Pannello laterale destro per la configurazione di un campo selezionato.
56
+ *
57
+ * Mostra un form reattivo suddiviso in pannelli espandibili per gestire
58
+ * proprieta base, stato, layout, validazioni, opzioni e condizioni.
59
+ * Emette aggiornamenti parziali con debounce di 300ms.
60
+ *
61
+ * @selector ui-editor-field-config-panel
62
+ */
63
+ export class UiEditorFieldConfigPanelComponent {
64
+ constructor() {
65
+ /** @internal Servizio per la costruzione del FormGroup. */
66
+ this.fb = inject(FormBuilder);
67
+ /** @internal Subject per la distruzione e pulizia delle sottoscrizioni. */
68
+ this.destroy$ = new Subject();
69
+ /** Campo attualmente selezionato per la configurazione. */
70
+ this.field = null;
71
+ /** Lista dei campi disponibili per le condizioni. */
72
+ this.availableFields = [];
73
+ /** Emesso quando il campo viene aggiornato dall'utente. */
74
+ this.fieldUpdate = new EventEmitter();
75
+ /** Form reattivo per la configurazione del campo. */
76
+ this.configForm = null;
77
+ /** Lista dei tipi di campo per la select. */
78
+ this.fieldTypes = FIELD_TYPES;
79
+ }
80
+ /**
81
+ * Indica se il campo selezionato supporta le opzioni.
82
+ * Viene utilizzato per mostrare/nascondere il pannello opzioni.
83
+ */
84
+ get isOptionsField() {
85
+ if (!this.field)
86
+ return false;
87
+ return OPTIONS_FIELD_TYPES.includes(this.field.type);
88
+ }
89
+ /**
90
+ * Rileva cambiamenti sugli input e ricostruisce il form
91
+ * quando cambia il campo selezionato.
92
+ */
93
+ ngOnChanges(changes) {
94
+ if (changes['field']) {
95
+ this.buildForm();
96
+ }
97
+ }
98
+ ngOnDestroy() {
99
+ this.destroy$.next();
100
+ this.destroy$.complete();
101
+ }
102
+ /**
103
+ * Restituisce le opzioni del campo come array statico.
104
+ * Ignora opzioni osservabili poiche non gestibili nell'editor.
105
+ */
106
+ getFieldOptions() {
107
+ if (!this.field?.options || !Array.isArray(this.field.options))
108
+ return [];
109
+ return this.field.options.map((o) => ({ value: o.value, label: o.label }));
110
+ }
111
+ /**
112
+ * Gestisce l'aggiornamento delle validazioni dal sotto-componente.
113
+ * @param validations - Nuova lista di regole di validazione
114
+ */
115
+ onValidationsChange(validations) {
116
+ this.fieldUpdate.emit({ validation: validations });
117
+ }
118
+ /**
119
+ * Gestisce l'aggiornamento delle opzioni dal sotto-componente.
120
+ * @param options - Nuova lista di opzioni
121
+ */
122
+ onOptionsChange(options) {
123
+ this.fieldUpdate.emit({ options });
124
+ }
125
+ /**
126
+ * Gestisce l'aggiornamento delle condizioni di visibilita.
127
+ * @param conditions - Nuova lista di condizioni
128
+ */
129
+ onVisibilityConditionsChange(conditions) {
130
+ this.fieldUpdate.emit({ conditions });
131
+ }
132
+ /**
133
+ * Gestisce l'aggiornamento delle condizioni di disabilitazione.
134
+ * @param conditions - Nuova lista di condizioni
135
+ */
136
+ onDisableConditionsChange(conditions) {
137
+ this.fieldUpdate.emit({ disableConditions: conditions });
138
+ }
139
+ /**
140
+ * @internal
141
+ * Costruisce il FormGroup a partire dal campo selezionato.
142
+ * Si sottoscrive ai valueChanges con debounce per emettere aggiornamenti.
143
+ */
144
+ buildForm() {
145
+ this.destroy$.next();
146
+ if (!this.field) {
147
+ this.configForm = null;
148
+ return;
149
+ }
150
+ this.configForm = this.fb.group({
151
+ key: [this.field.key],
152
+ type: [this.field.type],
153
+ label: [this.field.label],
154
+ placeholder: [this.field.placeholder || ''],
155
+ tooltip: [this.field.tooltip || ''],
156
+ defaultValue: [this.field.defaultValue ?? ''],
157
+ required: [this.field.required || false],
158
+ disabled: [this.field.disabled || false],
159
+ readonly: [this.field.readonly || false],
160
+ hideEmptyOption: [this.field.hideEmptyOption || false],
161
+ columns: [this.field.layout?.columns ?? null],
162
+ order: [this.field.layout?.order ?? null],
163
+ });
164
+ this.configForm.valueChanges.pipe(debounceTime(300), takeUntil(this.destroy$)).subscribe((values) => {
165
+ /** Mappa i valori del form nel formato di aggiornamento parziale del campo */
166
+ const update = {
167
+ key: values.key,
168
+ type: values.type,
169
+ label: values.label,
170
+ placeholder: values.placeholder || undefined,
171
+ tooltip: values.tooltip || undefined,
172
+ defaultValue: values.defaultValue || undefined,
173
+ required: values.required,
174
+ disabled: values.disabled,
175
+ readonly: values.readonly,
176
+ hideEmptyOption: values.hideEmptyOption,
177
+ layout: {
178
+ columns: values.columns ?? undefined,
179
+ order: values.order ?? undefined,
180
+ },
181
+ };
182
+ this.fieldUpdate.emit(update);
183
+ });
184
+ }
185
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiEditorFieldConfigPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
186
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: UiEditorFieldConfigPanelComponent, isStandalone: true, selector: "ui-editor-field-config-panel", inputs: { field: "field", availableFields: "availableFields" }, outputs: { fieldUpdate: "fieldUpdate" }, usesOnChanges: true, ngImport: i0, template: `
187
+ <div class="field-config-panel">
188
+ <!-- Intestazione del pannello -->
189
+ <div class="field-config-panel__header">
190
+ <lucide-icon name="settings" [size]="18" aria-hidden="true" />
191
+ <span class="field-config-panel__title">Configurazione Campo</span>
192
+ </div>
193
+
194
+ <!-- Stato vuoto: nessun campo selezionato -->
195
+ @if (!field) {
196
+ <div class="field-config-panel__empty">
197
+ <lucide-icon name="mouse-pointer-click" [size]="32" aria-hidden="true" />
198
+ <p class="field-config-panel__empty-text">
199
+ Seleziona un campo per configurarlo
200
+ </p>
201
+ </div>
202
+ }
203
+
204
+ <!-- Form di configurazione del campo -->
205
+ @if (field && configForm) {
206
+ <div class="field-config-panel__content">
207
+ <mat-accordion multi>
208
+
209
+ <!-- Pannello 1: Proprieta base -->
210
+ <mat-expansion-panel [expanded]="true">
211
+ <mat-expansion-panel-header>
212
+ <mat-panel-title>
213
+ <lucide-icon name="file-text" [size]="16" aria-hidden="true" />
214
+ <span>Proprieta base</span>
215
+ </mat-panel-title>
216
+ </mat-expansion-panel-header>
217
+
218
+ <div class="field-config-panel__fields" [formGroup]="configForm">
219
+ <!-- Chiave univoca -->
220
+ <mat-form-field appearance="outline" class="field-config-panel__field">
221
+ <mat-label>Chiave (key)</mat-label>
222
+ <input matInput formControlName="key" placeholder="campo_univoco" />
223
+ <mat-hint>Identificativo univoco del campo</mat-hint>
224
+ </mat-form-field>
225
+
226
+ <!-- Tipo di campo -->
227
+ <mat-form-field appearance="outline" class="field-config-panel__field">
228
+ <mat-label>Tipo</mat-label>
229
+ <mat-select formControlName="type">
230
+ @for (ft of fieldTypes; track ft.value) {
231
+ <mat-option [value]="ft.value">{{ ft.label }}</mat-option>
232
+ }
233
+ </mat-select>
234
+ </mat-form-field>
235
+
236
+ <!-- Label visualizzata -->
237
+ <mat-form-field appearance="outline" class="field-config-panel__field">
238
+ <mat-label>Label</mat-label>
239
+ <input matInput formControlName="label" placeholder="Etichetta del campo" />
240
+ </mat-form-field>
241
+
242
+ <!-- Placeholder -->
243
+ <mat-form-field appearance="outline" class="field-config-panel__field">
244
+ <mat-label>Placeholder</mat-label>
245
+ <input matInput formControlName="placeholder" placeholder="Testo segnaposto" />
246
+ </mat-form-field>
247
+
248
+ <!-- Tooltip -->
249
+ <mat-form-field appearance="outline" class="field-config-panel__field">
250
+ <mat-label>Tooltip</mat-label>
251
+ <input matInput formControlName="tooltip" placeholder="Testo di aiuto" />
252
+ </mat-form-field>
253
+
254
+ <!-- Valore di default -->
255
+ <mat-form-field appearance="outline" class="field-config-panel__field">
256
+ <mat-label>Valore di default</mat-label>
257
+ <input matInput formControlName="defaultValue" placeholder="Valore iniziale" />
258
+ </mat-form-field>
259
+ </div>
260
+ </mat-expansion-panel>
261
+
262
+ <!-- Pannello 2: Stato del campo -->
263
+ <mat-expansion-panel>
264
+ <mat-expansion-panel-header>
265
+ <mat-panel-title>
266
+ <lucide-icon name="toggle-left" [size]="16" aria-hidden="true" />
267
+ <span>Stato campo</span>
268
+ </mat-panel-title>
269
+ </mat-expansion-panel-header>
270
+
271
+ <div class="field-config-panel__fields" [formGroup]="configForm">
272
+ <mat-checkbox formControlName="required" color="primary">
273
+ Obbligatorio
274
+ </mat-checkbox>
275
+
276
+ <mat-checkbox formControlName="disabled" color="primary">
277
+ Disabilitato
278
+ </mat-checkbox>
279
+
280
+ <mat-checkbox formControlName="readonly" color="primary">
281
+ Sola lettura
282
+ </mat-checkbox>
283
+
284
+ @if (isOptionsField) {
285
+ <mat-checkbox formControlName="hideEmptyOption" color="primary">
286
+ Nascondi opzione vuota
287
+ </mat-checkbox>
288
+ }
289
+ </div>
290
+ </mat-expansion-panel>
291
+
292
+ <!-- Pannello 3: Layout -->
293
+ <mat-expansion-panel>
294
+ <mat-expansion-panel-header>
295
+ <mat-panel-title>
296
+ <lucide-icon name="layout-grid" [size]="16" aria-hidden="true" />
297
+ <span>Layout</span>
298
+ </mat-panel-title>
299
+ </mat-expansion-panel-header>
300
+
301
+ <div class="field-config-panel__fields" [formGroup]="configForm">
302
+ <!-- Colonne -->
303
+ <mat-form-field appearance="outline" class="field-config-panel__field">
304
+ <mat-label>Colonne (1-12)</mat-label>
305
+ <input matInput type="number" formControlName="columns" min="1" max="12" />
306
+ <mat-hint>Numero di colonne nel grid</mat-hint>
307
+ </mat-form-field>
308
+
309
+ <!-- Ordine -->
310
+ <mat-form-field appearance="outline" class="field-config-panel__field">
311
+ <mat-label>Ordine</mat-label>
312
+ <input matInput type="number" formControlName="order" />
313
+ <mat-hint>Posizione nel grid</mat-hint>
314
+ </mat-form-field>
315
+ </div>
316
+ </mat-expansion-panel>
317
+
318
+ <!-- Pannello 4: Validazioni -->
319
+ <mat-expansion-panel>
320
+ <mat-expansion-panel-header>
321
+ <mat-panel-title>
322
+ <lucide-icon name="shield-check" [size]="16" aria-hidden="true" />
323
+ <span>Validazioni</span>
324
+ </mat-panel-title>
325
+ </mat-expansion-panel-header>
326
+
327
+ <ui-validation-editor
328
+ [validations]="field.validation || []"
329
+ (validationsChange)="onValidationsChange($event)"
330
+ />
331
+ </mat-expansion-panel>
332
+
333
+ <!-- Pannello 5: Opzioni (solo per campi con opzioni) -->
334
+ @if (isOptionsField) {
335
+ <mat-expansion-panel>
336
+ <mat-expansion-panel-header>
337
+ <mat-panel-title>
338
+ <lucide-icon name="list" [size]="16" aria-hidden="true" />
339
+ <span>Opzioni</span>
340
+ </mat-panel-title>
341
+ </mat-expansion-panel-header>
342
+
343
+ <ui-options-editor
344
+ [options]="getFieldOptions()"
345
+ (optionsChange)="onOptionsChange($event)"
346
+ />
347
+ </mat-expansion-panel>
348
+ }
349
+
350
+ <!-- Pannello 6: Condizioni di visibilita -->
351
+ <mat-expansion-panel>
352
+ <mat-expansion-panel-header>
353
+ <mat-panel-title>
354
+ <lucide-icon name="eye" [size]="16" aria-hidden="true" />
355
+ <span>Condizioni di visibilita</span>
356
+ </mat-panel-title>
357
+ </mat-expansion-panel-header>
358
+
359
+ <ui-condition-editor
360
+ [conditions]="field.conditions || []"
361
+ [availableFields]="availableFields"
362
+ (conditionsChange)="onVisibilityConditionsChange($event)"
363
+ />
364
+ </mat-expansion-panel>
365
+
366
+ <!-- Pannello 7: Condizioni di disabilitazione -->
367
+ <mat-expansion-panel>
368
+ <mat-expansion-panel-header>
369
+ <mat-panel-title>
370
+ <lucide-icon name="ban" [size]="16" aria-hidden="true" />
371
+ <span>Condizioni di disabilitazione</span>
372
+ </mat-panel-title>
373
+ </mat-expansion-panel-header>
374
+
375
+ <ui-condition-editor
376
+ [conditions]="field.disableConditions || []"
377
+ [availableFields]="availableFields"
378
+ (conditionsChange)="onDisableConditionsChange($event)"
379
+ />
380
+ </mat-expansion-panel>
381
+
382
+ </mat-accordion>
383
+ </div>
384
+ }
385
+ </div>
386
+ `, isInline: true, styles: [".field-config-panel{display:flex;flex-direction:column;height:100%;background:var(--ui-color-surface, #fff);border-left:1px solid var(--ui-color-border, #e0e0e0);overflow-y:auto}.field-config-panel__header{display:flex;align-items:center;gap:var(--ui-spacing-2, 8px);padding:var(--ui-spacing-3, 12px) var(--ui-spacing-4, 16px);border-bottom:1px solid var(--ui-color-border, #e0e0e0);background:var(--ui-color-bg-subtle, #fafafa)}.field-config-panel__title{font-weight:600;font-size:var(--ui-font-size-sm, .875rem);color:var(--ui-color-text, #212121)}.field-config-panel__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--ui-spacing-3, 12px);padding:var(--ui-spacing-8, 64px) var(--ui-spacing-4, 16px);text-align:center;color:var(--ui-color-text-muted, #9e9e9e)}.field-config-panel__empty-text{font-size:var(--ui-font-size-sm, .875rem);margin:0}.field-config-panel__content{flex:1;overflow-y:auto;padding:var(--ui-spacing-2, 8px)}.field-config-panel__fields{display:flex;flex-direction:column;gap:var(--ui-spacing-2, 8px);padding:var(--ui-spacing-1, 4px) 0}.field-config-panel__field{width:100%}mat-panel-title{display:flex;align-items:center;gap:var(--ui-spacing-2, 8px);font-size:var(--ui-font-size-sm, .875rem);font-weight:500;color:var(--ui-color-text, #212121)}mat-checkbox{margin:var(--ui-spacing-1, 4px) 0}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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: MatExpansionModule }, { kind: "directive", type: i2.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i2.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i2.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i2.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.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: MatSelectModule }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: LucideAngularModule }, { kind: "component", type: i8.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }, { kind: "component", type: UiValidationEditorComponent, selector: "ui-validation-editor", inputs: ["validations"], outputs: ["validationsChange"] }, { kind: "component", type: UiOptionsEditorComponent, selector: "ui-options-editor", inputs: ["options"], outputs: ["optionsChange"] }, { kind: "component", type: UiConditionEditorComponent, selector: "ui-condition-editor", inputs: ["conditions", "title", "availableFields"], outputs: ["conditionsChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
387
+ }
388
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UiEditorFieldConfigPanelComponent, decorators: [{
389
+ type: Component,
390
+ args: [{ selector: 'ui-editor-field-config-panel', standalone: true, imports: [
391
+ FormsModule,
392
+ ReactiveFormsModule,
393
+ MatExpansionModule,
394
+ MatFormFieldModule,
395
+ MatInputModule,
396
+ MatSelectModule,
397
+ MatCheckboxModule,
398
+ MatTooltipModule,
399
+ LucideAngularModule,
400
+ UiValidationEditorComponent,
401
+ UiOptionsEditorComponent,
402
+ UiConditionEditorComponent,
403
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: `
404
+ <div class="field-config-panel">
405
+ <!-- Intestazione del pannello -->
406
+ <div class="field-config-panel__header">
407
+ <lucide-icon name="settings" [size]="18" aria-hidden="true" />
408
+ <span class="field-config-panel__title">Configurazione Campo</span>
409
+ </div>
410
+
411
+ <!-- Stato vuoto: nessun campo selezionato -->
412
+ @if (!field) {
413
+ <div class="field-config-panel__empty">
414
+ <lucide-icon name="mouse-pointer-click" [size]="32" aria-hidden="true" />
415
+ <p class="field-config-panel__empty-text">
416
+ Seleziona un campo per configurarlo
417
+ </p>
418
+ </div>
419
+ }
420
+
421
+ <!-- Form di configurazione del campo -->
422
+ @if (field && configForm) {
423
+ <div class="field-config-panel__content">
424
+ <mat-accordion multi>
425
+
426
+ <!-- Pannello 1: Proprieta base -->
427
+ <mat-expansion-panel [expanded]="true">
428
+ <mat-expansion-panel-header>
429
+ <mat-panel-title>
430
+ <lucide-icon name="file-text" [size]="16" aria-hidden="true" />
431
+ <span>Proprieta base</span>
432
+ </mat-panel-title>
433
+ </mat-expansion-panel-header>
434
+
435
+ <div class="field-config-panel__fields" [formGroup]="configForm">
436
+ <!-- Chiave univoca -->
437
+ <mat-form-field appearance="outline" class="field-config-panel__field">
438
+ <mat-label>Chiave (key)</mat-label>
439
+ <input matInput formControlName="key" placeholder="campo_univoco" />
440
+ <mat-hint>Identificativo univoco del campo</mat-hint>
441
+ </mat-form-field>
442
+
443
+ <!-- Tipo di campo -->
444
+ <mat-form-field appearance="outline" class="field-config-panel__field">
445
+ <mat-label>Tipo</mat-label>
446
+ <mat-select formControlName="type">
447
+ @for (ft of fieldTypes; track ft.value) {
448
+ <mat-option [value]="ft.value">{{ ft.label }}</mat-option>
449
+ }
450
+ </mat-select>
451
+ </mat-form-field>
452
+
453
+ <!-- Label visualizzata -->
454
+ <mat-form-field appearance="outline" class="field-config-panel__field">
455
+ <mat-label>Label</mat-label>
456
+ <input matInput formControlName="label" placeholder="Etichetta del campo" />
457
+ </mat-form-field>
458
+
459
+ <!-- Placeholder -->
460
+ <mat-form-field appearance="outline" class="field-config-panel__field">
461
+ <mat-label>Placeholder</mat-label>
462
+ <input matInput formControlName="placeholder" placeholder="Testo segnaposto" />
463
+ </mat-form-field>
464
+
465
+ <!-- Tooltip -->
466
+ <mat-form-field appearance="outline" class="field-config-panel__field">
467
+ <mat-label>Tooltip</mat-label>
468
+ <input matInput formControlName="tooltip" placeholder="Testo di aiuto" />
469
+ </mat-form-field>
470
+
471
+ <!-- Valore di default -->
472
+ <mat-form-field appearance="outline" class="field-config-panel__field">
473
+ <mat-label>Valore di default</mat-label>
474
+ <input matInput formControlName="defaultValue" placeholder="Valore iniziale" />
475
+ </mat-form-field>
476
+ </div>
477
+ </mat-expansion-panel>
478
+
479
+ <!-- Pannello 2: Stato del campo -->
480
+ <mat-expansion-panel>
481
+ <mat-expansion-panel-header>
482
+ <mat-panel-title>
483
+ <lucide-icon name="toggle-left" [size]="16" aria-hidden="true" />
484
+ <span>Stato campo</span>
485
+ </mat-panel-title>
486
+ </mat-expansion-panel-header>
487
+
488
+ <div class="field-config-panel__fields" [formGroup]="configForm">
489
+ <mat-checkbox formControlName="required" color="primary">
490
+ Obbligatorio
491
+ </mat-checkbox>
492
+
493
+ <mat-checkbox formControlName="disabled" color="primary">
494
+ Disabilitato
495
+ </mat-checkbox>
496
+
497
+ <mat-checkbox formControlName="readonly" color="primary">
498
+ Sola lettura
499
+ </mat-checkbox>
500
+
501
+ @if (isOptionsField) {
502
+ <mat-checkbox formControlName="hideEmptyOption" color="primary">
503
+ Nascondi opzione vuota
504
+ </mat-checkbox>
505
+ }
506
+ </div>
507
+ </mat-expansion-panel>
508
+
509
+ <!-- Pannello 3: Layout -->
510
+ <mat-expansion-panel>
511
+ <mat-expansion-panel-header>
512
+ <mat-panel-title>
513
+ <lucide-icon name="layout-grid" [size]="16" aria-hidden="true" />
514
+ <span>Layout</span>
515
+ </mat-panel-title>
516
+ </mat-expansion-panel-header>
517
+
518
+ <div class="field-config-panel__fields" [formGroup]="configForm">
519
+ <!-- Colonne -->
520
+ <mat-form-field appearance="outline" class="field-config-panel__field">
521
+ <mat-label>Colonne (1-12)</mat-label>
522
+ <input matInput type="number" formControlName="columns" min="1" max="12" />
523
+ <mat-hint>Numero di colonne nel grid</mat-hint>
524
+ </mat-form-field>
525
+
526
+ <!-- Ordine -->
527
+ <mat-form-field appearance="outline" class="field-config-panel__field">
528
+ <mat-label>Ordine</mat-label>
529
+ <input matInput type="number" formControlName="order" />
530
+ <mat-hint>Posizione nel grid</mat-hint>
531
+ </mat-form-field>
532
+ </div>
533
+ </mat-expansion-panel>
534
+
535
+ <!-- Pannello 4: Validazioni -->
536
+ <mat-expansion-panel>
537
+ <mat-expansion-panel-header>
538
+ <mat-panel-title>
539
+ <lucide-icon name="shield-check" [size]="16" aria-hidden="true" />
540
+ <span>Validazioni</span>
541
+ </mat-panel-title>
542
+ </mat-expansion-panel-header>
543
+
544
+ <ui-validation-editor
545
+ [validations]="field.validation || []"
546
+ (validationsChange)="onValidationsChange($event)"
547
+ />
548
+ </mat-expansion-panel>
549
+
550
+ <!-- Pannello 5: Opzioni (solo per campi con opzioni) -->
551
+ @if (isOptionsField) {
552
+ <mat-expansion-panel>
553
+ <mat-expansion-panel-header>
554
+ <mat-panel-title>
555
+ <lucide-icon name="list" [size]="16" aria-hidden="true" />
556
+ <span>Opzioni</span>
557
+ </mat-panel-title>
558
+ </mat-expansion-panel-header>
559
+
560
+ <ui-options-editor
561
+ [options]="getFieldOptions()"
562
+ (optionsChange)="onOptionsChange($event)"
563
+ />
564
+ </mat-expansion-panel>
565
+ }
566
+
567
+ <!-- Pannello 6: Condizioni di visibilita -->
568
+ <mat-expansion-panel>
569
+ <mat-expansion-panel-header>
570
+ <mat-panel-title>
571
+ <lucide-icon name="eye" [size]="16" aria-hidden="true" />
572
+ <span>Condizioni di visibilita</span>
573
+ </mat-panel-title>
574
+ </mat-expansion-panel-header>
575
+
576
+ <ui-condition-editor
577
+ [conditions]="field.conditions || []"
578
+ [availableFields]="availableFields"
579
+ (conditionsChange)="onVisibilityConditionsChange($event)"
580
+ />
581
+ </mat-expansion-panel>
582
+
583
+ <!-- Pannello 7: Condizioni di disabilitazione -->
584
+ <mat-expansion-panel>
585
+ <mat-expansion-panel-header>
586
+ <mat-panel-title>
587
+ <lucide-icon name="ban" [size]="16" aria-hidden="true" />
588
+ <span>Condizioni di disabilitazione</span>
589
+ </mat-panel-title>
590
+ </mat-expansion-panel-header>
591
+
592
+ <ui-condition-editor
593
+ [conditions]="field.disableConditions || []"
594
+ [availableFields]="availableFields"
595
+ (conditionsChange)="onDisableConditionsChange($event)"
596
+ />
597
+ </mat-expansion-panel>
598
+
599
+ </mat-accordion>
600
+ </div>
601
+ }
602
+ </div>
603
+ `, styles: [".field-config-panel{display:flex;flex-direction:column;height:100%;background:var(--ui-color-surface, #fff);border-left:1px solid var(--ui-color-border, #e0e0e0);overflow-y:auto}.field-config-panel__header{display:flex;align-items:center;gap:var(--ui-spacing-2, 8px);padding:var(--ui-spacing-3, 12px) var(--ui-spacing-4, 16px);border-bottom:1px solid var(--ui-color-border, #e0e0e0);background:var(--ui-color-bg-subtle, #fafafa)}.field-config-panel__title{font-weight:600;font-size:var(--ui-font-size-sm, .875rem);color:var(--ui-color-text, #212121)}.field-config-panel__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--ui-spacing-3, 12px);padding:var(--ui-spacing-8, 64px) var(--ui-spacing-4, 16px);text-align:center;color:var(--ui-color-text-muted, #9e9e9e)}.field-config-panel__empty-text{font-size:var(--ui-font-size-sm, .875rem);margin:0}.field-config-panel__content{flex:1;overflow-y:auto;padding:var(--ui-spacing-2, 8px)}.field-config-panel__fields{display:flex;flex-direction:column;gap:var(--ui-spacing-2, 8px);padding:var(--ui-spacing-1, 4px) 0}.field-config-panel__field{width:100%}mat-panel-title{display:flex;align-items:center;gap:var(--ui-spacing-2, 8px);font-size:var(--ui-font-size-sm, .875rem);font-weight:500;color:var(--ui-color-text, #212121)}mat-checkbox{margin:var(--ui-spacing-1, 4px) 0}\n"] }]
604
+ }], propDecorators: { field: [{
605
+ type: Input
606
+ }], availableFields: [{
607
+ type: Input
608
+ }], fieldUpdate: [{
609
+ type: Output
610
+ }] } });
611
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtY29uZmlnLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXVpLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1idWlsZGVyLWVkaXRvci9zdWItY29tcG9uZW50cy9maWVsZC1jb25maWctcGFuZWwvZmllbGQtY29uZmlnLXBhbmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULHVCQUF1QixFQUN2QixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFJWixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBYSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl6RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMvRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3TVQsczVDQXROQyxXQUFXLDBrQ0FDWCxtQkFBbUIsK1VBQ25CLGtCQUFrQix1bkJBQ2xCLGtCQUFrQixrWUFDbEIsY0FBYywwV0FDZCxlQUFlLG1yQkFDZixpQkFBaUIsb1lBQ2pCLGdCQUFnQiw4QkFDaEIsbUJBQW1CLGdQQUNuQiwyQkFBMkIsMEhBQzNCLHdCQUF3QiwrR0FDeEIsMEJBQTBCOzs0RkE4UmpCLGlDQUFpQztrQkE3UzdDLFNBQVM7K0JBQ0UsOEJBQThCLGNBQzVCLElBQUksV0FDUDt3QkFDUCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQiwyQkFBMkI7d0JBQzNCLHdCQUF3Qjt3QkFDeEIsMEJBQTBCO3FCQUMzQixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxZQUNyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3TVQ7OEJBMkZRLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBpbmplY3QsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IEx1Y2lkZUFuZ3VsYXJNb2R1bGUgfSBmcm9tICdsdWNpZGUtYW5ndWxhcic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBVaUZvcm1GaWVsZERlc2NyaXB0b3IsIFVpRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZm9ybS1idWlsZGVyL3R5cGVzL2luZGV4JztcclxuaW1wb3J0IHsgVWlFZGl0b3JBdmFpbGFibGVGaWVsZCB9IGZyb20gJy4uLy4uL3R5cGVzL2VkaXRvci50eXBlcyc7XHJcbmltcG9ydCB7IFVpVmFsaWRhdGlvbkVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uL3ZhbGlkYXRpb24tZWRpdG9yL3ZhbGlkYXRpb24tZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpT3B0aW9uc0VkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uL29wdGlvbnMtZWRpdG9yL29wdGlvbnMtZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpQ29uZGl0aW9uRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vY29uZGl0aW9uLWVkaXRvci9jb25kaXRpb24tZWRpdG9yLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogVHV0dGkgaSB0aXBpIGRpIGNhbXBvIHN1cHBvcnRhdGkgZGFsIGZvcm0gYnVpbGRlci5cclxuICogVXRpbGl6emF0aSBwZXIgcG9wb2xhcmUgbGEgc2VsZWN0IGRlbCB0aXBvIG5lbGxhIGNvbmZpZ3VyYXppb25lIGNhbXBvLlxyXG4gKi9cclxuY29uc3QgRklFTERfVFlQRVM6IHsgdmFsdWU6IFVpRmllbGRUeXBlOyBsYWJlbDogc3RyaW5nIH1bXSA9IFtcclxuICB7IHZhbHVlOiAndGV4dCcsIGxhYmVsOiAnVGVzdG8nIH0sXHJcbiAgeyB2YWx1ZTogJ2VtYWlsJywgbGFiZWw6ICdFbWFpbCcgfSxcclxuICB7IHZhbHVlOiAncGFzc3dvcmQnLCBsYWJlbDogJ1Bhc3N3b3JkJyB9LFxyXG4gIHsgdmFsdWU6ICdudW1iZXInLCBsYWJlbDogJ051bWVybycgfSxcclxuICB7IHZhbHVlOiAndGV4dGFyZWEnLCBsYWJlbDogJ0FyZWEgZGkgdGVzdG8nIH0sXHJcbiAgeyB2YWx1ZTogJ3NlbGVjdCcsIGxhYmVsOiAnU2VsZWN0JyB9LFxyXG4gIHsgdmFsdWU6ICdtdWx0aXNlbGVjdCcsIGxhYmVsOiAnTXVsdGlzZWxlY3QnIH0sXHJcbiAgeyB2YWx1ZTogJ2ZyZWVtdWx0aXNlbGVjdCcsIGxhYmVsOiAnTXVsdGlzZWxlY3QgbGliZXJvJyB9LFxyXG4gIHsgdmFsdWU6ICdjaGVja2JveCcsIGxhYmVsOiAnQ2hlY2tib3gnIH0sXHJcbiAgeyB2YWx1ZTogJ3N3aXRjaCcsIGxhYmVsOiAnU3dpdGNoJyB9LFxyXG4gIHsgdmFsdWU6ICdyYWRpbycsIGxhYmVsOiAnUmFkaW8nIH0sXHJcbiAgeyB2YWx1ZTogJ2RhdGUnLCBsYWJlbDogJ0RhdGEnIH0sXHJcbiAgeyB2YWx1ZTogJ2RhdGV0aW1lJywgbGFiZWw6ICdEYXRhIGUgb3JhJyB9LFxyXG4gIHsgdmFsdWU6ICdmaWxlJywgbGFiZWw6ICdGaWxlJyB9LFxyXG4gIHsgdmFsdWU6ICdjdXN0b20nLCBsYWJlbDogJ0N1c3RvbScgfSxcclxuICB7IHZhbHVlOiAnZGl2aWRlcicsIGxhYmVsOiAnU2VwYXJhdG9yZScgfSxcclxuICB7IHZhbHVlOiAnZmxhZycsIGxhYmVsOiAnRmxhZycgfSxcclxuICB7IHZhbHVlOiAnbG9jYXRpb24nLCBsYWJlbDogJ0xvY2F0aW9uJyB9LFxyXG4gIHsgdmFsdWU6ICdsb2NhdGlvbi10YWJsZScsIGxhYmVsOiAnTG9jYXRpb24gVGFibGUnIH0sXHJcbl07XHJcblxyXG4vKipcclxuICogVGlwaSBkaSBjYW1wbyBjaGUgc3VwcG9ydGFubyBsYSBjb25maWd1cmF6aW9uZSBkZWxsZSBvcHppb25pLlxyXG4gKiBQZXIgcXVlc3RpIHRpcGkgdmllbmUgbW9zdHJhdG8gaWwgcGFubmVsbG8gb3B6aW9uaSBuZWxsJ2VkaXRvci5cclxuICovXHJcbmNvbnN0IE9QVElPTlNfRklFTERfVFlQRVM6IFVpRmllbGRUeXBlW10gPSBbJ3NlbGVjdCcsICdtdWx0aXNlbGVjdCcsICdmcmVlbXVsdGlzZWxlY3QnLCAncmFkaW8nXTtcclxuXHJcbi8qKlxyXG4gKiBQYW5uZWxsbyBsYXRlcmFsZSBkZXN0cm8gcGVyIGxhIGNvbmZpZ3VyYXppb25lIGRpIHVuIGNhbXBvIHNlbGV6aW9uYXRvLlxyXG4gKlxyXG4gKiBNb3N0cmEgdW4gZm9ybSByZWF0dGl2byBzdWRkaXZpc28gaW4gcGFubmVsbGkgZXNwYW5kaWJpbGkgcGVyIGdlc3RpcmVcclxuICogcHJvcHJpZXRhIGJhc2UsIHN0YXRvLCBsYXlvdXQsIHZhbGlkYXppb25pLCBvcHppb25pIGUgY29uZGl6aW9uaS5cclxuICogRW1ldHRlIGFnZ2lvcm5hbWVudGkgcGFyemlhbGkgY29uIGRlYm91bmNlIGRpIDMwMG1zLlxyXG4gKlxyXG4gKiBAc2VsZWN0b3IgdWktZWRpdG9yLWZpZWxkLWNvbmZpZy1wYW5lbFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1lZGl0b3ItZmllbGQtY29uZmlnLXBhbmVsJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdEV4cGFuc2lvbk1vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTHVjaWRlQW5ndWxhck1vZHVsZSxcclxuICAgIFVpVmFsaWRhdGlvbkVkaXRvckNvbXBvbmVudCxcclxuICAgIFVpT3B0aW9uc0VkaXRvckNvbXBvbmVudCxcclxuICAgIFVpQ29uZGl0aW9uRWRpdG9yQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1jb25maWctcGFuZWxcIj5cclxuICAgICAgPCEtLSBJbnRlc3RhemlvbmUgZGVsIHBhbm5lbGxvIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQtY29uZmlnLXBhbmVsX19oZWFkZXJcIj5cclxuICAgICAgICA8bHVjaWRlLWljb24gbmFtZT1cInNldHRpbmdzXCIgW3NpemVdPVwiMThcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmllbGQtY29uZmlnLXBhbmVsX190aXRsZVwiPkNvbmZpZ3VyYXppb25lIENhbXBvPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gU3RhdG8gdnVvdG86IG5lc3N1biBjYW1wbyBzZWxlemlvbmF0byAtLT5cclxuICAgICAgQGlmICghZmllbGQpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQtY29uZmlnLXBhbmVsX19lbXB0eVwiPlxyXG4gICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJtb3VzZS1wb2ludGVyLWNsaWNrXCIgW3NpemVdPVwiMzJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJmaWVsZC1jb25maWctcGFuZWxfX2VtcHR5LXRleHRcIj5cclxuICAgICAgICAgICAgU2VsZXppb25hIHVuIGNhbXBvIHBlciBjb25maWd1cmFybG9cclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG5cclxuICAgICAgPCEtLSBGb3JtIGRpIGNvbmZpZ3VyYXppb25lIGRlbCBjYW1wbyAtLT5cclxuICAgICAgQGlmIChmaWVsZCAmJiBjb25maWdGb3JtKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkLWNvbmZpZy1wYW5lbF9fY29udGVudFwiPlxyXG4gICAgICAgICAgPG1hdC1hY2NvcmRpb24gbXVsdGk+XHJcblxyXG4gICAgICAgICAgICA8IS0tIFBhbm5lbGxvIDE6IFByb3ByaWV0YSBiYXNlIC0tPlxyXG4gICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCBbZXhwYW5kZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxtYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgIDxsdWNpZGUtaWNvbiBuYW1lPVwiZmlsZS10ZXh0XCIgW3NpemVdPVwiMTZcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj5Qcm9wcmlldGEgYmFzZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1jb25maWctcGFuZWxfX2ZpZWxkc1wiIFtmb3JtR3JvdXBdPVwiY29uZmlnRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLSBDaGlhdmUgdW5pdm9jYSAtLT5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwiZmllbGQtY29uZmlnLXBhbmVsX19maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkNoaWF2ZSAoa2V5KTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwia2V5XCIgcGxhY2Vob2xkZXI9XCJjYW1wb191bml2b2NvXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1oaW50PklkZW50aWZpY2F0aXZvIHVuaXZvY28gZGVsIGNhbXBvPC9tYXQtaGludD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBUaXBvIGRpIGNhbXBvIC0tPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJmaWVsZC1jb25maWctcGFuZWxfX2ZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+VGlwbzwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJ0eXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQGZvciAoZnQgb2YgZmllbGRUeXBlczsgdHJhY2sgZnQudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJmdC52YWx1ZVwiPnt7IGZ0LmxhYmVsIH19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIExhYmVsIHZpc3VhbGl6emF0YSAtLT5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwiZmllbGQtY29uZmlnLXBhbmVsX19maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkxhYmVsPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJsYWJlbFwiIHBsYWNlaG9sZGVyPVwiRXRpY2hldHRhIGRlbCBjYW1wb1wiIC8+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gUGxhY2Vob2xkZXIgLS0+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImZpZWxkLWNvbmZpZy1wYW5lbF9fZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5QbGFjZWhvbGRlcjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicGxhY2Vob2xkZXJcIiBwbGFjZWhvbGRlcj1cIlRlc3RvIHNlZ25hcG9zdG9cIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIFRvb2x0aXAgLS0+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImZpZWxkLWNvbmZpZy1wYW5lbF9fZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5Ub29sdGlwPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0b29sdGlwXCIgcGxhY2Vob2xkZXI9XCJUZXN0byBkaSBhaXV0b1wiIC8+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gVmFsb3JlIGRpIGRlZmF1bHQgLS0+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImZpZWxkLWNvbmZpZy1wYW5lbF9fZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5WYWxvcmUgZGkgZGVmYXVsdDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVmYXVsdFZhbHVlXCIgcGxhY2Vob2xkZXI9XCJWYWxvcmUgaW5pemlhbGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBQYW5uZWxsbyAyOiBTdGF0byBkZWwgY2FtcG8gLS0+XHJcbiAgICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG4gICAgICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxtYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgIDxsdWNpZGUtaWNvbiBuYW1lPVwidG9nZ2xlLWxlZnRcIiBbc2l6ZV09XCIxNlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPlN0YXRvIGNhbXBvPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkLWNvbmZpZy1wYW5lbF9fZmllbGRzXCIgW2Zvcm1Hcm91cF09XCJjb25maWdGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cInJlcXVpcmVkXCIgY29sb3I9XCJwcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgIE9iYmxpZ2F0b3Jpb1xyXG4gICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJkaXNhYmxlZFwiIGNvbG9yPVwicHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICBEaXNhYmlsaXRhdG9cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggZm9ybUNvbnRyb2xOYW1lPVwicmVhZG9ubHlcIiBjb2xvcj1cInByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgU29sYSBsZXR0dXJhXHJcbiAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuXHJcbiAgICAgICAgICAgICAgICBAaWYgKGlzT3B0aW9uc0ZpZWxkKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggZm9ybUNvbnRyb2xOYW1lPVwiaGlkZUVtcHR5T3B0aW9uXCIgY29sb3I9XCJwcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgTmFzY29uZGkgb3B6aW9uZSB2dW90YVxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBQYW5uZWxsbyAzOiBMYXlvdXQgLS0+XHJcbiAgICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG4gICAgICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxtYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgIDxsdWNpZGUtaWNvbiBuYW1lPVwibGF5b3V0LWdyaWRcIiBbc2l6ZV09XCIxNlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPkxheW91dDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1jb25maWctcGFuZWxfX2ZpZWxkc1wiIFtmb3JtR3JvdXBdPVwiY29uZmlnRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLSBDb2xvbm5lIC0tPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJmaWVsZC1jb25maWctcGFuZWxfX2ZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Q29sb25uZSAoMS0xMik8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJudW1iZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJjb2x1bW5zXCIgbWluPVwiMVwiIG1heD1cIjEyXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1oaW50Pk51bWVybyBkaSBjb2xvbm5lIG5lbCBncmlkPC9tYXQtaGludD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBPcmRpbmUgLS0+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImZpZWxkLWNvbmZpZy1wYW5lbF9fZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5PcmRpbmU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJudW1iZXJcIiBmb3JtQ29udHJvbE5hbWU9XCJvcmRlclwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaGludD5Qb3NpemlvbmUgbmVsIGdyaWQ8L21hdC1oaW50PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBQYW5uZWxsbyA0OiBWYWxpZGF6aW9uaSAtLT5cclxuICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWw+XHJcbiAgICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJzaGllbGQtY2hlY2tcIiBbc2l6ZV09XCIxNlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPlZhbGlkYXppb25pPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuXHJcbiAgICAgICAgICAgICAgPHVpLXZhbGlkYXRpb24tZWRpdG9yXHJcbiAgICAgICAgICAgICAgICBbdmFsaWRhdGlvbnNdPVwiZmllbGQudmFsaWRhdGlvbiB8fCBbXVwiXHJcbiAgICAgICAgICAgICAgICAodmFsaWRhdGlvbnNDaGFuZ2UpPVwib25WYWxpZGF0aW9uc0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcblxyXG4gICAgICAgICAgICA8IS0tIFBhbm5lbGxvIDU6IE9wemlvbmkgKHNvbG8gcGVyIGNhbXBpIGNvbiBvcHppb25pKSAtLT5cclxuICAgICAgICAgICAgQGlmIChpc09wdGlvbnNGaWVsZCkge1xyXG4gICAgICAgICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsdWNpZGUtaWNvbiBuYW1lPVwibGlzdFwiIFtzaXplXT1cIjE2XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj5PcHppb25pPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPHVpLW9wdGlvbnMtZWRpdG9yXHJcbiAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImdldEZpZWxkT3B0aW9ucygpXCJcclxuICAgICAgICAgICAgICAgICAgKG9wdGlvbnNDaGFuZ2UpPVwib25PcHRpb25zQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIDwhLS0gUGFubmVsbG8gNjogQ29uZGl6aW9uaSBkaSB2aXNpYmlsaXRhIC0tPlxyXG4gICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbD5cclxuICAgICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICA8bHVjaWRlLWljb24gbmFtZT1cImV5ZVwiIFtzaXplXT1cIjE2XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+Q29uZGl6aW9uaSBkaSB2aXNpYmlsaXRhPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuXHJcbiAgICAgICAgICAgICAgPHVpLWNvbmRpdGlvbi1lZGl0b3JcclxuICAgICAgICAgICAgICAgIFtjb25kaXRpb25zXT1cImZpZWxkLmNvbmRpdGlvbnMgfHwgW11cIlxyXG4gICAgICAgICAgICAgICAgW2F2YWlsYWJsZUZpZWxkc109XCJhdmFpbGFibGVGaWVsZHNcIlxyXG4gICAgICAgICAgICAgICAgKGNvbmRpdGlvbnNDaGFuZ2UpPVwib25WaXNpYmlsaXR5Q29uZGl0aW9uc0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcblxyXG4gICAgICAgICAgICA8IS0tIFBhbm5lbGxvIDc6IENvbmRpemlvbmkgZGkgZGlzYWJpbGl0YXppb25lIC0tPlxyXG4gICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbD5cclxuICAgICAgICAgICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICA8bHVjaWRlLWljb24gbmFtZT1cImJhblwiIFtzaXplXT1cIjE2XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+Q29uZGl6aW9uaSBkaSBkaXNhYmlsaXRhemlvbmU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cclxuICAgICAgICAgICAgICA8dWktY29uZGl0aW9uLWVkaXRvclxyXG4gICAgICAgICAgICAgICAgW2NvbmRpdGlvbnNdPVwiZmllbGQuZGlzYWJsZUNvbmRpdGlvbnMgfHwgW11cIlxyXG4gICAgICAgICAgICAgICAgW2F2YWlsYWJsZUZpZWxkc109XCJhdmFpbGFibGVGaWVsZHNcIlxyXG4gICAgICAgICAgICAgICAgKGNvbmRpdGlvbnNDaGFuZ2UpPVwib25EaXNhYmxlQ29uZGl0aW9uc0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcblxyXG4gICAgICAgICAgPC9tYXQtYWNjb3JkaW9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHN0eWxlczogW1xyXG4gICAgYFxyXG4gICAgLyogQ29udGVuaXRvcmUgcHJpbmNpcGFsZSBkZWwgcGFubmVsbG8gZGkgY29uZmlndXJhemlvbmUgKi9cclxuICAgIC5maWVsZC1jb25maWctcGFuZWwge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXVpLWNvbG9yLXN1cmZhY2UsICNmZmYpO1xyXG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLXVpLWNvbG9yLWJvcmRlciwgI2UwZTBlMCk7XHJcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgLyogSW50ZXN0YXppb25lIGRlbCBwYW5uZWxsbyAqL1xyXG4gICAgLmZpZWxkLWNvbmZpZy1wYW5lbF9faGVhZGVyIHtcclxuICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgZ2FwOiB2YXIoLS11aS1zcGFjaW5nLTIsIDhweCk7XHJcbiAgICAgIHBhZGRpbmc6IHZhcigtLXVpLXNwYWNpbmctMywgMTJweCkgdmFyKC0tdWktc3BhY2luZy00LCAxNnB4KTtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXVpLWNvbG9yLWJvcmRlciwgI2UwZTBlMCk7XHJcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXVpLWNvbG9yLWJnLXN1YnRsZSwgI2ZhZmFmYSk7XHJcbiAgICB9XHJcblxyXG4gICAgLmZpZWxkLWNvbmZpZy1wYW5lbF9fdGl0bGUge1xyXG4gICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICBmb250LXNpemU6IHZhcigtLXVpLWZvbnQtc2l6ZS1zbSwgMC44NzVyZW0pO1xyXG4gICAgICBjb2xvcjogdmFyKC0tdWktY29sb3ItdGV4dCwgIzIxMjEyMSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogU3RhdG8gdnVvdG86IG5lc3N1biBjYW1wbyBzZWxlemlvbmF0byAqL1xyXG4gICAgLmZpZWxkLWNvbmZpZy1wYW5lbF9fZW1wdHkge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgZ2FwOiB2YXIoLS11aS1zcGFjaW5nLTMsIDEycHgpO1xyXG4gICAgICBwYWRkaW5nOiB2YXIoLS11aS1zcGFjaW5nLTgsIDY0cHgpIHZhcigtLXVpLXNwYWNpbmctNCwgMTZweCk7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgY29sb3I6IHZhcigtLXVpLWNvbG9yLXRleHQtbXV0ZWQsICM5ZTllOWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC5maWVsZC1jb25maWctcGFuZWxfX2VtcHR5LXRleHQge1xyXG4gICAgICBmb250LXNpemU6IHZhcigtLXVpLWZvbnQtc2l6ZS1zbSwgMC44NzVyZW0pO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLyogQ29udGVudXRvIHNjcm9sbGFiaWxlICovXHJcbiAgICAuZmllbGQtY29uZmlnLXBhbmVsX19jb250ZW50IHtcclxuICAgICAgZmxleDogMTtcclxuICAgICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgICAgcGFkZGluZzogdmFyKC0tdWktc3BhY2luZy0yLCA4cHgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIEdydXBwbyBkaSBjYW1waSBkZW50cm8gdW4gcGFubmVsbG8gKi9cclxuICAgIC5maWVsZC1jb25maWctcGFuZWxfX2ZpZWxkcyB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgIGdhcDogdmFyKC0tdWktc3BhY2luZy0yLCA4cHgpO1xyXG4gICAgICBwYWRkaW5nOiB2YXIoLS11aS1zcGFjaW5nLTEsIDRweCkgMDtcclxuICAgIH1cclxuXHJcbiAgICAvKiBTaW5nb2xvIGNhbXBvIGRlbCBmb3JtIGRpIGNvbmZpZ3VyYXppb25lICovXHJcbiAgICAuZmllbGQtY29uZmlnLXBhbmVsX19maWVsZCB7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIFN0aWxpIHBlciBpIHRpdG9saSBkZWkgcGFubmVsbGkgZXNwYW5kaWJpbGkgKi9cclxuICAgIG1hdC1wYW5lbC10aXRsZSB7XHJcbiAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgIGdhcDogdmFyKC0tdWktc3BhY2luZy0yLCA4cHgpO1xyXG4gICAgICBmb250LXNpemU6IHZhcigtLXVpLWZvbnQtc2l6ZS1zbSwgMC44NzVyZW0pO1xyXG4gICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICBjb2xvcjogdmFyKC0tdWktY29sb3ItdGV4dCwgIzIxMjEyMSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogQ2hlY2tib3ggY29uIG1hcmdpbmUgc3VwZXJpb3JlICovXHJcbiAgICBtYXQtY2hlY2tib3gge1xyXG4gICAgICBtYXJnaW46IHZhcigtLXVpLXNwYWNpbmctMSwgNHB4KSAwO1xyXG4gICAgfVxyXG4gIGAsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpRWRpdG9yRmllbGRDb25maWdQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICAvKiogQGludGVybmFsIFNlcnZpemlvIHBlciBsYSBjb3N0cnV6aW9uZSBkZWwgRm9ybUdyb3VwLiAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xyXG5cclxuICAvKiogQGludGVybmFsIFN1YmplY3QgcGVyIGxhIGRpc3RydXppb25lIGUgcHVsaXppYSBkZWxsZSBzb3R0b3Njcml6aW9uaS4gKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgLyoqIENhbXBvIGF0dHVhbG1lbnRlIHNlbGV6aW9uYXRvIHBlciBsYSBjb25maWd1cmF6aW9uZS4gKi9cclxuICBASW5wdXQoKSBmaWVsZDogVWlGb3JtRmllbGREZXNjcmlwdG9yIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8qKiBMaXN0YSBkZWkgY2FtcGkgZGlzcG9uaWJpbGkgcGVyIGxlIGNvbmRpemlvbmkuICovXHJcbiAgQElucHV0KCkgYXZhaWxhYmxlRmllbGRzOiBVaUVkaXRvckF2YWlsYWJsZUZpZWxkW10gPSBbXTtcclxuXHJcbiAgLyoqIEVtZXNzbyBxdWFuZG8gaWwgY2FtcG8gdmllbmUgYWdnaW9ybmF0byBkYWxsJ3V0ZW50ZS4gKi9cclxuICBAT3V0cHV0KCkgZmllbGRVcGRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8VWlGb3JtRmllbGREZXNjcmlwdG9yPj4oKTtcclxuXHJcbiAgLyoqIEZvcm0gcmVhdHRpdm8gcGVyIGxhIGNvbmZpZ3VyYXppb25lIGRlbCBjYW1wby4gKi9cclxuICBjb25maWdGb3JtOiBGb3JtR3JvdXAgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLyoqIExpc3RhIGRlaSB0aXBpIGRpIGNhbXBvIHBlciBsYSBzZWxlY3QuICovXHJcbiAgcmVhZG9ubHkgZmllbGRUeXBlcyA9IEZJRUxEX1RZUEVTO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2Egc2UgaWwgY2FtcG8gc2VsZXppb25hdG8gc3VwcG9ydGEgbGUgb3B6aW9uaS5cclxuICAgKiBWaWVuZSB1dGlsaXp6YXRvIHBlciBtb3N0cmFyZS9uYXNjb25kZXJlIGlsIHBhbm5lbGxvIG9wemlvbmkuXHJcbiAgICovXHJcbiAgZ2V0IGlzT3B0aW9uc0ZpZWxkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLmZpZWxkKSByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gT1BUSU9OU19GSUVMRF9UWVBFUy5pbmNsdWRlcyh0aGlzLmZpZWxkLnR5cGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmlsZXZhIGNhbWJpYW1lbnRpIHN1Z2xpIGlucHV0IGUgcmljb3N0cnVpc2NlIGlsIGZvcm1cclxuICAgKiBxdWFuZG8gY2FtYmlhIGlsIGNhbXBvIHNlbGV6aW9uYXRvLlxyXG4gICAqL1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydmaWVsZCddKSB7XHJcbiAgICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVzdGl0dWlzY2UgbGUgb3B6aW9uaSBkZWwgY2FtcG8gY29tZSBhcnJheSBzdGF0aWNvLlxyXG4gICAqIElnbm9yYSBvcHppb25pIG9zc2VydmFiaWxpIHBvaWNoZSBub24gZ2VzdGliaWxpIG5lbGwnZWRpdG9yLlxyXG4gICAqL1xyXG4gIGdldEZpZWxkT3B0aW9ucygpOiB7IHZhbHVlOiBhbnk7IGxhYmVsOiBzdHJpbmcgfVtdIHtcclxuICAgIGlmICghdGhpcy5maWVsZD8ub3B0aW9ucyB8fCAhQXJyYXkuaXNBcnJheSh0aGlzLmZpZWxkLm9wdGlvbnMpKSByZXR1cm4gW107XHJcbiAgICByZXR1cm4gdGhpcy5maWVsZC5vcHRpb25zLm1hcCgobykgPT4gKHsgdmFsdWU6IG8udmFsdWUsIGxhYmVsOiBvLmxhYmVsIH0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdlc3Rpc2NlIGwnYWdnaW9ybmFtZW50byBkZWxsZSB2YWxpZGF6aW9uaSBkYWwgc290dG8tY29tcG9uZW50ZS5cclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbnMgLSBOdW92YSBsaXN0YSBkaSByZWdvbGUgZGkgdmFsaWRhemlvbmVcclxuICAgKi9cclxuICBvblZhbGlkYXRpb25zQ2hhbmdlKHZhbGlkYXRpb25zOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5maWVsZFVwZGF0ZS5lbWl0KHsgdmFsaWRhdGlvbjogdmFsaWRhdGlvbnMgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXN0aXNjZSBsJ2FnZ2lvcm5hbWVudG8gZGVsbGUgb3B6aW9uaSBkYWwgc290dG8tY29tcG9uZW50ZS5cclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE51b3ZhIGxpc3RhIGRpIG9wemlvbmlcclxuICAgKi9cclxuICBvbk9wdGlvbnNDaGFuZ2Uob3B0aW9uczogeyB2YWx1ZTogYW55OyBsYWJlbDogc3RyaW5nIH1bXSk6IHZvaWQge1xyXG4gICAgdGhpcy5maWVsZFVwZGF0ZS5lbWl0KHsgb3B0aW9ucyB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdlc3Rpc2NlIGwnYWdnaW9ybmFtZW50byBkZWxsZSBjb25kaXppb25pIGRpIHZpc2liaWxpdGEuXHJcbiAgICogQHBhcmFtIGNvbmRpdGlvbnMgLSBOdW92YSBsaXN0YSBkaSBjb25kaXppb25pXHJcbiAgICovXHJcbiAgb25WaXNpYmlsaXR5Q29uZGl0aW9uc0NoYW5nZShjb25kaXRpb25zOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5maWVsZFVwZGF0ZS5lbWl0KHsgY29uZGl0aW9ucyB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdlc3Rpc2NlIGwnYWdnaW9ybmFtZW50byBkZWxsZSBjb25kaXppb25pIGRpIGRpc2FiaWxpdGF6aW9uZS5cclxuICAgKiBAcGFyYW0gY29uZGl0aW9ucyAtIE51b3ZhIGxpc3RhIGRpIGNvbmRpemlvbmlcclxuICAgKi9cclxuICBvbkRpc2FibGVDb25kaXRpb25zQ2hhbmdlKGNvbmRpdGlvbnM6IGFueVtdKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpZWxkVXBkYXRlLmVtaXQoeyBkaXNhYmxlQ29uZGl0aW9uczogY29uZGl0aW9ucyB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqIENvc3RydWlzY2UgaWwgRm9ybUdyb3VwIGEgcGFydGlyZSBkYWwgY2FtcG8gc2VsZXppb25hdG8uXHJcbiAgICogU2kgc290dG9zY3JpdmUgYWkgdmFsdWVDaGFuZ2VzIGNvbiBkZWJvdW5jZSBwZXIgZW1ldHRlcmUgYWdnaW9ybmFtZW50aS5cclxuICAgKi9cclxuICBwcml2YXRlIGJ1aWxkRm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG5cclxuICAgIGlmICghdGhpcy5maWVsZCkge1xyXG4gICAgICB0aGlzLmNvbmZpZ0Zvcm0gPSBudWxsO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb25maWdGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGtleTogW3RoaXMuZmllbGQua2V5XSxcclxuICAgICAgdHlwZTogW3RoaXMuZmllbGQudHlwZV0sXHJcbiAgICAgIGxhYmVsOiBbdGhpcy5maWVsZC5sYWJlbF0sXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBbdGhpcy5maWVsZC5wbGFjZWhvbGRlciB8fCAnJ10sXHJcbiAgICAgIHRvb2x0aXA6IFt0aGlzLmZpZWxkLnRvb2x0aXAgfHwgJyddLFxyXG4gICAgICBkZWZhdWx0VmFsdWU6IFt0aGlzLmZpZWxkLmRlZmF1bHRWYWx1ZSA/PyAnJ10sXHJcbiAgICAgIHJlcXVpcmVkOiBbdGhpcy5maWVsZC5yZXF1aXJlZCB8fCBmYWxzZV0sXHJcbiAgICAgIGRpc2FibGVkOiBbdGhpcy5maWVsZC5kaXNhYmxlZCB8fCBmYWxzZV0sXHJcbiAgICAgIHJlYWRvbmx5OiBbdGhpcy5maWVsZC5yZWFkb25seSB8fCBmYWxzZV0sXHJcbiAgICAgIGhpZGVFbXB0eU9wdGlvbjogW3RoaXMuZmllbGQuaGlkZUVtcHR5T3B0aW9uIHx8IGZhbHNlXSxcclxuICAgICAgY29sdW1uczogW3RoaXMuZmllbGQubGF5b3V0Py5jb2x1bW5zID8/IG51bGxdLFxyXG4gICAgICBvcmRlcjogW3RoaXMuZmllbGQubGF5b3V0Py5vcmRlciA/PyBudWxsXSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY29uZmlnRm9ybS52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMzAwKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHZhbHVlcykgPT4ge1xyXG4gICAgICAvKiogTWFwcGEgaSB2YWxvcmkgZGVsIGZvcm0gbmVsIGZvcm1hdG8gZGkgYWdnaW9ybmFtZW50byBwYXJ6aWFsZSBkZWwgY2FtcG8gKi9cclxuICAgICAgY29uc3QgdXBkYXRlOiBQYXJ0aWFsPFVpRm9ybUZpZWxkRGVzY3JpcHRvcj4gPSB7XHJcbiAgICAgICAga2V5OiB2YWx1ZXMua2V5LFxyXG4gICAgICAgIHR5cGU6IHZhbHVlcy50eXBlLFxyXG4gICAgICAgIGxhYmVsOiB2YWx1ZXMubGFiZWwsXHJcbiAgICAgICAgcGxhY2Vob2xkZXI6IHZhbHVlcy5wbGFjZWhvbGRlciB8fCB1bmRlZmluZWQsXHJcbiAgICAgICAgdG9vbHRpcDogdmFsdWVzLnRvb2x0aXAgfHwgdW5kZWZpbmVkLFxyXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdmFsdWVzLmRlZmF1bHRWYWx1ZSB8fCB1bmRlZmluZWQsXHJcbiAgICAgICAgcmVxdWlyZWQ6IHZhbHVlcy5yZXF1aXJlZCxcclxuICAgICAgICBkaXNhYmxlZDogdmFsdWVzLmRpc2FibGVkLFxyXG4gICAgICAgIHJlYWRvbmx5OiB2YWx1ZXMucmVhZG9ubHksXHJcbiAgICAgICAgaGlkZUVtcHR5T3B0aW9uOiB2YWx1ZXMuaGlkZUVtcHR5T3B0aW9uLFxyXG4gICAgICAgIGxheW91dDoge1xyXG4gICAgICAgICAgY29sdW1uczogdmFsdWVzLmNvbHVtbnMgPz8gdW5kZWZpbmVkLFxyXG4gICAgICAgICAgb3JkZXI6IHZhbHVlcy5vcmRlciA/PyB1bmRlZmluZWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5maWVsZFVwZGF0ZS5lbWl0KHVwZGF0ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19