design-angular-kit 1.2.1 → 1.3.0

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 (564) hide show
  1. package/README.md +461 -0
  2. package/assets/i18n/en.json +89 -0
  3. package/assets/i18n/it.json +89 -0
  4. package/esm2022/design-angular-kit.mjs +5 -0
  5. package/esm2022/lib/abstracts/abstract-form.component.mjs +199 -0
  6. package/esm2022/lib/abstracts/abstract.component.mjs +46 -0
  7. package/esm2022/lib/components/core/accordion/accordion.component.mjs +39 -0
  8. package/esm2022/lib/components/core/alert/alert.component.mjs +71 -0
  9. package/esm2022/lib/components/core/avatar/avatar-dropdown/avatar-dropdown.component.mjs +43 -0
  10. package/esm2022/lib/components/core/avatar/avatar-group/avatar-group.component.mjs +40 -0
  11. package/esm2022/lib/components/core/avatar/avatar.directive.mjs +78 -0
  12. package/esm2022/lib/components/core/avatar/avatar.module.mjs +33 -0
  13. package/esm2022/lib/components/core/badge/badge.directive.mjs +39 -0
  14. package/esm2022/lib/components/core/button/button.directive.mjs +80 -0
  15. package/esm2022/lib/components/core/callout/callout.component.mjs +64 -0
  16. package/esm2022/lib/components/core/card/card.component.mjs +59 -0
  17. package/esm2022/lib/components/core/carousel/carousel/carousel.component.mjs +86 -0
  18. package/esm2022/lib/components/core/carousel/carousel-item/carousel-item.component.mjs +19 -0
  19. package/esm2022/lib/components/core/carousel/carousel.module.mjs +18 -0
  20. package/esm2022/lib/components/core/chip/chip.component.mjs +136 -0
  21. package/esm2022/lib/components/core/collapse/collapse.component.mjs +116 -0
  22. package/esm2022/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.mjs +27 -0
  23. package/esm2022/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.mjs +11 -0
  24. package/esm2022/lib/components/core/dimmer/dimmer.component.mjs +55 -0
  25. package/esm2022/lib/components/core/dimmer/dimmer.module.mjs +19 -0
  26. package/esm2022/lib/components/core/dropdown/dropdown/dropdown.component.mjs +147 -0
  27. package/esm2022/lib/components/core/dropdown/dropdown-item/dropdown-item.component.mjs +70 -0
  28. package/esm2022/lib/components/core/dropdown/dropdown.module.mjs +18 -0
  29. package/esm2022/lib/components/core/forward/forward.directive.mjs +57 -0
  30. package/esm2022/lib/components/core/link/link.component.mjs +42 -0
  31. package/esm2022/lib/components/core/list/list/list.component.mjs +22 -0
  32. package/esm2022/lib/components/core/list/list-item/list-item.component.mjs +56 -0
  33. package/esm2022/lib/components/core/list/list.module.mjs +18 -0
  34. package/esm2022/lib/components/core/modal/modal.component.mjs +194 -0
  35. package/esm2022/lib/components/core/notifications/notifications.component.mjs +111 -0
  36. package/esm2022/lib/components/core/pagination/pagination.component.mjs +130 -0
  37. package/esm2022/lib/components/core/popover/popover.directive.mjs +176 -0
  38. package/esm2022/lib/components/core/progress-bar/progress-bar.component.mjs +34 -0
  39. package/esm2022/lib/components/core/progress-button/progress-button.component.mjs +25 -0
  40. package/esm2022/lib/components/core/spinner/spinner.component.mjs +30 -0
  41. package/esm2022/lib/components/core/steppers/steppers-container/steppers-container.component.mjs +116 -0
  42. package/esm2022/lib/components/core/steppers/steppers-item/steppers-item.component.mjs +22 -0
  43. package/esm2022/lib/components/core/steppers/steppers.module.mjs +18 -0
  44. package/esm2022/lib/components/core/tab/tab-container/tab-container.component.mjs +97 -0
  45. package/esm2022/lib/components/core/tab/tab-item/tab-item.component.mjs +39 -0
  46. package/esm2022/lib/components/core/tab/tab.module.mjs +18 -0
  47. package/esm2022/lib/components/core/table/sort/sort-header/sort-header.component.mjs +134 -0
  48. package/esm2022/lib/components/core/table/sort/sort.directive.mjs +123 -0
  49. package/esm2022/lib/components/core/table/table.component.mjs +45 -0
  50. package/esm2022/lib/components/core/table/table.module.mjs +19 -0
  51. package/esm2022/lib/components/core/timeline/timeline-item/timeline-item.component.mjs +90 -0
  52. package/esm2022/lib/components/core/timeline/timeline.component.mjs +36 -0
  53. package/esm2022/lib/components/core/timeline/timeline.module.mjs +18 -0
  54. package/esm2022/lib/components/core/tooltip/tooltip.directive.mjs +143 -0
  55. package/esm2022/lib/components/core/video-player/video-player-i18n.model.mjs +2 -0
  56. package/esm2022/lib/components/core/video-player/video-player-i18n.service.mjs +130 -0
  57. package/esm2022/lib/components/core/video-player/video-player.component.mjs +303 -0
  58. package/esm2022/lib/components/core/video-player/video-player.config.mjs +43 -0
  59. package/esm2022/lib/components/core/video-player/video-player.cookie.mjs +25 -0
  60. package/esm2022/lib/components/core/video-player/video-player.model.mjs +3 -0
  61. package/esm2022/lib/components/core/video-player/video-player.module.mjs +16 -0
  62. package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +178 -0
  63. package/esm2022/lib/components/form/checkbox/checkbox.component.mjs +48 -0
  64. package/esm2022/lib/components/form/form.module.mjs +67 -0
  65. package/esm2022/lib/components/form/input/input.component.mjs +190 -0
  66. package/esm2022/lib/components/form/password-input/password-input.component.mjs +149 -0
  67. package/esm2022/lib/components/form/radio-button/radio-button.component.mjs +60 -0
  68. package/esm2022/lib/components/form/range/range.component.mjs +64 -0
  69. package/esm2022/lib/components/form/rating/rating.component.mjs +50 -0
  70. package/esm2022/lib/components/form/search/search.component.mjs +112 -0
  71. package/esm2022/lib/components/form/select/select.component.mjs +70 -0
  72. package/esm2022/lib/components/form/textarea/textarea.component.mjs +55 -0
  73. package/esm2022/lib/components/form/transfer/store/transfer.reducers.mjs +191 -0
  74. package/esm2022/lib/components/form/transfer/store/transfer.state.mjs +2 -0
  75. package/esm2022/lib/components/form/transfer/store/transfer.store.mjs +70 -0
  76. package/esm2022/lib/components/form/transfer/transfer-list/transfer-list.component.mjs +72 -0
  77. package/esm2022/lib/components/form/transfer/transfer.component.mjs +149 -0
  78. package/esm2022/lib/components/form/transfer/transfer.model.mjs +6 -0
  79. package/esm2022/lib/components/form/upload-drag-drop/upload-drag-drop.component.mjs +142 -0
  80. package/esm2022/lib/components/form/upload-file-list/upload-file-list.component.mjs +107 -0
  81. package/esm2022/lib/components/navigation/back-button/back-button.component.mjs +67 -0
  82. package/esm2022/lib/components/navigation/back-to-top/back-to-top.component.mjs +68 -0
  83. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.mjs +51 -0
  84. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +21 -0
  85. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumbs.module.mjs +18 -0
  86. package/esm2022/lib/components/navigation/header/header.component.mjs +103 -0
  87. package/esm2022/lib/components/navigation/megamenu/megamenu.component.mjs +27 -0
  88. package/esm2022/lib/components/navigation/navbar/navbar/navbar.component.mjs +49 -0
  89. package/esm2022/lib/components/navigation/navbar/navbar-item/navbar-item.component.mjs +11 -0
  90. package/esm2022/lib/components/navigation/navbar/navbar.module.mjs +18 -0
  91. package/esm2022/lib/components/navigation/navscroll/navscroll-list-item.component.mjs +97 -0
  92. package/esm2022/lib/components/navigation/navscroll/navscroll-list-items.component.mjs +44 -0
  93. package/esm2022/lib/components/navigation/navscroll/navscroll.component.mjs +116 -0
  94. package/esm2022/lib/components/navigation/navscroll/navscroll.model.mjs +2 -0
  95. package/esm2022/lib/components/navigation/navscroll/navscroll.store.mjs +68 -0
  96. package/esm2022/lib/components/navigation/navscroll/navscroll.utils.mjs +23 -0
  97. package/esm2022/lib/components/navigation/sidebar/sidebar.component.mjs +50 -0
  98. package/esm2022/lib/components/navigation/skiplink/skiplink/skiplink.component.mjs +27 -0
  99. package/esm2022/lib/components/navigation/skiplink/skiplink-item/skiplink-item.component.mjs +26 -0
  100. package/esm2022/lib/components/navigation/skiplink/skiplink.module.mjs +18 -0
  101. package/esm2022/lib/components/utils/error-page/error-page.component.mjs +74 -0
  102. package/esm2022/lib/components/utils/icon/icon.component.mjs +63 -0
  103. package/esm2022/lib/components/utils/language-switcher/language-switcher.component.mjs +50 -0
  104. package/esm2022/lib/design-angular-kit.module.mjs +237 -0
  105. package/esm2022/lib/enums/colors.enums.mjs +12 -0
  106. package/esm2022/lib/enums/sizes.enum.mjs +9 -0
  107. package/esm2022/lib/interfaces/core.mjs +16 -0
  108. package/esm2022/lib/interfaces/design-angular-kit-config.mjs +7 -0
  109. package/esm2022/lib/interfaces/form.mjs +2 -0
  110. package/esm2022/lib/interfaces/icon.mjs +168 -0
  111. package/esm2022/lib/interfaces/sortable-table.mjs +6 -0
  112. package/esm2022/lib/interfaces/utils.mjs +2 -0
  113. package/esm2022/lib/pipes/date-ago.pipe.mjs +56 -0
  114. package/esm2022/lib/pipes/duration.pipe.mjs +115 -0
  115. package/esm2022/lib/pipes/mark-matching-text.pipe.mjs +48 -0
  116. package/esm2022/lib/provide-design-angular-kit.mjs +64 -0
  117. package/esm2022/lib/services/notification/notification.service.mjs +120 -0
  118. package/esm2022/lib/utils/coercion.mjs +18 -0
  119. package/esm2022/lib/utils/date-utils.mjs +162 -0
  120. package/esm2022/lib/utils/file-utils.mjs +73 -0
  121. package/esm2022/lib/utils/regex.mjs +35 -0
  122. package/esm2022/lib/validators/it-validators.mjs +161 -0
  123. package/esm2022/public_api.mjs +114 -0
  124. package/fesm2022/design-angular-kit.mjs +7423 -0
  125. package/fesm2022/design-angular-kit.mjs.map +1 -0
  126. package/index.d.ts +5 -0
  127. package/lib/abstracts/abstract-form.component.d.ts +89 -0
  128. package/lib/abstracts/abstract.component.d.ts +30 -0
  129. package/lib/components/core/accordion/accordion.component.d.ts +18 -0
  130. package/lib/components/core/alert/alert.component.d.ts +44 -0
  131. package/lib/components/core/avatar/avatar-dropdown/avatar-dropdown.component.d.ts +29 -0
  132. package/lib/components/core/avatar/avatar-group/avatar-group.component.d.ts +15 -0
  133. package/lib/components/core/avatar/avatar.directive.d.ts +33 -0
  134. package/lib/components/core/avatar/avatar.module.d.ts +9 -0
  135. package/lib/components/core/badge/badge.directive.d.ts +23 -0
  136. package/lib/components/core/button/button.directive.d.ts +48 -0
  137. package/lib/components/core/callout/callout.component.d.ts +50 -0
  138. package/lib/components/core/card/card.component.d.ts +69 -0
  139. package/lib/components/core/carousel/carousel/carousel.component.d.ts +65 -0
  140. package/lib/components/core/carousel/carousel-item/carousel-item.component.d.ts +15 -0
  141. package/lib/components/core/carousel/carousel.module.d.ts +8 -0
  142. package/lib/components/core/chip/chip.component.d.ts +76 -0
  143. package/lib/components/core/collapse/collapse.component.d.ts +67 -0
  144. package/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.d.ts +12 -0
  145. package/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.d.ts +5 -0
  146. package/lib/components/core/dimmer/dimmer.component.d.ts +24 -0
  147. package/lib/components/core/dimmer/dimmer.module.d.ts +9 -0
  148. package/lib/components/core/dropdown/dropdown/dropdown.component.d.ts +94 -0
  149. package/lib/components/core/dropdown/dropdown-item/dropdown-item.component.d.ts +46 -0
  150. package/lib/components/core/dropdown/dropdown.module.d.ts +8 -0
  151. package/lib/components/core/forward/forward.directive.d.ts +14 -0
  152. package/lib/components/core/link/link.component.d.ts +35 -0
  153. package/lib/components/core/list/list/list.component.d.ts +24 -0
  154. package/lib/components/core/list/list-item/list-item.component.d.ts +41 -0
  155. package/lib/components/core/list/list.module.d.ts +8 -0
  156. package/lib/components/core/modal/modal.component.d.ts +135 -0
  157. package/lib/components/core/notifications/notifications.component.d.ts +45 -0
  158. package/lib/components/core/pagination/pagination.component.d.ts +92 -0
  159. package/lib/components/core/popover/popover.directive.d.ts +99 -0
  160. package/lib/components/core/progress-bar/progress-bar.component.d.ts +31 -0
  161. package/lib/components/core/progress-button/progress-button.component.d.ts +21 -0
  162. package/lib/components/core/spinner/spinner.component.d.ts +24 -0
  163. package/lib/components/core/steppers/steppers-container/steppers-container.component.d.ts +130 -0
  164. package/lib/components/core/steppers/steppers-item/steppers-item.component.d.ts +24 -0
  165. package/lib/components/core/steppers/steppers.module.d.ts +8 -0
  166. package/lib/components/core/tab/tab-container/tab-container.component.d.ts +60 -0
  167. package/lib/components/core/tab/tab-item/tab-item.component.d.ts +38 -0
  168. package/lib/components/core/tab/tab.module.d.ts +8 -0
  169. package/lib/components/core/table/sort/sort-header/sort-header.component.d.ts +72 -0
  170. package/lib/components/core/table/sort/sort.directive.d.ts +53 -0
  171. package/lib/components/core/table/table.component.d.ts +60 -0
  172. package/lib/components/core/table/table.module.d.ts +9 -0
  173. package/lib/components/core/timeline/timeline-item/timeline-item.component.d.ts +79 -0
  174. package/lib/components/core/timeline/timeline.component.d.ts +21 -0
  175. package/lib/components/core/timeline/timeline.module.d.ts +8 -0
  176. package/lib/components/core/tooltip/tooltip.directive.d.ts +82 -0
  177. package/lib/components/core/video-player/video-player-i18n.model.d.ts +179 -0
  178. package/lib/components/core/video-player/video-player-i18n.service.d.ts +17 -0
  179. package/lib/components/core/video-player/video-player.component.d.ts +48 -0
  180. package/lib/components/core/video-player/video-player.config.d.ts +68 -0
  181. package/lib/components/core/video-player/video-player.cookie.d.ts +6 -0
  182. package/lib/components/core/video-player/video-player.model.d.ts +44 -0
  183. package/lib/components/core/video-player/video-player.module.d.ts +7 -0
  184. package/lib/components/form/autocomplete/autocomplete.component.d.ts +75 -0
  185. package/lib/components/form/checkbox/checkbox.component.d.ts +41 -0
  186. package/lib/components/form/form.module.d.ts +19 -0
  187. package/lib/components/form/input/input.component.d.ts +95 -0
  188. package/lib/components/form/password-input/password-input.component.d.ts +80 -0
  189. package/lib/components/form/radio-button/radio-button.component.d.ts +38 -0
  190. package/lib/components/form/range/range.component.d.ts +42 -0
  191. package/lib/components/form/rating/rating.component.d.ts +24 -0
  192. package/lib/components/form/search/search.component.d.ts +59 -0
  193. package/lib/components/form/select/select.component.d.ts +36 -0
  194. package/lib/components/form/textarea/textarea.component.d.ts +34 -0
  195. package/lib/components/form/transfer/store/transfer.reducers.d.ts +103 -0
  196. package/lib/components/form/transfer/store/transfer.state.d.ts +18 -0
  197. package/lib/components/form/transfer/store/transfer.store.d.ts +23 -0
  198. package/lib/components/form/transfer/transfer-list/transfer-list.component.d.ts +48 -0
  199. package/lib/components/form/transfer/transfer.component.d.ts +75 -0
  200. package/{src/lib/components/form/transfer/transfer.model.ts → lib/components/form/transfer/transfer.model.d.ts} +2 -9
  201. package/lib/components/form/upload-drag-drop/upload-drag-drop.component.d.ts +60 -0
  202. package/lib/components/form/upload-file-list/upload-file-list.component.d.ts +62 -0
  203. package/lib/components/navigation/back-button/back-button.component.d.ts +47 -0
  204. package/lib/components/navigation/back-to-top/back-to-top.component.d.ts +50 -0
  205. package/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.d.ts +28 -0
  206. package/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +23 -0
  207. package/lib/components/navigation/breadcrumbs/breadcrumbs.module.d.ts +8 -0
  208. package/lib/components/navigation/header/header.component.d.ts +38 -0
  209. package/lib/components/navigation/megamenu/megamenu.component.d.ts +22 -0
  210. package/lib/components/navigation/navbar/navbar/navbar.component.d.ts +19 -0
  211. package/lib/components/navigation/navbar/navbar-item/navbar-item.component.d.ts +5 -0
  212. package/lib/components/navigation/navbar/navbar.module.d.ts +8 -0
  213. package/lib/components/navigation/navscroll/navscroll-list-item.component.d.ts +16 -0
  214. package/lib/components/navigation/navscroll/navscroll-list-items.component.d.ts +7 -0
  215. package/lib/components/navigation/navscroll/navscroll.component.d.ts +47 -0
  216. package/{src/lib/components/navigation/navscroll/navscroll.model.ts → lib/components/navigation/navscroll/navscroll.model.d.ts} +5 -7
  217. package/lib/components/navigation/navscroll/navscroll.store.d.ts +16 -0
  218. package/lib/components/navigation/navscroll/navscroll.utils.d.ts +6 -0
  219. package/lib/components/navigation/sidebar/sidebar.component.d.ts +26 -0
  220. package/lib/components/navigation/skiplink/skiplink/skiplink.component.d.ts +17 -0
  221. package/lib/components/navigation/skiplink/skiplink-item/skiplink-item.component.d.ts +24 -0
  222. package/lib/components/navigation/skiplink/skiplink.module.d.ts +8 -0
  223. package/lib/components/utils/error-page/error-page.component.d.ts +44 -0
  224. package/lib/components/utils/icon/icon.component.d.ts +53 -0
  225. package/lib/components/utils/language-switcher/language-switcher.component.d.ts +27 -0
  226. package/lib/design-angular-kit.module.d.ts +54 -0
  227. package/lib/enums/colors.enums.d.ts +10 -0
  228. package/lib/enums/sizes.enum.d.ts +7 -0
  229. package/{src/lib/interfaces/core.ts → lib/interfaces/core.d.ts} +53 -95
  230. package/lib/interfaces/design-angular-kit-config.d.ts +30 -0
  231. package/lib/interfaces/form.d.ts +67 -0
  232. package/lib/interfaces/icon.d.ts +4 -0
  233. package/lib/interfaces/sortable-table.d.ts +33 -0
  234. package/lib/interfaces/utils.d.ts +10 -0
  235. package/lib/pipes/date-ago.pipe.d.ts +17 -0
  236. package/lib/pipes/duration.pipe.d.ts +35 -0
  237. package/lib/pipes/mark-matching-text.pipe.d.ts +18 -0
  238. package/lib/provide-design-angular-kit.d.ts +7 -0
  239. package/lib/services/notification/notification.service.d.ts +63 -0
  240. package/{src/lib/utils/coercion.ts → lib/utils/coercion.d.ts} +1 -7
  241. package/lib/utils/date-utils.d.ts +79 -0
  242. package/lib/utils/file-utils.d.ts +32 -0
  243. package/lib/utils/regex.d.ts +34 -0
  244. package/lib/validators/it-validators.d.ts +70 -0
  245. package/package.json +33 -15
  246. package/{src/public_api.ts → public_api.d.ts} +6 -45
  247. package/schematics/ng-add/index.d.ts +3 -0
  248. package/schematics/ng-add/index.js +29 -0
  249. package/schematics/ng-add/index.js.map +1 -0
  250. package/schematics/ng-add/index.spec.d.ts +1 -0
  251. package/schematics/ng-add/index.spec.js +43 -0
  252. package/schematics/ng-add/index.spec.js.map +1 -0
  253. package/schematics/ng-add/rules/setup-project/add-animations.d.ts +2 -0
  254. package/schematics/ng-add/rules/setup-project/add-animations.js +11 -0
  255. package/schematics/ng-add/rules/setup-project/add-animations.js.map +1 -0
  256. package/schematics/ng-add/rules/setup-project/add-assets.d.ts +3 -0
  257. package/schematics/ng-add/rules/setup-project/add-assets.js +50 -0
  258. package/schematics/ng-add/rules/setup-project/add-assets.js.map +1 -0
  259. package/schematics/ng-add/rules/setup-project/add-design-angular-kit.d.ts +3 -0
  260. package/schematics/ng-add/rules/setup-project/add-design-angular-kit.js +43 -0
  261. package/schematics/ng-add/rules/setup-project/add-design-angular-kit.js.map +1 -0
  262. package/schematics/ng-add/rules/setup-project/add-http-client.d.ts +2 -0
  263. package/schematics/ng-add/rules/setup-project/add-http-client.js +11 -0
  264. package/schematics/ng-add/rules/setup-project/add-http-client.js.map +1 -0
  265. package/schematics/ng-add/rules/setup-project/add-import-to-style-file.d.ts +11 -0
  266. package/schematics/ng-add/rules/setup-project/add-import-to-style-file.js +112 -0
  267. package/schematics/ng-add/rules/setup-project/add-import-to-style-file.js.map +1 -0
  268. package/schematics/ng-add/rules/setup-project/add-localisation.d.ts +3 -0
  269. package/schematics/ng-add/rules/setup-project/add-localisation.js +50 -0
  270. package/schematics/ng-add/rules/setup-project/add-localisation.js.map +1 -0
  271. package/schematics/ng-add/rules/setup-project/angular-json-helper.d.ts +2 -0
  272. package/schematics/ng-add/rules/setup-project/angular-json-helper.js +13 -0
  273. package/schematics/ng-add/rules/setup-project/angular-json-helper.js.map +1 -0
  274. package/schematics/ng-add/rules/setup-project/exceptions.d.ts +7 -0
  275. package/schematics/ng-add/rules/setup-project/exceptions.js +17 -0
  276. package/schematics/ng-add/rules/setup-project/exceptions.js.map +1 -0
  277. package/schematics/ng-add/rules/setup-project/index.js +23 -0
  278. package/schematics/ng-add/rules/setup-project/index.js.map +1 -0
  279. package/schematics/ng-add/{schema.ts → schema.d.ts} +1 -1
  280. package/schematics/ng-add/schema.js +3 -0
  281. package/schematics/ng-add/schema.js.map +1 -0
  282. package/schematics/ng-add/setup-project.d.ts +3 -0
  283. package/schematics/ng-add/setup-project.js +37 -0
  284. package/schematics/ng-add/setup-project.js.map +1 -0
  285. package/schematics/ng-add/setup-project.spec.d.ts +1 -0
  286. package/schematics/ng-add/setup-project.spec.js +139 -0
  287. package/schematics/ng-add/setup-project.spec.js.map +1 -0
  288. package/schematics/ng-add/utils.d.ts +14 -0
  289. package/schematics/ng-add/utils.js +49 -0
  290. package/schematics/ng-add/utils.js.map +1 -0
  291. package/schematics/ng-add/versions-helper.d.ts +3 -0
  292. package/schematics/ng-add/versions-helper.js +40 -0
  293. package/schematics/ng-add/versions-helper.js.map +1 -0
  294. package/.eslintrc.json +0 -31
  295. package/karma.conf.js +0 -38
  296. package/ng-package.json +0 -9
  297. package/ng-package.prod.json +0 -8
  298. package/schematics/ng-add/index.spec.ts +0 -45
  299. package/schematics/ng-add/index.ts +0 -36
  300. package/schematics/ng-add/rules/setup-project/add-animations.ts +0 -7
  301. package/schematics/ng-add/rules/setup-project/add-assets.ts +0 -45
  302. package/schematics/ng-add/rules/setup-project/add-design-angular-kit.ts +0 -40
  303. package/schematics/ng-add/rules/setup-project/add-http-client.ts +0 -7
  304. package/schematics/ng-add/rules/setup-project/add-import-to-style-file.ts +0 -120
  305. package/schematics/ng-add/rules/setup-project/add-localisation.ts +0 -45
  306. package/schematics/ng-add/rules/setup-project/angular-json-helper.ts +0 -11
  307. package/schematics/ng-add/rules/setup-project/exceptions.ts +0 -13
  308. package/schematics/ng-add/setup-project.spec.ts +0 -166
  309. package/schematics/ng-add/setup-project.ts +0 -31
  310. package/schematics/ng-add/utils.ts +0 -71
  311. package/schematics/ng-add/versions-helper.ts +0 -41
  312. package/src/lib/abstracts/abstract-form.component.ts +0 -200
  313. package/src/lib/abstracts/abstract.component.ts +0 -63
  314. package/src/lib/components/core/accordion/accordion.component.html +0 -27
  315. package/src/lib/components/core/accordion/accordion.component.spec.ts +0 -21
  316. package/src/lib/components/core/accordion/accordion.component.ts +0 -40
  317. package/src/lib/components/core/alert/alert.component.html +0 -19
  318. package/src/lib/components/core/alert/alert.component.scss +0 -3
  319. package/src/lib/components/core/alert/alert.component.spec.ts +0 -62
  320. package/src/lib/components/core/alert/alert.component.ts +0 -75
  321. package/src/lib/components/core/avatar/avatar-dropdown/avatar-dropdown.component.html +0 -23
  322. package/src/lib/components/core/avatar/avatar-dropdown/avatar-dropdown.component.scss +0 -17
  323. package/src/lib/components/core/avatar/avatar-dropdown/avatar-dropdown.component.spec.ts +0 -21
  324. package/src/lib/components/core/avatar/avatar-dropdown/avatar-dropdown.component.ts +0 -50
  325. package/src/lib/components/core/avatar/avatar-group/avatar-group.component.html +0 -7
  326. package/src/lib/components/core/avatar/avatar-group/avatar-group.component.spec.ts +0 -38
  327. package/src/lib/components/core/avatar/avatar-group/avatar-group.component.ts +0 -25
  328. package/src/lib/components/core/avatar/avatar.directive.ts +0 -73
  329. package/src/lib/components/core/avatar/avatar.module.ts +0 -18
  330. package/src/lib/components/core/badge/badge.directive.spec.ts +0 -59
  331. package/src/lib/components/core/badge/badge.directive.ts +0 -39
  332. package/src/lib/components/core/button/button.directive.spec.ts +0 -96
  333. package/src/lib/components/core/button/button.directive.ts +0 -89
  334. package/src/lib/components/core/callout/callout.component.html +0 -25
  335. package/src/lib/components/core/callout/callout.component.spec.ts +0 -138
  336. package/src/lib/components/core/callout/callout.component.ts +0 -92
  337. package/src/lib/components/core/card/card.component.html +0 -35
  338. package/src/lib/components/core/card/card.component.scss +0 -30
  339. package/src/lib/components/core/card/card.component.spec.ts +0 -21
  340. package/src/lib/components/core/card/card.component.ts +0 -78
  341. package/src/lib/components/core/carousel/carousel/carousel.component.html +0 -29
  342. package/src/lib/components/core/carousel/carousel/carousel.component.scss +0 -1
  343. package/src/lib/components/core/carousel/carousel/carousel.component.spec.ts +0 -21
  344. package/src/lib/components/core/carousel/carousel/carousel.component.ts +0 -119
  345. package/src/lib/components/core/carousel/carousel-item/carousel-item.component.html +0 -3
  346. package/src/lib/components/core/carousel/carousel-item/carousel-item.component.spec.ts +0 -22
  347. package/src/lib/components/core/carousel/carousel-item/carousel-item.component.ts +0 -20
  348. package/src/lib/components/core/carousel/carousel.module.ts +0 -11
  349. package/src/lib/components/core/chip/chip.component.html +0 -26
  350. package/src/lib/components/core/chip/chip.component.spec.ts +0 -87
  351. package/src/lib/components/core/chip/chip.component.ts +0 -154
  352. package/src/lib/components/core/collapse/collapse.component.html +0 -3
  353. package/src/lib/components/core/collapse/collapse.component.spec.ts +0 -21
  354. package/src/lib/components/core/collapse/collapse.component.ts +0 -124
  355. package/src/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.html +0 -3
  356. package/src/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.spec.ts +0 -35
  357. package/src/lib/components/core/dimmer/dimmer-buttons/dimmer-buttons.component.ts +0 -23
  358. package/src/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.html +0 -3
  359. package/src/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.spec.ts +0 -22
  360. package/src/lib/components/core/dimmer/dimmer-icon/dimmer-icon.component.ts +0 -10
  361. package/src/lib/components/core/dimmer/dimmer.component.html +0 -7
  362. package/src/lib/components/core/dimmer/dimmer.component.spec.ts +0 -49
  363. package/src/lib/components/core/dimmer/dimmer.component.ts +0 -50
  364. package/src/lib/components/core/dimmer/dimmer.module.ts +0 -12
  365. package/src/lib/components/core/dropdown/dropdown/dropdown.component.html +0 -45
  366. package/src/lib/components/core/dropdown/dropdown/dropdown.component.scss +0 -3
  367. package/src/lib/components/core/dropdown/dropdown/dropdown.component.spec.ts +0 -21
  368. package/src/lib/components/core/dropdown/dropdown/dropdown.component.ts +0 -186
  369. package/src/lib/components/core/dropdown/dropdown-item/dropdown-item.component.html +0 -18
  370. package/src/lib/components/core/dropdown/dropdown-item/dropdown-item.component.scss +0 -4
  371. package/src/lib/components/core/dropdown/dropdown-item/dropdown-item.component.spec.ts +0 -21
  372. package/src/lib/components/core/dropdown/dropdown-item/dropdown-item.component.ts +0 -82
  373. package/src/lib/components/core/dropdown/dropdown.module.ts +0 -11
  374. package/src/lib/components/core/forward/forward.directive.spec.ts +0 -60
  375. package/src/lib/components/core/forward/forward.directive.ts +0 -43
  376. package/src/lib/components/core/link/link.component.html +0 -13
  377. package/src/lib/components/core/link/link.component.spec.ts +0 -21
  378. package/src/lib/components/core/link/link.component.ts +0 -54
  379. package/src/lib/components/core/list/list/list.component.html +0 -13
  380. package/src/lib/components/core/list/list/list.component.spec.ts +0 -21
  381. package/src/lib/components/core/list/list/list.component.ts +0 -30
  382. package/src/lib/components/core/list/list-item/list-item.component.html +0 -42
  383. package/src/lib/components/core/list/list-item/list-item.component.scss +0 -16
  384. package/src/lib/components/core/list/list-item/list-item.component.spec.ts +0 -21
  385. package/src/lib/components/core/list/list-item/list-item.component.ts +0 -75
  386. package/src/lib/components/core/list/list.module.ts +0 -11
  387. package/src/lib/components/core/modal/modal.component.html +0 -36
  388. package/src/lib/components/core/modal/modal.component.scss +0 -3
  389. package/src/lib/components/core/modal/modal.component.spec.ts +0 -21
  390. package/src/lib/components/core/modal/modal.component.ts +0 -218
  391. package/src/lib/components/core/notifications/notifications.component.html +0 -25
  392. package/src/lib/components/core/notifications/notifications.component.scss +0 -3
  393. package/src/lib/components/core/notifications/notifications.component.spec.ts +0 -21
  394. package/src/lib/components/core/notifications/notifications.component.ts +0 -123
  395. package/src/lib/components/core/pagination/pagination.component.html +0 -107
  396. package/src/lib/components/core/pagination/pagination.component.spec.ts +0 -21
  397. package/src/lib/components/core/pagination/pagination.component.ts +0 -157
  398. package/src/lib/components/core/popover/popover.directive.spec.ts +0 -21
  399. package/src/lib/components/core/popover/popover.directive.ts +0 -171
  400. package/src/lib/components/core/progress-bar/progress-bar.component.html +0 -20
  401. package/src/lib/components/core/progress-bar/progress-bar.component.spec.ts +0 -21
  402. package/src/lib/components/core/progress-bar/progress-bar.component.ts +0 -46
  403. package/src/lib/components/core/progress-button/progress-button.component.html +0 -5
  404. package/src/lib/components/core/progress-button/progress-button.component.spec.ts +0 -21
  405. package/src/lib/components/core/progress-button/progress-button.component.ts +0 -39
  406. package/src/lib/components/core/spinner/spinner.component.html +0 -7
  407. package/src/lib/components/core/spinner/spinner.component.spec.ts +0 -80
  408. package/src/lib/components/core/spinner/spinner.component.ts +0 -31
  409. package/src/lib/components/core/steppers/steppers-container/steppers-container.component.html +0 -126
  410. package/src/lib/components/core/steppers/steppers-container/steppers-container.component.spec.ts +0 -21
  411. package/src/lib/components/core/steppers/steppers-container/steppers-container.component.ts +0 -185
  412. package/src/lib/components/core/steppers/steppers-item/steppers-item.component.html +0 -3
  413. package/src/lib/components/core/steppers/steppers-item/steppers-item.component.spec.ts +0 -22
  414. package/src/lib/components/core/steppers/steppers-item/steppers-item.component.ts +0 -33
  415. package/src/lib/components/core/steppers/steppers.module.ts +0 -11
  416. package/src/lib/components/core/tab/tab-container/tab-container.component.html +0 -78
  417. package/src/lib/components/core/tab/tab-container/tab-container.component.spec.ts +0 -21
  418. package/src/lib/components/core/tab/tab-container/tab-container.component.ts +0 -137
  419. package/src/lib/components/core/tab/tab-item/tab-item.component.html +0 -3
  420. package/src/lib/components/core/tab/tab-item/tab-item.component.spec.ts +0 -22
  421. package/src/lib/components/core/tab/tab-item/tab-item.component.ts +0 -50
  422. package/src/lib/components/core/tab/tab.module.ts +0 -11
  423. package/src/lib/components/core/table/sort/sort-header/sort-header.component.html +0 -27
  424. package/src/lib/components/core/table/sort/sort-header/sort-header.component.scss +0 -65
  425. package/src/lib/components/core/table/sort/sort-header/sort-header.component.spec.ts +0 -25
  426. package/src/lib/components/core/table/sort/sort-header/sort-header.component.ts +0 -164
  427. package/src/lib/components/core/table/sort/sort.directive.spec.ts +0 -73
  428. package/src/lib/components/core/table/sort/sort.directive.ts +0 -142
  429. package/src/lib/components/core/table/table.component.html +0 -23
  430. package/src/lib/components/core/table/table.component.scss +0 -7
  431. package/src/lib/components/core/table/table.component.spec.ts +0 -21
  432. package/src/lib/components/core/table/table.component.ts +0 -70
  433. package/src/lib/components/core/table/table.module.ts +0 -12
  434. package/src/lib/components/core/timeline/timeline-item/timeline-item.component.html +0 -47
  435. package/src/lib/components/core/timeline/timeline-item/timeline-item.component.spec.ts +0 -24
  436. package/src/lib/components/core/timeline/timeline-item/timeline-item.component.ts +0 -102
  437. package/src/lib/components/core/timeline/timeline.component.html +0 -21
  438. package/src/lib/components/core/timeline/timeline.component.spec.ts +0 -21
  439. package/src/lib/components/core/timeline/timeline.component.ts +0 -31
  440. package/src/lib/components/core/timeline/timeline.module.ts +0 -11
  441. package/src/lib/components/core/tooltip/tooltip.directive.spec.ts +0 -20
  442. package/src/lib/components/core/tooltip/tooltip.directive.ts +0 -141
  443. package/src/lib/components/form/autocomplete/autocomplete.component.html +0 -58
  444. package/src/lib/components/form/autocomplete/autocomplete.component.spec.ts +0 -21
  445. package/src/lib/components/form/autocomplete/autocomplete.component.ts +0 -130
  446. package/src/lib/components/form/checkbox/checkbox.component.html +0 -67
  447. package/src/lib/components/form/checkbox/checkbox.component.spec.ts +0 -21
  448. package/src/lib/components/form/checkbox/checkbox.component.ts +0 -65
  449. package/src/lib/components/form/form.module.ts +0 -34
  450. package/src/lib/components/form/input/input.component.html +0 -92
  451. package/src/lib/components/form/input/input.component.scss +0 -29
  452. package/src/lib/components/form/input/input.component.spec.ts +0 -21
  453. package/src/lib/components/form/input/input.component.ts +0 -234
  454. package/src/lib/components/form/password-input/password-input.component.html +0 -65
  455. package/src/lib/components/form/password-input/password-input.component.scss +0 -9
  456. package/src/lib/components/form/password-input/password-input.component.spec.ts +0 -21
  457. package/src/lib/components/form/password-input/password-input.component.ts +0 -171
  458. package/src/lib/components/form/radio-button/radio-button.component.html +0 -50
  459. package/src/lib/components/form/radio-button/radio-button.component.scss +0 -14
  460. package/src/lib/components/form/radio-button/radio-button.component.spec.ts +0 -21
  461. package/src/lib/components/form/radio-button/radio-button.component.ts +0 -82
  462. package/src/lib/components/form/range/range.component.html +0 -17
  463. package/src/lib/components/form/range/range.component.scss +0 -17
  464. package/src/lib/components/form/range/range.component.spec.ts +0 -21
  465. package/src/lib/components/form/range/range.component.ts +0 -100
  466. package/src/lib/components/form/rating/rating.component.html +0 -24
  467. package/src/lib/components/form/rating/rating.component.spec.ts +0 -21
  468. package/src/lib/components/form/rating/rating.component.ts +0 -52
  469. package/src/lib/components/form/select/select.component.html +0 -54
  470. package/src/lib/components/form/select/select.component.scss +0 -3
  471. package/src/lib/components/form/select/select.component.spec.ts +0 -22
  472. package/src/lib/components/form/select/select.component.ts +0 -91
  473. package/src/lib/components/form/textarea/textarea.component.html +0 -28
  474. package/src/lib/components/form/textarea/textarea.component.scss +0 -12
  475. package/src/lib/components/form/textarea/textarea.component.spec.ts +0 -21
  476. package/src/lib/components/form/textarea/textarea.component.ts +0 -61
  477. package/src/lib/components/form/transfer/store/transfer.reducers.ts +0 -242
  478. package/src/lib/components/form/transfer/store/transfer.state.ts +0 -20
  479. package/src/lib/components/form/transfer/store/transfer.store.ts +0 -88
  480. package/src/lib/components/form/transfer/transfer-list/transfer-list.component.html +0 -42
  481. package/src/lib/components/form/transfer/transfer-list/transfer-list.component.spec.ts +0 -33
  482. package/src/lib/components/form/transfer/transfer-list/transfer-list.component.ts +0 -93
  483. package/src/lib/components/form/transfer/transfer.component.html +0 -52
  484. package/src/lib/components/form/transfer/transfer.component.spec.ts +0 -27
  485. package/src/lib/components/form/transfer/transfer.component.ts +0 -159
  486. package/src/lib/components/form/upload-drag-drop/upload-drag-drop.component.html +0 -36
  487. package/src/lib/components/form/upload-drag-drop/upload-drag-drop.component.spec.ts +0 -21
  488. package/src/lib/components/form/upload-drag-drop/upload-drag-drop.component.ts +0 -170
  489. package/src/lib/components/form/upload-file-list/upload-file-list.component.html +0 -46
  490. package/src/lib/components/form/upload-file-list/upload-file-list.component.spec.ts +0 -22
  491. package/src/lib/components/form/upload-file-list/upload-file-list.component.ts +0 -120
  492. package/src/lib/components/navigation/back-button/back-button.component.html +0 -25
  493. package/src/lib/components/navigation/back-button/back-button.component.spec.ts +0 -91
  494. package/src/lib/components/navigation/back-button/back-button.component.ts +0 -67
  495. package/src/lib/components/navigation/back-to-top/back-to-top.component.html +0 -11
  496. package/src/lib/components/navigation/back-to-top/back-to-top.component.spec.ts +0 -21
  497. package/src/lib/components/navigation/back-to-top/back-to-top.component.ts +0 -80
  498. package/src/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.html +0 -23
  499. package/src/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.spec.ts +0 -21
  500. package/src/lib/components/navigation/breadcrumbs/breadcrumb/breadcrumb.component.ts +0 -68
  501. package/src/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.html +0 -3
  502. package/src/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.spec.ts +0 -22
  503. package/src/lib/components/navigation/breadcrumbs/breadcrumb-item/breadcrumb-item.component.ts +0 -29
  504. package/src/lib/components/navigation/breadcrumbs/breadcrumbs.module.ts +0 -11
  505. package/src/lib/components/navigation/header/header.component.html +0 -102
  506. package/src/lib/components/navigation/header/header.component.scss +0 -3
  507. package/src/lib/components/navigation/header/header.component.spec.ts +0 -21
  508. package/src/lib/components/navigation/header/header.component.ts +0 -107
  509. package/src/lib/components/navigation/megamenu/megamenu.component.html +0 -34
  510. package/src/lib/components/navigation/megamenu/megamenu.component.scss +0 -5
  511. package/src/lib/components/navigation/megamenu/megamenu.component.ts +0 -30
  512. package/src/lib/components/navigation/navbar/navbar/navbar.component.html +0 -28
  513. package/src/lib/components/navigation/navbar/navbar/navbar.component.ts +0 -45
  514. package/src/lib/components/navigation/navbar/navbar-item/navbar-item.component.html +0 -3
  515. package/src/lib/components/navigation/navbar/navbar-item/navbar-item.component.ts +0 -10
  516. package/src/lib/components/navigation/navbar/navbar.module.ts +0 -11
  517. package/src/lib/components/navigation/navscroll/navscroll-list-item.component.ts +0 -95
  518. package/src/lib/components/navigation/navscroll/navscroll-list-items.component.ts +0 -27
  519. package/src/lib/components/navigation/navscroll/navscroll.component.html +0 -101
  520. package/src/lib/components/navigation/navscroll/navscroll.component.scss +0 -9
  521. package/src/lib/components/navigation/navscroll/navscroll.component.ts +0 -143
  522. package/src/lib/components/navigation/navscroll/navscroll.store.ts +0 -96
  523. package/src/lib/components/navigation/navscroll/navscroll.utils.ts +0 -28
  524. package/src/lib/components/navigation/sidebar/sidebar.component.html +0 -11
  525. package/src/lib/components/navigation/sidebar/sidebar.component.spec.ts +0 -21
  526. package/src/lib/components/navigation/sidebar/sidebar.component.ts +0 -39
  527. package/src/lib/components/navigation/skiplink/skiplink/skiplink.component.html +0 -15
  528. package/src/lib/components/navigation/skiplink/skiplink/skiplink.component.ts +0 -27
  529. package/src/lib/components/navigation/skiplink/skiplink-item/skiplink-item.component.html +0 -15
  530. package/src/lib/components/navigation/skiplink/skiplink-item/skiplink-item.component.ts +0 -38
  531. package/src/lib/components/navigation/skiplink/skiplink.module.ts +0 -11
  532. package/src/lib/components/utils/error-page/error-page.component.html +0 -33
  533. package/src/lib/components/utils/error-page/error-page.component.spec.ts +0 -21
  534. package/src/lib/components/utils/error-page/error-page.component.ts +0 -79
  535. package/src/lib/components/utils/icon/icon.component.html +0 -6
  536. package/src/lib/components/utils/icon/icon.component.spec.ts +0 -21
  537. package/src/lib/components/utils/icon/icon.component.ts +0 -95
  538. package/src/lib/components/utils/language-switcher/language-switcher.component.html +0 -21
  539. package/src/lib/components/utils/language-switcher/language-switcher.component.spec.ts +0 -21
  540. package/src/lib/components/utils/language-switcher/language-switcher.component.ts +0 -56
  541. package/src/lib/design-angular-kit.module.ts +0 -131
  542. package/src/lib/enums/colors.enums.ts +0 -10
  543. package/src/lib/enums/sizes.enum.ts +0 -7
  544. package/src/lib/interfaces/design-angular-kit-config.ts +0 -34
  545. package/src/lib/interfaces/form.ts +0 -78
  546. package/src/lib/interfaces/icon.ts +0 -176
  547. package/src/lib/interfaces/sortable-table.ts +0 -42
  548. package/src/lib/interfaces/utils.ts +0 -11
  549. package/src/lib/pipes/date-ago.pipe.ts +0 -57
  550. package/src/lib/pipes/duration.pipe.ts +0 -112
  551. package/src/lib/pipes/mark-matching-text.pipe.ts +0 -43
  552. package/src/lib/provide-design-angular-kit.ts +0 -73
  553. package/src/lib/services/notification/notification.service.spec.ts +0 -16
  554. package/src/lib/services/notification/notification.service.ts +0 -119
  555. package/src/lib/utils/date-utils.ts +0 -184
  556. package/src/lib/utils/file-utils.ts +0 -80
  557. package/src/lib/utils/regex.ts +0 -44
  558. package/src/lib/validators/it-validators.ts +0 -193
  559. package/src/test.ts +0 -26
  560. package/tsconfig.lib.json +0 -24
  561. package/tsconfig.lib.prod.json +0 -9
  562. package/tsconfig.schematics.json +0 -25
  563. package/tsconfig.spec.json +0 -9
  564. /package/schematics/ng-add/rules/setup-project/{index.ts → index.d.ts} +0 -0
@@ -0,0 +1,178 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { ItAbstractFormComponent } from '../../../abstracts/abstract-form.component';
3
+ import { AsyncPipe } from '@angular/common';
4
+ import { ReactiveFormsModule } from '@angular/forms';
5
+ import { SelectAutocomplete } from 'bootstrap-italia';
6
+ import * as i0 from "@angular/core";
7
+ export class ItAutocompleteComponent extends ItAbstractFormComponent {
8
+ constructor() {
9
+ super(...arguments);
10
+ /**
11
+ * Autocomplete elements.
12
+ * @default []
13
+ */
14
+ this.source = [];
15
+ /**
16
+ * Autocomplete if required.
17
+ * @default false
18
+ */
19
+ this.required = false;
20
+ /**
21
+ * Prevents suggestions from appearing if fewer than N characters are typed
22
+ * @default 0
23
+ */
24
+ this.minLength = 0;
25
+ /**
26
+ * Default value
27
+ */
28
+ this.defaultValue = '';
29
+ /**
30
+ * Function to set assistive hint label. For more information https://github.com/alphagov/accessible-autocomplete?tab=readme-ov-file#internationalization
31
+ */
32
+ this.assistiveHintLabel = () => 'Quando i risultati del completamento automatico sono disponibili, usa le frecce su e giù per rivedere e Invio per selezionare. Utenti di dispositivi touch, esplora tramite tocco o con gesti di scorrimento';
33
+ /**
34
+ * Function to set label in case of no result. For more information https://github.com/alphagov/accessible-autocomplete?tab=readme-ov-file#internationalization
35
+ */
36
+ this.noResultsLabel = () => 'Nessun risultato trovato';
37
+ /**
38
+ * Function to set label that alerts you that query's too short. For more information https://github.com/alphagov/accessible-autocomplete?tab=readme-ov-file#internationalization
39
+ */
40
+ this.statusQueryTooShortLabel = minQueryLength => `Digita ${minQueryLength} o più caratteri per mostrare le opzioni di ricerca`;
41
+ /**
42
+ * Function to set no results label. For more information https://github.com/alphagov/accessible-autocomplete?tab=readme-ov-file#internationalization
43
+ */
44
+ this.statusNoResultsLabel = () => 'Nessun risultato di ricerca';
45
+ /**
46
+ * Function to set selected option label. For more information https://github.com/alphagov/accessible-autocomplete?tab=readme-ov-file#internationalization
47
+ */
48
+ this.statusSelectedOptionLabel = (selectedOption, length, index) => `${selectedOption} ${index + 1} di ${length} è sottolineato`;
49
+ /**
50
+ * Function to set status results label. For more information https://github.com/alphagov/accessible-autocomplete?tab=readme-ov-file#internationalization
51
+ */
52
+ this.statusResultsLabel = (length, contentSelectedOption) => {
53
+ const words = {
54
+ result: length === 1 ? 'risultato' : 'risultati',
55
+ is: length === 1 ? 'è' : 'sono',
56
+ available: length === 1 ? 'disponibile' : 'disponibili',
57
+ };
58
+ return `${length} ${words.result} ${words.is} ${words.available}. ${contentSelectedOption}`;
59
+ };
60
+ /**
61
+ * Fired when value changes
62
+ */
63
+ this.selected = new EventEmitter();
64
+ this.value = '';
65
+ this._interval = 0;
66
+ this._inputEl = null;
67
+ }
68
+ ngOnInit() {
69
+ super.ngOnInit();
70
+ if (!this.control.value && !!this.value) {
71
+ this.writeValue(this.value);
72
+ this.onChange(this.value);
73
+ }
74
+ }
75
+ clear() {
76
+ this._inputEl.value = '';
77
+ }
78
+ _findInput() {
79
+ this._interval = setInterval(() => {
80
+ this._inputEl = document.getElementById(this.id);
81
+ if (this._inputEl) {
82
+ clearInterval(this._interval);
83
+ this._initInputEl();
84
+ }
85
+ }, 500);
86
+ }
87
+ _setAndCheck(value) {
88
+ this.value = value == '' ? undefined : value;
89
+ if (this.control.touched) {
90
+ this.writeValue(this.value);
91
+ this.onChange(this.value);
92
+ }
93
+ if (this.isValid == false && this.isInvalid == false) {
94
+ this._inputEl?.classList.remove('just-validate-success-field');
95
+ this._inputEl?.classList.remove('is-invalid');
96
+ }
97
+ else if (this.isValid == true) {
98
+ this._inputEl?.classList.add('just-validate-success-field');
99
+ this._inputEl?.classList.remove('is-invalid');
100
+ }
101
+ else if (this.isInvalid == true) {
102
+ this._inputEl?.classList.add('is-invalid');
103
+ this._inputEl?.classList.remove('just-validate-success-field');
104
+ }
105
+ }
106
+ _initInputEl() {
107
+ if (this._inputEl) {
108
+ this._inputEl.onfocus = (ev) => this._setAndCheck(ev.target.value);
109
+ this._inputEl.onblur = (ev) => this._setAndCheck(ev.target.value);
110
+ this._inputEl.oninput = (ev) => {
111
+ this.markAsTouched();
112
+ this._setAndCheck(ev.target.value);
113
+ };
114
+ }
115
+ }
116
+ ngAfterViewInit() {
117
+ if (this.selectAutocompleteEl) {
118
+ super.ngAfterViewInit();
119
+ const element = this.selectAutocompleteEl.nativeElement;
120
+ this.selectAutocomplete = new SelectAutocomplete(element, {
121
+ id: this.id,
122
+ name: this.name || this.id,
123
+ source: this.source,
124
+ required: this.required,
125
+ minLength: this.minLength,
126
+ defaultValue: this.defaultValue,
127
+ tAssistiveHint: this.assistiveHintLabel,
128
+ tNoResults: this.noResultsLabel,
129
+ tStatusQueryTooShort: this.statusQueryTooShortLabel,
130
+ tStatusNoResults: this.statusNoResultsLabel,
131
+ tStatusSelectedOption: this.statusSelectedOptionLabel,
132
+ tStatusResults: this.statusResultsLabel,
133
+ onConfirm: (selectedElement) => {
134
+ this.markAsTouched();
135
+ this._setAndCheck(selectedElement);
136
+ this.selected.emit(selectedElement);
137
+ },
138
+ });
139
+ this._findInput();
140
+ }
141
+ }
142
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItAutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
143
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: ItAutocompleteComponent, isStandalone: true, selector: "it-autocomplete", inputs: { source: "source", required: "required", name: "name", description: "description", minLength: "minLength", defaultValue: "defaultValue", assistiveHintLabel: "assistiveHintLabel", noResultsLabel: "noResultsLabel", statusQueryTooShortLabel: "statusQueryTooShortLabel", statusNoResultsLabel: "statusNoResultsLabel", statusSelectedOptionLabel: "statusSelectedOptionLabel", statusResultsLabel: "statusResultsLabel" }, outputs: { selected: "selected" }, viewQueries: [{ propertyName: "selectAutocompleteEl", first: true, predicate: ["selectAutocomplete"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"form-group\">\n @if (label) {\n <label [for]=\"id\" [class.active]=\"!!control.value\">{{ label }}</label>\n }\n <div #selectAutocomplete name=\"region\" [id]=\"id + 'Wrapper'\" class=\"autocomplete-wrapper\"></div>\n\n @if (description) {\n <small [id]=\"id + '-description'\" class=\"form-text\">{{ description }}</small>\n }\n @if (isInvalid) {\n <div class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError><ng-content select=\"[error]\"></ng-content></div>\n @if (!customError.hasChildNodes()) {\n {{ invalidMessage | async }}\n }\n </div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
144
+ }
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItAutocompleteComponent, decorators: [{
146
+ type: Component,
147
+ args: [{ standalone: true, selector: 'it-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ReactiveFormsModule, AsyncPipe], template: "<div class=\"form-group\">\n @if (label) {\n <label [for]=\"id\" [class.active]=\"!!control.value\">{{ label }}</label>\n }\n <div #selectAutocomplete name=\"region\" [id]=\"id + 'Wrapper'\" class=\"autocomplete-wrapper\"></div>\n\n @if (description) {\n <small [id]=\"id + '-description'\" class=\"form-text\">{{ description }}</small>\n }\n @if (isInvalid) {\n <div class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError><ng-content select=\"[error]\"></ng-content></div>\n @if (!customError.hasChildNodes()) {\n {{ invalidMessage | async }}\n }\n </div>\n }\n</div>\n" }]
148
+ }], propDecorators: { source: [{
149
+ type: Input
150
+ }], required: [{
151
+ type: Input
152
+ }], name: [{
153
+ type: Input
154
+ }], description: [{
155
+ type: Input
156
+ }], minLength: [{
157
+ type: Input
158
+ }], defaultValue: [{
159
+ type: Input
160
+ }], assistiveHintLabel: [{
161
+ type: Input
162
+ }], noResultsLabel: [{
163
+ type: Input
164
+ }], statusQueryTooShortLabel: [{
165
+ type: Input
166
+ }], statusNoResultsLabel: [{
167
+ type: Input
168
+ }], statusSelectedOptionLabel: [{
169
+ type: Input
170
+ }], statusResultsLabel: [{
171
+ type: Input
172
+ }], selected: [{
173
+ type: Output
174
+ }], selectAutocompleteEl: [{
175
+ type: ViewChild,
176
+ args: ['selectAutocomplete']
177
+ }] } });
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFXdEQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLHVCQUFrRDtJQVAvRjs7UUFRRTs7O1dBR0c7UUFDTSxXQUFNLEdBQThCLEVBQUUsQ0FBQztRQUVoRDs7O1dBR0c7UUFDTSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBWW5DOzs7V0FHRztRQUNNLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFFL0I7O1dBRUc7UUFDTSxpQkFBWSxHQUFrQixFQUFFLENBQUM7UUFFMUM7O1dBRUc7UUFDTSx1QkFBa0IsR0FBaUIsR0FBRyxFQUFFLENBQy9DLDhNQUE4TSxDQUFDO1FBRWpOOztXQUVHO1FBQ00sbUJBQWMsR0FBaUIsR0FBRyxFQUFFLENBQUMsMEJB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a0dBQXZCLHVCQUF1Qix1cUJDZnBDLDRvQkFrQkEsMkNETFksbUJBQW1CLDBCQUFFLFNBQVM7OzJGQUU3Qix1QkFBdUI7a0JBUG5DLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGlCQUFpQixtQkFFVix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsbUJBQW1CLEVBQUUsU0FBUyxDQUFDOzhCQU9oQyxNQUFNO3NCQUFkLEtBQUs7Z0JBTUcsUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFNRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csa0JBQWtCO3NCQUExQixLQUFLO2dCQU1HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQU1HLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFLRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBTUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQWFJLFFBQVE7c0JBQWpCLE1BQU07Z0JBRWtDLG9CQUFvQjtzQkFBNUQsU0FBUzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSXRBYnN0cmFjdEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9hYnN0cmFjdHMvYWJzdHJhY3QtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTZWxlY3RBdXRvY29tcGxldGUgfSBmcm9tICdib290c3RyYXAtaXRhbGlhJztcblxudHlwZSBmdW5jdGlvblNvdXJjZSA9IChxdWVyeTogc3RyaW5nLCBwb3B1bGF0ZVJlc3VsdHM6IChyZXN1bHRzOiBzdHJpbmdbXSkgPT4gdm9pZCkgPT4gdm9pZDtcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnaXQtYXV0b2NvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgQXN5bmNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgSXRBdXRvY29tcGxldGVDb21wb25lbnQgZXh0ZW5kcyBJdEFic3RyYWN0Rm9ybUNvbXBvbmVudDxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPiB7XG4gIC8qKlxuICAgKiBBdXRvY29tcGxldGUgZWxlbWVudHMuXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICBASW5wdXQoKSBzb3VyY2U6IHN0cmluZ1tdIHwgZnVuY3Rpb25Tb3VyY2UgPSBbXTtcblxuICAvKipcbiAgICogQXV0b2NvbXBsZXRlIGlmIHJlcXVpcmVkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5wdXQgZmllbGQgbmFtZVxuICAgKi9cbiAgQElucHV0KCkgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgZGVzY3JpcHRpb25cbiAgICovXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFByZXZlbnRzIHN1Z2dlc3Rpb25zIGZyb20gYXBwZWFyaW5nIGlmIGZld2VyIHRoYW4gTiBjaGFyYWN0ZXJzIGFyZSB0eXBlZFxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICBASW5wdXQoKSBtaW5MZW5ndGg6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgdmFsdWVcbiAgICovXG4gIEBJbnB1dCgpIGRlZmF1bHRWYWx1ZTogc3RyaW5nIHwgbnVsbCA9ICcnO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBzZXQgYXNzaXN0aXZlIGhpbnQgbGFiZWwuIEZvciBtb3JlIGluZm9ybWF0aW9uIGh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYWdvdi9hY2Nlc3NpYmxlLWF1dG9jb21wbGV0ZT90YWI9cmVhZG1lLW92LWZpbGUjaW50ZXJuYXRpb25hbGl6YXRpb25cbiAgICovXG4gIEBJbnB1dCgpIGFzc2lzdGl2ZUhpbnRMYWJlbDogKCkgPT4gc3RyaW5nID0gKCkgPT5cbiAgICAnUXVhbmRvIGkgcmlzdWx0YXRpIGRlbCBjb21wbGV0YW1lbnRvIGF1dG9tYXRpY28gc29ubyBkaXNwb25pYmlsaSwgdXNhIGxlIGZyZWNjZSBzdSBlIGdpw7kgcGVyIHJpdmVkZXJlIGUgSW52aW8gcGVyIHNlbGV6aW9uYXJlLiBVdGVudGkgZGkgZGlzcG9zaXRpdmkgdG91Y2gsIGVzcGxvcmEgdHJhbWl0ZSB0b2NjbyBvIGNvbiBnZXN0aSBkaSBzY29ycmltZW50byc7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIHNldCBsYWJlbCBpbiBjYXNlIG9mIG5vIHJlc3VsdC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gaHR0cHM6Ly9naXRodWIuY29tL2FscGhhZ292L2FjY2Vzc2libGUtYXV0b2NvbXBsZXRlP3RhYj1yZWFkbWUtb3YtZmlsZSNpbnRlcm5hdGlvbmFsaXphdGlvblxuICAgKi9cbiAgQElucHV0KCkgbm9SZXN1bHRzTGFiZWw6ICgpID0+IHN0cmluZyA9ICgpID0+ICdOZXNzdW4gcmlzdWx0YXRvIHRyb3ZhdG8nO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBzZXQgbGFiZWwgdGhhdCBhbGVydHMgeW91IHRoYXQgcXVlcnkncyB0b28gc2hvcnQuIEZvciBtb3JlIGluZm9ybWF0aW9uIGh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYWdvdi9hY2Nlc3NpYmxlLWF1dG9jb21wbGV0ZT90YWI9cmVhZG1lLW92LWZpbGUjaW50ZXJuYXRpb25hbGl6YXRpb25cbiAgICovXG4gIEBJbnB1dCgpIHN0YXR1c1F1ZXJ5VG9vU2hvcnRMYWJlbDogKG1pblF1ZXJ5TGVuZ3RoOiBudW1iZXIpID0+IHN0cmluZyA9IG1pblF1ZXJ5TGVuZ3RoID0+XG4gICAgYERpZ2l0YSAke21pblF1ZXJ5TGVuZ3RofSBvIHBpw7kgY2FyYXR0ZXJpIHBlciBtb3N0cmFyZSBsZSBvcHppb25pIGRpIHJpY2VyY2FgO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBzZXQgbm8gcmVzdWx0cyBsYWJlbC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gaHR0cHM6Ly9naXRodWIuY29tL2FscGhhZ292L2FjY2Vzc2libGUtYXV0b2NvbXBsZXRlP3RhYj1yZWFkbWUtb3YtZmlsZSNpbnRlcm5hdGlvbmFsaXphdGlvblxuICAgKi9cbiAgQElucHV0KCkgc3RhdHVzTm9SZXN1bHRzTGFiZWw6ICgpID0+IHN0cmluZyA9ICgpID0+ICdOZXNzdW4gcmlzdWx0YXRvIGRpIHJpY2VyY2EnO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBzZXQgc2VsZWN0ZWQgb3B0aW9uIGxhYmVsLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBodHRwczovL2dpdGh1Yi5jb20vYWxwaGFnb3YvYWNjZXNzaWJsZS1hdXRvY29tcGxldGU/dGFiPXJlYWRtZS1vdi1maWxlI2ludGVybmF0aW9uYWxpemF0aW9uXG4gICAqL1xuICBASW5wdXQoKSBzdGF0dXNTZWxlY3RlZE9wdGlvbkxhYmVsOiAoc2VsZWN0ZWRPcHRpb246IHN0cmluZywgbGVuZ3RoOiBudW1iZXIsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZyA9IChzZWxlY3RlZE9wdGlvbiwgbGVuZ3RoLCBpbmRleCkgPT5cbiAgICBgJHtzZWxlY3RlZE9wdGlvbn0gJHtpbmRleCArIDF9IGRpICR7bGVuZ3RofSDDqCBzb3R0b2xpbmVhdG9gO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBzZXQgc3RhdHVzIHJlc3VsdHMgbGFiZWwuIEZvciBtb3JlIGluZm9ybWF0aW9uIGh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYWdvdi9hY2Nlc3NpYmxlLWF1dG9jb21wbGV0ZT90YWI9cmVhZG1lLW92LWZpbGUjaW50ZXJuYXRpb25hbGl6YXRpb25cbiAgICovXG4gIEBJbnB1dCgpIHN0YXR1c1Jlc3VsdHNMYWJlbDogKGxlbmd0aDogbnVtYmVyLCBjb250ZW50U2VsZWN0ZWRPcHRpb246IHN0cmluZykgPT4gc3RyaW5nID0gKGxlbmd0aCwgY29udGVudFNlbGVjdGVkT3B0aW9uKSA9PiB7XG4gICAgY29uc3Qgd29yZHMgPSB7XG4gICAgICByZXN1bHQ6IGxlbmd0aCA9PT0gMSA/ICdyaXN1bHRhdG8nIDogJ3Jpc3VsdGF0aScsXG4gICAgICBpczogbGVuZ3RoID09PSAxID8gJ8OoJyA6ICdzb25vJyxcbiAgICAgIGF2YWlsYWJsZTogbGVuZ3RoID09PSAxID8gJ2Rpc3BvbmliaWxlJyA6ICdkaXNwb25pYmlsaScsXG4gICAgfTtcblxuICAgIHJldHVybiBgJHtsZW5ndGh9ICR7d29yZHMucmVzdWx0fSAke3dvcmRzLmlzfSAke3dvcmRzLmF2YWlsYWJsZX0uICR7Y29udGVudFNlbGVjdGVkT3B0aW9ufWA7XG4gIH07XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdmFsdWUgY2hhbmdlc1xuICAgKi9cbiAgQE91dHB1dCgpIHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEF1dG9jb21wbGV0ZScpIHByaXZhdGUgc2VsZWN0QXV0b2NvbXBsZXRlRWw/OiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICBwcml2YXRlIHNlbGVjdEF1dG9jb21wbGV0ZT86IFNlbGVjdEF1dG9jb21wbGV0ZTtcblxuICBwcml2YXRlIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnJztcbiAgcHJpdmF0ZSBfaW50ZXJ2YWw6IGFueSA9IDA7XG4gIHByaXZhdGUgX2lucHV0RWw6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBpZiAoIXRoaXMuY29udHJvbC52YWx1ZSAmJiAhIXRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgKHRoaXMuX2lucHV0RWwgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUgPSAnJztcbiAgfVxuXG4gIF9maW5kSW5wdXQoKSB7XG4gICAgdGhpcy5faW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICB0aGlzLl9pbnB1dEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pZCk7XG4gICAgICBpZiAodGhpcy5faW5wdXRFbCkge1xuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuX2ludGVydmFsKTtcbiAgICAgICAgdGhpcy5faW5pdElucHV0RWwoKTtcbiAgICAgIH1cbiAgICB9LCA1MDApO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0QW5kQ2hlY2sodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSA9PSAnJyA/IHVuZGVmaW5lZCA6IHZhbHVlO1xuICAgIGlmICh0aGlzLmNvbnRyb2wudG91Y2hlZCkge1xuICAgICAgdGhpcy53cml0ZVZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNWYWxpZCA9PSBmYWxzZSAmJiB0aGlzLmlzSW52YWxpZCA9PSBmYWxzZSkge1xuICAgICAgdGhpcy5faW5wdXRFbD8uY2xhc3NMaXN0LnJlbW92ZSgnanVzdC12YWxpZGF0ZS1zdWNjZXNzLWZpZWxkJyk7XG4gICAgICB0aGlzLl9pbnB1dEVsPy5jbGFzc0xpc3QucmVtb3ZlKCdpcy1pbnZhbGlkJyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzVmFsaWQgPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5faW5wdXRFbD8uY2xhc3NMaXN0LmFkZCgnanVzdC12YWxpZGF0ZS1zdWNjZXNzLWZpZWxkJyk7XG4gICAgICB0aGlzLl9pbnB1dEVsPy5jbGFzc0xpc3QucmVtb3ZlKCdpcy1pbnZhbGlkJyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzSW52YWxpZCA9PSB0cnVlKSB7XG4gICAgICB0aGlzLl9pbnB1dEVsPy5jbGFzc0xpc3QuYWRkKCdpcy1pbnZhbGlkJyk7XG4gICAgICB0aGlzLl9pbnB1dEVsPy5jbGFzc0xpc3QucmVtb3ZlKCdqdXN0LXZhbGlkYXRlLXN1Y2Nlc3MtZmllbGQnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pbml0SW5wdXRFbCgpIHtcbiAgICBpZiAodGhpcy5faW5wdXRFbCkge1xuICAgICAgdGhpcy5faW5wdXRFbC5vbmZvY3VzID0gKGV2OiBFdmVudCkgPT4gdGhpcy5fc2V0QW5kQ2hlY2soKGV2LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSk7XG4gICAgICB0aGlzLl9pbnB1dEVsLm9uYmx1ciA9IChldjogRXZlbnQpID0+IHRoaXMuX3NldEFuZENoZWNrKChldi50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpO1xuICAgICAgdGhpcy5faW5wdXRFbC5vbmlucHV0ID0gKGV2OiBFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5fc2V0QW5kQ2hlY2soKGV2LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RBdXRvY29tcGxldGVFbCkge1xuICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5zZWxlY3RBdXRvY29tcGxldGVFbC5uYXRpdmVFbGVtZW50O1xuICAgICAgdGhpcy5zZWxlY3RBdXRvY29tcGxldGUgPSBuZXcgU2VsZWN0QXV0b2NvbXBsZXRlKGVsZW1lbnQsIHtcbiAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSB8fCB0aGlzLmlkLFxuICAgICAgICBzb3VyY2U6IHRoaXMuc291cmNlLFxuICAgICAgICByZXF1aXJlZDogdGhpcy5yZXF1aXJlZCxcbiAgICAgICAgbWluTGVuZ3RoOiB0aGlzLm1pbkxlbmd0aCxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB0aGlzLmRlZmF1bHRWYWx1ZSxcbiAgICAgICAgdEFzc2lzdGl2ZUhpbnQ6IHRoaXMuYXNzaXN0aXZlSGludExhYmVsLFxuICAgICAgICB0Tm9SZXN1bHRzOiB0aGlzLm5vUmVzdWx0c0xhYmVsLFxuICAgICAgICB0U3RhdHVzUXVlcnlUb29TaG9ydDogdGhpcy5zdGF0dXNRdWVyeVRvb1Nob3J0TGFiZWwsXG4gICAgICAgIHRTdGF0dXNOb1Jlc3VsdHM6IHRoaXMuc3RhdHVzTm9SZXN1bHRzTGFiZWwsXG4gICAgICAgIHRTdGF0dXNTZWxlY3RlZE9wdGlvbjogdGhpcy5zdGF0dXNTZWxlY3RlZE9wdGlvbkxhYmVsLFxuICAgICAgICB0U3RhdHVzUmVzdWx0czogdGhpcy5zdGF0dXNSZXN1bHRzTGFiZWwsXG4gICAgICAgIG9uQ29uZmlybTogKHNlbGVjdGVkRWxlbWVudDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgdGhpcy5fc2V0QW5kQ2hlY2soc2VsZWN0ZWRFbGVtZW50KTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQoc2VsZWN0ZWRFbGVtZW50KTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5fZmluZElucHV0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICBAaWYgKGxhYmVsKSB7XG4gICAgPGxhYmVsIFtmb3JdPVwiaWRcIiBbY2xhc3MuYWN0aXZlXT1cIiEhY29udHJvbC52YWx1ZVwiPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgfVxuICA8ZGl2ICNzZWxlY3RBdXRvY29tcGxldGUgbmFtZT1cInJlZ2lvblwiIFtpZF09XCJpZCArICdXcmFwcGVyJ1wiIGNsYXNzPVwiYXV0b2NvbXBsZXRlLXdyYXBwZXJcIj48L2Rpdj5cblxuICBAaWYgKGRlc2NyaXB0aW9uKSB7XG4gICAgPHNtYWxsIFtpZF09XCJpZCArICctZGVzY3JpcHRpb24nXCIgY2xhc3M9XCJmb3JtLXRleHRcIj57eyBkZXNjcmlwdGlvbiB9fTwvc21hbGw+XG4gIH1cbiAgQGlmIChpc0ludmFsaWQpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1mZWVkYmFjayBqdXN0LXZhbGlkYXRlLWVycm9yLWxhYmVsXCIgW2lkXT1cImlkICsgJy1lcnJvcidcIj5cbiAgICAgIDxkaXYgI2N1c3RvbUVycm9yPjxuZy1jb250ZW50IHNlbGVjdD1cIltlcnJvcl1cIj48L25nLWNvbnRlbnQ+PC9kaXY+XG4gICAgICBAaWYgKCFjdXN0b21FcnJvci5oYXNDaGlsZE5vZGVzKCkpIHtcbiAgICAgICAge3sgaW52YWxpZE1lc3NhZ2UgfCBhc3luYyB9fVxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,48 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { ItAbstractFormComponent } from '../../../abstracts/abstract-form.component';
3
+ import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
4
+ import { ReactiveFormsModule } from '@angular/forms';
5
+ import { inputToBoolean } from '../../../utils/coercion';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/forms";
8
+ export class ItCheckboxComponent extends ItAbstractFormComponent {
9
+ ngOnInit() {
10
+ super.ngOnInit();
11
+ this.markAsChecked();
12
+ }
13
+ ngOnChanges(changes) {
14
+ if (changes['checked']) {
15
+ this.markAsChecked();
16
+ }
17
+ }
18
+ markAsChecked() {
19
+ if (this.control.value || this.checked === undefined) {
20
+ return;
21
+ }
22
+ const value = this.checked;
23
+ this.writeValue(value);
24
+ return this.onChange(value);
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: ItCheckboxComponent, isStandalone: true, selector: "it-checkbox", inputs: { toggle: ["toggle", "toggle", inputToBoolean], inline: ["inline", "inline", inputToBoolean], group: ["group", "group", inputToBoolean], checked: ["checked", "checked", inputToBoolean], indeterminate: ["indeterminate", "indeterminate", inputToBoolean] }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container>\n <div class=\"form-check\" [class.form-check-group]=\"group\" [class.form-check-inline]=\"inline\">\n @if (toggle) {\n <div class=\"toggles\">\n <label [for]=\"id\">\n <ng-container *ngTemplateOutlet=\"htmlLabel\"></ng-container>\n <input\n [id]=\"id\"\n type=\"checkbox\"\n [formControl]=\"control\"\n [attr.aria-describedby]=\"id + '-help'\"\n (click)=\"$event.stopPropagation()\" />\n <span class=\"lever\"></span>\n </label>\n </div>\n } @else {\n <input\n [id]=\"id\"\n type=\"checkbox\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [class.semi-checked]=\"indeterminate\"\n [formControl]=\"control\"\n [attr.aria-describedby]=\"id + '-help'\"\n (click)=\"$event.stopPropagation()\" />\n <label class=\"form-check-label\" [for]=\"id\">\n <ng-container *ngTemplateOutlet=\"htmlLabel\"></ng-container>\n </label>\n }\n\n @if (group) {\n <small [id]=\"id + '-help'\" class=\"form-text\">\n <ng-content></ng-content>\n </small>\n }\n\n @if (isInvalid && group) {\n <div class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <ng-container *ngTemplateOutlet=\"error\"></ng-container>\n </div>\n }\n </div>\n\n @if (isInvalid && !group) {\n <div class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <ng-container *ngTemplateOutlet=\"error\"></ng-container>\n </div>\n }\n</ng-container>\n\n<ng-template #error>\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n @if (!customError.hasChildNodes()) {\n {{ invalidMessage | async }}\n }\n</ng-template>\n\n<ng-template #htmlLabel>\n <div #customLabel>\n <ng-content select=\"[label]\"></ng-content>\n </div>\n @if (!customLabel.hasChildNodes()) {\n {{ label }}\n }\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItCheckboxComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ standalone: true, selector: 'it-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgTemplateOutlet, ReactiveFormsModule, AsyncPipe], template: "<ng-container>\n <div class=\"form-check\" [class.form-check-group]=\"group\" [class.form-check-inline]=\"inline\">\n @if (toggle) {\n <div class=\"toggles\">\n <label [for]=\"id\">\n <ng-container *ngTemplateOutlet=\"htmlLabel\"></ng-container>\n <input\n [id]=\"id\"\n type=\"checkbox\"\n [formControl]=\"control\"\n [attr.aria-describedby]=\"id + '-help'\"\n (click)=\"$event.stopPropagation()\" />\n <span class=\"lever\"></span>\n </label>\n </div>\n } @else {\n <input\n [id]=\"id\"\n type=\"checkbox\"\n [class.is-invalid]=\"isInvalid\"\n [class.is-valid]=\"isValid\"\n [class.semi-checked]=\"indeterminate\"\n [formControl]=\"control\"\n [attr.aria-describedby]=\"id + '-help'\"\n (click)=\"$event.stopPropagation()\" />\n <label class=\"form-check-label\" [for]=\"id\">\n <ng-container *ngTemplateOutlet=\"htmlLabel\"></ng-container>\n </label>\n }\n\n @if (group) {\n <small [id]=\"id + '-help'\" class=\"form-text\">\n <ng-content></ng-content>\n </small>\n }\n\n @if (isInvalid && group) {\n <div class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <ng-container *ngTemplateOutlet=\"error\"></ng-container>\n </div>\n }\n </div>\n\n @if (isInvalid && !group) {\n <div class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <ng-container *ngTemplateOutlet=\"error\"></ng-container>\n </div>\n }\n</ng-container>\n\n<ng-template #error>\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n @if (!customError.hasChildNodes()) {\n {{ invalidMessage | async }}\n }\n</ng-template>\n\n<ng-template #htmlLabel>\n <div #customLabel>\n <ng-content select=\"[label]\"></ng-content>\n </div>\n @if (!customLabel.hasChildNodes()) {\n {{ label }}\n }\n</ng-template>\n" }]
32
+ }], propDecorators: { toggle: [{
33
+ type: Input,
34
+ args: [{ transform: inputToBoolean }]
35
+ }], inline: [{
36
+ type: Input,
37
+ args: [{ transform: inputToBoolean }]
38
+ }], group: [{
39
+ type: Input,
40
+ args: [{ transform: inputToBoolean }]
41
+ }], checked: [{
42
+ type: Input,
43
+ args: [{ transform: inputToBoolean }]
44
+ }], indeterminate: [{
45
+ type: Input,
46
+ args: [{ transform: inputToBoolean }]
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBU3pELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx1QkFBbUQ7SUErQmpGLFFBQVE7UUFDZixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFUSxXQUFXLENBQUMsT0FBc0I7UUFDekMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyRCxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs4R0FsRFUsbUJBQW1CO2tHQUFuQixtQkFBbUIsc0ZBS1YsY0FBYyxnQ0FNZCxjQUFjLDZCQU1kLGNBQWMsbUNBTWQsY0FBYyxxREFNZCxjQUFjLHlFQzFDcEMsODlEQW1FQSw0Q0R4RFksZ0JBQWdCLG1KQUFFLG1CQUFtQixzZUFBRSxTQUFTOzsyRkFFL0MsbUJBQW1CO2tCQVAvQixTQUFTO2lDQUNJLElBQUksWUFDTixhQUFhLG1CQUVOLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLENBQUM7OEJBT3JCLE1BQU07c0JBQTNDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFO2dCQU1FLE1BQU07c0JBQTNDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFO2dCQU1FLEtBQUs7c0JBQTFDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFO2dCQU1FLE9BQU87c0JBQTVDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFO2dCQU1FLGFBQWE7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJdEFic3RyYWN0Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlucHV0VG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY29lcmNpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdpdC1jaGVja2JveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgQXN5bmNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgSXRDaGVja2JveENvbXBvbmVudCBleHRlbmRzIEl0QWJzdHJhY3RGb3JtQ29tcG9uZW50PGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgLyoqXG4gICAqIElmIHNob3cgY2hlY2tib3ggYXMgdG9nZ2xlXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGlucHV0VG9Cb29sZWFuIH0pIHRvZ2dsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIHNob3cgY2hlY2tib3ggaW5saW5lXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGlucHV0VG9Cb29sZWFuIH0pIGlubGluZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIGlzIGNoZWNrYm94IGdyb3VwXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGlucHV0VG9Cb29sZWFuIH0pIGdyb3VwPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgY2hlY2tib3ggaXMgY2hlY2tlZFxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBpbnB1dFRvQm9vbGVhbiB9KSBjaGVja2VkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgY2hlY2tib3ggaXMgaW5kZXRlcm1pbmF0ZVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBpbnB1dFRvQm9vbGVhbiB9KSBpbmRldGVybWluYXRlPzogYm9vbGVhbjtcblxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMubWFya0FzQ2hlY2tlZCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydjaGVja2VkJ10pIHtcbiAgICAgIHRoaXMubWFya0FzQ2hlY2tlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbWFya0FzQ2hlY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250cm9sLnZhbHVlIHx8IHRoaXMuY2hlY2tlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmNoZWNrZWQ7XG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICByZXR1cm4gdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCIgW2NsYXNzLmZvcm0tY2hlY2stZ3JvdXBdPVwiZ3JvdXBcIiBbY2xhc3MuZm9ybS1jaGVjay1pbmxpbmVdPVwiaW5saW5lXCI+XG4gICAgQGlmICh0b2dnbGUpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ0b2dnbGVzXCI+XG4gICAgICAgIDxsYWJlbCBbZm9yXT1cImlkXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImh0bWxMYWJlbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImlkICsgJy1oZWxwJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgLz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImxldmVyXCI+PC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8aW5wdXRcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwiaXNJbnZhbGlkXCJcbiAgICAgICAgW2NsYXNzLmlzLXZhbGlkXT1cImlzVmFsaWRcIlxuICAgICAgICBbY2xhc3Muc2VtaS1jaGVja2VkXT1cImluZGV0ZXJtaW5hdGVcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaWQgKyAnLWhlbHAnXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIC8+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgW2Zvcl09XCJpZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaHRtbExhYmVsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2xhYmVsPlxuICAgIH1cblxuICAgIEBpZiAoZ3JvdXApIHtcbiAgICAgIDxzbWFsbCBbaWRdPVwiaWQgKyAnLWhlbHAnXCIgY2xhc3M9XCJmb3JtLXRleHRcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9zbWFsbD5cbiAgICB9XG5cbiAgICBAaWYgKGlzSW52YWxpZCAmJiBncm91cCkge1xuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmVlZGJhY2sganVzdC12YWxpZGF0ZS1lcnJvci1sYWJlbFwiIFtpZF09XCJpZCArICctZXJyb3InXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cblxuICBAaWYgKGlzSW52YWxpZCAmJiAhZ3JvdXApIHtcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1mZWVkYmFjayBqdXN0LXZhbGlkYXRlLWVycm9yLWxhYmVsXCIgW2lkXT1cImlkICsgJy1lcnJvcidcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvclwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICB9XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNlcnJvcj5cbiAgPGRpdiAjY3VzdG9tRXJyb3I+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Vycm9yXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIEBpZiAoIWN1c3RvbUVycm9yLmhhc0NoaWxkTm9kZXMoKSkge1xuICAgIHt7IGludmFsaWRNZXNzYWdlIHwgYXN5bmMgfX1cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNodG1sTGFiZWw+XG4gIDxkaXYgI2N1c3RvbUxhYmVsPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsYWJlbF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICBAaWYgKCFjdXN0b21MYWJlbC5oYXNDaGlsZE5vZGVzKCkpIHtcbiAgICB7eyBsYWJlbCB9fVxuICB9XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -0,0 +1,67 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { ItCheckboxComponent } from './checkbox/checkbox.component';
3
+ import { ItInputComponent } from './input/input.component';
4
+ import { ItPasswordInputComponent } from './password-input/password-input.component';
5
+ import { ItRadioButtonComponent } from './radio-button/radio-button.component';
6
+ import { ItRangeComponent } from './range/range.component';
7
+ import { ItRatingComponent } from './rating/rating.component';
8
+ import { ItSelectComponent } from './select/select.component';
9
+ import { ItTextareaComponent } from './textarea/textarea.component';
10
+ import { ItUploadDragDropComponent } from './upload-drag-drop/upload-drag-drop.component';
11
+ import { ItUploadFileListComponent } from './upload-file-list/upload-file-list.component';
12
+ import { ItSearchComponent } from './search/search.component';
13
+ import { ItTransferComponent } from './transfer/transfer.component';
14
+ import { ItAutocompleteComponent } from './autocomplete/autocomplete.component';
15
+ import * as i0 from "@angular/core";
16
+ const formComponents = [
17
+ ItAutocompleteComponent,
18
+ ItSearchComponent,
19
+ ItCheckboxComponent,
20
+ ItInputComponent,
21
+ ItPasswordInputComponent,
22
+ ItRadioButtonComponent,
23
+ ItRangeComponent,
24
+ ItRatingComponent,
25
+ ItSelectComponent,
26
+ ItTextareaComponent,
27
+ ItTransferComponent,
28
+ ItUploadDragDropComponent,
29
+ ItUploadFileListComponent,
30
+ ];
31
+ export class ItFormModule {
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
33
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.6", ngImport: i0, type: ItFormModule, imports: [ItAutocompleteComponent,
34
+ ItSearchComponent,
35
+ ItCheckboxComponent,
36
+ ItInputComponent,
37
+ ItPasswordInputComponent,
38
+ ItRadioButtonComponent,
39
+ ItRangeComponent,
40
+ ItRatingComponent,
41
+ ItSelectComponent,
42
+ ItTextareaComponent,
43
+ ItTransferComponent,
44
+ ItUploadDragDropComponent,
45
+ ItUploadFileListComponent], exports: [ItAutocompleteComponent,
46
+ ItSearchComponent,
47
+ ItCheckboxComponent,
48
+ ItInputComponent,
49
+ ItPasswordInputComponent,
50
+ ItRadioButtonComponent,
51
+ ItRangeComponent,
52
+ ItRatingComponent,
53
+ ItSelectComponent,
54
+ ItTextareaComponent,
55
+ ItTransferComponent,
56
+ ItUploadDragDropComponent,
57
+ ItUploadFileListComponent] }); }
58
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItFormModule, imports: [formComponents] }); }
59
+ }
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItFormModule, decorators: [{
61
+ type: NgModule,
62
+ args: [{
63
+ imports: formComponents,
64
+ exports: formComponents,
65
+ }]
66
+ }] });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMxRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFFaEYsTUFBTSxjQUFjLEdBQUc7SUFDckIsdUJBQXVCO0lBQ3ZCLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsZ0JBQWdCO0lBQ2hCLHdCQUF3QjtJQUN4QixzQkFBc0I7SUFDdEIsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLG1CQUFtQjtJQUNuQix5QkFBeUI7SUFDekIseUJBQXlCO0NBQzFCLENBQUM7QUFNRixNQUFNLE9BQU8sWUFBWTs4R0FBWixZQUFZOytHQUFaLFlBQVksWUFuQnZCLHVCQUF1QjtZQUN2QixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQix3QkFBd0I7WUFDeEIsc0JBQXNCO1lBQ3RCLGdCQUFnQjtZQUNoQixpQkFBaUI7WUFDakIsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIseUJBQXlCO1lBQ3pCLHlCQUF5QixhQVp6Qix1QkFBdUI7WUFDdkIsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIsd0JBQXdCO1lBQ3hCLHNCQUFzQjtZQUN0QixnQkFBZ0I7WUFDaEIsaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLHlCQUF5QjtZQUN6Qix5QkFBeUI7K0dBT2QsWUFBWSxZQUhkLGNBQWM7OzJGQUdaLFlBQVk7a0JBSnhCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLGNBQWM7b0JBQ3ZCLE9BQU8sRUFBRSxjQUFjO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJdENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSXRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQvaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEl0UGFzc3dvcmRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEl0UmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEl0UmFuZ2VDb21wb25lbnQgfSBmcm9tICcuL3JhbmdlL3JhbmdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJdFJhdGluZ0NvbXBvbmVudCB9IGZyb20gJy4vcmF0aW5nL3JhdGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSXRTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEl0VGV4dGFyZWFDb21wb25lbnQgfSBmcm9tICcuL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJdFVwbG9hZERyYWdEcm9wQ29tcG9uZW50IH0gZnJvbSAnLi91cGxvYWQtZHJhZy1kcm9wL3VwbG9hZC1kcmFnLWRyb3AuY29tcG9uZW50JztcbmltcG9ydCB7IEl0VXBsb2FkRmlsZUxpc3RDb21wb25lbnQgfSBmcm9tICcuL3VwbG9hZC1maWxlLWxpc3QvdXBsb2FkLWZpbGUtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSXRTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC9zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IEl0VHJhbnNmZXJDb21wb25lbnQgfSBmcm9tICcuL3RyYW5zZmVyL3RyYW5zZmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJdEF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuXG5jb25zdCBmb3JtQ29tcG9uZW50cyA9IFtcbiAgSXRBdXRvY29tcGxldGVDb21wb25lbnQsXG4gIEl0U2VhcmNoQ29tcG9uZW50LFxuICBJdENoZWNrYm94Q29tcG9uZW50LFxuICBJdElucHV0Q29tcG9uZW50LFxuICBJdFBhc3N3b3JkSW5wdXRDb21wb25lbnQsXG4gIEl0UmFkaW9CdXR0b25Db21wb25lbnQsXG4gIEl0UmFuZ2VDb21wb25lbnQsXG4gIEl0UmF0aW5nQ29tcG9uZW50LFxuICBJdFNlbGVjdENvbXBvbmVudCxcbiAgSXRUZXh0YXJlYUNvbXBvbmVudCxcbiAgSXRUcmFuc2ZlckNvbXBvbmVudCxcbiAgSXRVcGxvYWREcmFnRHJvcENvbXBvbmVudCxcbiAgSXRVcGxvYWRGaWxlTGlzdENvbXBvbmVudCxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IGZvcm1Db21wb25lbnRzLFxuICBleHBvcnRzOiBmb3JtQ29tcG9uZW50cyxcbn0pXG5leHBvcnQgY2xhc3MgSXRGb3JtTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,190 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { ItAbstractFormComponent } from '../../../abstracts/abstract-form.component';
3
+ import { ReactiveFormsModule, Validators } from '@angular/forms';
4
+ import { ItValidators } from '../../../validators/it-validators';
5
+ import { AsyncPipe } from '@angular/common';
6
+ import { TranslateModule } from '@ngx-translate/core';
7
+ import { inputToBoolean } from '../../../utils/coercion';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/forms";
10
+ import * as i2 from "@ngx-translate/core";
11
+ export class ItInputComponent extends ItAbstractFormComponent {
12
+ constructor() {
13
+ super(...arguments);
14
+ /**
15
+ * The input type
16
+ * @default text
17
+ */
18
+ this.type = 'text';
19
+ /**
20
+ * The input placeholder
21
+ */
22
+ this.placeholder = '';
23
+ /**
24
+ * The max date value [Used only in type = 'date']
25
+ * @default '9999-12-31'
26
+ * @example 'yyyy-mm-dd'
27
+ */
28
+ this.maxDate = '9999-12-31';
29
+ }
30
+ get isActiveLabel() {
31
+ const value = this.control.value;
32
+ if ((!!value && value !== 0) || value === 0 || !!this.placeholder) {
33
+ return true;
34
+ }
35
+ // if (this.type === 'number' && (!!this.currency || !!this.percentage)) {
36
+ // return true;
37
+ // }
38
+ return this.type === 'date' || this.type === 'time' || this.type === 'color';
39
+ }
40
+ /**
41
+ * Check is readonly field
42
+ */
43
+ get isReadonly() {
44
+ return this.readonly === 'plaintext' || !!this.readonly;
45
+ }
46
+ /**
47
+ * Return the invalid message string from TranslateService
48
+ */
49
+ get invalidMessage() {
50
+ if (this.hasError('min') && this.min) {
51
+ return this._translateService.get('it.errors.min-invalid', {
52
+ min: this.min,
53
+ });
54
+ }
55
+ if (this.hasError('max') && this.max) {
56
+ return this._translateService.get('it.errors.max-invalid', {
57
+ max: this.max,
58
+ });
59
+ }
60
+ if (this.hasError('minlength')) {
61
+ const error = this.getError('minlength');
62
+ return this._translateService.get('it.errors.min-length-invalid', {
63
+ min: error.requiredLength,
64
+ });
65
+ }
66
+ if (this.hasError('maxlength')) {
67
+ const error = this.getError('maxlength');
68
+ return this._translateService.get('it.errors.max-length-invalid', {
69
+ max: error.requiredLength,
70
+ });
71
+ }
72
+ if (this.hasError('email') || this.hasError('invalidEmail')) {
73
+ return this._translateService.get('it.errors.email-invalid');
74
+ }
75
+ if (this.hasError('invalidTel')) {
76
+ return this._translateService.get('it.errors.tel-invalid');
77
+ }
78
+ if (this.hasError('invalidUrl')) {
79
+ return this._translateService.get('it.errors.url-invalid');
80
+ }
81
+ if (this.hasError('invalidTaxCode')) {
82
+ return this._translateService.get('it.errors.tax-code-invalid');
83
+ }
84
+ if (this.hasError('invalidVatNumber')) {
85
+ return this._translateService.get('it.errors.vat-number-invalid');
86
+ }
87
+ if (this.hasError('invalidCap')) {
88
+ return this._translateService.get('it.errors.cap-invalid');
89
+ }
90
+ if (this.hasError('invalidIban')) {
91
+ return this._translateService.get('it.errors.iban-invalid');
92
+ }
93
+ if (this.hasError('invalidPlate')) {
94
+ return this._translateService.get('it.errors.plate-invalid');
95
+ }
96
+ if (this.hasError('invalidRegex')) {
97
+ return this._translateService.get('it.errors.regex-invalid');
98
+ }
99
+ if (this.hasError('pattern')) {
100
+ const error = this.getError('pattern');
101
+ return this._translateService.get('it.errors.pattern-invalid', {
102
+ pattern: error.requiredPattern,
103
+ });
104
+ }
105
+ return super.invalidMessage;
106
+ }
107
+ ngOnInit() {
108
+ super.ngOnInit();
109
+ const validators = [];
110
+ switch (this.type) {
111
+ case 'number':
112
+ if (this.percentage) {
113
+ this.min = this.min || 0;
114
+ this.max = this.max || 100;
115
+ }
116
+ // Dynamic min/max validators
117
+ validators.push((control) => (this.min ? Validators.min(this.min)(control) : null));
118
+ validators.push((control) => (this.max ? Validators.max(this.max)(control) : null));
119
+ break;
120
+ case 'email':
121
+ validators.push(ItValidators.email);
122
+ break;
123
+ case 'tel':
124
+ validators.push(ItValidators.tel);
125
+ break;
126
+ case 'url':
127
+ validators.push(ItValidators.url);
128
+ break;
129
+ }
130
+ this.addValidators(validators);
131
+ }
132
+ /**
133
+ * Increment or decrease the input number value of step
134
+ * @param decrease true to decrease value
135
+ */
136
+ incrementNumber(decrease = false) {
137
+ if (this.type !== 'number') {
138
+ return;
139
+ }
140
+ const step = this.step === 'any' ? 1 : this.step ?? 1;
141
+ let value = Number(this.control.value);
142
+ value = (isNaN(value) ? 0 : value) + (decrease ? -step : step);
143
+ value = Math.round(value * 1e12) / 1e12; // prevent js decimal error
144
+ if (this.min !== undefined && value < this.min) {
145
+ value = this.min;
146
+ }
147
+ else if (this.max !== undefined && value > this.max) {
148
+ value = this.max;
149
+ }
150
+ this.control.setValue(value);
151
+ }
152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
153
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: ItInputComponent, isStandalone: true, selector: "it-input", inputs: { type: "type", placeholder: "placeholder", description: "description", readonly: "readonly", maxDate: "maxDate", minDate: "minDate", max: "max", min: "min", step: "step", currency: ["currency", "currency", inputToBoolean], percentage: ["percentage", "percentage", inputToBoolean], symbol: "symbol", adaptive: ["adaptive", "adaptive", inputToBoolean], autocomplete: "autocomplete" }, usesInheritance: true, ngImport: i0, template: "<div class=\"form-group\">\n <div\n class=\"input-group\"\n [class.disabled]=\"!control.enabled\"\n [class.input-number]=\"type === 'number'\"\n [class.input-number-currency]=\"currency\"\n [class.input-number-percentage]=\"percentage\"\n [class.input-number-adaptive]=\"adaptive\">\n <span class=\"input-group-text\" #prependText>\n <ng-content select=\"[prependText]\"></ng-content>\n </span>\n @if (label) {\n <label\n [for]=\"id\"\n [class.active]=\"isActiveLabel\"\n [class.input-symbol-label]=\"percentage || currency\"\n [class.input-number-label]=\"type === 'number'\"\n [class.empty-prepend-label]=\"!(percentage || currency) && !prependText.clientWidth\">\n {{ label }}\n </label>\n }\n\n @if (type === 'number') {\n @if (currency || percentage) {\n <span class=\"input-group-text fw-semibold\">{{ symbol }}</span>\n }\n <input\n type=\"number\"\n [id]=\"id\"\n [step]=\"step ?? null\"\n [min]=\"min ?? ''\"\n [max]=\"max ?? ''\"\n [class.form-control]=\"readonly !== 'plaintext'\"\n [class.form-control-plaintext]=\"readonly === 'plaintext'\"\n [class.is-invalid]=\"isInvalid\"\n [class.just-validate-success-field]=\"isValid\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [readonly]=\"isReadonly\"\n [autocomplete]=\"autocomplete\"\n [attr.aria-describedby]=\"id + '-description'\"\n (blur)=\"markAsTouched()\" />\n <span class=\"input-group-text align-buttons flex-column\">\n <button type=\"button\" class=\"input-number-add\" [disabled]=\"!control.enabled\" (click)=\"incrementNumber()\">\n <span class=\"visually-hidden\">{{ 'it.form.increase-value' | translate }}</span>\n </button>\n <button type=\"button\" class=\"input-number-sub\" [disabled]=\"!control.enabled\" (click)=\"incrementNumber(true)\">\n <span class=\"visually-hidden\">{{ 'it.form.decrease-value' | translate }}</span>\n </button>\n </span>\n } @else {\n <input\n [id]=\"id\"\n [type]=\"type\"\n [max]=\"type === 'date' ? maxDate : undefined\"\n [min]=\"type === 'date' ? minDate : undefined\"\n [class.form-control]=\"readonly !== 'plaintext'\"\n [class.form-control-plaintext]=\"readonly === 'plaintext'\"\n [class.is-invalid]=\"isInvalid\"\n [class.just-validate-success-field]=\"isValid\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [readonly]=\"isReadonly\"\n [autocomplete]=\"autocomplete\"\n [attr.aria-describedby]=\"id + '-description'\"\n (blur)=\"markAsTouched()\" />\n }\n\n <div class=\"input-group-append\">\n <ng-content select=\"[append]\"></ng-content>\n\n <div class=\"input-group-text\">\n <ng-content select=\"[appendText]\"></ng-content>\n </div>\n </div>\n </div>\n\n @if (description) {\n <small [id]=\"id + '-description'\" class=\"form-text\">{{ description }}</small>\n }\n\n @if (isInvalid) {\n <div class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n @if (!customError.hasChildNodes()) {\n {{ invalidMessage | async }}\n }\n </div>\n }\n</div>\n", styles: [".form-group label{z-index:1000}.form-group .input-number .align-buttons{height:100%}.form-group .input-group-text:empty{display:none}.form-group label.empty-prepend-label{left:auto!important;max-width:100%!important}.form-group label:not(.active):has(+input:-webkit-autofill){transform:translateY(-75%)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.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: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
154
+ }
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItInputComponent, decorators: [{
156
+ type: Component,
157
+ args: [{ standalone: true, selector: 'it-input', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ReactiveFormsModule, TranslateModule, AsyncPipe], template: "<div class=\"form-group\">\n <div\n class=\"input-group\"\n [class.disabled]=\"!control.enabled\"\n [class.input-number]=\"type === 'number'\"\n [class.input-number-currency]=\"currency\"\n [class.input-number-percentage]=\"percentage\"\n [class.input-number-adaptive]=\"adaptive\">\n <span class=\"input-group-text\" #prependText>\n <ng-content select=\"[prependText]\"></ng-content>\n </span>\n @if (label) {\n <label\n [for]=\"id\"\n [class.active]=\"isActiveLabel\"\n [class.input-symbol-label]=\"percentage || currency\"\n [class.input-number-label]=\"type === 'number'\"\n [class.empty-prepend-label]=\"!(percentage || currency) && !prependText.clientWidth\">\n {{ label }}\n </label>\n }\n\n @if (type === 'number') {\n @if (currency || percentage) {\n <span class=\"input-group-text fw-semibold\">{{ symbol }}</span>\n }\n <input\n type=\"number\"\n [id]=\"id\"\n [step]=\"step ?? null\"\n [min]=\"min ?? ''\"\n [max]=\"max ?? ''\"\n [class.form-control]=\"readonly !== 'plaintext'\"\n [class.form-control-plaintext]=\"readonly === 'plaintext'\"\n [class.is-invalid]=\"isInvalid\"\n [class.just-validate-success-field]=\"isValid\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [readonly]=\"isReadonly\"\n [autocomplete]=\"autocomplete\"\n [attr.aria-describedby]=\"id + '-description'\"\n (blur)=\"markAsTouched()\" />\n <span class=\"input-group-text align-buttons flex-column\">\n <button type=\"button\" class=\"input-number-add\" [disabled]=\"!control.enabled\" (click)=\"incrementNumber()\">\n <span class=\"visually-hidden\">{{ 'it.form.increase-value' | translate }}</span>\n </button>\n <button type=\"button\" class=\"input-number-sub\" [disabled]=\"!control.enabled\" (click)=\"incrementNumber(true)\">\n <span class=\"visually-hidden\">{{ 'it.form.decrease-value' | translate }}</span>\n </button>\n </span>\n } @else {\n <input\n [id]=\"id\"\n [type]=\"type\"\n [max]=\"type === 'date' ? maxDate : undefined\"\n [min]=\"type === 'date' ? minDate : undefined\"\n [class.form-control]=\"readonly !== 'plaintext'\"\n [class.form-control-plaintext]=\"readonly === 'plaintext'\"\n [class.is-invalid]=\"isInvalid\"\n [class.just-validate-success-field]=\"isValid\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [readonly]=\"isReadonly\"\n [autocomplete]=\"autocomplete\"\n [attr.aria-describedby]=\"id + '-description'\"\n (blur)=\"markAsTouched()\" />\n }\n\n <div class=\"input-group-append\">\n <ng-content select=\"[append]\"></ng-content>\n\n <div class=\"input-group-text\">\n <ng-content select=\"[appendText]\"></ng-content>\n </div>\n </div>\n </div>\n\n @if (description) {\n <small [id]=\"id + '-description'\" class=\"form-text\">{{ description }}</small>\n }\n\n @if (isInvalid) {\n <div class=\"form-feedback just-validate-error-label\" [id]=\"id + '-error'\">\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n @if (!customError.hasChildNodes()) {\n {{ invalidMessage | async }}\n }\n </div>\n }\n</div>\n", styles: [".form-group label{z-index:1000}.form-group .input-number .align-buttons{height:100%}.form-group .input-group-text:empty{display:none}.form-group label.empty-prepend-label{left:auto!important;max-width:100%!important}.form-group label:not(.active):has(+input:-webkit-autofill){transform:translateY(-75%)}\n"] }]
158
+ }], propDecorators: { type: [{
159
+ type: Input
160
+ }], placeholder: [{
161
+ type: Input
162
+ }], description: [{
163
+ type: Input
164
+ }], readonly: [{
165
+ type: Input
166
+ }], maxDate: [{
167
+ type: Input
168
+ }], minDate: [{
169
+ type: Input
170
+ }], max: [{
171
+ type: Input
172
+ }], min: [{
173
+ type: Input
174
+ }], step: [{
175
+ type: Input
176
+ }], currency: [{
177
+ type: Input,
178
+ args: [{ transform: inputToBoolean }]
179
+ }], percentage: [{
180
+ type: Input,
181
+ args: [{ transform: inputToBoolean }]
182
+ }], symbol: [{
183
+ type: Input
184
+ }], adaptive: [{
185
+ type: Input,
186
+ args: [{ transform: inputToBoolean }]
187
+ }], autocomplete: [{
188
+ type: Input
189
+ }] } });
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVyRixPQUFPLEVBQW1CLG1CQUFtQixFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQVV6RCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsdUJBQTJEO0lBUmpHOztRQVNFOzs7V0FHRztRQUNNLFNBQUksR0FBcUIsTUFBTSxDQUFDO1FBRXpDOztXQUVHO1FBQ00sZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFjMUI7Ozs7V0FJRztRQUNNLFlBQU8sR0FBWSxZQUFZLENBQUM7S0EwTDFDO0lBcklDLElBQUksYUFBYTtRQUNmLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEtB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Z0I7a0JBUjVCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLFVBQVUsbUJBR0gsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxTQUFTLENBQUM7OEJBT2pELElBQUk7c0JBQVosS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBT0csUUFBUTtzQkFBaEIsS0FBSztnQkFPRyxPQUFPO3NCQUFmLEtBQUs7Z0JBTUcsT0FBTztzQkFBZixLQUFLO2dCQUtHLEdBQUc7c0JBQVgsS0FBSztnQkFLRyxHQUFHO3NCQUFYLEtBQUs7Z0JBS0csSUFBSTtzQkFBWixLQUFLO2dCQU1nQyxRQUFRO3NCQUE3QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRTtnQkFNRSxVQUFVO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRTtnQkFNM0IsTUFBTTtzQkFBZCxLQUFLO2dCQU1nQyxRQUFRO3NCQUE3QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRTtnQkFNM0IsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEl0QWJzdHJhY3RGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYWJzdHJhY3RzL2Fic3RyYWN0LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0Q29udHJvbFR5cGUgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2Zvcm0nO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEl0VmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uLy4uL3ZhbGlkYXRvcnMvaXQtdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBpbnB1dFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvZXJjaW9uJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnaXQtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgQXN5bmNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgSXRJbnB1dENvbXBvbmVudCBleHRlbmRzIEl0QWJzdHJhY3RGb3JtQ29tcG9uZW50PHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQ+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIFRoZSBpbnB1dCB0eXBlXG4gICAqIEBkZWZhdWx0IHRleHRcbiAgICovXG4gIEBJbnB1dCgpIHR5cGU6IElucHV0Q29udHJvbFR5cGUgPSAndGV4dCc7XG5cbiAgLyoqXG4gICAqIFRoZSBpbnB1dCBwbGFjZWhvbGRlclxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcblxuICAvKipcbiAgICogVGhlIGlucHV0IGRlc2NyaXB0aW9uXG4gICAqL1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUbyBwcmV2ZW50IG1vZGlmaWNhdGlvbiBvZiB0aGUgY29udGFpbmVkIHZhbHVlLlxuICAgKiAtIDxiPnBsYWludGV4dDwvYj46IFJlYWRvbmx5IGZpZWxkIGluIHRoZSBmb3JtIHN0eWxpemVkIGFzIHBsYWluIHRleHRcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiB8ICdwbGFpbnRleHQnIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4IGRhdGUgdmFsdWUgW1VzZWQgb25seSBpbiB0eXBlID0gJ2RhdGUnXVxuICAgKiBAZGVmYXVsdCAnOTk5OS0xMi0zMSdcbiAgICogQGV4YW1wbGUgJ3l5eXktbW0tZGQnXG4gICAqL1xuICBASW5wdXQoKSBtYXhEYXRlPzogc3RyaW5nID0gJzk5OTktMTItMzEnO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluIGRhdGUgdmFsdWUgW1VzZWQgb25seSBpbiB0eXBlID0gJ2RhdGUnXVxuICAgKiBAZXhhbXBsZSAneXl5eS1tbS1kZCdcbiAgICovXG4gIEBJbnB1dCgpIG1pbkRhdGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIG1heCB2YWx1ZSBbVXNlZCBvbmx5IGluIHR5cGUgPSAnbnVtYmVyJ11cbiAgICovXG4gIEBJbnB1dCgpIG1heDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluIHZhbHVlIFtVc2VkIG9ubHkgaW4gdHlwZSA9ICdudW1iZXInXVxuICAgKi9cbiAgQElucHV0KCkgbWluOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGVwIHZhbHVlIFtVc2VkIG9ubHkgaW4gdHlwZSA9ICdudW1iZXInXVxuICAgKi9cbiAgQElucHV0KCkgc3RlcDogbnVtYmVyIHwgJ2FueScgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIElmIGlzIGEgY3VycmVuY3kgbnVtYmVyIFtVc2VkIG9ubHkgaW4gdHlwZSA9ICdudW1iZXInXVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBpbnB1dFRvQm9vbGVhbiB9KSBjdXJyZW5jeT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIElmIGlzIGEgcGVyY2VudGFnZSBudW1iZXIgW1VzZWQgb25seSBpbiB0eXBlID0gJ251bWJlciddXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGlucHV0VG9Cb29sZWFuIH0pIHBlcmNlbnRhZ2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVuY3kgb3IgcGVyY2VudGFnZSBzeW1ib2wgW1VzZWQgb25seSBpZiBwZXJjZW50YWdlIG9yIGN1cnJlbmN5XVxuICAgKiBAZXhhbXBsZSAnJCdcbiAgICovXG4gIEBJbnB1dCgpIHN5bWJvbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUbyBtYWtlIHRoZSBudW1lcmljIGZpZWxkIGF1dG9tYXRpY2FsbHkgcmVzaXplIGFjY29yZGluZyB0byB0aGUgdmFsdWUgY29udGFpbmVkIGluIGl0LiBbVXNlZCBvbmx5IGluIHR5cGUgPSAnbnVtYmVyJ11cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogaW5wdXRUb0Jvb2xlYW4gfSkgYWRhcHRpdmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbnB1dCBhdXRvY29tcGxldGUgYXR0cmlidXRlIChCcm93c2VyIGF1dG9jb21wbGV0ZSlcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICBASW5wdXQoKSBhdXRvY29tcGxldGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBnZXQgaXNBY3RpdmVMYWJlbCgpOiBib29sZWFuIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuY29udHJvbC52YWx1ZTtcbiAgICBpZiAoKCEhdmFsdWUgJiYgdmFsdWUgIT09IDApIHx8IHZhbHVlID09PSAwIHx8ICEhdGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gaWYgKHRoaXMudHlwZSA9PT0gJ251bWJlcicgJiYgKCEhdGhpcy5jdXJyZW5jeSB8fCAhIXRoaXMucGVyY2VudGFnZSkpIHtcbiAgICAvLyAgIHJldHVybiB0cnVlO1xuICAgIC8vIH1cblxuICAgIHJldHVybiB0aGlzLnR5cGUgPT09ICdkYXRlJyB8fCB0aGlzLnR5cGUgPT09ICd0aW1lJyB8fCB0aGlzLnR5cGUgPT09ICdjb2xvcic7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaXMgcmVhZG9ubHkgZmllbGRcbiAgICovXG4gIHByb3RlY3RlZCBnZXQgaXNSZWFkb25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZWFkb25seSA9PT0gJ3BsYWludGV4dCcgfHwgISF0aGlzLnJlYWRvbmx5O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgaW52YWxpZCBtZXNzYWdlIHN0cmluZyBmcm9tIFRyYW5zbGF0ZVNlcnZpY2VcbiAgICovXG4gIG92ZXJyaWRlIGdldCBpbnZhbGlkTWVzc2FnZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGlmICh0aGlzLmhhc0Vycm9yKCdtaW4nKSAmJiB0aGlzLm1pbikge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMubWluLWludmFsaWQnLCB7XG4gICAgICAgIG1pbjogdGhpcy5taW4sXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzRXJyb3IoJ21heCcpICYmIHRoaXMubWF4KSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXQoJ2l0LmVycm9ycy5tYXgtaW52YWxpZCcsIHtcbiAgICAgICAgbWF4OiB0aGlzLm1heCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5oYXNFcnJvcignbWlubGVuZ3RoJykpIHtcbiAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5nZXRFcnJvcignbWlubGVuZ3RoJyk7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXQoJ2l0LmVycm9ycy5taW4tbGVuZ3RoLWludmFsaWQnLCB7XG4gICAgICAgIG1pbjogZXJyb3IucmVxdWlyZWRMZW5ndGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzRXJyb3IoJ21heGxlbmd0aCcpKSB7XG4gICAgICBjb25zdCBlcnJvciA9IHRoaXMuZ2V0RXJyb3IoJ21heGxlbmd0aCcpO1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMubWF4LWxlbmd0aC1pbnZhbGlkJywge1xuICAgICAgICBtYXg6IGVycm9yLnJlcXVpcmVkTGVuZ3RoLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0Vycm9yKCdlbWFpbCcpIHx8IHRoaXMuaGFzRXJyb3IoJ2ludmFsaWRFbWFpbCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXQoJ2l0LmVycm9ycy5lbWFpbC1pbnZhbGlkJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0Vycm9yKCdpbnZhbGlkVGVsJykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldCgnaXQuZXJyb3JzLnRlbC1pbnZhbGlkJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0Vycm9yKCdpbnZhbGlkVXJsJykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldCgnaXQuZXJyb3JzLnVybC1pbnZhbGlkJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0Vycm9yKCdpbnZhbGlkVGF4Q29kZScpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXQoJ2l0LmVycm9ycy50YXgtY29kZS1pbnZhbGlkJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0Vycm9yKCdpbnZhbGlkVmF0TnVtYmVyJykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldCgnaXQuZXJyb3JzLnZhdC1udW1iZXItaW52YWxpZCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5oYXNFcnJvcignaW52YWxpZENhcCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXQoJ2l0LmVycm9ycy5jYXAtaW52YWxpZCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5oYXNFcnJvcignaW52YWxpZEliYW4nKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMuaWJhbi1pbnZhbGlkJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0Vycm9yKCdpbnZhbGlkUGxhdGUnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdpdC5lcnJvcnMucGxhdGUtaW52YWxpZCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5oYXNFcnJvcignaW52YWxpZFJlZ2V4JykpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldCgnaXQuZXJyb3JzLnJlZ2V4LWludmFsaWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzRXJyb3IoJ3BhdHRlcm4nKSkge1xuICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLmdldEVycm9yKCdwYXR0ZXJuJyk7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXQoJ2l0LmVycm9ycy5wYXR0ZXJuLWludmFsaWQnLCB7XG4gICAgICAgIHBhdHRlcm46IGVycm9yLnJlcXVpcmVkUGF0dGVybixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlci5pbnZhbGlkTWVzc2FnZTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICBjb25zdCB2YWxpZGF0b3JzOiBBcnJheTxWYWxpZGF0b3JGbj4gPSBbXTtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgaWYgKHRoaXMucGVyY2VudGFnZSkge1xuICAgICAgICAgIHRoaXMubWluID0gdGhpcy5taW4gfHwgMDtcbiAgICAgICAgICB0aGlzLm1heCA9IHRoaXMubWF4IHx8IDEwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIER5bmFtaWMgbWluL21heCB2YWxpZGF0b3JzXG4gICAgICAgIHZhbGlkYXRvcnMucHVzaCgoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiAodGhpcy5taW4gPyBWYWxpZGF0b3JzLm1pbih0aGlzLm1pbikoY29udHJvbCkgOiBudWxsKSk7XG4gICAgICAgIHZhbGlkYXRvcnMucHVzaCgoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiAodGhpcy5tYXggPyBWYWxpZGF0b3JzLm1heCh0aGlzLm1heCkoY29udHJvbCkgOiBudWxsKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZW1haWwnOlxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goSXRWYWxpZGF0b3JzLmVtYWlsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0ZWwnOlxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goSXRWYWxpZGF0b3JzLnRlbCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndXJsJzpcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKEl0VmFsaWRhdG9ycy51cmwpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLmFkZFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gIH1cblxuICAvKipcbiAgICogSW5jcmVtZW50IG9yIGRlY3JlYXNlIHRoZSBpbnB1dCBudW1iZXIgdmFsdWUgb2Ygc3RlcFxuICAgKiBAcGFyYW0gZGVjcmVhc2UgdHJ1ZSB0byBkZWNyZWFzZSB2YWx1ZVxuICAgKi9cbiAgcHJvdGVjdGVkIGluY3JlbWVudE51bWJlcihkZWNyZWFzZSA9IGZhbHNlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc3RlcCA9IHRoaXMuc3RlcCA9PT0gJ2FueScgPyAxIDogdGhpcy5zdGVwID8/IDE7XG4gICAgbGV0IHZhbHVlID0gTnVtYmVyKHRoaXMuY29udHJvbC52YWx1ZSk7XG4gICAgdmFsdWUgPSAoaXNOYU4odmFsdWUpID8gMCA6IHZhbHVlKSArIChkZWNyZWFzZSA/IC1zdGVwIDogc3RlcCk7XG4gICAgdmFsdWUgPSBNYXRoLnJvdW5kKHZhbHVlICogMWUxMikgLyAxZTEyOyAvLyBwcmV2ZW50IGpzIGRlY2ltYWwgZXJyb3JcblxuICAgIGlmICh0aGlzLm1pbiAhPT0gdW5kZWZpbmVkICYmIHZhbHVlIDwgdGhpcy5taW4pIHtcbiAgICAgIHZhbHVlID0gdGhpcy5taW47XG4gICAgfSBlbHNlIGlmICh0aGlzLm1heCAhPT0gdW5kZWZpbmVkICYmIHZhbHVlID4gdGhpcy5tYXgpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5tYXg7XG4gICAgfVxuXG4gICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXBcIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhY29udHJvbC5lbmFibGVkXCJcbiAgICBbY2xhc3MuaW5wdXQtbnVtYmVyXT1cInR5cGUgPT09ICdudW1iZXInXCJcbiAgICBbY2xhc3MuaW5wdXQtbnVtYmVyLWN1cnJlbmN5XT1cImN1cnJlbmN5XCJcbiAgICBbY2xhc3MuaW5wdXQtbnVtYmVyLXBlcmNlbnRhZ2VdPVwicGVyY2VudGFnZVwiXG4gICAgW2NsYXNzLmlucHV0LW51bWJlci1hZGFwdGl2ZV09XCJhZGFwdGl2ZVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dFwiICNwcmVwZW5kVGV4dD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltwcmVwZW5kVGV4dF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9zcGFuPlxuICAgIEBpZiAobGFiZWwpIHtcbiAgICAgIDxsYWJlbFxuICAgICAgICBbZm9yXT1cImlkXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpc0FjdGl2ZUxhYmVsXCJcbiAgICAgICAgW2NsYXNzLmlucHV0LXN5bWJvbC1sYWJlbF09XCJwZXJjZW50YWdlIHx8IGN1cnJlbmN5XCJcbiAgICAgICAgW2NsYXNzLmlucHV0LW51bWJlci1sYWJlbF09XCJ0eXBlID09PSAnbnVtYmVyJ1wiXG4gICAgICAgIFtjbGFzcy5lbXB0eS1wcmVwZW5kLWxhYmVsXT1cIiEocGVyY2VudGFnZSB8fCBjdXJyZW5jeSkgJiYgIXByZXBlbmRUZXh0LmNsaWVudFdpZHRoXCI+XG4gICAgICAgIHt7IGxhYmVsIH19XG4gICAgICA8L2xhYmVsPlxuICAgIH1cblxuICAgIEBpZiAodHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIEBpZiAoY3VycmVuY3kgfHwgcGVyY2VudGFnZSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLXRleHQgZnctc2VtaWJvbGRcIj57eyBzeW1ib2wgfX08L3NwYW4+XG4gICAgICB9XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgIFtzdGVwXT1cInN0ZXAgPz8gbnVsbFwiXG4gICAgICAgIFttaW5dPVwibWluID8/ICcnXCJcbiAgICAgICAgW21heF09XCJtYXggPz8gJydcIlxuICAgICAgICBbY2xhc3MuZm9ybS1jb250cm9sXT1cInJlYWRvbmx5ICE9PSAncGxhaW50ZXh0J1wiXG4gICAgICAgIFtjbGFzcy5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0XT1cInJlYWRvbmx5ID09PSAncGxhaW50ZXh0J1wiXG4gICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImlzSW52YWxpZFwiXG4gICAgICAgIFtjbGFzcy5qdXN0LXZhbGlkYXRlLXN1Y2Nlc3MtZmllbGRdPVwiaXNWYWxpZFwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cImlzUmVhZG9ubHlcIlxuICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaWQgKyAnLWRlc2NyaXB0aW9uJ1wiXG4gICAgICAgIChibHVyKT1cIm1hcmtBc1RvdWNoZWQoKVwiIC8+XG4gICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLXRleHQgYWxpZ24tYnV0dG9ucyBmbGV4LWNvbHVtblwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImlucHV0LW51bWJlci1hZGRcIiBbZGlzYWJsZWRdPVwiIWNvbnRyb2wuZW5hYmxlZFwiIChjbGljayk9XCJpbmNyZW1lbnROdW1iZXIoKVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+e3sgJ2l0LmZvcm0uaW5jcmVhc2UtdmFsdWUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpbnB1dC1udW1iZXItc3ViXCIgW2Rpc2FibGVkXT1cIiFjb250cm9sLmVuYWJsZWRcIiAoY2xpY2spPVwiaW5jcmVtZW50TnVtYmVyKHRydWUpXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eyAnaXQuZm9ybS5kZWNyZWFzZS12YWx1ZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9zcGFuPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGlucHV0XG4gICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgICBbbWF4XT1cInR5cGUgPT09ICdkYXRlJyA/IG1heERhdGUgOiB1bmRlZmluZWRcIlxuICAgICAgICBbbWluXT1cInR5cGUgPT09ICdkYXRlJyA/IG1pbkRhdGUgOiB1bmRlZmluZWRcIlxuICAgICAgICBbY2xhc3MuZm9ybS1jb250cm9sXT1cInJlYWRvbmx5ICE9PSAncGxhaW50ZXh0J1wiXG4gICAgICAgIFtjbGFzcy5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0XT1cInJlYWRvbmx5ID09PSAncGxhaW50ZXh0J1wiXG4gICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImlzSW52YWxpZFwiXG4gICAgICAgIFtjbGFzcy5qdXN0LXZhbGlkYXRlLXN1Y2Nlc3MtZmllbGRdPVwiaXNWYWxpZFwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cImlzUmVhZG9ubHlcIlxuICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaWQgKyAnLWRlc2NyaXB0aW9uJ1wiXG4gICAgICAgIChibHVyKT1cIm1hcmtBc1RvdWNoZWQoKVwiIC8+XG4gICAgfVxuXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2FwcGVuZF1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthcHBlbmRUZXh0XVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICBAaWYgKGRlc2NyaXB0aW9uKSB7XG4gICAgPHNtYWxsIFtpZF09XCJpZCArICctZGVzY3JpcHRpb24nXCIgY2xhc3M9XCJmb3JtLXRleHRcIj57eyBkZXNjcmlwdGlvbiB9fTwvc21hbGw+XG4gIH1cblxuICBAaWYgKGlzSW52YWxpZCkge1xuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZlZWRiYWNrIGp1c3QtdmFsaWRhdGUtZXJyb3ItbGFiZWxcIiBbaWRdPVwiaWQgKyAnLWVycm9yJ1wiPlxuICAgICAgPGRpdiAjY3VzdG9tRXJyb3I+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlcnJvcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIEBpZiAoIWN1c3RvbUVycm9yLmhhc0NoaWxkTm9kZXMoKSkge1xuICAgICAgICB7eyBpbnZhbGlkTWVzc2FnZSB8IGFzeW5jIH19XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19