spiderly 0.0.2

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 (302) hide show
  1. package/README.md +3 -0
  2. package/esm2022/lib/components/auth/auth.module.mjs +65 -0
  3. package/esm2022/lib/components/auth/login/login.component.mjs +60 -0
  4. package/esm2022/lib/components/auth/partials/auth.component.mjs +53 -0
  5. package/esm2022/lib/components/auth/partials/login-verification.component.mjs +39 -0
  6. package/esm2022/lib/components/auth/partials/registration-verification.component.mjs +37 -0
  7. package/esm2022/lib/components/auth/partials/verification-wrapper.component.mjs +74 -0
  8. package/esm2022/lib/components/auth/registration/registration.component.mjs +59 -0
  9. package/esm2022/lib/components/base-details/role-base-details.component.mjs +171 -0
  10. package/esm2022/lib/components/base-form/base-form copy.mjs +247 -0
  11. package/esm2022/lib/components/card-skeleton/card-skeleton.component.mjs +25 -0
  12. package/esm2022/lib/components/footer/footer.component.mjs +16 -0
  13. package/esm2022/lib/components/index-card/index-card.component.mjs +57 -0
  14. package/esm2022/lib/components/info-card/info-card.component.mjs +29 -0
  15. package/esm2022/lib/components/layout/layout-base.component.mjs +120 -0
  16. package/esm2022/lib/components/layout/sidebar/menuitem.component.mjs +161 -0
  17. package/esm2022/lib/components/layout/sidebar/sidebar-menu.component.mjs +34 -0
  18. package/esm2022/lib/components/layout/sidebar/sidebar-menu.service.mjs +26 -0
  19. package/esm2022/lib/components/layout/sidebar/sidebar.component.mjs +21 -0
  20. package/esm2022/lib/components/layout/topbar/topbar.component.mjs +115 -0
  21. package/esm2022/lib/components/not-found/not-found.component.mjs +20 -0
  22. package/esm2022/lib/components/required/required.component.mjs +12 -0
  23. package/esm2022/lib/components/spiderly-buttons/google-button/google-button.component.mjs +43 -0
  24. package/esm2022/lib/components/spiderly-buttons/return-button/return-button.component.mjs +37 -0
  25. package/esm2022/lib/components/spiderly-buttons/spiderly-button/spiderly-button.component.mjs +20 -0
  26. package/esm2022/lib/components/spiderly-buttons/spiderly-button-base/spiderly-button-base.mjs +68 -0
  27. package/esm2022/lib/components/spiderly-buttons/spiderly-split-button/spiderly-split-button.component.mjs +22 -0
  28. package/esm2022/lib/components/spiderly-data-table/spiderly-data-table.component.mjs +502 -0
  29. package/esm2022/lib/components/spiderly-delete-dialog/spiderly-delete-confirmation.component.mjs +42 -0
  30. package/esm2022/lib/components/spiderly-form-control/spiderly-form-control.mjs +36 -0
  31. package/esm2022/lib/components/spiderly-panels/panel-body/panel-body.component.mjs +19 -0
  32. package/esm2022/lib/components/spiderly-panels/panel-footer/panel-footer.component.mjs +14 -0
  33. package/esm2022/lib/components/spiderly-panels/panel-header/panel-header.component.mjs +49 -0
  34. package/esm2022/lib/components/spiderly-panels/spiderly-card/spiderly-card.component.mjs +20 -0
  35. package/esm2022/lib/components/spiderly-panels/spiderly-panel/spiderly-panel.component.mjs +63 -0
  36. package/esm2022/lib/components/spiderly-panels/spiderly-panels.module.mjs +49 -0
  37. package/esm2022/lib/controls/base-autocomplete-control.mjs +18 -0
  38. package/esm2022/lib/controls/base-control.mjs +62 -0
  39. package/esm2022/lib/controls/base-dropdown-control.mjs +37 -0
  40. package/esm2022/lib/controls/spiderly-autocomplete/spiderly-autocomplete.component.mjs +60 -0
  41. package/esm2022/lib/controls/spiderly-calendar/spiderly-calendar.component.mjs +39 -0
  42. package/esm2022/lib/controls/spiderly-checkbox/spiderly-checkbox.component.mjs +45 -0
  43. package/esm2022/lib/controls/spiderly-colorpick/spiderly-colorpick.component.mjs +40 -0
  44. package/esm2022/lib/controls/spiderly-controls.module.mjs +112 -0
  45. package/esm2022/lib/controls/spiderly-dropdown/spiderly-dropdown.component.mjs +40 -0
  46. package/esm2022/lib/controls/spiderly-editor/spiderly-editor.component.mjs +59 -0
  47. package/esm2022/lib/controls/spiderly-file/spiderly-file.component.mjs +106 -0
  48. package/esm2022/lib/controls/spiderly-multiautocomplete/spiderly-multiautocomplete.component.mjs +38 -0
  49. package/esm2022/lib/controls/spiderly-multiselect/spiderly-multiselect.component.mjs +34 -0
  50. package/esm2022/lib/controls/spiderly-number/spiderly-number.component.mjs +44 -0
  51. package/esm2022/lib/controls/spiderly-password/spiderly-password.component.mjs +37 -0
  52. package/esm2022/lib/controls/spiderly-textarea/spiderly-textarea.component.mjs +34 -0
  53. package/esm2022/lib/controls/spiderly-textbox/spiderly-textbox.component.mjs +45 -0
  54. package/esm2022/lib/entities/base-entity.mjs +18 -0
  55. package/esm2022/lib/entities/codebook.mjs +10 -0
  56. package/esm2022/lib/entities/init-company-auth-dialog-details.mjs +9 -0
  57. package/esm2022/lib/entities/init-top-bar-data.mjs +12 -0
  58. package/esm2022/lib/entities/is-authorized-for-save-event.mjs +9 -0
  59. package/esm2022/lib/entities/last-menu-icon-index-clicked.mjs +8 -0
  60. package/esm2022/lib/entities/lazy-load-selected-ids-result.mjs +11 -0
  61. package/esm2022/lib/entities/menuchangeevent.mjs +3 -0
  62. package/esm2022/lib/entities/mime-type.mjs +15 -0
  63. package/esm2022/lib/entities/namebook.mjs +9 -0
  64. package/esm2022/lib/entities/primeng-option.mjs +9 -0
  65. package/esm2022/lib/entities/security-entities.mjs +169 -0
  66. package/esm2022/lib/entities/simple-save-result.mjs +9 -0
  67. package/esm2022/lib/entities/spiderly-button.mjs +11 -0
  68. package/esm2022/lib/entities/table-filter-context.mjs +3 -0
  69. package/esm2022/lib/entities/table-filter-sort-meta.mjs +3 -0
  70. package/esm2022/lib/entities/table-filter.mjs +15 -0
  71. package/esm2022/lib/entities/table-response.mjs +3 -0
  72. package/esm2022/lib/enums/security-enums.mjs +26 -0
  73. package/esm2022/lib/enums/verification-type-codes.mjs +6 -0
  74. package/esm2022/lib/guards/auth.guard.mjs +40 -0
  75. package/esm2022/lib/guards/not-auth.guard.mjs +32 -0
  76. package/esm2022/lib/handlers/spiderly-error-handler.mjs +30 -0
  77. package/esm2022/lib/handlers/spiderly-transloco-fallback-strategy.mjs +24 -0
  78. package/esm2022/lib/interceptors/http-loading.interceptor.mjs +27 -0
  79. package/esm2022/lib/interceptors/json-parser.interceptor.mjs +47 -0
  80. package/esm2022/lib/interceptors/jwt.interceptor.mjs +27 -0
  81. package/esm2022/lib/interceptors/unauthorized.interceptor.mjs +64 -0
  82. package/esm2022/lib/modules/core.module.mjs +140 -0
  83. package/esm2022/lib/modules/primeng.module.mjs +278 -0
  84. package/esm2022/lib/modules/spiderly-transloco.module.mjs +44 -0
  85. package/esm2022/lib/services/api.service.security.mjs +86 -0
  86. package/esm2022/lib/services/app-initializer.mjs +6 -0
  87. package/esm2022/lib/services/app-layout-base.service.mjs +132 -0
  88. package/esm2022/lib/services/auth-base.service.mjs +220 -0
  89. package/esm2022/lib/services/base-form.service.mjs +124 -0
  90. package/esm2022/lib/services/config-base.service.mjs +33 -0
  91. package/esm2022/lib/services/helper-functions.mjs +229 -0
  92. package/esm2022/lib/services/spiderly-message.service.mjs +64 -0
  93. package/esm2022/lib/services/spiderly-transloco-loader.mjs +20 -0
  94. package/esm2022/lib/services/translate-labels-abstract.service.mjs +15 -0
  95. package/esm2022/lib/services/validator-abstract.service.mjs +51 -0
  96. package/esm2022/public-api.mjs +94 -0
  97. package/esm2022/spiderly.mjs +5 -0
  98. package/fesm2022/spiderly.mjs +4807 -0
  99. package/fesm2022/spiderly.mjs.map +1 -0
  100. package/index.d.ts +5 -0
  101. package/lib/components/auth/auth.module.d.ts +17 -0
  102. package/lib/components/auth/login/login.component.d.ts +35 -0
  103. package/lib/components/auth/partials/auth.component.d.ts +21 -0
  104. package/lib/components/auth/partials/login-verification.component.d.ts +18 -0
  105. package/lib/components/auth/partials/registration-verification.component.d.ts +17 -0
  106. package/lib/components/auth/partials/verification-wrapper.component.d.ts +31 -0
  107. package/lib/components/auth/registration/registration.component.d.ts +34 -0
  108. package/lib/components/base-details/role-base-details.component.d.ts +50 -0
  109. package/lib/components/base-form/base-form copy.d.ts +54 -0
  110. package/lib/components/card-skeleton/card-skeleton.component.d.ts +12 -0
  111. package/lib/components/footer/footer.component.d.ts +9 -0
  112. package/lib/components/index-card/index-card.component.d.ts +22 -0
  113. package/lib/components/info-card/info-card.component.d.ts +11 -0
  114. package/lib/components/layout/layout-base.component.d.ts +37 -0
  115. package/lib/components/layout/sidebar/menuitem.component.d.ts +43 -0
  116. package/lib/components/layout/sidebar/sidebar-menu.component.d.ts +23 -0
  117. package/lib/components/layout/sidebar/sidebar-menu.service.d.ts +12 -0
  118. package/lib/components/layout/sidebar/sidebar.component.d.ts +11 -0
  119. package/lib/components/layout/topbar/topbar.component.d.ts +45 -0
  120. package/lib/components/not-found/not-found.component.d.ts +9 -0
  121. package/lib/components/required/required.component.d.ts +6 -0
  122. package/lib/components/spiderly-buttons/google-button/google-button.component.d.ts +17 -0
  123. package/lib/components/spiderly-buttons/return-button/return-button.component.d.ts +10 -0
  124. package/lib/components/spiderly-buttons/spiderly-button/spiderly-button.component.d.ts +6 -0
  125. package/lib/components/spiderly-buttons/spiderly-button-base/spiderly-button-base.d.ts +27 -0
  126. package/lib/components/spiderly-buttons/spiderly-split-button/spiderly-split-button.component.d.ts +8 -0
  127. package/lib/components/spiderly-data-table/spiderly-data-table.component.d.ts +157 -0
  128. package/lib/components/spiderly-delete-dialog/spiderly-delete-confirmation.component.d.ts +11 -0
  129. package/lib/components/spiderly-form-control/spiderly-form-control.d.ts +37 -0
  130. package/lib/components/spiderly-panels/panel-body/panel-body.component.d.ts +9 -0
  131. package/lib/components/spiderly-panels/panel-footer/panel-footer.component.d.ts +8 -0
  132. package/lib/components/spiderly-panels/panel-header/panel-header.component.d.ts +29 -0
  133. package/lib/components/spiderly-panels/spiderly-card/spiderly-card.component.d.ts +10 -0
  134. package/lib/components/spiderly-panels/spiderly-panel/spiderly-panel.component.d.ts +25 -0
  135. package/lib/components/spiderly-panels/spiderly-panels.module.d.ts +13 -0
  136. package/lib/controls/base-autocomplete-control.d.ts +9 -0
  137. package/lib/controls/base-control.d.ts +23 -0
  138. package/lib/controls/base-dropdown-control.d.ts +18 -0
  139. package/lib/controls/spiderly-autocomplete/spiderly-autocomplete.component.d.ts +18 -0
  140. package/lib/controls/spiderly-calendar/spiderly-calendar.component.d.ts +13 -0
  141. package/lib/controls/spiderly-checkbox/spiderly-checkbox.component.d.ts +14 -0
  142. package/lib/controls/spiderly-colorpick/spiderly-colorpick.component.d.ts +11 -0
  143. package/lib/controls/spiderly-controls.module.d.ts +22 -0
  144. package/lib/controls/spiderly-dropdown/spiderly-dropdown.component.d.ts +14 -0
  145. package/lib/controls/spiderly-editor/spiderly-editor.component.d.ts +16 -0
  146. package/lib/controls/spiderly-file/spiderly-file.component.d.ts +36 -0
  147. package/lib/controls/spiderly-multiautocomplete/spiderly-multiautocomplete.component.d.ts +13 -0
  148. package/lib/controls/spiderly-multiselect/spiderly-multiselect.component.d.ts +11 -0
  149. package/lib/controls/spiderly-number/spiderly-number.component.d.ts +15 -0
  150. package/lib/controls/spiderly-password/spiderly-password.component.d.ts +12 -0
  151. package/lib/controls/spiderly-textarea/spiderly-textarea.component.d.ts +11 -0
  152. package/lib/controls/spiderly-textbox/spiderly-textbox.component.d.ts +15 -0
  153. package/lib/entities/base-entity.d.ts +14 -0
  154. package/lib/entities/codebook.d.ts +9 -0
  155. package/lib/entities/init-company-auth-dialog-details.d.ts +9 -0
  156. package/lib/entities/init-top-bar-data.d.ts +16 -0
  157. package/lib/entities/is-authorized-for-save-event.d.ts +9 -0
  158. package/lib/entities/last-menu-icon-index-clicked.d.ts +7 -0
  159. package/lib/entities/lazy-load-selected-ids-result.d.ts +9 -0
  160. package/lib/entities/menuchangeevent.d.ts +4 -0
  161. package/lib/entities/mime-type.d.ts +11 -0
  162. package/lib/entities/namebook.d.ts +9 -0
  163. package/lib/entities/primeng-option.d.ts +9 -0
  164. package/lib/entities/security-entities.d.ts +211 -0
  165. package/lib/entities/simple-save-result.d.ts +7 -0
  166. package/lib/entities/spiderly-button.d.ts +13 -0
  167. package/lib/entities/table-filter-context.d.ts +5 -0
  168. package/lib/entities/table-filter-sort-meta.d.ts +4 -0
  169. package/lib/entities/table-filter.d.ts +23 -0
  170. package/lib/entities/table-response.d.ts +4 -0
  171. package/lib/enums/security-enums.d.ts +22 -0
  172. package/lib/enums/verification-type-codes.d.ts +4 -0
  173. package/lib/guards/auth.guard.d.ts +15 -0
  174. package/lib/guards/not-auth.guard.d.ts +12 -0
  175. package/lib/handlers/spiderly-error-handler.d.ts +14 -0
  176. package/lib/handlers/spiderly-transloco-fallback-strategy.d.ts +13 -0
  177. package/lib/interceptors/http-loading.interceptor.d.ts +11 -0
  178. package/lib/interceptors/json-parser.interceptor.d.ts +11 -0
  179. package/lib/interceptors/jwt.interceptor.d.ts +11 -0
  180. package/lib/interceptors/unauthorized.interceptor.d.ts +16 -0
  181. package/lib/modules/core.module.d.ts +13 -0
  182. package/lib/modules/primeng.module.d.ts +42 -0
  183. package/lib/modules/spiderly-transloco.module.d.ts +9 -0
  184. package/lib/services/api.service.security.d.ts +35 -0
  185. package/lib/services/app-initializer.d.ts +4 -0
  186. package/lib/services/app-layout-base.service.d.ts +60 -0
  187. package/lib/services/auth-base.service.d.ts +55 -0
  188. package/lib/services/base-form.service.d.ts +27 -0
  189. package/lib/services/config-base.service.d.ts +24 -0
  190. package/lib/services/helper-functions.d.ts +37 -0
  191. package/lib/services/spiderly-message.service.d.ts +17 -0
  192. package/lib/services/spiderly-transloco-loader.d.ts +10 -0
  193. package/lib/services/translate-labels-abstract.service.d.ts +7 -0
  194. package/lib/services/validator-abstract.service.d.ts +13 -0
  195. package/package.json +60 -0
  196. package/public-api.d.ts +90 -0
  197. package/styles/components/spiderly-data-table/spiderly-data-table.component.scss +34 -0
  198. package/styles/components/spiderly-panels/panel-footer/panel-footer.component.scss +10 -0
  199. package/styles/styles/layout/_config.scss +42 -0
  200. package/styles/styles/layout/_content.scss +12 -0
  201. package/styles/styles/layout/_footer.scss +9 -0
  202. package/styles/styles/layout/_main.scss +28 -0
  203. package/styles/styles/layout/_menu.scss +135 -0
  204. package/styles/styles/layout/_mixins.scss +13 -0
  205. package/styles/styles/layout/_preloading.scss +47 -0
  206. package/styles/styles/layout/_responsive.scss +100 -0
  207. package/styles/styles/layout/_spiderly-controls.scss +12 -0
  208. package/styles/styles/layout/_topbar.scss +231 -0
  209. package/styles/styles/layout/_typography.scss +63 -0
  210. package/styles/styles/layout/_utils.scss +20 -0
  211. package/styles/styles/layout/_variables.scss +903 -0
  212. package/styles/styles/layout/layout.scss +13 -0
  213. package/styles/styles/shared.scss +519 -0
  214. package/styles/styles/styles.scss +6 -0
  215. package/styles/styles/theme/base/_colors.scss +18 -0
  216. package/styles/styles/theme/base/_common.scss +75 -0
  217. package/styles/styles/theme/base/_components.scss +106 -0
  218. package/styles/styles/theme/base/_mixins.scss +343 -0
  219. package/styles/styles/theme/base/components/button/_button.scss +564 -0
  220. package/styles/styles/theme/base/components/button/_speeddial.scss +96 -0
  221. package/styles/styles/theme/base/components/button/_splitbutton.scss +381 -0
  222. package/styles/styles/theme/base/components/data/_carousel.scss +37 -0
  223. package/styles/styles/theme/base/components/data/_datatable.scss +338 -0
  224. package/styles/styles/theme/base/components/data/_dataview.scss +55 -0
  225. package/styles/styles/theme/base/components/data/_filter.scss +138 -0
  226. package/styles/styles/theme/base/components/data/_orderlist.scss +103 -0
  227. package/styles/styles/theme/base/components/data/_organizationchart.scss +50 -0
  228. package/styles/styles/theme/base/components/data/_paginator.scss +92 -0
  229. package/styles/styles/theme/base/components/data/_picklist.scss +103 -0
  230. package/styles/styles/theme/base/components/data/_timeline.scss +81 -0
  231. package/styles/styles/theme/base/components/data/_tree.scss +149 -0
  232. package/styles/styles/theme/base/components/data/_treetable.scss +256 -0
  233. package/styles/styles/theme/base/components/data/_virtualscroller.scss +28 -0
  234. package/styles/styles/theme/base/components/file/_fileupload.scss +64 -0
  235. package/styles/styles/theme/base/components/input/_autocomplete.scss +118 -0
  236. package/styles/styles/theme/base/components/input/_calendar.scss +263 -0
  237. package/styles/styles/theme/base/components/input/_cascadeselect.scss +130 -0
  238. package/styles/styles/theme/base/components/input/_checkbox.scss +90 -0
  239. package/styles/styles/theme/base/components/input/_chips.scss +55 -0
  240. package/styles/styles/theme/base/components/input/_colorpicker.scss +26 -0
  241. package/styles/styles/theme/base/components/input/_dropdown.scss +152 -0
  242. package/styles/styles/theme/base/components/input/_editor.scss +122 -0
  243. package/styles/styles/theme/base/components/input/_inputgroup.scss +75 -0
  244. package/styles/styles/theme/base/components/input/_inputmask.scss +16 -0
  245. package/styles/styles/theme/base/components/input/_inputnumber.scss +28 -0
  246. package/styles/styles/theme/base/components/input/_inputswitch.scss +60 -0
  247. package/styles/styles/theme/base/components/input/_inputtext.scss +100 -0
  248. package/styles/styles/theme/base/components/input/_listbox.scss +82 -0
  249. package/styles/styles/theme/base/components/input/_multiselect.scss +173 -0
  250. package/styles/styles/theme/base/components/input/_password.scss +52 -0
  251. package/styles/styles/theme/base/components/input/_radiobutton.scss +78 -0
  252. package/styles/styles/theme/base/components/input/_rating.scss +55 -0
  253. package/styles/styles/theme/base/components/input/_selectbutton.scss +50 -0
  254. package/styles/styles/theme/base/components/input/_slider.scss +71 -0
  255. package/styles/styles/theme/base/components/input/_togglebutton.scss +48 -0
  256. package/styles/styles/theme/base/components/input/_treeselect.scss +139 -0
  257. package/styles/styles/theme/base/components/menu/_breadcrumb.scss +42 -0
  258. package/styles/styles/theme/base/components/menu/_contextmenu.scss +39 -0
  259. package/styles/styles/theme/base/components/menu/_dock.scss +95 -0
  260. package/styles/styles/theme/base/components/menu/_megamenu.scss +55 -0
  261. package/styles/styles/theme/base/components/menu/_menu.scss +37 -0
  262. package/styles/styles/theme/base/components/menu/_menubar.scss +141 -0
  263. package/styles/styles/theme/base/components/menu/_panelmenu.scss +153 -0
  264. package/styles/styles/theme/base/components/menu/_slidemenu.scss +59 -0
  265. package/styles/styles/theme/base/components/menu/_steps.scss +56 -0
  266. package/styles/styles/theme/base/components/menu/_tabmenu.scss +74 -0
  267. package/styles/styles/theme/base/components/menu/_tieredmenu.scss +43 -0
  268. package/styles/styles/theme/base/components/messages/_inlinemessage.scss +69 -0
  269. package/styles/styles/theme/base/components/messages/_message.scss +107 -0
  270. package/styles/styles/theme/base/components/messages/_toast.scss +103 -0
  271. package/styles/styles/theme/base/components/misc/_avatar.scss +30 -0
  272. package/styles/styles/theme/base/components/misc/_badge.scss +48 -0
  273. package/styles/styles/theme/base/components/misc/_blockui.scss +0 -0
  274. package/styles/styles/theme/base/components/misc/_chip.scss +42 -0
  275. package/styles/styles/theme/base/components/misc/_inplace.scss +17 -0
  276. package/styles/styles/theme/base/components/misc/_progressbar.scss +17 -0
  277. package/styles/styles/theme/base/components/misc/_scrolltop.scss +25 -0
  278. package/styles/styles/theme/base/components/misc/_skeleton.scss +8 -0
  279. package/styles/styles/theme/base/components/misc/_tag.scss +40 -0
  280. package/styles/styles/theme/base/components/misc/_terminal.scss +12 -0
  281. package/styles/styles/theme/base/components/multimedia/_galleria.scss +155 -0
  282. package/styles/styles/theme/base/components/multimedia/_image.scss +49 -0
  283. package/styles/styles/theme/base/components/overlay/_confirmpopup.scss +72 -0
  284. package/styles/styles/theme/base/components/overlay/_dialog.scss +73 -0
  285. package/styles/styles/theme/base/components/overlay/_overlaypanel.scss +64 -0
  286. package/styles/styles/theme/base/components/overlay/_sidebar.scss +27 -0
  287. package/styles/styles/theme/base/components/overlay/_tooltip.scss +33 -0
  288. package/styles/styles/theme/base/components/panel/_accordion.scss +119 -0
  289. package/styles/styles/theme/base/components/panel/_card.scss +30 -0
  290. package/styles/styles/theme/base/components/panel/_divider.scss +31 -0
  291. package/styles/styles/theme/base/components/panel/_fieldset.scss +47 -0
  292. package/styles/styles/theme/base/components/panel/_panel.scss +58 -0
  293. package/styles/styles/theme/base/components/panel/_scrollpanel.scss +6 -0
  294. package/styles/styles/theme/base/components/panel/_splitter.scss +19 -0
  295. package/styles/styles/theme/base/components/panel/_tabview.scss +82 -0
  296. package/styles/styles/theme/base/components/panel/_toolbar.scss +11 -0
  297. package/styles/styles/theme/saga/_extensions.scss +27 -0
  298. package/styles/styles/theme/saga/_variables.scss +1 -0
  299. package/styles/styles/theme/saga/saga-blue/_extensions.scss +2 -0
  300. package/styles/styles/theme/saga/saga-blue/_fonts.scss +1 -0
  301. package/styles/styles/theme/saga/saga-blue/_variables.scss +1 -0
  302. package/styles/styles/theme/saga/saga-blue/theme.scss +4 -0
@@ -0,0 +1,106 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { BaseControl } from '../base-control';
3
+ import { ReactiveFormsModule, FormsModule } from '@angular/forms';
4
+ import { RequiredComponent } from '../../components/required/required.component';
5
+ import { CommonModule } from '@angular/common';
6
+ import { getMimeTypeForFileName, isExcelFileType, isImageFileType } from '../../services/helper-functions';
7
+ import { TranslocoDirective } from '@jsverse/transloco';
8
+ import { BaseEntity } from '../../entities/base-entity';
9
+ import { PrimengModule } from '../../modules/primeng.module';
10
+ import { SpiderlyButtonComponent } from '../../components/spiderly-buttons/spiderly-button/spiderly-button.component';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@jsverse/transloco";
13
+ import * as i2 from "@angular/common";
14
+ import * as i3 from "primeng/api";
15
+ import * as i4 from "primeng/fileupload";
16
+ export class SpiderlyFileComponent extends BaseControl {
17
+ constructor(translocoService) {
18
+ super(translocoService);
19
+ this.translocoService = translocoService;
20
+ this.onFileSelected = new EventEmitter();
21
+ this.onFileRemoved = new EventEmitter();
22
+ this.acceptedFileTypes = ['image/*'];
23
+ this.multiple = false;
24
+ this.files = [];
25
+ }
26
+ ngOnInit() {
27
+ if (this.control?.value != null && this.fileData != null) {
28
+ const file = this.base64ToFile(this.fileData);
29
+ this.files.push(file);
30
+ }
31
+ this.acceptedFileTypesCommaSeparated = this.acceptedFileTypes.join(',');
32
+ super.ngOnInit();
33
+ }
34
+ filesSelected(event) {
35
+ const file = event.files[0];
36
+ const formData = new FormData();
37
+ formData.append('file', file, `${this.objectId}-${file.name}`);
38
+ this.onFileSelected.next(new SpiderlyFileSelectEvent({ file: file, formData: formData }));
39
+ }
40
+ choose(event, chooseCallback) {
41
+ chooseCallback();
42
+ }
43
+ fileRemoved(removeFileCallback, index) {
44
+ removeFileCallback(index);
45
+ this.control?.setValue(null);
46
+ this.onFileRemoved.next(null);
47
+ }
48
+ // FT: Put inside global functions if you need it
49
+ base64ToFile(base64String) {
50
+ const [header, base64Content] = base64String.split(';base64,');
51
+ const fileName = header.split('=')[1];
52
+ const mimeType = getMimeTypeForFileName(fileName);
53
+ const byteCharacters = atob(base64Content);
54
+ const byteNumbers = new Uint8Array(byteCharacters.length);
55
+ for (let i = 0; i < byteCharacters.length; i++) {
56
+ byteNumbers[i] = byteCharacters.charCodeAt(i);
57
+ }
58
+ const blob = new Blob([byteNumbers], { type: mimeType });
59
+ const file = new File([blob], fileName, { type: mimeType });
60
+ return file;
61
+ }
62
+ isImageFileType(mimeType) {
63
+ return isImageFileType(mimeType);
64
+ }
65
+ isExcelFileType(mimeType) {
66
+ return isExcelFileType(mimeType);
67
+ }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyFileComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
69
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SpiderlyFileComponent, isStandalone: true, selector: "spiderly-file", inputs: { objectId: "objectId", fileData: "fileData", acceptedFileTypes: "acceptedFileTypes", required: "required", multiple: "multiple", files: "files" }, outputs: { onFileSelected: "onFileSelected", onFileRemoved: "onFileRemoved" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <!-- FT: It's okay for this control, because for the custom uploads where we are not initializing the control from the backend, there is no need for formControl. -->\r\n <required *ngIf=\"control?.required || required\"></required>\r\n </div>\r\n\r\n <p-fileUpload \r\n [files]=\"files\" \r\n [disabled]=\"disabled\" \r\n [name]=\"control?.label ?? label\" \r\n [multiple]=\"multiple\" \r\n [accept]=\"acceptedFileTypesCommaSeparated\" \r\n [maxFileSize]=\"1000000\" \r\n (onSelect)=\"filesSelected($event)\"\r\n [class]=\"control?.invalid && control?.dirty ? 'control-error-border' : ''\"\r\n >\r\n <ng-template pTemplate=\"header\" let-files let-chooseCallback=\"chooseCallback\" let-clearCallback=\"clearCallback\" let-uploadCallback=\"uploadCallback\">\r\n <div class=\"flex flex-wrap justify-content-between align-items-center flex-1 gap-2\">\r\n <div class=\"flex gap-2\">\r\n <spiderly-button [disabled]=\"disabled\" (onClick)=\"choose($event, chooseCallback)\" icon=\"pi pi-upload\" [rounded]=\"true\" [outlined]=\"true\" />\r\n <!-- <p-button (onClick)=\"clearCallback()\" icon=\"pi pi-times\" [rounded]=\"true\" [outlined]=\"true\" severity=\"danger\" [disabled]=\"!files || files.length === 0\" /> -->\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\" let-files let-removeFileCallback=\"removeFileCallback\">\r\n <div *ngIf=\"files?.length > 0\">\r\n <div class=\"flex justify-content-center p-0 gap-5\">\r\n <div *ngFor=\"let file of files; let index = index\" class=\"card m-0 px-3 py-3 flex flex-column align-items-center gap-3\" style=\"justify-content: center; overflow: hidden;\">\r\n <div *ngIf=\"isImageFileType(file.type)\" class=\"image-container\">\r\n <img role=\"presentation\" [src]=\"file.objectURL\"/>\r\n </div>\r\n <div *ngIf=\"isExcelFileType(file.type)\" class=\"excel-container\">\r\n <div class=\"excel-details\">\r\n <i class=\"pi pi-file-excel\" style=\"color: green; margin-right: 4px;\"></i>\r\n <span class=\"file-name\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n <spiderly-button [disabled]=\"disabled\" icon=\"pi pi-times\" (onClick)=\"fileRemoved(removeFileCallback, index)\" [outlined]=\"true\" [rounded]=\"true\" severity=\"danger\" />\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"file\"> </ng-template>\r\n <ng-template pTemplate=\"empty\">\r\n <div class=\"flex align-items-center justify-content-center flex-column\">\r\n <i class=\"pi pi-cloud-upload border-2 border-circle p-5 text-8xl text-400 border-400\"></i>\r\n <p class=\"mt-4 mb-0\">{{t('DragAndDropFilesHereToUpload')}}</p>\r\n </div>\r\n </ng-template>\r\n </p-fileUpload>\r\n </div>\r\n</ng-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PrimengModule }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.FileUpload, selector: "p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "component", type: RequiredComponent, selector: "required" }, { kind: "component", type: SpiderlyButtonComponent, selector: "spiderly-button" }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
70
+ }
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyFileComponent, decorators: [{
72
+ type: Component,
73
+ args: [{ selector: 'spiderly-file', standalone: true, imports: [
74
+ CommonModule,
75
+ ReactiveFormsModule,
76
+ FormsModule,
77
+ PrimengModule,
78
+ RequiredComponent,
79
+ SpiderlyButtonComponent,
80
+ TranslocoDirective
81
+ ], template: "<ng-container *transloco=\"let t\">\r\n <div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <!-- FT: It's okay for this control, because for the custom uploads where we are not initializing the control from the backend, there is no need for formControl. -->\r\n <required *ngIf=\"control?.required || required\"></required>\r\n </div>\r\n\r\n <p-fileUpload \r\n [files]=\"files\" \r\n [disabled]=\"disabled\" \r\n [name]=\"control?.label ?? label\" \r\n [multiple]=\"multiple\" \r\n [accept]=\"acceptedFileTypesCommaSeparated\" \r\n [maxFileSize]=\"1000000\" \r\n (onSelect)=\"filesSelected($event)\"\r\n [class]=\"control?.invalid && control?.dirty ? 'control-error-border' : ''\"\r\n >\r\n <ng-template pTemplate=\"header\" let-files let-chooseCallback=\"chooseCallback\" let-clearCallback=\"clearCallback\" let-uploadCallback=\"uploadCallback\">\r\n <div class=\"flex flex-wrap justify-content-between align-items-center flex-1 gap-2\">\r\n <div class=\"flex gap-2\">\r\n <spiderly-button [disabled]=\"disabled\" (onClick)=\"choose($event, chooseCallback)\" icon=\"pi pi-upload\" [rounded]=\"true\" [outlined]=\"true\" />\r\n <!-- <p-button (onClick)=\"clearCallback()\" icon=\"pi pi-times\" [rounded]=\"true\" [outlined]=\"true\" severity=\"danger\" [disabled]=\"!files || files.length === 0\" /> -->\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\" let-files let-removeFileCallback=\"removeFileCallback\">\r\n <div *ngIf=\"files?.length > 0\">\r\n <div class=\"flex justify-content-center p-0 gap-5\">\r\n <div *ngFor=\"let file of files; let index = index\" class=\"card m-0 px-3 py-3 flex flex-column align-items-center gap-3\" style=\"justify-content: center; overflow: hidden;\">\r\n <div *ngIf=\"isImageFileType(file.type)\" class=\"image-container\">\r\n <img role=\"presentation\" [src]=\"file.objectURL\"/>\r\n </div>\r\n <div *ngIf=\"isExcelFileType(file.type)\" class=\"excel-container\">\r\n <div class=\"excel-details\">\r\n <i class=\"pi pi-file-excel\" style=\"color: green; margin-right: 4px;\"></i>\r\n <span class=\"file-name\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n <spiderly-button [disabled]=\"disabled\" icon=\"pi pi-times\" (onClick)=\"fileRemoved(removeFileCallback, index)\" [outlined]=\"true\" [rounded]=\"true\" severity=\"danger\" />\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"file\"> </ng-template>\r\n <ng-template pTemplate=\"empty\">\r\n <div class=\"flex align-items-center justify-content-center flex-column\">\r\n <i class=\"pi pi-cloud-upload border-2 border-circle p-5 text-8xl text-400 border-400\"></i>\r\n <p class=\"mt-4 mb-0\">{{t('DragAndDropFilesHereToUpload')}}</p>\r\n </div>\r\n </ng-template>\r\n </p-fileUpload>\r\n </div>\r\n</ng-container>" }]
82
+ }], ctorParameters: () => [{ type: i1.TranslocoService }], propDecorators: { onFileSelected: [{
83
+ type: Output
84
+ }], onFileRemoved: [{
85
+ type: Output
86
+ }], objectId: [{
87
+ type: Input
88
+ }], fileData: [{
89
+ type: Input
90
+ }], acceptedFileTypes: [{
91
+ type: Input
92
+ }], required: [{
93
+ type: Input
94
+ }], multiple: [{
95
+ type: Input
96
+ }], files: [{
97
+ type: Input
98
+ }] } });
99
+ export class SpiderlyFileSelectEvent extends BaseEntity {
100
+ constructor({ file, formData, } = {}) {
101
+ super('SpiderlyFileSelectEvent');
102
+ this.file = file;
103
+ this.formData = formData;
104
+ }
105
+ }
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LWZpbGUvc3BpZGVybHktZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LWZpbGUvc3BpZGVybHktZmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0csT0FBTyxFQUFFLGtCQUFrQixFQUFvQixNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkVBQTZFLENBQUM7Ozs7OztBQWlCdEgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFdBQVc7SUFZbEQsWUFDdUIsZ0JBQWtDO1FBRXJELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRkwscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVovQyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO1FBQzdELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUcxQyxzQkFBaUIsR0FBMkksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV4SyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLFVBQUssR0FBVyxFQUFFLENBQUM7SUFNNUIsQ0FBQztJQUVRLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTtZQUN0RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QjtRQUVELElBQUksQ0FBQywrQkFBK0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXhFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQXNCO1FBQ2hDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFNUIsTUFBTSxRQUFRLEdBQWEsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMxQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksdUJBQXVCLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLEVBQUUsY0FBYztRQUN4QixjQUFjLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLGtCQUFrQixFQUFFLEtBQWE7UUFDekMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGlEQUFpRDtJQUNqRCxZQUFZLENBQUMsWUFBb0I7UUFDN0IsTUFBTSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsTUFBTSxRQUFRLEdBQUcsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sV0FBVyxHQUFHLElBQUksVUFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUxRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM1QyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqRDtRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN6RCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRTVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxlQUFlLENBQUMsUUFBZ0I7UUFDNUIsT0FBTyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFnQjtRQUM1QixPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQyxDQUFDOytHQXpFUSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwyVUMzQmxDLDBtSEFxRGUsMkNEbkNQLFlBQVksK1BBQ1osbUJBQW1CLDhCQUNuQixXQUFXLDhCQUNYLGFBQWEsdTlCQUNiLGlCQUFpQixxREFDakIsdUJBQXVCLDREQUN2QixrQkFBa0I7OzRGQUdiLHFCQUFxQjtrQkFmakMsU0FBUzsrQkFDSSxlQUFlLGNBR2IsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjtxQkFDckI7cUZBR1MsY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSzs7QUFtRVYsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFVBQVU7SUFLbkQsWUFDQSxFQUNJLElBQUksRUFDSixRQUFRLE1BSVIsRUFBRTtRQUVGLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzdCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFzZUNvbnRyb2wgfSBmcm9tICcuLi9iYXNlLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUmVxdWlyZWRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3JlcXVpcmVkL3JlcXVpcmVkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZpbGVTZWxlY3RFdmVudCB9IGZyb20gJ3ByaW1lbmcvZmlsZXVwbG9hZCc7XHJcbmltcG9ydCB7IGdldE1pbWVUeXBlRm9yRmlsZU5hbWUsIGlzRXhjZWxGaWxlVHlwZSwgaXNJbWFnZUZpbGVUeXBlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaGVscGVyLWZ1bmN0aW9ucyc7XHJcbmltcG9ydCB7IFRyYW5zbG9jb0RpcmVjdGl2ZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IEJhc2VFbnRpdHkgfSBmcm9tICcuLi8uLi9lbnRpdGllcy9iYXNlLWVudGl0eSc7XHJcbmltcG9ydCB7IFByaW1lbmdNb2R1bGUgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3ByaW1lbmcubW9kdWxlJztcclxuaW1wb3J0IHsgU3BpZGVybHlCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NwaWRlcmx5LWJ1dHRvbnMvc3BpZGVybHktYnV0dG9uL3NwaWRlcmx5LWJ1dHRvbi5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NwaWRlcmx5LWZpbGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwaWRlcmx5LWZpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVzOiBbXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgUHJpbWVuZ01vZHVsZSxcclxuICAgICAgICBSZXF1aXJlZENvbXBvbmVudCxcclxuICAgICAgICBTcGlkZXJseUJ1dHRvbkNvbXBvbmVudCxcclxuICAgICAgICBUcmFuc2xvY29EaXJlY3RpdmVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNwaWRlcmx5RmlsZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb250cm9sIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBPdXRwdXQoKSBvbkZpbGVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U3BpZGVybHlGaWxlU2VsZWN0RXZlbnQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgb25GaWxlUmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcclxuICAgIEBJbnB1dCgpIG9iamVjdElkOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBmaWxlRGF0YTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgYWNjZXB0ZWRGaWxlVHlwZXM6IEFycmF5PCdpbWFnZS8qJyB8ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcgfCAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyB8ICcueGxzeCcgfCAnLnhscyc+ID0gWydpbWFnZS8qJ107XHJcbiAgICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbjsgLy8gRlQ6IEl0J3Mgb2theSBmb3IgdGhpcyBjb250cm9sLCBiZWNhdXNlIGZvciB0aGUgY3VzdG9tIHVwbG9hZHMgd2hlcmUgd2UgYXJlIG5vdCBpbml0aWFsaXppbmcgdGhlIGNvbnRyb2wgZnJvbSB0aGUgYmFja2VuZCwgdGhlcmUgaXMgbm8gbmVlZCBmb3IgZm9ybUNvbnRyb2wuXHJcbiAgICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBhY2NlcHRlZEZpbGVUeXBlc0NvbW1hU2VwYXJhdGVkOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBmaWxlczogRmlsZVtdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcbiAgICApIHsgXHJcbiAgICAgICAgc3VwZXIodHJhbnNsb2NvU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKXtcclxuICAgICAgICBpZiAodGhpcy5jb250cm9sPy52YWx1ZSAhPSBudWxsICYmIHRoaXMuZmlsZURhdGEgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjb25zdCBmaWxlID0gdGhpcy5iYXNlNjRUb0ZpbGUodGhpcy5maWxlRGF0YSk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZXMucHVzaChmaWxlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWNjZXB0ZWRGaWxlVHlwZXNDb21tYVNlcGFyYXRlZCA9IHRoaXMuYWNjZXB0ZWRGaWxlVHlwZXMuam9pbignLCcpO1xyXG5cclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZpbGVzU2VsZWN0ZWQoZXZlbnQ6IEZpbGVTZWxlY3RFdmVudCl7XHJcbiAgICAgICAgY29uc3QgZmlsZSA9IGV2ZW50LmZpbGVzWzBdO1xyXG5cclxuICAgICAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlLCBgJHt0aGlzLm9iamVjdElkfS0ke2ZpbGUubmFtZX1gKTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLm9uRmlsZVNlbGVjdGVkLm5leHQobmV3IFNwaWRlcmx5RmlsZVNlbGVjdEV2ZW50KHtmaWxlOiBmaWxlLCBmb3JtRGF0YTogZm9ybURhdGF9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hvb3NlKGV2ZW50LCBjaG9vc2VDYWxsYmFjayl7XHJcbiAgICAgICAgY2hvb3NlQ2FsbGJhY2soKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZmlsZVJlbW92ZWQocmVtb3ZlRmlsZUNhbGxiYWNrLCBpbmRleDogbnVtYmVyKXtcclxuICAgICAgICByZW1vdmVGaWxlQ2FsbGJhY2soaW5kZXgpO1xyXG4gICAgICAgIHRoaXMuY29udHJvbD8uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgICAgdGhpcy5vbkZpbGVSZW1vdmVkLm5leHQobnVsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRlQ6IFB1dCBpbnNpZGUgZ2xvYmFsIGZ1bmN0aW9ucyBpZiB5b3UgbmVlZCBpdFxyXG4gICAgYmFzZTY0VG9GaWxlKGJhc2U2NFN0cmluZzogc3RyaW5nKXtcclxuICAgICAgICBjb25zdCBbaGVhZGVyLCBiYXNlNjRDb250ZW50XSA9IGJhc2U2NFN0cmluZy5zcGxpdCgnO2Jhc2U2NCwnKTtcclxuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGhlYWRlci5zcGxpdCgnPScpWzFdO1xyXG4gICAgICAgIGNvbnN0IG1pbWVUeXBlID0gZ2V0TWltZVR5cGVGb3JGaWxlTmFtZShmaWxlTmFtZSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGJ5dGVDaGFyYWN0ZXJzID0gYXRvYihiYXNlNjRDb250ZW50KTtcclxuICAgICAgICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBVaW50OEFycmF5KGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aCk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZUNoYXJhY3RlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgYnl0ZU51bWJlcnNbaV0gPSBieXRlQ2hhcmFjdGVycy5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtieXRlTnVtYmVyc10sIHsgdHlwZTogbWltZVR5cGUgfSk7XHJcbiAgICAgICAgY29uc3QgZmlsZSA9IG5ldyBGaWxlKFtibG9iXSwgZmlsZU5hbWUsIHsgdHlwZTogbWltZVR5cGUgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmaWxlO1xyXG4gICAgfVxyXG5cclxuICAgIGlzSW1hZ2VGaWxlVHlwZShtaW1lVHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGlzSW1hZ2VGaWxlVHlwZShtaW1lVHlwZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNFeGNlbEZpbGVUeXBlKG1pbWVUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gaXNFeGNlbEZpbGVUeXBlKG1pbWVUeXBlKTtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTcGlkZXJseUZpbGVTZWxlY3RFdmVudCBleHRlbmRzIEJhc2VFbnRpdHlcclxue1xyXG4gICAgZmlsZT86IEZpbGU7XHJcbiAgICBmb3JtRGF0YT86IEZvcm1EYXRhO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAge1xyXG4gICAgICAgIGZpbGUsXHJcbiAgICAgICAgZm9ybURhdGEsXHJcbiAgICB9OntcclxuICAgICAgICBmaWxlPzogRmlsZTtcclxuICAgICAgICBmb3JtRGF0YT86IEZvcm1EYXRhO1xyXG4gICAgfSA9IHt9XHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcignU3BpZGVybHlGaWxlU2VsZWN0RXZlbnQnKTsgXHJcblxyXG4gICAgICAgIHRoaXMuZmlsZSA9IGZpbGU7XHJcbiAgICAgICAgdGhpcy5mb3JtRGF0YSA9IGZvcm1EYXRhO1xyXG4gICAgfVxyXG59IiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0yXCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImdldFRyYW5zbGF0ZWRMYWJlbCgpICE9ICcnICYmIGdldFRyYW5zbGF0ZWRMYWJlbCgpICE9IG51bGxcIj5cclxuICAgICAgICAgICAgPGxhYmVsPnt7Z2V0VHJhbnNsYXRlZExhYmVsKCl9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwhLS0gRlQ6IEl0J3Mgb2theSBmb3IgdGhpcyBjb250cm9sLCBiZWNhdXNlIGZvciB0aGUgY3VzdG9tIHVwbG9hZHMgd2hlcmUgd2UgYXJlIG5vdCBpbml0aWFsaXppbmcgdGhlIGNvbnRyb2wgZnJvbSB0aGUgYmFja2VuZCwgdGhlcmUgaXMgbm8gbmVlZCBmb3IgZm9ybUNvbnRyb2wuIC0tPlxyXG4gICAgICAgICAgICA8cmVxdWlyZWQgKm5nSWY9XCJjb250cm9sPy5yZXF1aXJlZCB8fCByZXF1aXJlZFwiPjwvcmVxdWlyZWQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxwLWZpbGVVcGxvYWQgXHJcbiAgICAgICAgW2ZpbGVzXT1cImZpbGVzXCIgXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgXHJcbiAgICAgICAgW25hbWVdPVwiY29udHJvbD8ubGFiZWwgPz8gbGFiZWxcIiBcclxuICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIiBcclxuICAgICAgICBbYWNjZXB0XT1cImFjY2VwdGVkRmlsZVR5cGVzQ29tbWFTZXBhcmF0ZWRcIiBcclxuICAgICAgICBbbWF4RmlsZVNpemVdPVwiMTAwMDAwMFwiIFxyXG4gICAgICAgIChvblNlbGVjdCk9XCJmaWxlc1NlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgIFtjbGFzc109XCJjb250cm9sPy5pbnZhbGlkICYmIGNvbnRyb2w/LmRpcnR5ID8gJ2NvbnRyb2wtZXJyb3ItYm9yZGVyJyA6ICcnXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtZmlsZXMgbGV0LWNob29zZUNhbGxiYWNrPVwiY2hvb3NlQ2FsbGJhY2tcIiBsZXQtY2xlYXJDYWxsYmFjaz1cImNsZWFyQ2FsbGJhY2tcIiBsZXQtdXBsb2FkQ2FsbGJhY2s9XCJ1cGxvYWRDYWxsYmFja1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LTEgZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BpZGVybHktYnV0dG9uIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIChvbkNsaWNrKT1cImNob29zZSgkZXZlbnQsIGNob29zZUNhbGxiYWNrKVwiIGljb249XCJwaSBwaS11cGxvYWRcIiBbcm91bmRlZF09XCJ0cnVlXCIgW291dGxpbmVkXT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxwLWJ1dHRvbiAob25DbGljayk9XCJjbGVhckNhbGxiYWNrKClcIiBpY29uPVwicGkgcGktdGltZXNcIiBbcm91bmRlZF09XCJ0cnVlXCIgW291dGxpbmVkXT1cInRydWVcIiBzZXZlcml0eT1cImRhbmdlclwiIFtkaXNhYmxlZF09XCIhZmlsZXMgfHwgZmlsZXMubGVuZ3RoID09PSAwXCIgLz4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIiBsZXQtZmlsZXMgbGV0LXJlbW92ZUZpbGVDYWxsYmFjaz1cInJlbW92ZUZpbGVDYWxsYmFja1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZpbGVzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBwLTAgZ2FwLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlczsgbGV0IGluZGV4ID0gaW5kZXhcIiBjbGFzcz1cImNhcmQgbS0wIHB4LTMgcHktMyBmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiIHN0eWxlPVwianVzdGlmeS1jb250ZW50OiBjZW50ZXI7IG92ZXJmbG93OiBoaWRkZW47XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNJbWFnZUZpbGVUeXBlKGZpbGUudHlwZSlcIiBjbGFzcz1cImltYWdlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgcm9sZT1cInByZXNlbnRhdGlvblwiIFtzcmNdPVwiZmlsZS5vYmplY3RVUkxcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0V4Y2VsRmlsZVR5cGUoZmlsZS50eXBlKVwiIGNsYXNzPVwiZXhjZWwtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4Y2VsLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1maWxlLWV4Y2VsXCIgc3R5bGU9XCJjb2xvcjogZ3JlZW47IG1hcmdpbi1yaWdodDogNHB4O1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBmaWxlLm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGlkZXJseS1idXR0b24gW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgaWNvbj1cInBpIHBpLXRpbWVzXCIgKG9uQ2xpY2spPVwiZmlsZVJlbW92ZWQocmVtb3ZlRmlsZUNhbGxiYWNrLCBpbmRleClcIiBbb3V0bGluZWRdPVwidHJ1ZVwiIFtyb3VuZGVkXT1cInRydWVcIiBzZXZlcml0eT1cImRhbmdlclwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmaWxlXCI+IDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWNsb3VkLXVwbG9hZCBib3JkZXItMiBib3JkZXItY2lyY2xlIHAtNSB0ZXh0LTh4bCB0ZXh0LTQwMCBib3JkZXItNDAwXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibXQtNCBtYi0wXCI+e3t0KCdEcmFnQW5kRHJvcEZpbGVzSGVyZVRvVXBsb2FkJyl9fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvcC1maWxlVXBsb2FkPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { Component } from '@angular/core';
2
+ import { BaseAutocompleteControl } from '../base-autocomplete-control';
3
+ import { CommonModule } from '@angular/common';
4
+ import { ReactiveFormsModule, FormsModule } from '@angular/forms';
5
+ import { RequiredComponent } from '../../components/required/required.component';
6
+ import { PrimengModule } from '../../modules/primeng.module';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@jsverse/transloco";
9
+ import * as i2 from "@angular/forms";
10
+ import * as i3 from "primeng/tooltip";
11
+ import * as i4 from "primeng/autocomplete";
12
+ import * as i5 from "@angular/common";
13
+ export class SpiderlyMultiAutocompleteComponent extends BaseAutocompleteControl {
14
+ // @Input() required: boolean = true; // TODO FT: delete if you don't need through whole app
15
+ constructor(translocoService) {
16
+ super(translocoService);
17
+ this.translocoService = translocoService;
18
+ }
19
+ ngOnInit() {
20
+ super.ngOnInit();
21
+ }
22
+ search(event) {
23
+ this.onTextInput.next(event);
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyMultiAutocompleteComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SpiderlyMultiAutocompleteComponent, isStandalone: true, selector: "spiderly-multiautocomplete", usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <div class=\"p-inputgroup p-fluid\">\r\n <p-autoComplete \r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [id]=\"label\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [suggestions]=\"options\"\r\n (completeMethod)=\"search($event)\"\r\n [forceSelection]=\"true\"\r\n [multiple]=\"true\" \r\n [dropdown]=\"false\"\r\n [showClear]=\"true\"\r\n (onHide)=\"dropdownMarkAsDirty()\"\r\n [completeOnFocus]=\"true\"\r\n dropdownIcon=\"pi pi-plus\"\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n />\r\n <span *ngIf=\"showAddon\" (click)=\"addonClick()\" class=\"p-inputgroup-addon\" style=\"cursor: pointer; background-color: var(--primary-color); border-color: var(--primary-color);\">\r\n <i class=\"pi {{addonIcon}}\" style=\"color: #fff;\"></i>\r\n </span>\r\n </div>\r\n</div>", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PrimengModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i4.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "variant"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyMultiAutocompleteComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: 'spiderly-multiautocomplete', standalone: true, imports: [
31
+ ReactiveFormsModule,
32
+ FormsModule,
33
+ PrimengModule,
34
+ CommonModule,
35
+ RequiredComponent
36
+ ], template: "<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <div class=\"p-inputgroup p-fluid\">\r\n <p-autoComplete \r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [id]=\"label\"\r\n [formControl]=\"control\"\r\n [placeholder]=\"placeholder\"\r\n [suggestions]=\"options\"\r\n (completeMethod)=\"search($event)\"\r\n [forceSelection]=\"true\"\r\n [multiple]=\"true\" \r\n [dropdown]=\"false\"\r\n [showClear]=\"true\"\r\n (onHide)=\"dropdownMarkAsDirty()\"\r\n [completeOnFocus]=\"true\"\r\n dropdownIcon=\"pi pi-plus\"\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n />\r\n <span *ngIf=\"showAddon\" (click)=\"addonClick()\" class=\"p-inputgroup-addon\" style=\"cursor: pointer; background-color: var(--primary-color); border-color: var(--primary-color);\">\r\n <i class=\"pi {{addonIcon}}\" style=\"color: #fff;\"></i>\r\n </span>\r\n </div>\r\n</div>" }]
37
+ }], ctorParameters: () => [{ type: i1.TranslocoService }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktbXVsdGlhdXRvY29tcGxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb250cm9scy9zcGlkZXJseS1tdWx0aWF1dG9jb21wbGV0ZS9zcGlkZXJseS1tdWx0aWF1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LW11bHRpYXV0b2NvbXBsZXRlL3NwaWRlcmx5LW11bHRpYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7O0FBZTdELE1BQU0sT0FBTyxrQ0FBbUMsU0FBUSx1QkFBdUI7SUFDM0UsNEZBQTRGO0lBRTVGLFlBQ3VCLGdCQUFrQztRQUVyRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUZMLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFHekQsQ0FBQztJQUVRLFFBQVE7UUFDYixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFnQztRQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOytHQWZRLGtDQUFrQzttR0FBbEMsa0NBQWtDLDZHQ3RCL0MsZ3dDQTRCTSwyQ0RiRSxtQkFBbUIseVRBQ25CLFdBQVcsOEJBQ1gsYUFBYSxvaURBQ2IsWUFBWSxtSUFDWixpQkFBaUI7OzRGQUdaLGtDQUFrQztrQkFiOUMsU0FBUzsrQkFDSSw0QkFBNEIsY0FHMUIsSUFBSSxXQUNQO3dCQUNMLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLFlBQVk7d0JBQ1osaUJBQWlCO3FCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXV0b0NvbXBsZXRlQ29tcGxldGVFdmVudCB9IGZyb20gJ3ByaW1lbmcvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgQmFzZUF1dG9jb21wbGV0ZUNvbnRyb2wgfSBmcm9tICcuLi9iYXNlLWF1dG9jb21wbGV0ZS1jb250cm9sJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJlcXVpcmVkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9yZXF1aXJlZC9yZXF1aXJlZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgUHJpbWVuZ01vZHVsZSB9IGZyb20gJy4uLy4uL21vZHVsZXMvcHJpbWVuZy5tb2R1bGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NwaWRlcmx5LW11bHRpYXV0b2NvbXBsZXRlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zcGlkZXJseS1tdWx0aWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZXM6IFtdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFByaW1lbmdNb2R1bGUsXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFJlcXVpcmVkQ29tcG9uZW50XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGlkZXJseU11bHRpQXV0b2NvbXBsZXRlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUF1dG9jb21wbGV0ZUNvbnRyb2wgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgLy8gQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSB0cnVlOyAvLyBUT0RPIEZUOiBkZWxldGUgaWYgeW91IGRvbid0IG5lZWQgdGhyb3VnaCB3aG9sZSBhcHBcclxuICAgIFxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcbiAgICApIHsgXHJcbiAgICAgICAgc3VwZXIodHJhbnNsb2NvU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKXtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlYXJjaChldmVudDogQXV0b0NvbXBsZXRlQ29tcGxldGVFdmVudCl7XHJcbiAgICAgICAgdGhpcy5vblRleHRJbnB1dC5uZXh0KGV2ZW50KTtcclxuICAgIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gZ2FwLTJcIj5cclxuICA8ZGl2PlxyXG4gICAgPGxhYmVsPnt7Z2V0VHJhbnNsYXRlZExhYmVsKCl9fTwvbGFiZWw+XHJcbiAgICA8cmVxdWlyZWQgKm5nSWY9XCJjb250cm9sPy5yZXF1aXJlZFwiPjwvcmVxdWlyZWQ+XHJcbiAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC1pbnB1dGdyb3VwIHAtZmx1aWRcIj5cclxuICAgICAgPHAtYXV0b0NvbXBsZXRlIFxyXG4gICAgICAqbmdJZj1cImNvbnRyb2xcIlxyXG4gICAgICBbcFRvb2x0aXBdPVwiZ2V0VmFsaWRhdGlvbkVycnJvck1lc3NhZ2VzKClcIiBbdG9vbHRpcEV2ZW50XT1cImVycm9yTWVzc2FnZVRvb2x0aXBFdmVudFwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFt0b29sdGlwRGlzYWJsZWRdPVwiY29udHJvbC52YWxpZFwiIHRvb2x0aXBTdHlsZUNsYXNzPVwic3BpZGVybHktdG9vbHRpcC1pbnZhbGlkXCJcclxuICAgICAgW2lkXT1cImxhYmVsXCJcclxuICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbc3VnZ2VzdGlvbnNdPVwib3B0aW9uc1wiXHJcbiAgICAgIChjb21wbGV0ZU1ldGhvZCk9XCJzZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgIFtmb3JjZVNlbGVjdGlvbl09XCJ0cnVlXCJcclxuICAgICAgW211bHRpcGxlXT1cInRydWVcIiBcclxuICAgICAgW2Ryb3Bkb3duXT1cImZhbHNlXCJcclxuICAgICAgW3Nob3dDbGVhcl09XCJ0cnVlXCJcclxuICAgICAgKG9uSGlkZSk9XCJkcm9wZG93bk1hcmtBc0RpcnR5KClcIlxyXG4gICAgICBbY29tcGxldGVPbkZvY3VzXT1cInRydWVcIlxyXG4gICAgICBkcm9wZG93bkljb249XCJwaSBwaS1wbHVzXCJcclxuICAgICAgW3N0eWxlXT1cInsnd2lkdGgnOicxMDAlJ31cIlxyXG4gICAgICBbaW5wdXRTdHlsZV09XCJ7J3dpZHRoJzonMTAwJSd9XCJcclxuICAgICAgLz5cclxuICAgIDxzcGFuICpuZ0lmPVwic2hvd0FkZG9uXCIgKGNsaWNrKT1cImFkZG9uQ2xpY2soKVwiIGNsYXNzPVwicC1pbnB1dGdyb3VwLWFkZG9uXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpOyBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1wiPlxyXG4gICAgICA8aSBjbGFzcz1cInBpIHt7YWRkb25JY29ufX1cIiBzdHlsZT1cImNvbG9yOiAjZmZmO1wiPjwvaT5cclxuICAgIDwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -0,0 +1,34 @@
1
+ import { Component } from '@angular/core';
2
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
3
+ import { CommonModule } from '@angular/common';
4
+ import { RequiredComponent } from '../../components/required/required.component';
5
+ import { BaseDropdownControl } from '../base-dropdown-control';
6
+ import { PrimengModule } from '../../modules/primeng.module';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@jsverse/transloco";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "@angular/forms";
11
+ import * as i4 from "primeng/multiselect";
12
+ import * as i5 from "primeng/tooltip";
13
+ export class SpiderlyMultiSelectComponent extends BaseDropdownControl {
14
+ constructor(translocoService) {
15
+ super(translocoService);
16
+ this.translocoService = translocoService;
17
+ }
18
+ ngOnInit() {
19
+ super.ngOnInit();
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyMultiSelectComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SpiderlyMultiSelectComponent, isStandalone: true, selector: "spiderly-multiselect", usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <span class=\"p-fluid\">\r\n <p-multiSelect\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [id]=\"label\"\r\n [formControl]=\"control\"\r\n [options]=\"options\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n display=\"chip\"\r\n [maxSelectedLabels]=\"20\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n <!-- [virtualScroll]=\"true\" FT: I think that this is not doing anything, check -->\r\n <!-- (onFilter)=\"search($event)\" FT: While they don't implement lazy load like here: https://github.com/yelhouti/primeng/blob/8.0.0-rc2/src/app/components/multiselect/multiselect.ts\r\n we need to use this and dropdown control only on the client -->\r\n </span>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PrimengModule }, { kind: "component", type: i4.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyMultiSelectComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'spiderly-multiselect', standalone: true, imports: [
27
+ CommonModule,
28
+ ReactiveFormsModule,
29
+ FormsModule,
30
+ PrimengModule,
31
+ RequiredComponent
32
+ ], template: "<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <span class=\"p-fluid\">\r\n <p-multiSelect\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [id]=\"label\"\r\n [formControl]=\"control\"\r\n [options]=\"options\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n display=\"chip\"\r\n [maxSelectedLabels]=\"20\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n <!-- [virtualScroll]=\"true\" FT: I think that this is not doing anything, check -->\r\n <!-- (onFilter)=\"search($event)\" FT: While they don't implement lazy load like here: https://github.com/yelhouti/primeng/blob/8.0.0-rc2/src/app/components/multiselect/multiselect.ts\r\n we need to use this and dropdown control only on the client -->\r\n </span>\r\n</div>" }]
33
+ }], ctorParameters: () => [{ type: i1.TranslocoService }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktbXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb250cm9scy9zcGlkZXJseS1tdWx0aXNlbGVjdC9zcGlkZXJseS1tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LW11bHRpc2VsZWN0L3NwaWRlcmx5LW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7QUFnQjdELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxtQkFBbUI7SUFFakUsWUFDdUIsZ0JBQWtDO1FBRXJELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRkwscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUd6RCxDQUFDO0lBRVEsUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDOytHQVZRLDRCQUE0QjttR0FBNUIsNEJBQTRCLHVHQ3RCekMsbWpDQXNCTSwyQ0RQRSxZQUFZLGtJQUNaLG1CQUFtQix5VEFDbkIsV0FBVyw4QkFDWCxhQUFhLDRxREFDYixpQkFBaUI7OzRGQUdaLDRCQUE0QjtrQkFkeEMsU0FBUzsrQkFDSSxzQkFBc0IsY0FJcEIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsaUJBQWlCO3FCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBSZXF1aXJlZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVxdWlyZWQvcmVxdWlyZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFzZURyb3Bkb3duQ29udHJvbCB9IGZyb20gJy4uL2Jhc2UtZHJvcGRvd24tY29udHJvbCc7XHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBQcmltZW5nTW9kdWxlIH0gZnJvbSAnLi4vLi4vbW9kdWxlcy9wcmltZW5nLm1vZHVsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc3BpZGVybHktbXVsdGlzZWxlY3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwaWRlcmx5LW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlczogW1xyXG4gICAgXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgUHJpbWVuZ01vZHVsZSxcclxuICAgICAgICBSZXF1aXJlZENvbXBvbmVudFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3BpZGVybHlNdWx0aVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VEcm9wZG93bkNvbnRyb2wgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuICAgICkgeyBcclxuICAgICAgICBzdXBlcih0cmFuc2xvY29TZXJ2aWNlKTtcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpe1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gZ2FwLTJcIj5cclxuICA8ZGl2PlxyXG4gICAgPGxhYmVsPnt7Z2V0VHJhbnNsYXRlZExhYmVsKCl9fTwvbGFiZWw+XHJcbiAgICA8cmVxdWlyZWQgKm5nSWY9XCJjb250cm9sPy5yZXF1aXJlZFwiPjwvcmVxdWlyZWQ+XHJcbiAgPC9kaXY+XHJcbiAgPHNwYW4gY2xhc3M9XCJwLWZsdWlkXCI+XHJcbiAgICA8cC1tdWx0aVNlbGVjdFxyXG4gICAgKm5nSWY9XCJjb250cm9sXCJcclxuICAgIFtwVG9vbHRpcF09XCJnZXRWYWxpZGF0aW9uRXJycm9yTWVzc2FnZXMoKVwiIFt0b29sdGlwRXZlbnRdPVwiZXJyb3JNZXNzYWdlVG9vbHRpcEV2ZW50XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW3Rvb2x0aXBEaXNhYmxlZF09XCJjb250cm9sLnZhbGlkXCIgdG9vbHRpcFN0eWxlQ2xhc3M9XCJzcGlkZXJseS10b29sdGlwLWludmFsaWRcIlxyXG4gICAgW2lkXT1cImxhYmVsXCJcclxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxyXG4gICAgb3B0aW9uTGFiZWw9XCJsYWJlbFwiXHJcbiAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCJcclxuICAgIGRpc3BsYXk9XCJjaGlwXCJcclxuICAgIFttYXhTZWxlY3RlZExhYmVsc109XCIyMFwiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgLz5cclxuICAgIDwhLS0gW3ZpcnR1YWxTY3JvbGxdPVwidHJ1ZVwiIEZUOiBJIHRoaW5rIHRoYXQgdGhpcyBpcyBub3QgZG9pbmcgYW55dGhpbmcsIGNoZWNrIC0tPlxyXG4gICAgPCEtLSAob25GaWx0ZXIpPVwic2VhcmNoKCRldmVudClcIiBGVDogV2hpbGUgdGhleSBkb24ndCBpbXBsZW1lbnQgbGF6eSBsb2FkIGxpa2UgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL3llbGhvdXRpL3ByaW1lbmcvYmxvYi84LjAuMC1yYzIvc3JjL2FwcC9jb21wb25lbnRzL211bHRpc2VsZWN0L211bHRpc2VsZWN0LnRzXHJcbiAgICAgd2UgbmVlZCB0byB1c2UgdGhpcyBhbmQgZHJvcGRvd24gY29udHJvbCBvbmx5IG9uIHRoZSBjbGllbnQgLS0+XHJcbiAgPC9zcGFuPlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,44 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { BaseControl } from '../base-control';
3
+ import { ReactiveFormsModule, FormsModule } from '@angular/forms';
4
+ import { RequiredComponent } from '../../components/required/required.component';
5
+ import { CommonModule } from '@angular/common';
6
+ import { PrimengModule } from '../../modules/primeng.module';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@jsverse/transloco";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "@angular/forms";
11
+ import * as i4 from "primeng/tooltip";
12
+ import * as i5 from "primeng/inputnumber";
13
+ export class SpiderlyNumberComponent extends BaseControl {
14
+ constructor(translocoService) {
15
+ super(translocoService);
16
+ this.translocoService = translocoService;
17
+ this.showButtons = true;
18
+ this.maxFractionDigits = 0;
19
+ }
20
+ ngOnInit() {
21
+ super.ngOnInit();
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyNumberComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SpiderlyNumberComponent, isStandalone: true, selector: "spiderly-number", inputs: { prefix: "prefix", showButtons: "showButtons", decimal: "decimal", maxFractionDigits: "maxFractionDigits" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"showLabel\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <p-inputNumber\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (onBlur)=\"control.markAsDirty()\"\r\n [prefix]=\"prefix\"\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n [showButtons]=\"showButtons\"\r\n buttonLayout=\"horizontal\"\r\n [maxFractionDigits]=\"maxFractionDigits\"\r\n />\r\n </div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PrimengModule }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i5.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "variant", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyNumberComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: 'spiderly-number', standalone: true, imports: [
29
+ CommonModule,
30
+ ReactiveFormsModule,
31
+ FormsModule,
32
+ PrimengModule,
33
+ RequiredComponent
34
+ ], template: "<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"showLabel\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <p-inputNumber\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (onBlur)=\"control.markAsDirty()\"\r\n [prefix]=\"prefix\"\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n [showButtons]=\"showButtons\"\r\n buttonLayout=\"horizontal\"\r\n [maxFractionDigits]=\"maxFractionDigits\"\r\n />\r\n </div>" }]
35
+ }], ctorParameters: () => [{ type: i1.TranslocoService }], propDecorators: { prefix: [{
36
+ type: Input
37
+ }], showButtons: [{
38
+ type: Input
39
+ }], decimal: [{
40
+ type: Input
41
+ }], maxFractionDigits: [{
42
+ type: Input
43
+ }] } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaWRlcmx5L3NyYy9saWIvY29udHJvbHMvc3BpZGVybHktbnVtYmVyL3NwaWRlcmx5LW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LW51bWJlci9zcGlkZXJseS1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7O0FBZTdELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxXQUFXO0lBTXBELFlBQ3VCLGdCQUFrQztRQUVyRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUZMLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFMaEQsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFFNUIsc0JBQWlCLEdBQVcsQ0FBQyxDQUFDO0lBTXZDLENBQUM7SUFFUSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7K0dBZFEsdUJBQXVCO21HQUF2Qix1QkFBdUIsd05DckJwQyxzeEJBa0JRLDJDREpBLFlBQVksa0lBQ1osbUJBQW1CLHlUQUNuQixXQUFXLDhCQUNYLGFBQWEsaWxDQUNiLGlCQUFpQjs7NEZBR1osdUJBQXVCO2tCQWJuQyxTQUFTOytCQUNJLGlCQUFpQixjQUdmLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGlCQUFpQjtxQkFDcEI7cUZBR1EsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQ29udHJvbCB9IGZyb20gJy4uL2Jhc2UtY29udHJvbCc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSZXF1aXJlZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVxdWlyZWQvcmVxdWlyZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IFByaW1lbmdNb2R1bGUgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3ByaW1lbmcubW9kdWxlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzcGlkZXJseS1udW1iZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwaWRlcmx5LW51bWJlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZXM6IFtdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBQcmltZW5nTW9kdWxlLFxyXG4gICAgICAgIFJlcXVpcmVkQ29tcG9uZW50XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGlkZXJseU51bWJlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb250cm9sIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIHByZWZpeDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgc2hvd0J1dHRvbnM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgZGVjaW1hbDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIG1heEZyYWN0aW9uRGlnaXRzOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG4gICAgKSB7IFxyXG4gICAgICAgIHN1cGVyKHRyYW5zbG9jb1NlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCl7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuICAgIFxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0yXCI+XHJcbiAgPGRpdiAqbmdJZj1cInNob3dMYWJlbFwiPlxyXG4gICAgPGxhYmVsPnt7Z2V0VHJhbnNsYXRlZExhYmVsKCl9fTwvbGFiZWw+XHJcbiAgICA8cmVxdWlyZWQgKm5nSWY9XCJjb250cm9sPy5yZXF1aXJlZFwiPjwvcmVxdWlyZWQ+XHJcbiAgPC9kaXY+XHJcbiAgPHAtaW5wdXROdW1iZXJcclxuICAgICpuZ0lmPVwiY29udHJvbFwiXHJcbiAgICBbcFRvb2x0aXBdPVwiZ2V0VmFsaWRhdGlvbkVycnJvck1lc3NhZ2VzKClcIiBbdG9vbHRpcEV2ZW50XT1cImVycm9yTWVzc2FnZVRvb2x0aXBFdmVudFwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFt0b29sdGlwRGlzYWJsZWRdPVwiY29udHJvbC52YWxpZFwiIHRvb2x0aXBTdHlsZUNsYXNzPVwic3BpZGVybHktdG9vbHRpcC1pbnZhbGlkXCJcclxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgIFtpZF09XCJjb250cm9sLmxhYmVsXCJcclxuICAgIChvbkJsdXIpPVwiY29udHJvbC5tYXJrQXNEaXJ0eSgpXCJcclxuICAgIFtwcmVmaXhdPVwicHJlZml4XCJcclxuICAgIFtzdHlsZV09XCJ7J3dpZHRoJzonMTAwJSd9XCJcclxuICAgIFtpbnB1dFN0eWxlXT1cInsnd2lkdGgnOicxMDAlJ31cIlxyXG4gICAgW3Nob3dCdXR0b25zXT1cInNob3dCdXR0b25zXCJcclxuICAgIGJ1dHRvbkxheW91dD1cImhvcml6b250YWxcIlxyXG4gICAgW21heEZyYWN0aW9uRGlnaXRzXT1cIm1heEZyYWN0aW9uRGlnaXRzXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+Il19
@@ -0,0 +1,37 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { BaseControl } from '../base-control';
3
+ import { ReactiveFormsModule, FormsModule } from '@angular/forms';
4
+ import { RequiredComponent } from '../../components/required/required.component';
5
+ import { CommonModule } from '@angular/common';
6
+ import { PrimengModule } from '../../modules/primeng.module';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@jsverse/transloco";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "@angular/forms";
11
+ import * as i4 from "primeng/tooltip";
12
+ import * as i5 from "primeng/password";
13
+ export class SpiderlyPasswordComponent extends BaseControl {
14
+ constructor(translocoService) {
15
+ super(translocoService);
16
+ this.translocoService = translocoService;
17
+ this.showPasswordStrength = false;
18
+ }
19
+ ngOnInit() {
20
+ super.ngOnInit();
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyPasswordComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SpiderlyPasswordComponent, isStandalone: true, selector: "spiderly-password", inputs: { showPasswordStrength: "showPasswordStrength" }, usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <p-password\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [formControl]=\"control\"\r\n [id]=\"control?.label\"\r\n [toggleMask]=\"true\"\r\n [feedback]=\"showPasswordStrength\"\r\n (onBlur)=\"control?.markAsDirty()\"\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n />\r\n </div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PrimengModule }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i5.Password, selector: "p-password", inputs: ["ariaLabel", "ariaLabelledBy", "label", "disabled", "promptLabel", "mediumRegex", "strongRegex", "weakLabel", "mediumLabel", "maxLength", "strongLabel", "inputId", "feedback", "appendTo", "toggleMask", "inputStyleClass", "styleClass", "style", "inputStyle", "showTransitionOptions", "hideTransitionOptions", "autocomplete", "placeholder", "showClear", "autofocus", "variant"], outputs: ["onFocus", "onBlur", "onClear"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyPasswordComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'spiderly-password', standalone: true, imports: [
28
+ CommonModule,
29
+ ReactiveFormsModule,
30
+ FormsModule,
31
+ PrimengModule,
32
+ RequiredComponent
33
+ ], template: "<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <p-password\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n [formControl]=\"control\"\r\n [id]=\"control?.label\"\r\n [toggleMask]=\"true\"\r\n [feedback]=\"showPasswordStrength\"\r\n (onBlur)=\"control?.markAsDirty()\"\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n />\r\n </div>\r\n" }]
34
+ }], ctorParameters: () => [{ type: i1.TranslocoService }], propDecorators: { showPasswordStrength: [{
35
+ type: Input
36
+ }] } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb250cm9scy9zcGlkZXJseS1wYXNzd29yZC9zcGlkZXJseS1wYXNzd29yZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LXBhc3N3b3JkL3NwaWRlcmx5LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7OztBQWU3RCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsV0FBVztJQUd0RCxZQUN1QixnQkFBa0M7UUFFckQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFGTCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBSGhELHlCQUFvQixHQUFZLEtBQUssQ0FBQztJQU0vQyxDQUFDO0lBRVEsUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDOytHQVhRLHlCQUF5QjttR0FBekIseUJBQXlCLDhKQ3JCdEMseXJCQWlCQSwyQ0RIUSxZQUFZLGtJQUNaLG1CQUFtQix5VEFDbkIsV0FBVyw4QkFDWCxhQUFhLHEyQkFDYixpQkFBaUI7OzRGQUdaLHlCQUF5QjtrQkFickMsU0FBUzsrQkFDSSxtQkFBbUIsY0FHakIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsaUJBQWlCO3FCQUNwQjtxRkFHUSxvQkFBb0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFzZUNvbnRyb2wgfSBmcm9tICcuLi9iYXNlLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUmVxdWlyZWRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3JlcXVpcmVkL3JlcXVpcmVkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBQcmltZW5nTW9kdWxlIH0gZnJvbSAnLi4vLi4vbW9kdWxlcy9wcmltZW5nLm1vZHVsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc3BpZGVybHktcGFzc3dvcmQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwaWRlcmx5LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlczogW10sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFByaW1lbmdNb2R1bGUsXHJcbiAgICAgICAgUmVxdWlyZWRDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNwaWRlcmx5UGFzc3dvcmRDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29udHJvbCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASW5wdXQoKSBzaG93UGFzc3dvcmRTdHJlbmd0aDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG4gICAgKSB7IFxyXG4gICAgICAgIHN1cGVyKHRyYW5zbG9jb1NlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCl7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gZ2FwLTJcIj5cclxuICA8ZGl2PlxyXG4gICAgPGxhYmVsPnt7Z2V0VHJhbnNsYXRlZExhYmVsKCl9fTwvbGFiZWw+XHJcbiAgICA8cmVxdWlyZWQgKm5nSWY9XCJjb250cm9sPy5yZXF1aXJlZFwiPjwvcmVxdWlyZWQ+XHJcbiAgPC9kaXY+XHJcbiAgPHAtcGFzc3dvcmRcclxuICAgICpuZ0lmPVwiY29udHJvbFwiXHJcbiAgICBbcFRvb2x0aXBdPVwiZ2V0VmFsaWRhdGlvbkVycnJvck1lc3NhZ2VzKClcIiBbdG9vbHRpcEV2ZW50XT1cImVycm9yTWVzc2FnZVRvb2x0aXBFdmVudFwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFt0b29sdGlwRGlzYWJsZWRdPVwiY29udHJvbC52YWxpZFwiIHRvb2x0aXBTdHlsZUNsYXNzPVwic3BpZGVybHktdG9vbHRpcC1pbnZhbGlkXCJcclxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgIFtpZF09XCJjb250cm9sPy5sYWJlbFwiXHJcbiAgICBbdG9nZ2xlTWFza109XCJ0cnVlXCJcclxuICAgIFtmZWVkYmFja109XCJzaG93UGFzc3dvcmRTdHJlbmd0aFwiXHJcbiAgICAob25CbHVyKT1cImNvbnRyb2w/Lm1hcmtBc0RpcnR5KClcIlxyXG4gICAgW3N0eWxlXT1cInsnd2lkdGgnOicxMDAlJ31cIlxyXG4gICAgW2lucHV0U3R5bGVdPVwieyd3aWR0aCc6JzEwMCUnfVwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,34 @@
1
+ import { Component } from '@angular/core';
2
+ import { BaseControl } from '../base-control';
3
+ import { ReactiveFormsModule, FormsModule } from '@angular/forms';
4
+ import { RequiredComponent } from '../../components/required/required.component';
5
+ import { CommonModule } from '@angular/common';
6
+ import { PrimengModule } from '../../modules/primeng.module';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@jsverse/transloco";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "@angular/forms";
11
+ import * as i4 from "primeng/inputtextarea";
12
+ import * as i5 from "primeng/tooltip";
13
+ export class SpiderlyTextareaComponent extends BaseControl {
14
+ constructor(translocoService) {
15
+ super(translocoService);
16
+ this.translocoService = translocoService;
17
+ }
18
+ ngOnInit() {
19
+ super.ngOnInit();
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyTextareaComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SpiderlyTextareaComponent, isStandalone: true, selector: "spiderly-textarea", usesInheritance: true, ngImport: i0, template: "<!-- Can't put (onBlur) in this control -->\r\n\r\n<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <textarea\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n pInputTextarea\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (blur)=\"control.markAsDirty()\"\r\n [autoResize]=\"true\"\r\n [class]=\"control.disabled ? 'disabled' : ''\"\r\n ></textarea>\r\n </div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PrimengModule }, { kind: "directive", type: i4.InputTextarea, selector: "[pInputTextarea]", inputs: ["autoResize", "variant"], outputs: ["onResize"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyTextareaComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: 'spiderly-textarea', standalone: true, imports: [
27
+ CommonModule,
28
+ ReactiveFormsModule,
29
+ FormsModule,
30
+ PrimengModule,
31
+ RequiredComponent
32
+ ], template: "<!-- Can't put (onBlur) in this control -->\r\n\r\n<div class=\"flex flex-column gap-2\">\r\n <div>\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <textarea\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n pInputTextarea\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (blur)=\"control.markAsDirty()\"\r\n [autoResize]=\"true\"\r\n [class]=\"control.disabled ? 'disabled' : ''\"\r\n ></textarea>\r\n </div>" }]
33
+ }], ctorParameters: () => [{ type: i1.TranslocoService }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktdGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb250cm9scy9zcGlkZXJseS10ZXh0YXJlYS9zcGlkZXJseS10ZXh0YXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LXRleHRhcmVhL3NwaWRlcmx5LXRleHRhcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7O0FBZTdELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxXQUFXO0lBRXRELFlBQ3VCLGdCQUFrQztRQUVyRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUZMLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFHekQsQ0FBQztJQUVRLFFBQVE7UUFDYixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckIsQ0FBQzsrR0FWUSx5QkFBeUI7bUdBQXpCLHlCQUF5QixvR0NyQnRDLGdzQkFpQlEsMkNESEEsWUFBWSxrSUFDWixtQkFBbUIseWtCQUNuQixXQUFXLDhCQUNYLGFBQWEsNmZBQ2IsaUJBQWlCOzs0RkFHWix5QkFBeUI7a0JBYnJDLFNBQVM7K0JBQ0ksbUJBQW1CLGNBR2pCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxhQUFhO3dCQUNiLGlCQUFpQjtxQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQ29udHJvbCB9IGZyb20gJy4uL2Jhc2UtY29udHJvbCc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSZXF1aXJlZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVxdWlyZWQvcmVxdWlyZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IFByaW1lbmdNb2R1bGUgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3ByaW1lbmcubW9kdWxlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzcGlkZXJseS10ZXh0YXJlYScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3BpZGVybHktdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVzOiBbXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgUHJpbWVuZ01vZHVsZSxcclxuICAgICAgICBSZXF1aXJlZENvbXBvbmVudFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3BpZGVybHlUZXh0YXJlYUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb250cm9sIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuICAgICkgeyBcclxuICAgICAgICBzdXBlcih0cmFuc2xvY29TZXJ2aWNlKTtcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpe1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPCEtLSBDYW4ndCBwdXQgKG9uQmx1cikgaW4gdGhpcyBjb250cm9sIC0tPlxyXG5cclxuPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gZ2FwLTJcIj5cclxuICA8ZGl2PlxyXG4gICAgPGxhYmVsPnt7Z2V0VHJhbnNsYXRlZExhYmVsKCl9fTwvbGFiZWw+XHJcbiAgICA8cmVxdWlyZWQgKm5nSWY9XCJjb250cm9sPy5yZXF1aXJlZFwiPjwvcmVxdWlyZWQ+XHJcbiAgPC9kaXY+XHJcbiAgPHRleHRhcmVhXHJcbiAgICAqbmdJZj1cImNvbnRyb2xcIlxyXG4gICAgW3BUb29sdGlwXT1cImdldFZhbGlkYXRpb25FcnJyb3JNZXNzYWdlcygpXCIgW3Rvb2x0aXBFdmVudF09XCJlcnJvck1lc3NhZ2VUb29sdGlwRXZlbnRcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbdG9vbHRpcERpc2FibGVkXT1cImNvbnRyb2wudmFsaWRcIiB0b29sdGlwU3R5bGVDbGFzcz1cInNwaWRlcmx5LXRvb2x0aXAtaW52YWxpZFwiXHJcbiAgICBwSW5wdXRUZXh0YXJlYVxyXG4gICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgW2lkXT1cImNvbnRyb2wubGFiZWxcIlxyXG4gICAgKGJsdXIpPVwiY29udHJvbC5tYXJrQXNEaXJ0eSgpXCJcclxuICAgIFthdXRvUmVzaXplXT1cInRydWVcIlxyXG4gICAgW2NsYXNzXT1cImNvbnRyb2wuZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogJydcIlxyXG4gICAgPjwvdGV4dGFyZWE+XHJcbiAgPC9kaXY+Il19
@@ -0,0 +1,45 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { BaseControl } from '../base-control';
3
+ import { ReactiveFormsModule, FormsModule } from '@angular/forms';
4
+ import { RequiredComponent } from '../../components/required/required.component';
5
+ import { CommonModule } from '@angular/common';
6
+ import { PrimengModule } from '../../modules/primeng.module';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@jsverse/transloco";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "@angular/forms";
11
+ import * as i4 from "primeng/inputtext";
12
+ import * as i5 from "primeng/tooltip";
13
+ export class SpiderlyTextboxComponent extends BaseControl {
14
+ constructor(translocoService) {
15
+ super(translocoService);
16
+ this.translocoService = translocoService;
17
+ this.showButton = false;
18
+ this.onButtonClick = new EventEmitter();
19
+ }
20
+ ngOnInit() {
21
+ super.ngOnInit();
22
+ }
23
+ buttonClick() {
24
+ this.onButtonClick.next(null);
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyTextboxComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SpiderlyTextboxComponent, isStandalone: true, selector: "spiderly-textbox", inputs: { showButton: "showButton", buttonIcon: "buttonIcon" }, outputs: { onButtonClick: "onButtonClick" }, usesInheritance: true, ngImport: i0, template: "<!-- Can't put (onBlur) in this control -->\r\n\r\n<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <div class=\"p-inputgroup p-fluid\">\r\n <input\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n pInputText\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (blur)=\"control.markAsDirty()\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n <span *ngIf=\"showButton\" (click)=\"buttonClick()\" class=\"p-inputgroup-addon\" style=\"cursor: pointer; background-color: var(--primary-color); border-color: var(--primary-color);\">\r\n <i class=\"pi {{buttonIcon}}\" style=\"color: #fff;\"></i>\r\n </span>\r\n </div>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: PrimengModule }, { kind: "directive", type: i4.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: RequiredComponent, selector: "required" }] }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderlyTextboxComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'spiderly-textbox', standalone: true, imports: [
32
+ CommonModule,
33
+ ReactiveFormsModule,
34
+ FormsModule,
35
+ PrimengModule,
36
+ RequiredComponent
37
+ ], template: "<!-- Can't put (onBlur) in this control -->\r\n\r\n<div class=\"flex flex-column gap-2\">\r\n <div *ngIf=\"getTranslatedLabel() != '' && getTranslatedLabel() != null\">\r\n <label>{{getTranslatedLabel()}}</label>\r\n <required *ngIf=\"control?.required\"></required>\r\n </div>\r\n <div class=\"p-inputgroup p-fluid\">\r\n <input\r\n *ngIf=\"control\"\r\n [pTooltip]=\"getValidationErrrorMessages()\" [tooltipEvent]=\"errorMessageTooltipEvent\" tooltipPosition=\"bottom\" [tooltipDisabled]=\"control.valid\" tooltipStyleClass=\"spiderly-tooltip-invalid\"\r\n pInputText\r\n [formControl]=\"control\"\r\n [id]=\"control.label\"\r\n (blur)=\"control.markAsDirty()\"\r\n [placeholder]=\"placeholder\"\r\n />\r\n <span *ngIf=\"showButton\" (click)=\"buttonClick()\" class=\"p-inputgroup-addon\" style=\"cursor: pointer; background-color: var(--primary-color); border-color: var(--primary-color);\">\r\n <i class=\"pi {{buttonIcon}}\" style=\"color: #fff;\"></i>\r\n </span>\r\n </div>\r\n</div>" }]
38
+ }], ctorParameters: () => [{ type: i1.TranslocoService }], propDecorators: { showButton: [{
39
+ type: Input
40
+ }], buttonIcon: [{
41
+ type: Input
42
+ }], onButtonClick: [{
43
+ type: Output
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktdGV4dGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LXRleHRib3gvc3BpZGVybHktdGV4dGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbnRyb2xzL3NwaWRlcmx5LXRleHRib3gvc3BpZGVybHktdGV4dGJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7OztBQWU3RCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsV0FBVztJQUtyRCxZQUN1QixnQkFBa0M7UUFFckQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFGTCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTGhELGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFM0Isa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBTTdDLENBQUM7SUFFUSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFHRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzsrR0FsQlEsd0JBQXdCO21HQUF4Qix3QkFBd0IsZ05DckJyQyxzaUNBcUJNLDJDRFBFLFlBQVksa0lBQ1osbUJBQW1CLHlrQkFDbkIsV0FBVyw4QkFDWCxhQUFhLGdkQUNiLGlCQUFpQjs7NEZBR1osd0JBQXdCO2tCQWJwQyxTQUFTOytCQUNJLGtCQUFrQixjQUdoQixJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixpQkFBaUI7cUJBQ3BCO3FGQUdRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQ29udHJvbCB9IGZyb20gJy4uL2Jhc2UtY29udHJvbCc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSZXF1aXJlZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmVxdWlyZWQvcmVxdWlyZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IFByaW1lbmdNb2R1bGUgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3ByaW1lbmcubW9kdWxlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzcGlkZXJseS10ZXh0Ym94JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zcGlkZXJseS10ZXh0Ym94LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlczogW10sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFByaW1lbmdNb2R1bGUsXHJcbiAgICAgICAgUmVxdWlyZWRDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNwaWRlcmx5VGV4dGJveENvbXBvbmVudCBleHRlbmRzIEJhc2VDb250cm9sIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIHNob3dCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGJ1dHRvbkljb246IHN0cmluZztcclxuICAgIEBPdXRwdXQoKSBvbkJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuICAgICkgeyBcclxuICAgICAgICBzdXBlcih0cmFuc2xvY29TZXJ2aWNlKTtcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpe1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgXHJcbiAgICBidXR0b25DbGljaygpIHtcclxuICAgICAgICB0aGlzLm9uQnV0dG9uQ2xpY2submV4dChudWxsKTtcclxuICAgIH1cclxuICAgIFxyXG59XHJcbiIsIjwhLS0gQ2FuJ3QgcHV0IChvbkJsdXIpIGluIHRoaXMgY29udHJvbCAtLT5cclxuXHJcbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0yXCI+XHJcbiAgPGRpdiAqbmdJZj1cImdldFRyYW5zbGF0ZWRMYWJlbCgpICE9ICcnICYmIGdldFRyYW5zbGF0ZWRMYWJlbCgpICE9IG51bGxcIj5cclxuICAgIDxsYWJlbD57e2dldFRyYW5zbGF0ZWRMYWJlbCgpfX08L2xhYmVsPlxyXG4gICAgPHJlcXVpcmVkICpuZ0lmPVwiY29udHJvbD8ucmVxdWlyZWRcIj48L3JlcXVpcmVkPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJwLWlucHV0Z3JvdXAgcC1mbHVpZFwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgICpuZ0lmPVwiY29udHJvbFwiXHJcbiAgICAgIFtwVG9vbHRpcF09XCJnZXRWYWxpZGF0aW9uRXJycm9yTWVzc2FnZXMoKVwiIFt0b29sdGlwRXZlbnRdPVwiZXJyb3JNZXNzYWdlVG9vbHRpcEV2ZW50XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW3Rvb2x0aXBEaXNhYmxlZF09XCJjb250cm9sLnZhbGlkXCIgdG9vbHRpcFN0eWxlQ2xhc3M9XCJzcGlkZXJseS10b29sdGlwLWludmFsaWRcIlxyXG4gICAgICBwSW5wdXRUZXh0XHJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgICAgW2lkXT1cImNvbnRyb2wubGFiZWxcIlxyXG4gICAgICAoYmx1cik9XCJjb250cm9sLm1hcmtBc0RpcnR5KClcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAvPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cInNob3dCdXR0b25cIiAoY2xpY2spPVwiYnV0dG9uQ2xpY2soKVwiIGNsYXNzPVwicC1pbnB1dGdyb3VwLWFkZG9uXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpOyBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1wiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwicGkge3tidXR0b25JY29ufX1cIiBzdHlsZT1cImNvbG9yOiAjZmZmO1wiPjwvaT5cclxuICAgICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,18 @@
1
+ export class BaseEntity {
2
+ constructor(typeName) {
3
+ this.pipedProperties = [];
4
+ this.typeName = typeName;
5
+ }
6
+ }
7
+ export class PipedProperty {
8
+ constructor(p, c) {
9
+ this.pipe = p;
10
+ this.control = c;
11
+ }
12
+ }
13
+ export var PropertyPipes;
14
+ (function (PropertyPipes) {
15
+ PropertyPipes[PropertyPipes["IntegerPipe"] = 0] = "IntegerPipe";
16
+ PropertyPipes[PropertyPipes["DecimalPipe"] = 1] = "DecimalPipe";
17
+ })(PropertyPipes || (PropertyPipes = {}));
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2VudGl0aWVzL2Jhc2UtZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0lBS25CLFlBQVksUUFBZ0I7UUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDN0IsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGFBQWE7SUFJdEIsWUFBWSxDQUFnQixFQUFFLENBQVM7UUFDbkMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0NBQ0o7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3JCLCtEQUFXLENBQUE7SUFDWCwrREFBVyxDQUFBO0FBQ2YsQ0FBQyxFQUhXLGFBQWEsS0FBYixhQUFhLFFBR3hCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEJhc2VFbnRpdHkge1xyXG5cclxuICAgIHB1YmxpYyBwaXBlZFByb3BlcnRpZXM/OiBQaXBlZFByb3BlcnR5W107XHJcbiAgICBwdWJsaWMgdHlwZU5hbWU/OiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IodHlwZU5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMucGlwZWRQcm9wZXJ0aWVzID0gW107XHJcbiAgICAgICAgdGhpcy50eXBlTmFtZSA9IHR5cGVOYW1lO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGlwZWRQcm9wZXJ0eSB7XHJcbiAgICBwaXBlOiBQcm9wZXJ0eVBpcGVzO1xyXG4gICAgY29udHJvbDogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHA6IFByb3BlcnR5UGlwZXMsIGM6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMucGlwZSA9IHA7XHJcbiAgICAgICAgdGhpcy5jb250cm9sID0gYztcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGVudW0gUHJvcGVydHlQaXBlcyB7XHJcbiAgICBJbnRlZ2VyUGlwZSxcclxuICAgIERlY2ltYWxQaXBlXHJcbn0iXX0=
@@ -0,0 +1,10 @@
1
+ import { BaseEntity } from "./base-entity";
2
+ // FT HACK: Fake class, because of api imports
3
+ export class Codebook extends BaseEntity {
4
+ constructor({ code, displayName, } = {}) {
5
+ super('Namebook');
6
+ this.code = code;
7
+ this.displayName = displayName;
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWJvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2VudGl0aWVzL2NvZGVib29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsOENBQThDO0FBQzlDLE1BQU0sT0FBTyxRQUFTLFNBQVEsVUFBVTtJQUtwQyxZQUNBLEVBQ0ksSUFBSSxFQUNKLFdBQVcsTUFJWCxFQUFFO1FBRUYsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWxCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ25DLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VFbnRpdHkgfSBmcm9tIFwiLi9iYXNlLWVudGl0eVwiO1xyXG5cclxuLy8gRlQgSEFDSzogRmFrZSBjbGFzcywgYmVjYXVzZSBvZiBhcGkgaW1wb3J0c1xyXG5leHBvcnQgY2xhc3MgQ29kZWJvb2sgZXh0ZW5kcyBCYXNlRW50aXR5XHJcbntcclxuICAgIGNvZGU/OiBzdHJpbmc7XHJcbiAgICBkaXNwbGF5TmFtZT86IHN0cmluZztcclxuICBcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAge1xyXG4gICAgICAgIGNvZGUsXHJcbiAgICAgICAgZGlzcGxheU5hbWUsXHJcbiAgICB9OntcclxuICAgICAgICBjb2RlPzogc3RyaW5nO1xyXG4gICAgICAgIGRpc3BsYXlOYW1lPzogc3RyaW5nO1xyXG4gICAgfSA9IHt9XHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcignTmFtZWJvb2snKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb2RlID0gY29kZTtcclxuICAgICAgICB0aGlzLmRpc3BsYXlOYW1lID0gZGlzcGxheU5hbWU7XHJcbiAgICB9XHJcbn0iXX0=
@@ -0,0 +1,9 @@
1
+ import { BaseEntity } from "./base-entity";
2
+ export class InitCompanyAuthDialogDetails extends BaseEntity {
3
+ constructor({ image, companyName, } = {}) {
4
+ super('InitCompanyAuthDialogDetails');
5
+ this.image = image;
6
+ this.companyName = companyName;
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1jb21wYW55LWF1dGgtZGlhbG9nLWRldGFpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2VudGl0aWVzL2luaXQtY29tcGFueS1hdXRoLWRpYWxvZy1kZXRhaWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsTUFBTSxPQUFPLDRCQUE2QixTQUFRLFVBQVU7SUFLeEQsWUFDQSxFQUNJLEtBQUssRUFDTCxXQUFXLE1BSVgsRUFBRTtRQUVGLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ25DLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VFbnRpdHkgfSBmcm9tIFwiLi9iYXNlLWVudGl0eVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEluaXRDb21wYW55QXV0aERpYWxvZ0RldGFpbHMgZXh0ZW5kcyBCYXNlRW50aXR5XHJcbntcclxuICAgIGltYWdlPzogc3RyaW5nO1xyXG4gICAgY29tcGFueU5hbWU/OiBzdHJpbmc7XHJcbiAgXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgIHtcclxuICAgICAgICBpbWFnZSxcclxuICAgICAgICBjb21wYW55TmFtZSxcclxuICAgIH06e1xyXG4gICAgICAgIGltYWdlPzogc3RyaW5nO1xyXG4gICAgICAgIGNvbXBhbnlOYW1lPzogc3RyaW5nO1xyXG4gICAgfSA9IHt9XHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcignSW5pdENvbXBhbnlBdXRoRGlhbG9nRGV0YWlscycpO1xyXG5cclxuICAgICAgICB0aGlzLmltYWdlID0gaW1hZ2U7XHJcbiAgICAgICAgdGhpcy5jb21wYW55TmFtZSA9IGNvbXBhbnlOYW1lO1xyXG4gICAgfVxyXG59Il19
@@ -0,0 +1,12 @@
1
+ import { BaseEntity } from "./base-entity";
2
+ export class InitTopBarData extends BaseEntity {
3
+ constructor({ companyName, userProfilePath, unreadNotificationsCount, showProfileIcon, currentUser, } = {}) {
4
+ super('InitTopBarData');
5
+ this.companyName = companyName;
6
+ this.userProfilePath = userProfilePath;
7
+ this.unreadNotificationsCount = unreadNotificationsCount;
8
+ this.showProfileIcon = showProfileIcon;
9
+ this.currentUser = currentUser;
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC10b3AtYmFyLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2VudGl0aWVzL2luaXQtdG9wLWJhci1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVO0lBUTFDLFlBQ0EsRUFDSSxXQUFXLEVBQ1gsZUFBZSxFQUNmLHdCQUF3QixFQUN4QixlQUFlLEVBQ2YsV0FBVyxNQU9YLEVBQUU7UUFFRixLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsd0JBQXdCLENBQUM7UUFDekQsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDbkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUVudGl0eSB9IGZyb20gXCIuL2Jhc2UtZW50aXR5XCI7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tIFwiLi9zZWN1cml0eS1lbnRpdGllc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEluaXRUb3BCYXJEYXRhIGV4dGVuZHMgQmFzZUVudGl0eVxyXG57XHJcbiAgICBjb21wYW55TmFtZT86IHN0cmluZztcclxuICAgIHVzZXJQcm9maWxlUGF0aD86IHN0cmluZztcclxuICAgIHVucmVhZE5vdGlmaWNhdGlvbnNDb3VudD86IG51bWJlcjtcclxuICAgIHNob3dQcm9maWxlSWNvbj86IGJvb2xlYW47XHJcbiAgICBjdXJyZW50VXNlcj86IFVzZXI7XHJcbiAgXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgIHtcclxuICAgICAgICBjb21wYW55TmFtZSxcclxuICAgICAgICB1c2VyUHJvZmlsZVBhdGgsXHJcbiAgICAgICAgdW5yZWFkTm90aWZpY2F0aW9uc0NvdW50LFxyXG4gICAgICAgIHNob3dQcm9maWxlSWNvbixcclxuICAgICAgICBjdXJyZW50VXNlcixcclxuICAgIH06e1xyXG4gICAgICAgIGNvbXBhbnlOYW1lPzogc3RyaW5nLFxyXG4gICAgICAgIHVzZXJQcm9maWxlUGF0aD86IHN0cmluZyxcclxuICAgICAgICB1bnJlYWROb3RpZmljYXRpb25zQ291bnQ/OiBudW1iZXIsXHJcbiAgICAgICAgc2hvd1Byb2ZpbGVJY29uPzogYm9vbGVhbixcclxuICAgICAgICBjdXJyZW50VXNlcj86IFVzZXIsXHJcbiAgICB9ID0ge31cclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKCdJbml0VG9wQmFyRGF0YScpO1xyXG5cclxuICAgICAgICB0aGlzLmNvbXBhbnlOYW1lID0gY29tcGFueU5hbWU7XHJcbiAgICAgICAgdGhpcy51c2VyUHJvZmlsZVBhdGggPSB1c2VyUHJvZmlsZVBhdGg7XHJcbiAgICAgICAgdGhpcy51bnJlYWROb3RpZmljYXRpb25zQ291bnQgPSB1bnJlYWROb3RpZmljYXRpb25zQ291bnQ7XHJcbiAgICAgICAgdGhpcy5zaG93UHJvZmlsZUljb24gPSBzaG93UHJvZmlsZUljb247XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VXNlciA9IGN1cnJlbnRVc2VyO1xyXG4gICAgfVxyXG59Il19
@@ -0,0 +1,9 @@
1
+ import { BaseEntity } from "./base-entity";
2
+ export class IsAuthorizedForSaveEvent extends BaseEntity {
3
+ constructor({ isAuthorizedForSave, currentUserPermissionCodes, } = {}) {
4
+ super('IsAuthorizedForSaveEvent');
5
+ this.isAuthorizedForSave = isAuthorizedForSave;
6
+ this.currentUserPermissionCodes = currentUserPermissionCodes;
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtYXV0aG9yaXplZC1mb3Itc2F2ZS1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaWRlcmx5L3NyYy9saWIvZW50aXRpZXMvaXMtYXV0aG9yaXplZC1mb3Itc2F2ZS1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxVQUFVO0lBS3BELFlBQ0EsRUFDSSxtQkFBbUIsRUFDbkIsMEJBQTBCLE1BSTFCLEVBQUU7UUFFRixLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUVsQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFDL0MsSUFBSSxDQUFDLDBCQUEwQixHQUFHLDBCQUEwQixDQUFDO0lBQ2pFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VFbnRpdHkgfSBmcm9tIFwiLi9iYXNlLWVudGl0eVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIElzQXV0aG9yaXplZEZvclNhdmVFdmVudCBleHRlbmRzIEJhc2VFbnRpdHlcclxue1xyXG4gICAgaXNBdXRob3JpemVkRm9yU2F2ZT86IGJvb2xlYW47XHJcbiAgICBjdXJyZW50VXNlclBlcm1pc3Npb25Db2Rlcz86IHN0cmluZ1tdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAge1xyXG4gICAgICAgIGlzQXV0aG9yaXplZEZvclNhdmUsXHJcbiAgICAgICAgY3VycmVudFVzZXJQZXJtaXNzaW9uQ29kZXMsXHJcbiAgICB9OntcclxuICAgICAgICBpc0F1dGhvcml6ZWRGb3JTYXZlPzogYm9vbGVhbjtcclxuICAgICAgICBjdXJyZW50VXNlclBlcm1pc3Npb25Db2Rlcz86IHN0cmluZ1tdO1xyXG4gICAgfSA9IHt9XHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcignSXNBdXRob3JpemVkRm9yU2F2ZUV2ZW50Jyk7IFxyXG5cclxuICAgICAgICB0aGlzLmlzQXV0aG9yaXplZEZvclNhdmUgPSBpc0F1dGhvcml6ZWRGb3JTYXZlO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFVzZXJQZXJtaXNzaW9uQ29kZXMgPSBjdXJyZW50VXNlclBlcm1pc3Npb25Db2RlcztcclxuICAgIH1cclxufSJdfQ==