@bravobit/bb-foundation 0.26.3 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/auth/lib/directives/authenticated.directive.d.ts +1 -1
  2. package/collections/lib/components/collections-pager/collections-pager.component.d.ts +1 -1
  3. package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +1 -1
  4. package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +1 -1
  5. package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +1 -1
  6. package/controls/lib/control-error/control-error/control-error.component.d.ts +1 -1
  7. package/controls/lib/form-control/form-control/form-control.component.d.ts +1 -1
  8. package/controls/lib/form-control/form-control-addon/form-control-addon.component.d.ts +1 -1
  9. package/controls/lib/form-control/form-control-input.directive.d.ts +1 -1
  10. package/controls/lib/radio/radio-button/radio-button.component.d.ts +1 -1
  11. package/controls/lib/radio/radio-group/radio-group.component.d.ts +1 -1
  12. package/controls/lib/toggle/toggle/toggle.component.d.ts +1 -1
  13. package/controls/lib/toggle/toggle-group/toggle-group.component.d.ts +1 -1
  14. package/dashboard/lib/dashboard/dashboard.component.d.ts +1 -1
  15. package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +1 -1
  16. package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +1 -1
  17. package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +1 -1
  18. package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +1 -1
  19. package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +1 -1
  20. package/elements/lib/avatar/avatar.component.d.ts +1 -1
  21. package/elements/lib/button/button.component.d.ts +2 -2
  22. package/elements/lib/checkbox/checkbox.component.d.ts +1 -1
  23. package/elements/lib/date-picker/date-picker.component.d.ts +1 -1
  24. package/elements/lib/directives/input.directive.d.ts +2 -2
  25. package/elements/lib/dropdown/dropdown.component.d.ts +1 -1
  26. package/elements/lib/file-picker/file-picker.component.d.ts +2 -2
  27. package/elements/lib/form-control/form-control.component.d.ts +1 -1
  28. package/elements/lib/form-error/form-error.component.d.ts +1 -1
  29. package/elements/lib/form-group/form-group.component.d.ts +1 -1
  30. package/elements/lib/icon/icon.component.d.ts +1 -1
  31. package/elements/lib/image-picker/image-picker.component.d.ts +1 -1
  32. package/elements/lib/spinner/spinner.component.d.ts +1 -1
  33. package/esm2022/auth/lib/auth.interceptor.mjs +91 -0
  34. package/esm2022/auth/lib/auth.module.mjs +36 -0
  35. package/esm2022/auth/lib/auth.service.mjs +271 -0
  36. package/esm2022/auth/lib/directives/authenticated.directive.mjs +43 -0
  37. package/esm2022/auth/lib/guards/anonymous.guard.mjs +54 -0
  38. package/esm2022/auth/lib/guards/authenticated.guard.mjs +57 -0
  39. package/esm2022/collections/lib/collections.module.mjs +55 -0
  40. package/esm2022/collections/lib/components/collections-pager/collections-pager.component.mjs +124 -0
  41. package/esm2022/collections/lib/components/collections-viewer/collections-viewer.component.mjs +32 -0
  42. package/esm2022/collections/lib/components/collections.directive.mjs +47 -0
  43. package/esm2022/controls/lib/checkbox/checkbox/checkbox.component.mjs +179 -0
  44. package/esm2022/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +69 -0
  45. package/esm2022/controls/lib/checkbox/checkbox.module.mjs +21 -0
  46. package/esm2022/controls/lib/control-error/control-error/control-error.component.mjs +64 -0
  47. package/esm2022/controls/lib/control-error/control-error-submit.directive.mjs +48 -0
  48. package/esm2022/controls/lib/control-error/control-error.module.mjs +20 -0
  49. package/esm2022/controls/lib/controls.module.mjs +63 -0
  50. package/esm2022/controls/lib/form-control/form-control/form-control.component.mjs +80 -0
  51. package/esm2022/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +23 -0
  52. package/esm2022/controls/lib/form-control/form-control-input.directive.mjs +125 -0
  53. package/esm2022/controls/lib/form-control/form-control.module.mjs +35 -0
  54. package/esm2022/controls/lib/radio/radio-button/radio-button.component.mjs +76 -0
  55. package/esm2022/controls/lib/radio/radio-group/radio-group.component.mjs +169 -0
  56. package/esm2022/controls/lib/radio/radio.module.mjs +22 -0
  57. package/esm2022/controls/lib/toggle/toggle/toggle.component.mjs +154 -0
  58. package/esm2022/controls/lib/toggle/toggle-group/toggle-group.component.mjs +63 -0
  59. package/esm2022/controls/lib/toggle/toggle.module.mjs +21 -0
  60. package/esm2022/dashboard/lib/dashboard/dashboard.component.mjs +58 -0
  61. package/{esm2020 → esm2022}/dashboard/lib/dashboard-header/dashboard-header.component.mjs +6 -5
  62. package/esm2022/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +32 -0
  63. package/esm2022/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +30 -0
  64. package/esm2022/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +76 -0
  65. package/esm2022/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +100 -0
  66. package/esm2022/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +63 -0
  67. package/esm2022/dashboard/lib/dashboard.module.mjs +48 -0
  68. package/esm2022/dialog/lib/dialog-actions/dialog-actions.component.mjs +13 -0
  69. package/esm2022/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +47 -0
  70. package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +78 -0
  71. package/esm2022/dialog/lib/dialog-header/dialog-header.component.mjs +19 -0
  72. package/esm2022/dialog/lib/dialog-link/dialog-link.component.mjs +12 -0
  73. package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +68 -0
  74. package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +80 -0
  75. package/esm2022/dialog/lib/dialog.insertion.mjs +17 -0
  76. package/esm2022/dialog/lib/dialog.module.mjs +69 -0
  77. package/esm2022/dialog/lib/dialog.service.mjs +69 -0
  78. package/esm2022/elements/lib/avatar/avatar.component.mjs +150 -0
  79. package/esm2022/elements/lib/button/button.component.mjs +63 -0
  80. package/esm2022/elements/lib/checkbox/checkbox.component.mjs +74 -0
  81. package/esm2022/elements/lib/date-picker/date-picker.component.mjs +308 -0
  82. package/esm2022/elements/lib/directives/addon.directive.mjs +31 -0
  83. package/esm2022/elements/lib/directives/form-submit.directive.mjs +51 -0
  84. package/esm2022/elements/lib/directives/form-submitter.directive.mjs +26 -0
  85. package/esm2022/elements/lib/directives/input.directive.mjs +138 -0
  86. package/esm2022/elements/lib/dropdown/dropdown.component.mjs +102 -0
  87. package/esm2022/elements/lib/elements.module.mjs +178 -0
  88. package/esm2022/elements/lib/file-picker/file-picker.component.mjs +237 -0
  89. package/esm2022/elements/lib/form-control/form-control.component.mjs +50 -0
  90. package/esm2022/elements/lib/form-error/form-error.component.mjs +124 -0
  91. package/esm2022/elements/lib/form-group/form-group.component.mjs +19 -0
  92. package/esm2022/elements/lib/icon/icon.component.mjs +103 -0
  93. package/esm2022/elements/lib/image-picker/image-picker.component.mjs +107 -0
  94. package/esm2022/elements/lib/pipes/file-image.pipe.mjs +44 -0
  95. package/esm2022/elements/lib/pipes/file-size.pipe.mjs +29 -0
  96. package/esm2022/elements/lib/pipes/relative-time.pipe.mjs +97 -0
  97. package/esm2022/elements/lib/spinner/spinner.component.mjs +26 -0
  98. package/esm2022/elements/lib/tag/tag.component.mjs +19 -0
  99. package/esm2022/http/lib/http.module.mjs +44 -0
  100. package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +51 -0
  101. package/esm2022/http/lib/interceptors/error.interceptor.mjs +33 -0
  102. package/esm2022/lib/core/services/clipboard.service.mjs +71 -0
  103. package/esm2022/lib/core/services/exif.service.mjs +164 -0
  104. package/esm2022/lib/core/services/file-loader.service.mjs +88 -0
  105. package/esm2022/lib/core/services/image-converter.service.mjs +124 -0
  106. package/esm2022/lib/core/services/languages.service.mjs +75 -0
  107. package/esm2022/lib/core/services/network.service.mjs +56 -0
  108. package/esm2022/lib/core/services/patch.service.mjs +64 -0
  109. package/esm2022/localize/lib/localize.module.mjs +82 -0
  110. package/esm2022/localize/lib/localize.pipe.mjs +47 -0
  111. package/esm2022/localize/lib/localize.service.mjs +186 -0
  112. package/{esm2020 → esm2022}/localize/lib/transforms/interpolate.transform.mjs +1 -1
  113. package/{esm2020 → esm2022}/localize/lib/transforms/reference.transform.mjs +1 -1
  114. package/esm2022/localize/lib/views/localize-string/localize-string.component.mjs +89 -0
  115. package/esm2022/localize/lib/views/localize-template.directive.mjs +22 -0
  116. package/esm2022/masking/lib/directives/currency-mask.directive.mjs +36 -0
  117. package/esm2022/masking/lib/directives/date-mask.directive.mjs +36 -0
  118. package/esm2022/masking/lib/directives/input-mask.directive.mjs +119 -0
  119. package/esm2022/masking/lib/masking.module.mjs +31 -0
  120. package/esm2022/masking/lib/masking.service.mjs +104 -0
  121. package/esm2022/notifications/lib/notifications-item/notifications-item.component.mjs +101 -0
  122. package/esm2022/notifications/lib/notifications-list/notifications-list.component.mjs +48 -0
  123. package/esm2022/notifications/lib/notifications.module.mjs +31 -0
  124. package/esm2022/notifications/lib/notifications.service.mjs +142 -0
  125. package/esm2022/permissions/lib/directives/permission.directive.mjs +89 -0
  126. package/esm2022/permissions/lib/guards/permission.guard.mjs +57 -0
  127. package/esm2022/permissions/lib/permissions.module.mjs +40 -0
  128. package/esm2022/permissions/lib/permissions.service.mjs +97 -0
  129. package/esm2022/recaptcha/lib/recaptcha/recaptcha.component.mjs +220 -0
  130. package/esm2022/recaptcha/lib/recaptcha-loader.service.mjs +96 -0
  131. package/esm2022/recaptcha/lib/recaptcha.module.mjs +28 -0
  132. package/esm2022/storage/lib/storage.service.mjs +110 -0
  133. package/esm2022/table/lib/components/table/table.component.mjs +194 -0
  134. package/esm2022/table/lib/components/table-cell/table-cell.component.mjs +12 -0
  135. package/esm2022/table/lib/components/table-header-cell/table-header-cell.component.mjs +132 -0
  136. package/esm2022/table/lib/components/table-pager/table-pager.component.mjs +137 -0
  137. package/esm2022/table/lib/table.module.mjs +43 -0
  138. package/esm2022/theming/lib/theming.directive.mjs +39 -0
  139. package/esm2022/theming/lib/theming.module.mjs +17 -0
  140. package/esm2022/tooltip/lib/tooltip-container/tooltip-container.component.mjs +32 -0
  141. package/esm2022/tooltip/lib/tooltip.directive.mjs +141 -0
  142. package/esm2022/tooltip/lib/tooltip.module.mjs +32 -0
  143. package/esm2022/utils/lib/directives/autosize.directive.mjs +73 -0
  144. package/esm2022/utils/lib/directives/focus-trap.directive.mjs +78 -0
  145. package/esm2022/utils/lib/directives/focus.directive.mjs +38 -0
  146. package/esm2022/utils/lib/directives/template.directive.mjs +29 -0
  147. package/esm2022/utils/lib/functions/parse-date.function.mjs +19 -0
  148. package/esm2022/utils/lib/utils.module.mjs +36 -0
  149. package/esm2022/utils/public_api.mjs +7 -0
  150. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-auth.mjs +19 -19
  151. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-auth.mjs.map +1 -1
  152. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-collections.mjs +38 -38
  153. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-collections.mjs.map +1 -1
  154. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-controls.mjs +83 -83
  155. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-controls.mjs.map +1 -1
  156. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dashboard.mjs +37 -37
  157. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  158. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dialog.mjs +46 -46
  159. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-dialog.mjs.map +1 -1
  160. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-elements.mjs +185 -185
  161. package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -0
  162. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-http.mjs +10 -10
  163. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-http.mjs.map +1 -1
  164. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-localize.mjs +20 -20
  165. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-localize.mjs.map +1 -1
  166. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-masking.mjs +20 -20
  167. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-masking.mjs.map +1 -1
  168. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-notifications.mjs +13 -13
  169. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-notifications.mjs.map +1 -1
  170. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-permissions.mjs +13 -13
  171. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-permissions.mjs.map +1 -1
  172. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-recaptcha.mjs +16 -16
  173. package/{fesm2015 → fesm2022}/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  174. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-storage.mjs +3 -3
  175. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-storage.mjs.map +1 -1
  176. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-table.mjs +34 -34
  177. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-table.mjs.map +1 -1
  178. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-theming.mjs +7 -7
  179. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-theming.mjs.map +1 -1
  180. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-tooltip.mjs +13 -13
  181. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-tooltip.mjs.map +1 -1
  182. package/{fesm2020 → fesm2022}/bravobit-bb-foundation-utils.mjs +42 -23
  183. package/fesm2022/bravobit-bb-foundation-utils.mjs.map +1 -0
  184. package/{fesm2020 → fesm2022}/bravobit-bb-foundation.mjs +21 -21
  185. package/{fesm2020 → fesm2022}/bravobit-bb-foundation.mjs.map +1 -1
  186. package/localize/lib/views/localize-string/localize-string.component.d.ts +1 -1
  187. package/localize/lib/views/localize-template.directive.d.ts +1 -1
  188. package/masking/lib/directives/currency-mask.directive.d.ts +1 -1
  189. package/masking/lib/directives/date-mask.directive.d.ts +1 -1
  190. package/masking/lib/directives/input-mask.directive.d.ts +1 -1
  191. package/notifications/lib/notifications-item/notifications-item.component.d.ts +1 -1
  192. package/package.json +70 -112
  193. package/permissions/lib/directives/permission.directive.d.ts +1 -1
  194. package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +1 -1
  195. package/table/lib/components/table/table.component.d.ts +1 -1
  196. package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +1 -1
  197. package/table/lib/components/table-pager/table-pager.component.d.ts +1 -1
  198. package/theming/lib/theming.directive.d.ts +1 -1
  199. package/tooltip/lib/tooltip.directive.d.ts +1 -1
  200. package/utils/lib/directives/autosize.directive.d.ts +1 -1
  201. package/utils/lib/directives/template.directive.d.ts +1 -1
  202. package/utils/lib/functions/parse-date.function.d.ts +1 -0
  203. package/utils/public_api.d.ts +1 -0
  204. package/esm2020/auth/lib/auth.interceptor.mjs +0 -90
  205. package/esm2020/auth/lib/auth.module.mjs +0 -35
  206. package/esm2020/auth/lib/auth.service.mjs +0 -270
  207. package/esm2020/auth/lib/directives/authenticated.directive.mjs +0 -42
  208. package/esm2020/auth/lib/guards/anonymous.guard.mjs +0 -53
  209. package/esm2020/auth/lib/guards/authenticated.guard.mjs +0 -56
  210. package/esm2020/collections/lib/collections.module.mjs +0 -54
  211. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +0 -123
  212. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +0 -31
  213. package/esm2020/collections/lib/components/collections.directive.mjs +0 -43
  214. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +0 -178
  215. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +0 -68
  216. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +0 -20
  217. package/esm2020/controls/lib/control-error/control-error/control-error.component.mjs +0 -63
  218. package/esm2020/controls/lib/control-error/control-error-submit.directive.mjs +0 -47
  219. package/esm2020/controls/lib/control-error/control-error.module.mjs +0 -19
  220. package/esm2020/controls/lib/controls.module.mjs +0 -62
  221. package/esm2020/controls/lib/form-control/form-control/form-control.component.mjs +0 -79
  222. package/esm2020/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +0 -22
  223. package/esm2020/controls/lib/form-control/form-control-input.directive.mjs +0 -124
  224. package/esm2020/controls/lib/form-control/form-control.module.mjs +0 -34
  225. package/esm2020/controls/lib/radio/radio-button/radio-button.component.mjs +0 -75
  226. package/esm2020/controls/lib/radio/radio-group/radio-group.component.mjs +0 -168
  227. package/esm2020/controls/lib/radio/radio.module.mjs +0 -21
  228. package/esm2020/controls/lib/toggle/toggle/toggle.component.mjs +0 -153
  229. package/esm2020/controls/lib/toggle/toggle-group/toggle-group.component.mjs +0 -62
  230. package/esm2020/controls/lib/toggle/toggle.module.mjs +0 -20
  231. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +0 -57
  232. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +0 -31
  233. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +0 -29
  234. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +0 -75
  235. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +0 -99
  236. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +0 -62
  237. package/esm2020/dashboard/lib/dashboard.module.mjs +0 -47
  238. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +0 -12
  239. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +0 -46
  240. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +0 -77
  241. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +0 -18
  242. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +0 -11
  243. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +0 -67
  244. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +0 -79
  245. package/esm2020/dialog/lib/dialog.insertion.mjs +0 -16
  246. package/esm2020/dialog/lib/dialog.module.mjs +0 -68
  247. package/esm2020/dialog/lib/dialog.service.mjs +0 -68
  248. package/esm2020/elements/lib/avatar/avatar.component.mjs +0 -149
  249. package/esm2020/elements/lib/button/button.component.mjs +0 -61
  250. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +0 -73
  251. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +0 -307
  252. package/esm2020/elements/lib/directives/addon.directive.mjs +0 -29
  253. package/esm2020/elements/lib/directives/form-submit.directive.mjs +0 -50
  254. package/esm2020/elements/lib/directives/form-submitter.directive.mjs +0 -25
  255. package/esm2020/elements/lib/directives/input.directive.mjs +0 -136
  256. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +0 -100
  257. package/esm2020/elements/lib/elements.module.mjs +0 -177
  258. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +0 -236
  259. package/esm2020/elements/lib/form-control/form-control.component.mjs +0 -49
  260. package/esm2020/elements/lib/form-error/form-error.component.mjs +0 -123
  261. package/esm2020/elements/lib/form-group/form-group.component.mjs +0 -18
  262. package/esm2020/elements/lib/icon/icon.component.mjs +0 -102
  263. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +0 -106
  264. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +0 -43
  265. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +0 -28
  266. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +0 -96
  267. package/esm2020/elements/lib/spinner/spinner.component.mjs +0 -25
  268. package/esm2020/elements/lib/tag/tag.component.mjs +0 -18
  269. package/esm2020/http/lib/http.module.mjs +0 -43
  270. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +0 -50
  271. package/esm2020/http/lib/interceptors/error.interceptor.mjs +0 -32
  272. package/esm2020/lib/core/services/clipboard.service.mjs +0 -70
  273. package/esm2020/lib/core/services/exif.service.mjs +0 -163
  274. package/esm2020/lib/core/services/file-loader.service.mjs +0 -87
  275. package/esm2020/lib/core/services/image-converter.service.mjs +0 -123
  276. package/esm2020/lib/core/services/languages.service.mjs +0 -74
  277. package/esm2020/lib/core/services/network.service.mjs +0 -55
  278. package/esm2020/lib/core/services/patch.service.mjs +0 -63
  279. package/esm2020/localize/lib/localize.module.mjs +0 -81
  280. package/esm2020/localize/lib/localize.pipe.mjs +0 -46
  281. package/esm2020/localize/lib/localize.service.mjs +0 -185
  282. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +0 -88
  283. package/esm2020/localize/lib/views/localize-template.directive.mjs +0 -21
  284. package/esm2020/masking/lib/directives/currency-mask.directive.mjs +0 -35
  285. package/esm2020/masking/lib/directives/date-mask.directive.mjs +0 -35
  286. package/esm2020/masking/lib/directives/input-mask.directive.mjs +0 -118
  287. package/esm2020/masking/lib/masking.module.mjs +0 -30
  288. package/esm2020/masking/lib/masking.service.mjs +0 -103
  289. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +0 -100
  290. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +0 -47
  291. package/esm2020/notifications/lib/notifications.module.mjs +0 -30
  292. package/esm2020/notifications/lib/notifications.service.mjs +0 -141
  293. package/esm2020/permissions/lib/directives/permission.directive.mjs +0 -88
  294. package/esm2020/permissions/lib/guards/permission.guard.mjs +0 -56
  295. package/esm2020/permissions/lib/permissions.module.mjs +0 -39
  296. package/esm2020/permissions/lib/permissions.service.mjs +0 -96
  297. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +0 -219
  298. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +0 -95
  299. package/esm2020/recaptcha/lib/recaptcha.module.mjs +0 -27
  300. package/esm2020/storage/lib/storage.service.mjs +0 -109
  301. package/esm2020/table/lib/components/table/table.component.mjs +0 -191
  302. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +0 -11
  303. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +0 -131
  304. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +0 -136
  305. package/esm2020/table/lib/table.module.mjs +0 -42
  306. package/esm2020/theming/lib/theming.directive.mjs +0 -38
  307. package/esm2020/theming/lib/theming.module.mjs +0 -16
  308. package/esm2020/tooltip/lib/tooltip-container/tooltip-container.component.mjs +0 -31
  309. package/esm2020/tooltip/lib/tooltip.directive.mjs +0 -140
  310. package/esm2020/tooltip/lib/tooltip.module.mjs +0 -31
  311. package/esm2020/utils/lib/directives/autosize.directive.mjs +0 -72
  312. package/esm2020/utils/lib/directives/focus-trap.directive.mjs +0 -77
  313. package/esm2020/utils/lib/directives/focus.directive.mjs +0 -37
  314. package/esm2020/utils/lib/directives/template.directive.mjs +0 -28
  315. package/esm2020/utils/lib/utils.module.mjs +0 -35
  316. package/esm2020/utils/public_api.mjs +0 -6
  317. package/fesm2015/bravobit-bb-foundation-auth.mjs +0 -851
  318. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +0 -1
  319. package/fesm2015/bravobit-bb-foundation-collections.mjs +0 -474
  320. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +0 -1
  321. package/fesm2015/bravobit-bb-foundation-controls.mjs +0 -1217
  322. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +0 -1
  323. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +0 -417
  324. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +0 -1
  325. package/fesm2015/bravobit-bb-foundation-dialog.mjs +0 -512
  326. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +0 -1
  327. package/fesm2015/bravobit-bb-foundation-elements.mjs +0 -1883
  328. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +0 -1
  329. package/fesm2015/bravobit-bb-foundation-http.mjs +0 -176
  330. package/fesm2015/bravobit-bb-foundation-http.mjs.map +0 -1
  331. package/fesm2015/bravobit-bb-foundation-localize.mjs +0 -835
  332. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +0 -1
  333. package/fesm2015/bravobit-bb-foundation-masking.mjs +0 -334
  334. package/fesm2015/bravobit-bb-foundation-masking.mjs.map +0 -1
  335. package/fesm2015/bravobit-bb-foundation-notifications.mjs +0 -357
  336. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +0 -1
  337. package/fesm2015/bravobit-bb-foundation-permissions.mjs +0 -310
  338. package/fesm2015/bravobit-bb-foundation-permissions.mjs.map +0 -1
  339. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +0 -349
  340. package/fesm2015/bravobit-bb-foundation-rxjs.mjs +0 -22
  341. package/fesm2015/bravobit-bb-foundation-rxjs.mjs.map +0 -1
  342. package/fesm2015/bravobit-bb-foundation-storage.mjs +0 -418
  343. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +0 -1
  344. package/fesm2015/bravobit-bb-foundation-table.mjs +0 -613
  345. package/fesm2015/bravobit-bb-foundation-table.mjs.map +0 -1
  346. package/fesm2015/bravobit-bb-foundation-theming.mjs +0 -382
  347. package/fesm2015/bravobit-bb-foundation-theming.mjs.map +0 -1
  348. package/fesm2015/bravobit-bb-foundation-tooltip.mjs +0 -210
  349. package/fesm2015/bravobit-bb-foundation-tooltip.mjs.map +0 -1
  350. package/fesm2015/bravobit-bb-foundation-utils.mjs +0 -246
  351. package/fesm2015/bravobit-bb-foundation-utils.mjs.map +0 -1
  352. package/fesm2015/bravobit-bb-foundation.mjs +0 -929
  353. package/fesm2015/bravobit-bb-foundation.mjs.map +0 -1
  354. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +0 -1
  355. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +0 -1
  356. package/fesm2020/bravobit-bb-foundation-utils.mjs.map +0 -1
  357. /package/{esm2020 → esm2022}/auth/bravobit-bb-foundation-auth.mjs +0 -0
  358. /package/{esm2020 → esm2022}/auth/lib/auth.session.mjs +0 -0
  359. /package/{esm2020 → esm2022}/auth/lib/directives/abstract.directive.mjs +0 -0
  360. /package/{esm2020 → esm2022}/auth/lib/helpers/jwt.helper.mjs +0 -0
  361. /package/{esm2020 → esm2022}/auth/lib/interfaces/config.interface.mjs +0 -0
  362. /package/{esm2020 → esm2022}/auth/lib/interfaces/provider.interface.mjs +0 -0
  363. /package/{esm2020 → esm2022}/auth/lib/interfaces/token.interface.mjs +0 -0
  364. /package/{esm2020 → esm2022}/auth/lib/providers/email.provider.mjs +0 -0
  365. /package/{esm2020 → esm2022}/auth/lib/providers/verify.provider.mjs +0 -0
  366. /package/{esm2020 → esm2022}/auth/lib/tokens/use-authorization.token.mjs +0 -0
  367. /package/{esm2020 → esm2022}/auth/public_api.mjs +0 -0
  368. /package/{esm2020 → esm2022}/bravobit-bb-foundation.mjs +0 -0
  369. /package/{esm2020 → esm2022}/collections/bravobit-bb-foundation-collections.mjs +0 -0
  370. /package/{esm2020 → esm2022}/collections/lib/collection.mjs +0 -0
  371. /package/{esm2020 → esm2022}/collections/lib/interfaces/collection.interface.mjs +0 -0
  372. /package/{esm2020 → esm2022}/collections/lib/providers/api-collection.provider.mjs +0 -0
  373. /package/{esm2020 → esm2022}/collections/lib/providers/collection.provider.mjs +0 -0
  374. /package/{esm2020 → esm2022}/collections/lib/providers/local-collection.provider.mjs +0 -0
  375. /package/{esm2020 → esm2022}/collections/public_api.mjs +0 -0
  376. /package/{esm2020 → esm2022}/controls/bravobit-bb-foundation-controls.mjs +0 -0
  377. /package/{esm2020 → esm2022}/controls/lib/control-error/control-error/control-error.animation.mjs +0 -0
  378. /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.defaults.mjs +0 -0
  379. /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.interface.mjs +0 -0
  380. /package/{esm2020 → esm2022}/controls/lib/control-error/control-error.utils.mjs +0 -0
  381. /package/{esm2020 → esm2022}/controls/lib/controls.interfaces.mjs +0 -0
  382. /package/{esm2020 → esm2022}/controls/public_api.mjs +0 -0
  383. /package/{esm2020 → esm2022}/dashboard/bravobit-bb-foundation-dashboard.mjs +0 -0
  384. /package/{esm2020 → esm2022}/dashboard/public_api.mjs +0 -0
  385. /package/{esm2020 → esm2022}/dialog/bravobit-bb-foundation-dialog.mjs +0 -0
  386. /package/{esm2020 → esm2022}/dialog/lib/dialog-container/dialog-container.animations.mjs +0 -0
  387. /package/{esm2020 → esm2022}/dialog/lib/dialog-overlay/dialog-overlay.animations.mjs +0 -0
  388. /package/{esm2020 → esm2022}/dialog/lib/dialog.interfaces.mjs +0 -0
  389. /package/{esm2020 → esm2022}/dialog/lib/dialog.ref.mjs +0 -0
  390. /package/{esm2020 → esm2022}/dialog/public_api.mjs +0 -0
  391. /package/{esm2020 → esm2022}/elements/bravobit-bb-foundation-elements.mjs +0 -0
  392. /package/{esm2020 → esm2022}/elements/lib/elements.interfaces.mjs +0 -0
  393. /package/{esm2020 → esm2022}/elements/public_api.mjs +0 -0
  394. /package/{esm2020 → esm2022}/http/bravobit-bb-foundation-http.mjs +0 -0
  395. /package/{esm2020 → esm2022}/http/lib/classes/http.config.mjs +0 -0
  396. /package/{esm2020 → esm2022}/http/lib/classes/http.error.mjs +0 -0
  397. /package/{esm2020 → esm2022}/http/lib/http.interfaces.mjs +0 -0
  398. /package/{esm2020 → esm2022}/http/public_api.mjs +0 -0
  399. /package/{esm2020 → esm2022}/lib/core/functions/date.utils.mjs +0 -0
  400. /package/{esm2020 → esm2022}/lib/core/functions/password.utils.mjs +0 -0
  401. /package/{esm2020 → esm2022}/lib/core/miscellaneous/regex.mjs +0 -0
  402. /package/{esm2020 → esm2022}/lib/core/miscellaneous/validator.mjs +0 -0
  403. /package/{esm2020 → esm2022}/lib/core/mixins/can-disable.mjs +0 -0
  404. /package/{esm2020 → esm2022}/lib/core/mixins/can-hide-errors.mjs +0 -0
  405. /package/{esm2020 → esm2022}/lib/core/mixins/can-load.mjs +0 -0
  406. /package/{esm2020 → esm2022}/lib/core/mixins/constructor.mjs +0 -0
  407. /package/{esm2020 → esm2022}/lib/core/mixins/has-error.mjs +0 -0
  408. /package/{esm2020 → esm2022}/lib/core/mixins/is-focused.mjs +0 -0
  409. /package/{esm2020 → esm2022}/lib/core/mixins/is-grouped.mjs +0 -0
  410. /package/{esm2020 → esm2022}/lib/core/mixins/is-readonly.mjs +0 -0
  411. /package/{esm2020 → esm2022}/lib/core/mixins/is-required.mjs +0 -0
  412. /package/{esm2020 → esm2022}/lib/core/tokens/accept-language.token.mjs +0 -0
  413. /package/{esm2020 → esm2022}/lib/core/tokens/base-url.token.mjs +0 -0
  414. /package/{esm2020 → esm2022}/lib/core/tokens/cookie.token.mjs +0 -0
  415. /package/{esm2020 → esm2022}/lib/core/tokens/location.token.mjs +0 -0
  416. /package/{esm2020 → esm2022}/lib/core/tokens/navigator.token.mjs +0 -0
  417. /package/{esm2020 → esm2022}/lib/core/tokens/window.token.mjs +0 -0
  418. /package/{esm2020 → esm2022}/localize/bravobit-bb-foundation-localize.mjs +0 -0
  419. /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.class.mjs +0 -0
  420. /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.context.mjs +0 -0
  421. /package/{esm2020 → esm2022}/localize/lib/dictionary/dictionary.data.mjs +0 -0
  422. /package/{esm2020 → esm2022}/localize/lib/functions/date.function.mjs +0 -0
  423. /package/{esm2020 → esm2022}/localize/lib/functions/lowercase.function.mjs +0 -0
  424. /package/{esm2020 → esm2022}/localize/lib/functions/uppercase.function.mjs +0 -0
  425. /package/{esm2020 → esm2022}/localize/lib/handlers/missing.handler.mjs +0 -0
  426. /package/{esm2020 → esm2022}/localize/lib/interfaces/config.interfaces.mjs +0 -0
  427. /package/{esm2020 → esm2022}/localize/lib/interfaces/functions.interfaces.mjs +0 -0
  428. /package/{esm2020 → esm2022}/localize/lib/interfaces/handlers.interfaces.mjs +0 -0
  429. /package/{esm2020 → esm2022}/localize/lib/interfaces/options.interfaces.mjs +0 -0
  430. /package/{esm2020 → esm2022}/localize/lib/interfaces/transforms.interfaces.mjs +0 -0
  431. /package/{esm2020 → esm2022}/localize/lib/locale.token.mjs +0 -0
  432. /package/{esm2020 → esm2022}/localize/lib/localizations/dutch.localization.mjs +0 -0
  433. /package/{esm2020 → esm2022}/localize/lib/localizations/english.localization.mjs +0 -0
  434. /package/{esm2020 → esm2022}/localize/lib/transforms/abstract.transform.mjs +0 -0
  435. /package/{esm2020 → esm2022}/localize/public_api.mjs +0 -0
  436. /package/{esm2020 → esm2022}/masking/bravobit-bb-foundation-masking.mjs +0 -0
  437. /package/{esm2020 → esm2022}/masking/lib/input-mask.interface.mjs +0 -0
  438. /package/{esm2020 → esm2022}/masking/public_api.mjs +0 -0
  439. /package/{esm2020 → esm2022}/notifications/bravobit-bb-foundation-notifications.mjs +0 -0
  440. /package/{esm2020 → esm2022}/notifications/lib/notifications.animations.mjs +0 -0
  441. /package/{esm2020 → esm2022}/notifications/lib/notifications.interfaces.mjs +0 -0
  442. /package/{esm2020 → esm2022}/notifications/public_api.mjs +0 -0
  443. /package/{esm2020 → esm2022}/permissions/bravobit-bb-foundation-permissions.mjs +0 -0
  444. /package/{esm2020 → esm2022}/permissions/lib/handlers/abstract.handler.mjs +0 -0
  445. /package/{esm2020 → esm2022}/permissions/lib/handlers/local.handler.mjs +0 -0
  446. /package/{esm2020 → esm2022}/permissions/lib/permissions.interface.mjs +0 -0
  447. /package/{esm2020 → esm2022}/permissions/public_api.mjs +0 -0
  448. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
  449. /package/{esm2020 → esm2022}/recaptcha/bravobit-bb-foundation-recaptcha.mjs +0 -0
  450. /package/{esm2020 → esm2022}/recaptcha/lib/recaptcha.interface.mjs +0 -0
  451. /package/{esm2020 → esm2022}/recaptcha/public_api.mjs +0 -0
  452. /package/{esm2020 → esm2022}/rxjs/bravobit-bb-foundation-rxjs.mjs +0 -0
  453. /package/{esm2020 → esm2022}/rxjs/lib/observables/get-control-value.observable.mjs +0 -0
  454. /package/{esm2020 → esm2022}/rxjs/lib/operators/combine-latest-map.operator.mjs +0 -0
  455. /package/{esm2020 → esm2022}/rxjs/lib/operators/filter-nil.operator.mjs +0 -0
  456. /package/{esm2020 → esm2022}/rxjs/public_api.mjs +0 -0
  457. /package/{esm2020 → esm2022}/storage/bravobit-bb-foundation-storage.mjs +0 -0
  458. /package/{esm2020 → esm2022}/storage/lib/interfaces/attributes.interface.mjs +0 -0
  459. /package/{esm2020 → esm2022}/storage/lib/interfaces/memory.interface.mjs +0 -0
  460. /package/{esm2020 → esm2022}/storage/lib/interfaces/strategy.interface.mjs +0 -0
  461. /package/{esm2020 → esm2022}/storage/lib/strategies/cookie-storage.strategy.mjs +0 -0
  462. /package/{esm2020 → esm2022}/storage/lib/strategies/memory-storage.strategy.mjs +0 -0
  463. /package/{esm2020 → esm2022}/storage/lib/strategies/polyfill-storage.strategy.mjs +0 -0
  464. /package/{esm2020 → esm2022}/storage/public_api.mjs +0 -0
  465. /package/{esm2020 → esm2022}/table/bravobit-bb-foundation-table.mjs +0 -0
  466. /package/{esm2020 → esm2022}/table/lib/data/datasource.data.mjs +0 -0
  467. /package/{esm2020 → esm2022}/table/lib/data/generic.data.mjs +0 -0
  468. /package/{esm2020 → esm2022}/table/lib/interfaces/datasource.interface.mjs +0 -0
  469. /package/{esm2020 → esm2022}/table/lib/interfaces/table.interfaces.mjs +0 -0
  470. /package/{esm2020 → esm2022}/table/public_api.mjs +0 -0
  471. /package/{esm2020 → esm2022}/theming/bravobit-bb-foundation-theming.mjs +0 -0
  472. /package/{esm2020 → esm2022}/theming/lib/themes/checkbox-group.theme.mjs +0 -0
  473. /package/{esm2020 → esm2022}/theming/lib/themes/checkbox.theme.mjs +0 -0
  474. /package/{esm2020 → esm2022}/theming/lib/themes/control-error.theme.mjs +0 -0
  475. /package/{esm2020 → esm2022}/theming/lib/themes/form-control-addon.theme.mjs +0 -0
  476. /package/{esm2020 → esm2022}/theming/lib/themes/form-control.theme.mjs +0 -0
  477. /package/{esm2020 → esm2022}/theming/lib/themes/radio-button.theme.mjs +0 -0
  478. /package/{esm2020 → esm2022}/theming/lib/themes/radio-group.theme.mjs +0 -0
  479. /package/{esm2020 → esm2022}/theming/lib/themes/toggle-group.theme.mjs +0 -0
  480. /package/{esm2020 → esm2022}/theming/lib/themes/toggle.theme.mjs +0 -0
  481. /package/{esm2020 → esm2022}/theming/lib/theming.data.mjs +0 -0
  482. /package/{esm2020 → esm2022}/theming/lib/theming.interface.mjs +0 -0
  483. /package/{esm2020 → esm2022}/theming/lib/utils/theming.variable.mjs +0 -0
  484. /package/{esm2020 → esm2022}/theming/public_api.mjs +0 -0
  485. /package/{esm2020 → esm2022}/tooltip/bravobit-bb-foundation-tooltip.mjs +0 -0
  486. /package/{esm2020 → esm2022}/tooltip/lib/tooltip.interfaces.mjs +0 -0
  487. /package/{esm2020 → esm2022}/tooltip/public_api.mjs +0 -0
  488. /package/{esm2020 → esm2022}/utils/bravobit-bb-foundation-utils.mjs +0 -0
  489. /package/{fesm2020 → fesm2022}/bravobit-bb-foundation-rxjs.mjs +0 -0
  490. /package/{fesm2020 → fesm2022}/bravobit-bb-foundation-rxjs.mjs.map +0 -0
@@ -1,88 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ContentChildren, Input, ViewEncapsulation } from '@angular/core';
2
- import { BbLocalizeTemplate } from '../localize-template.directive';
3
- import { startWith } from 'rxjs/operators';
4
- import { Subscription } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "@bravobit/bb-foundation/utils";
8
- export class BbLocalizeString {
9
- set value(value) {
10
- this._value = value;
11
- this.revalidate();
12
- }
13
- get value() {
14
- return this._value;
15
- }
16
- constructor(_changeDetection) {
17
- this._changeDetection = _changeDetection;
18
- // Inputs.
19
- this.substitutions = ['[', ']'];
20
- // Data.
21
- this.components = [];
22
- // Subscriptions.
23
- this._subscription = new Subscription();
24
- // State.
25
- this._value = null;
26
- }
27
- ngAfterViewInit() {
28
- this.observeItemChanges();
29
- }
30
- ngOnDestroy() {
31
- this._subscription?.unsubscribe();
32
- }
33
- observeItemChanges() {
34
- const subscription = this.items.changes.pipe(startWith(0)).subscribe(() => this.revalidate());
35
- this._subscription.add(subscription);
36
- }
37
- revalidate() {
38
- const items = this.items?.toArray() ?? [];
39
- if (items.length <= 0) {
40
- return;
41
- }
42
- this.setComponents(items);
43
- }
44
- setComponents(items) {
45
- const [start, end] = this.substitutions;
46
- const templates = items.reduce((previous, current) => {
47
- const template = current?.templateRef ?? null;
48
- const name = current?.name ?? null;
49
- if (!template || !name) {
50
- return previous;
51
- }
52
- return { ...previous, [`${start}${name}${end}`]: template };
53
- }, {});
54
- this.components = this.getStringComponents(this._value)
55
- .map(component => templates?.[component] ?? component ?? null)
56
- .filter(item => !!item);
57
- this._changeDetection.detectChanges();
58
- }
59
- getStringComponents(value) {
60
- const [start, end] = this.getSubstitutions();
61
- const regex = new RegExp(`(${start}[a-zA-Z]+${end})`, 'g');
62
- return value.split(regex);
63
- }
64
- getSubstitutions() {
65
- const [start, end] = this.substitutions;
66
- const escape = /[.*+?^${}()|[\]\\]/g;
67
- return [
68
- start.replace(escape, '\\$&'),
69
- end.replace(escape, '\\$&')
70
- ];
71
- }
72
- }
73
- BbLocalizeString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbLocalizeString, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
74
- BbLocalizeString.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: BbLocalizeString, selector: "bb-localize-string, [bb-localize-string]", inputs: { substitutions: "substitutions", value: "value" }, host: { classAttribute: "bb-localize-string" }, queries: [{ propertyName: "items", predicate: BbLocalizeTemplate }], ngImport: i0, template: "<ng-container *ngFor=\"let component of components\">\n <ng-template [bbTemplate]=\"component\">{{ component }}</ng-template>\n</ng-container>\n", styles: [".bb-localize-string{display:inline}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbLocalizeString, decorators: [{
76
- type: Component,
77
- args: [{ selector: 'bb-localize-string, [bb-localize-string]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
78
- 'class': 'bb-localize-string'
79
- }, template: "<ng-container *ngFor=\"let component of components\">\n <ng-template [bbTemplate]=\"component\">{{ component }}</ng-template>\n</ng-container>\n", styles: [".bb-localize-string{display:inline}\n"] }]
80
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
81
- type: ContentChildren,
82
- args: [BbLocalizeTemplate]
83
- }], substitutions: [{
84
- type: Input
85
- }], value: [{
86
- type: Input
87
- }] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi92aWV3cy9sb2NhbGl6ZS1zdHJpbmcvbG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi92aWV3cy9sb2NhbGl6ZS1zdHJpbmcvbG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFDZixLQUFLLEVBSUwsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7O0FBYWxDLE1BQU0sT0FBTyxnQkFBZ0I7SUFpQnpCLElBQ0ksS0FBSyxDQUFDLEtBQW9CO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUFvQixnQkFBbUM7UUFBbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQXRCdkQsVUFBVTtRQUNELGtCQUFhLEdBQXFCLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXRELFFBQVE7UUFDUixlQUFVLEdBQWtDLEVBQUUsQ0FBQztRQUUvQyxpQkFBaUI7UUFDVCxr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a05BR1Isa0JBQWtCLDZCQzlCdkMscUpBR0E7MkZEd0JhLGdCQUFnQjtrQkFYNUIsU0FBUzsrQkFDSSwwQ0FBMEMsbUJBR25DLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksdUJBQ2hCLEtBQUssUUFDcEI7d0JBQ0YsT0FBTyxFQUFFLG9CQUFvQjtxQkFDaEM7d0dBS29DLEtBQUs7c0JBQXpDLGVBQWU7dUJBQUMsa0JBQWtCO2dCQUcxQixhQUFhO3NCQUFyQixLQUFLO2dCQVlGLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBRdWVyeUxpc3QsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JiTG9jYWxpemVUZW1wbGF0ZX0gZnJvbSAnLi4vbG9jYWxpemUtdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7c3RhcnRXaXRofSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItbG9jYWxpemUtc3RyaW5nLCBbYmItbG9jYWxpemUtc3RyaW5nXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xvY2FsaXplLXN0cmluZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdiYi1sb2NhbGl6ZS1zdHJpbmcnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBCYkxvY2FsaXplU3RyaW5nIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICAgIC8vIENvbnRlbnQgY2hpbGRyZW4uXG4gICAgQENvbnRlbnRDaGlsZHJlbihCYkxvY2FsaXplVGVtcGxhdGUpIGl0ZW1zPzogUXVlcnlMaXN0PEJiTG9jYWxpemVUZW1wbGF0ZT47XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCkgc3Vic3RpdHV0aW9uczogW3N0cmluZywgc3RyaW5nXSA9IFsnWycsICddJ107XG5cbiAgICAvLyBEYXRhLlxuICAgIGNvbXBvbmVudHM6IChzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KVtdID0gW107XG5cbiAgICAvLyBTdWJzY3JpcHRpb25zLlxuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8vIFN0YXRlLlxuICAgIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMucmV2YWxpZGF0ZSgpO1xuICAgIH1cblxuICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZUl0ZW1DaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9ic2VydmVJdGVtQ2hhbmdlcygpIHtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5pdGVtcy5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgoMClcbiAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZXZhbGlkYXRlKCkpO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJldmFsaWRhdGUoKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtcz8udG9BcnJheSgpID8/IFtdO1xuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0Q29tcG9uZW50cyhpdGVtcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDb21wb25lbnRzKGl0ZW1zOiBCYkxvY2FsaXplVGVtcGxhdGVbXSkge1xuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB0aGlzLnN1YnN0aXR1dGlvbnM7XG5cbiAgICAgICAgY29uc3QgdGVtcGxhdGVzID0gaXRlbXMucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGVtcGxhdGUgPSBjdXJyZW50Py50ZW1wbGF0ZVJlZiA/PyBudWxsO1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGN1cnJlbnQ/Lm5hbWUgPz8gbnVsbDtcbiAgICAgICAgICAgIGlmICghdGVtcGxhdGUgfHwgIW5hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7Li4ucHJldmlvdXMsIFtgJHtzdGFydH0ke25hbWV9JHtlbmR9YF06IHRlbXBsYXRlfTtcbiAgICAgICAgfSwge30pO1xuXG4gICAgICAgIHRoaXMuY29tcG9uZW50cyA9IHRoaXMuZ2V0U3RyaW5nQ29tcG9uZW50cyh0aGlzLl92YWx1ZSlcbiAgICAgICAgICAgIC5tYXAoY29tcG9uZW50ID0+IHRlbXBsYXRlcz8uW2NvbXBvbmVudF0gPz8gY29tcG9uZW50ID8/IG51bGwpXG4gICAgICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gISFpdGVtKTtcblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rpb24uZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U3RyaW5nQ29tcG9uZW50cyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IHRoaXMuZ2V0U3Vic3RpdHV0aW9ucygpO1xuICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYCgke3N0YXJ0fVthLXpBLVpdKyR7ZW5kfSlgLCAnZycpO1xuICAgICAgICByZXR1cm4gdmFsdWUuc3BsaXQocmVnZXgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U3Vic3RpdHV0aW9ucygpIHtcbiAgICAgICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gdGhpcy5zdWJzdGl0dXRpb25zO1xuICAgICAgICBjb25zdCBlc2NhcGUgPSAvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2c7XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN0YXJ0LnJlcGxhY2UoZXNjYXBlLCAnXFxcXCQmJyksXG4gICAgICAgICAgICBlbmQucmVwbGFjZShlc2NhcGUsICdcXFxcJCYnKVxuICAgICAgICBdO1xuICAgIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29tcG9uZW50IG9mIGNvbXBvbmVudHNcIj5cbiAgICA8bmctdGVtcGxhdGUgW2JiVGVtcGxhdGVdPVwiY29tcG9uZW50XCI+e3sgY29tcG9uZW50IH19PC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,21 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class BbLocalizeTemplate {
4
- constructor(templateRef) {
5
- this.templateRef = templateRef;
6
- // Inputs.
7
- this.name = null;
8
- }
9
- }
10
- BbLocalizeTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbLocalizeTemplate, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
11
- BbLocalizeTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: { name: ["bbLocalizeTemplate", "name"] }, ngImport: i0 });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbLocalizeTemplate, decorators: [{
13
- type: Directive,
14
- args: [{
15
- selector: '[bbLocalizeTemplate]'
16
- }]
17
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { name: [{
18
- type: Input,
19
- args: ['bbLocalizeTemplate']
20
- }] } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUtdGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL3ZpZXdzL2xvY2FsaXplLXRlbXBsYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBYyxNQUFNLGVBQWUsQ0FBQzs7QUFLNUQsTUFBTSxPQUFPLGtCQUFrQjtJQUszQixZQUFtQixXQUE2QjtRQUE3QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFIaEQsVUFBVTtRQUNtQixTQUFJLEdBQWtCLElBQUksQ0FBQztJQUd4RCxDQUFDOzsrR0FOUSxrQkFBa0I7bUdBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUg5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7aUJBQ25DO2tHQUlnQyxJQUFJO3NCQUFoQyxLQUFLO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tiYkxvY2FsaXplVGVtcGxhdGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBCYkxvY2FsaXplVGVtcGxhdGUge1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgnYmJMb2NhbGl6ZVRlbXBsYXRlJykgbmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -1,35 +0,0 @@
1
- import { Directive, Input, Self } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../masking.service";
4
- import * as i2 from "./input-mask.directive";
5
- export class BbCurrencyMask {
6
- constructor(_masking, _inputMask) {
7
- this._masking = _masking;
8
- this._inputMask = _inputMask;
9
- // Inputs.
10
- this.currencyCode = null;
11
- this.options = null;
12
- }
13
- ngOnChanges(changes) {
14
- const currencyCode = changes?.['currencyCode']?.currentValue ?? this.currencyCode ?? 'USD';
15
- const options = changes?.['options']?.currentValue ?? this.options ?? {};
16
- this._inputMask.mask = this._masking.currency(currencyCode, options);
17
- }
18
- }
19
- BbCurrencyMask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbCurrencyMask, deps: [{ token: i1.Masking }, { token: i2.BbInputMask, self: true }], target: i0.ɵɵFactoryTarget.Directive });
20
- BbCurrencyMask.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: BbCurrencyMask, selector: "input[bbCurrencyMask]", inputs: { currencyCode: ["bbCurrencyMask", "currencyCode"], options: ["bbCurrencyMaskOptions", "options"] }, usesOnChanges: true, ngImport: i0 });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbCurrencyMask, decorators: [{
22
- type: Directive,
23
- args: [{
24
- selector: 'input[bbCurrencyMask]'
25
- }]
26
- }], ctorParameters: function () { return [{ type: i1.Masking }, { type: i2.BbInputMask, decorators: [{
27
- type: Self
28
- }] }]; }, propDecorators: { currencyCode: [{
29
- type: Input,
30
- args: ['bbCurrencyMask']
31
- }], options: [{
32
- type: Input,
33
- args: ['bbCurrencyMaskOptions']
34
- }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL21hc2tpbmcvc3JjL2xpYi9kaXJlY3RpdmVzL2N1cnJlbmN5LW1hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFhLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7Ozs7QUFRL0UsTUFBTSxPQUFPLGNBQWM7SUFNdkIsWUFBb0IsUUFBaUIsRUFDVCxVQUF1QjtRQUQvQixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ1QsZUFBVSxHQUFWLFVBQVUsQ0FBYTtRQUxuRCxVQUFVO1FBQ2UsaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBQzVCLFlBQU8sR0FBd0MsSUFBSSxDQUFDO0lBSXBGLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsTUFBTSxZQUFZLEdBQUcsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDLEVBQUUsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDO1FBQzNGLE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUV6RSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekUsQ0FBQzs7MkdBZlEsY0FBYzsrRkFBZCxjQUFjOzJGQUFkLGNBQWM7a0JBSDFCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtpQkFDcEM7OzBCQVFnQixJQUFJOzRDQUpRLFlBQVk7c0JBQXBDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUNTLE9BQU87c0JBQXRDLEtBQUs7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0LCBPbkNoYW5nZXMsIFNlbGYsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDdXJyZW5jeU1hc2tPcHRpb25zfSBmcm9tICcuLi9pbnB1dC1tYXNrLmludGVyZmFjZSc7XG5pbXBvcnQge0JiSW5wdXRNYXNrfSBmcm9tICcuL2lucHV0LW1hc2suZGlyZWN0aXZlJztcbmltcG9ydCB7TWFza2luZ30gZnJvbSAnLi4vbWFza2luZy5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFtiYkN1cnJlbmN5TWFza10nXG59KVxuZXhwb3J0IGNsYXNzIEJiQ3VycmVuY3lNYXNrIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICAgIC8vIElucHV0cy5cbiAgICBASW5wdXQoJ2JiQ3VycmVuY3lNYXNrJykgY3VycmVuY3lDb2RlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoJ2JiQ3VycmVuY3lNYXNrT3B0aW9ucycpIG9wdGlvbnM6IFBhcnRpYWw8Q3VycmVuY3lNYXNrT3B0aW9ucz4gfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX21hc2tpbmc6IE1hc2tpbmcsXG4gICAgICAgICAgICAgICAgQFNlbGYoKSBwcml2YXRlIF9pbnB1dE1hc2s6IEJiSW5wdXRNYXNrKSB7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBjdXJyZW5jeUNvZGUgPSBjaGFuZ2VzPy5bJ2N1cnJlbmN5Q29kZSddPy5jdXJyZW50VmFsdWUgPz8gdGhpcy5jdXJyZW5jeUNvZGUgPz8gJ1VTRCc7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBjaGFuZ2VzPy5bJ29wdGlvbnMnXT8uY3VycmVudFZhbHVlID8/IHRoaXMub3B0aW9ucyA/PyB7fTtcblxuICAgICAgICB0aGlzLl9pbnB1dE1hc2subWFzayA9IHRoaXMuX21hc2tpbmcuY3VycmVuY3koY3VycmVuY3lDb2RlLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICAvLyBSZXF1aXJlZCBzbyB0aGF0IHRoZSB0ZW1wbGF0ZSB0eXBlIGNoZWNrZXIgY2FuIGluZmVyIHRoZSB0eXBlIG9mIHRoZSBjb2VyY2VkIGlucHV0cy5cbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfYmJDdXJyZW5jeU1hc2s6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2JiQ3VycmVuY3lNYXNrT3B0aW9uczogUGFydGlhbDxDdXJyZW5jeU1hc2tPcHRpb25zPiB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbn1cbiJdfQ==
@@ -1,35 +0,0 @@
1
- import { Directive, Input, Self } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../masking.service";
4
- import * as i2 from "./input-mask.directive";
5
- export class BbDateMask {
6
- constructor(_masking, _inputMask) {
7
- this._masking = _masking;
8
- this._inputMask = _inputMask;
9
- // Inputs.
10
- this.format = null;
11
- this.separator = null;
12
- }
13
- ngOnChanges(changes) {
14
- const format = changes?.['format']?.currentValue ?? this.format ?? null;
15
- const separator = changes?.['separator']?.currentValue ?? this.separator ?? '-';
16
- this._inputMask.mask = this._masking.date(format, separator);
17
- }
18
- }
19
- BbDateMask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbDateMask, deps: [{ token: i1.Masking }, { token: i2.BbInputMask, self: true }], target: i0.ɵɵFactoryTarget.Directive });
20
- BbDateMask.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: BbDateMask, selector: "input[bbDateMask]", inputs: { format: ["bbDateMask", "format"], separator: ["bbDateMaskSeparator", "separator"] }, usesOnChanges: true, ngImport: i0 });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbDateMask, decorators: [{
22
- type: Directive,
23
- args: [{
24
- selector: 'input[bbDateMask]'
25
- }]
26
- }], ctorParameters: function () { return [{ type: i1.Masking }, { type: i2.BbInputMask, decorators: [{
27
- type: Self
28
- }] }]; }, propDecorators: { format: [{
29
- type: Input,
30
- args: ['bbDateMask']
31
- }], separator: [{
32
- type: Input,
33
- args: ['bbDateMaskSeparator']
34
- }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1tYXNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbWFza2luZy9zcmMvbGliL2RpcmVjdGl2ZXMvZGF0ZS1tYXNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBYSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOzs7O0FBUS9FLE1BQU0sT0FBTyxVQUFVO0lBTW5CLFlBQW9CLFFBQWlCLEVBQ1QsVUFBdUI7UUFEL0IsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNULGVBQVUsR0FBVixVQUFVLENBQWE7UUFMbkQsVUFBVTtRQUNXLFdBQU0sR0FBMEIsSUFBSSxDQUFDO1FBQzVCLGNBQVMsR0FBa0IsSUFBSSxDQUFDO0lBSTlELENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsTUFBTSxNQUFNLEdBQUcsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsWUFBWSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDO1FBQ3hFLE1BQU0sU0FBUyxHQUFHLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLEdBQUcsQ0FBQztRQUNoRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDakUsQ0FBQzs7dUdBZFEsVUFBVTsyRkFBVixVQUFVOzJGQUFWLFVBQVU7a0JBSHRCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtpQkFDaEM7OzBCQVFnQixJQUFJOzRDQUpJLE1BQU07c0JBQTFCLEtBQUs7dUJBQUMsWUFBWTtnQkFDVyxTQUFTO3NCQUF0QyxLQUFLO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBTZWxmLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGF0ZU1hc2tGb3JtYXR9IGZyb20gJy4uL2lucHV0LW1hc2suaW50ZXJmYWNlJztcbmltcG9ydCB7QmJJbnB1dE1hc2t9IGZyb20gJy4vaW5wdXQtbWFzay5kaXJlY3RpdmUnO1xuaW1wb3J0IHtNYXNraW5nfSBmcm9tICcuLi9tYXNraW5nLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2lucHV0W2JiRGF0ZU1hc2tdJ1xufSlcbmV4cG9ydCBjbGFzcyBCYkRhdGVNYXNrIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICAgIC8vIElucHV0cy5cbiAgICBASW5wdXQoJ2JiRGF0ZU1hc2snKSBmb3JtYXQ6IERhdGVNYXNrRm9ybWF0IHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCdiYkRhdGVNYXNrU2VwYXJhdG9yJykgc2VwYXJhdG9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX21hc2tpbmc6IE1hc2tpbmcsXG4gICAgICAgICAgICAgICAgQFNlbGYoKSBwcml2YXRlIF9pbnB1dE1hc2s6IEJiSW5wdXRNYXNrKSB7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBjaGFuZ2VzPy5bJ2Zvcm1hdCddPy5jdXJyZW50VmFsdWUgPz8gdGhpcy5mb3JtYXQgPz8gbnVsbDtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gY2hhbmdlcz8uWydzZXBhcmF0b3InXT8uY3VycmVudFZhbHVlID8/IHRoaXMuc2VwYXJhdG9yID8/ICctJztcbiAgICAgICAgdGhpcy5faW5wdXRNYXNrLm1hc2sgPSB0aGlzLl9tYXNraW5nLmRhdGUoZm9ybWF0LCBzZXBhcmF0b3IpO1xuICAgIH1cblxuICAgIC8vIFJlcXVpcmVkIHNvIHRoYXQgdGhlIHRlbXBsYXRlIHR5cGUgY2hlY2tlciBjYW4gaW5mZXIgdGhlIHR5cGUgb2YgdGhlIGNvZXJjZWQgaW5wdXRzLlxuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9iYkRhdGVNYXNrOiBEYXRlTWFza0Zvcm1hdCB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2JiRGF0ZU1hc2tTZXBhcmF0b3I6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbn1cbiJdfQ==
@@ -1,118 +0,0 @@
1
- import { Directive, HostListener, Input, Optional, Self } from '@angular/core';
2
- import { fromEvent, merge } from 'rxjs';
3
- import _Inputmask from 'inputmask';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/cdk/platform";
6
- import * as i2 from "@angular/forms";
7
- const InputmaskConstructor = _Inputmask.default || _Inputmask;
8
- export class BbInputMask {
9
- set mask(mask) {
10
- if (!mask || typeof mask === 'string') {
11
- return;
12
- }
13
- this._inputMaskOptions = mask;
14
- this.updateMask();
15
- }
16
- constructor(_ngZone, _platform, _renderer, _elementRef, _control) {
17
- this._ngZone = _ngZone;
18
- this._platform = _platform;
19
- this._renderer = _renderer;
20
- this._elementRef = _elementRef;
21
- this._control = _control;
22
- // State.
23
- this.inputMaskPlugin = null;
24
- this.nativeInputElement = null;
25
- this.eventsSubscription = null;
26
- this._inputMaskOptions = null;
27
- this._onChange = () => ({});
28
- this.onInput = (_) => ({});
29
- this.onTouched = () => ({});
30
- this.validate = (control) => !control.value || !this.inputMaskPlugin || this.inputMaskPlugin?.isValid()
31
- ? null
32
- : { inputMask: true };
33
- this.nativeInputElement = this._elementRef.nativeElement;
34
- if (this._control != null) {
35
- this._control.valueAccessor = this;
36
- }
37
- }
38
- ngOnInit() {
39
- const control = this._control?.control;
40
- if (!control) {
41
- return;
42
- }
43
- control?.setValidators(control.validator ? [control.validator, this.validate] : [this.validate]);
44
- control?.updateValueAndValidity();
45
- }
46
- ngOnDestroy() {
47
- this.destroyMask();
48
- }
49
- writeValue(value) {
50
- if (!this.nativeInputElement) {
51
- return;
52
- }
53
- this._renderer.setProperty(this.nativeInputElement, 'value', value ?? '');
54
- }
55
- registerOnChange(fn) {
56
- this._onChange = fn;
57
- const parser = this._inputMaskOptions?.parser;
58
- this.onInput = value => this._onChange(parser ? parser(value) : value);
59
- }
60
- registerOnTouched(fn) {
61
- this.onTouched = fn;
62
- }
63
- setDisabledState(isDisabled) {
64
- if (!this.nativeInputElement) {
65
- return;
66
- }
67
- this._renderer.setProperty(this.nativeInputElement, 'disabled', isDisabled);
68
- }
69
- updateMask() {
70
- this.destroyMask();
71
- this.createMask();
72
- this.registerOnChange(this._onChange);
73
- }
74
- createMask() {
75
- if (!this._platform.isBrowser || !this.nativeInputElement || this._inputMaskOptions === null || Object.keys(this._inputMaskOptions).length === 0) {
76
- return;
77
- }
78
- const { parser, ...options } = this._inputMaskOptions;
79
- this.inputMaskPlugin = this._ngZone.runOutsideAngular(() => new InputmaskConstructor(options).mask(this.nativeInputElement));
80
- const setValue$ = fromEvent(this.nativeInputElement, 'setvalue');
81
- const cleared$ = fromEvent(this.nativeInputElement, 'cleared');
82
- this.eventsSubscription = merge(setValue$, cleared$)
83
- .subscribe(event => this.onInput(event?.target?.['value']));
84
- const control = this._control?.control;
85
- if (!control) {
86
- return;
87
- }
88
- setTimeout(() => control?.updateValueAndValidity());
89
- }
90
- destroyMask() {
91
- this.eventsSubscription?.unsubscribe();
92
- this.eventsSubscription = null;
93
- this.inputMaskPlugin?.remove();
94
- this.inputMaskPlugin = null;
95
- }
96
- }
97
- BbInputMask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbInputMask, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
98
- BbInputMask.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: BbInputMask, selector: "input[bbInputMask],input[bbCurrencyMask],input[bbDateMask]", inputs: { mask: ["bbInputMask", "mask"] }, host: { listeners: { "input": "onInput($event.target.value)", "blur": "onTouched($event.target.value)" } }, ngImport: i0 });
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: BbInputMask, decorators: [{
100
- type: Directive,
101
- args: [{
102
- selector: 'input[bbInputMask],input[bbCurrencyMask],input[bbDateMask]'
103
- }]
104
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.NgControl, decorators: [{
105
- type: Optional
106
- }, {
107
- type: Self
108
- }] }]; }, propDecorators: { mask: [{
109
- type: Input,
110
- args: ['bbInputMask']
111
- }], onInput: [{
112
- type: HostListener,
113
- args: ['input', ['$event.target.value']]
114
- }], onTouched: [{
115
- type: HostListener,
116
- args: ['blur', ['$event.target.value']]
117
- }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL21hc2tpbmcvc3JjL2xpYi9kaXJlY3RpdmVzL2lucHV0LW1hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBNkIsUUFBUSxFQUFhLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUcvSCxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUdwRCxPQUFPLFVBQVUsTUFBTSxXQUFXLENBQUM7Ozs7QUFFbkMsTUFBTSxvQkFBb0IsR0FBSSxVQUF3RCxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUM7QUFLN0csTUFBTSxPQUFPLFdBQVc7SUFFcEIsSUFDSSxJQUFJLENBQUMsSUFBcUQ7UUFDMUQsSUFBSSxDQUFDLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDbkMsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQVVELFlBQW9CLE9BQWUsRUFDZixTQUFtQixFQUNuQixTQUFvQixFQUNwQixXQUF5QyxFQUNyQixRQUFvQjtRQUp4QyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUE4QjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBWjVELFNBQVM7UUFDVCxvQkFBZSxHQUE4QixJQUFJLENBQUM7UUFDbEQsdUJBQWtCLEdBQTRCLElBQUksQ0FBQztRQUNuRCx1QkFBa0IsR0FBd0IsSUFBSSxDQUFDO1FBRXZD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QUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQzs7d0dBL0dRLFdBQVc7NEZBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUh2QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0REFBNEQ7aUJBQ3pFOzswQkF5QmdCLFFBQVE7OzBCQUFJLElBQUk7NENBckJ6QixJQUFJO3NCQURQLEtBQUs7dUJBQUMsYUFBYTtnQkE4QnBCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFJOUMsU0FBUztzQkFEUixZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIFNlbGZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wsIFZhbGlkYXRvcn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtJbnB1dE1hc2tPcHRpb25zfSBmcm9tICcuLi9pbnB1dC1tYXNrLmludGVyZmFjZSc7XG5pbXBvcnQge2Zyb21FdmVudCwgbWVyZ2UsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHR5cGUgSW5wdXRtYXNrIGZyb20gJ2lucHV0bWFzayc7XG5pbXBvcnQgX0lucHV0bWFzayBmcm9tICdpbnB1dG1hc2snO1xuXG5jb25zdCBJbnB1dG1hc2tDb25zdHJ1Y3RvciA9IChfSW5wdXRtYXNrIGFzIHVua25vd24gYXMgeyBkZWZhdWx0PzogSW5wdXRtYXNrLlN0YXRpYyB9KS5kZWZhdWx0IHx8IF9JbnB1dG1hc2s7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbYmJJbnB1dE1hc2tdLGlucHV0W2JiQ3VycmVuY3lNYXNrXSxpbnB1dFtiYkRhdGVNYXNrXSdcbn0pXG5leHBvcnQgY2xhc3MgQmJJbnB1dE1hc2s8VCA9IGFueT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XG5cbiAgICBASW5wdXQoJ2JiSW5wdXRNYXNrJylcbiAgICBzZXQgbWFzayhtYXNrOiBJbnB1dE1hc2tPcHRpb25zPFQ+IHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoIW1hc2sgfHwgdHlwZW9mIG1hc2sgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pbnB1dE1hc2tPcHRpb25zID0gbWFzaztcbiAgICAgICAgdGhpcy51cGRhdGVNYXNrKCk7XG4gICAgfVxuXG4gICAgLy8gU3RhdGUuXG4gICAgaW5wdXRNYXNrUGx1Z2luOiBJbnB1dG1hc2suSW5zdGFuY2UgfCBudWxsID0gbnVsbDtcbiAgICBuYXRpdmVJbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBldmVudHNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBfaW5wdXRNYXNrT3B0aW9uczogSW5wdXRNYXNrT3B0aW9uczxUPiB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX29uQ2hhbmdlOiAodmFsdWU6IFQgfCBudWxsKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3BsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcml2YXRlIF9jb250cm9sPzogTmdDb250cm9sKSB7XG4gICAgICAgIHRoaXMubmF0aXZlSW5wdXRFbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAodGhpcy5fY29udHJvbCAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudC50YXJnZXQudmFsdWUnXSlcbiAgICBvbklucHV0OiAodmFsdWU6IGFueSkgPT4gdm9pZCA9IChfOiBhbnkpID0+ICh7fSk7XG5cbiAgICBASG9zdExpc3RlbmVyKCdibHVyJywgWyckZXZlbnQudGFyZ2V0LnZhbHVlJ10pXG4gICAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5fY29udHJvbD8uY29udHJvbDtcbiAgICAgICAgaWYgKCFjb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb250cm9sPy5zZXRWYWxpZGF0b3JzKGNvbnRyb2wudmFsaWRhdG9yID8gW2NvbnRyb2wudmFsaWRhdG9yLCB0aGlzLnZhbGlkYXRlXSA6IFt0aGlzLnZhbGlkYXRlXSk7XG4gICAgICAgIGNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95TWFzaygpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMubmF0aXZlSW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5uYXRpdmVJbnB1dEVsZW1lbnQsICd2YWx1ZScsIHZhbHVlID8/ICcnKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFQgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gICAgICAgIGNvbnN0IHBhcnNlciA9IHRoaXMuX2lucHV0TWFza09wdGlvbnM/LnBhcnNlcjtcbiAgICAgICAgdGhpcy5vbklucHV0ID0gdmFsdWUgPT4gdGhpcy5fb25DaGFuZ2UocGFyc2VyID8gcGFyc2VyKHZhbHVlKSA6IHZhbHVlKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAoIXRoaXMubmF0aXZlSW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5uYXRpdmVJbnB1dEVsZW1lbnQsICdkaXNhYmxlZCcsIGlzRGlzYWJsZWQpO1xuICAgIH1cblxuICAgIHZhbGlkYXRlID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gIWNvbnRyb2wudmFsdWUgfHwgIXRoaXMuaW5wdXRNYXNrUGx1Z2luIHx8IHRoaXMuaW5wdXRNYXNrUGx1Z2luPy5pc1ZhbGlkKClcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDoge2lucHV0TWFzazogdHJ1ZX07XG5cbiAgICBwcml2YXRlIHVwZGF0ZU1hc2soKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveU1hc2soKTtcbiAgICAgICAgdGhpcy5jcmVhdGVNYXNrKCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJPbkNoYW5nZSh0aGlzLl9vbkNoYW5nZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVNYXNrKCkge1xuICAgICAgICBpZiAoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3NlciB8fCAhdGhpcy5uYXRpdmVJbnB1dEVsZW1lbnQgfHwgdGhpcy5faW5wdXRNYXNrT3B0aW9ucyA9PT0gbnVsbCB8fCBPYmplY3Qua2V5cyh0aGlzLl9pbnB1dE1hc2tPcHRpb25zKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHtwYXJzZXIsIC4uLm9wdGlvbnN9ID0gdGhpcy5faW5wdXRNYXNrT3B0aW9ucztcbiAgICAgICAgdGhpcy5pbnB1dE1hc2tQbHVnaW4gPSB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gbmV3IElucHV0bWFza0NvbnN0cnVjdG9yKG9wdGlvbnMpLm1hc2sodGhpcy5uYXRpdmVJbnB1dEVsZW1lbnQpKTtcblxuICAgICAgICBjb25zdCBzZXRWYWx1ZSQgPSBmcm9tRXZlbnQodGhpcy5uYXRpdmVJbnB1dEVsZW1lbnQsICdzZXR2YWx1ZScpO1xuICAgICAgICBjb25zdCBjbGVhcmVkJCA9IGZyb21FdmVudCh0aGlzLm5hdGl2ZUlucHV0RWxlbWVudCwgJ2NsZWFyZWQnKTtcblxuICAgICAgICB0aGlzLmV2ZW50c1N1YnNjcmlwdGlvbiA9IG1lcmdlKHNldFZhbHVlJCwgY2xlYXJlZCQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHRoaXMub25JbnB1dChldmVudD8udGFyZ2V0Py5bJ3ZhbHVlJ10pKTtcblxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5fY29udHJvbD8uY29udHJvbDtcbiAgICAgICAgaWYgKCFjb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiBjb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveU1hc2soKSB7XG4gICAgICAgIHRoaXMuZXZlbnRzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmV2ZW50c1N1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMuaW5wdXRNYXNrUGx1Z2luPy5yZW1vdmUoKTtcbiAgICAgICAgdGhpcy5pbnB1dE1hc2tQbHVnaW4gPSBudWxsO1xuICAgIH1cblxuICAgIC8vIFJlcXVpcmVkIHNvIHRoYXQgdGhlIHRlbXBsYXRlIHR5cGUgY2hlY2tlciBjYW4gaW5mZXIgdGhlIHR5cGUgb2YgdGhlIGNvZXJjZWQgaW5wdXRzLlxuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9iYklucHV0TWFzazogSW5wdXRNYXNrT3B0aW9uczxhbnk+IHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxufVxuIl19
@@ -1,30 +0,0 @@
1
- import { BbCurrencyMask } from './directives/currency-mask.directive';
2
- import { BbInputMask } from './directives/input-mask.directive';
3
- import { BbDateMask } from './directives/date-mask.directive';
4
- import { NgModule } from '@angular/core';
5
- import * as i0 from "@angular/core";
6
- export class MaskingModule {
7
- }
8
- MaskingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: MaskingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- MaskingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: MaskingModule, declarations: [BbInputMask,
10
- BbCurrencyMask,
11
- BbDateMask], exports: [BbInputMask,
12
- BbCurrencyMask,
13
- BbDateMask] });
14
- MaskingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: MaskingModule });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: MaskingModule, decorators: [{
16
- type: NgModule,
17
- args: [{
18
- declarations: [
19
- BbInputMask,
20
- BbCurrencyMask,
21
- BbDateMask
22
- ],
23
- exports: [
24
- BbInputMask,
25
- BbCurrencyMask,
26
- BbDateMask
27
- ]
28
- }]
29
- }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFza2luZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL21hc2tpbmcvc3JjL2xpYi9tYXNraW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDcEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQWN2QyxNQUFNLE9BQU8sYUFBYTs7MEdBQWIsYUFBYTsyR0FBYixhQUFhLGlCQVZsQixXQUFXO1FBQ1gsY0FBYztRQUNkLFVBQVUsYUFHVixXQUFXO1FBQ1gsY0FBYztRQUNkLFVBQVU7MkdBR0wsYUFBYTsyRkFBYixhQUFhO2tCQVp6QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDVixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsVUFBVTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLFVBQVU7cUJBQ2I7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JiQ3VycmVuY3lNYXNrfSBmcm9tICcuL2RpcmVjdGl2ZXMvY3VycmVuY3ktbWFzay5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYklucHV0TWFza30gZnJvbSAnLi9kaXJlY3RpdmVzL2lucHV0LW1hc2suZGlyZWN0aXZlJztcbmltcG9ydCB7QmJEYXRlTWFza30gZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGUtbWFzay5kaXJlY3RpdmUnO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEJiSW5wdXRNYXNrLFxuICAgICAgICBCYkN1cnJlbmN5TWFzayxcbiAgICAgICAgQmJEYXRlTWFza1xuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBCYklucHV0TWFzayxcbiAgICAgICAgQmJDdXJyZW5jeU1hc2ssXG4gICAgICAgIEJiRGF0ZU1hc2tcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE1hc2tpbmdNb2R1bGUge1xufVxuIl19
@@ -1,103 +0,0 @@
1
- import { formatDate, getCurrencySymbol, getLocaleNumberSymbol, getNumberOfCurrencyDigits, NumberSymbol } from '@angular/common';
2
- import { createMask } from './input-mask.interface';
3
- import { Injectable, Optional } from '@angular/core';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@bravobit/bb-foundation/localize";
6
- export class Masking {
7
- constructor(_localize) {
8
- this._localize = _localize;
9
- }
10
- date(format, separator = '-') {
11
- const dateParts = this.getDateParts(format);
12
- const inputFormat = dateParts.join(separator);
13
- const outputFormat = 'yyyy-MM-dd';
14
- const escape = /[.*+?^${}()\/|[\]\\]/g;
15
- const escapedSeparator = separator.replace(escape, '\\$&');
16
- const inputFormatRegexString = dateParts
17
- .map(item => `(?<${item}>[0-9]{${item?.length}})`)
18
- .join(escapedSeparator);
19
- const inputFormatRegex = new RegExp(`^${inputFormatRegexString}$`);
20
- return createMask({
21
- alias: 'datetime',
22
- inputFormat: inputFormat.toLowerCase(),
23
- outputFormat: outputFormat.toLowerCase(),
24
- nullable: false,
25
- inputmode: 'numeric',
26
- onBeforeMask: (initialValue) => {
27
- return initialValue ? formatDate(initialValue, inputFormat, 'en-US') : null;
28
- },
29
- onBeforePaste: (value) => {
30
- return value;
31
- },
32
- parser: (value) => {
33
- if (!value || typeof value !== 'string' || !inputFormatRegex.test(value)) {
34
- return null;
35
- }
36
- const matches = value.match(inputFormatRegex);
37
- const year = +matches?.groups?.['yyyy'];
38
- const month = +matches?.groups?.['MM'] - 1;
39
- const day = +matches?.groups?.['dd'];
40
- const date = new Date(year, month, day);
41
- return date instanceof Date && !isNaN(date)
42
- ? formatDate(date, outputFormat, 'en-US')
43
- : null;
44
- }
45
- });
46
- }
47
- currency(code, options) {
48
- const locale = this._localize?.current?.locale ?? 'en';
49
- const symbol = options?.symbol ?? getCurrencySymbol(code, options?.symbolFormat ?? 'narrow', locale);
50
- const decimal = options?.decimalCharacter ?? getLocaleNumberSymbol(locale, NumberSymbol.CurrencyDecimal);
51
- const group = options?.groupCharacter ?? getLocaleNumberSymbol(locale, NumberSymbol.CurrencyGroup);
52
- const digits = options?.digits ?? getNumberOfCurrencyDigits(code);
53
- const spacer = options?.spacer ?? ' ';
54
- return createMask({
55
- alias: 'numeric',
56
- digits: digits,
57
- allowMinus: options?.allowMinus ?? false,
58
- min: options?.min ?? 0,
59
- max: options?.max ?? Number.MAX_SAFE_INTEGER,
60
- prefix: `${symbol}${spacer}`,
61
- radixPoint: decimal ?? '.',
62
- groupSeparator: group ?? ',',
63
- digitsOptional: options?.digitsOptional ?? false,
64
- nullable: options?.nullable ?? true,
65
- autoUnmask: true,
66
- unmaskAsNumber: true,
67
- rightAlign: false,
68
- showMaskOnHover: false,
69
- showMaskOnFocus: false,
70
- inputmode: digits > 0 ? 'decimal' : 'numeric',
71
- parser: (value) => {
72
- if (value === '') {
73
- return null;
74
- }
75
- return value;
76
- }
77
- });
78
- }
79
- getDateParts(format) {
80
- switch (format) {
81
- case 'day-month-year':
82
- return ['dd', 'MM', 'yyyy'];
83
- case 'month-day-year':
84
- return ['MM', 'dd', 'yyyy'];
85
- case 'year-day-month':
86
- return ['yyyy', 'dd', 'MM'];
87
- case 'year-month-day':
88
- default:
89
- return ['yyyy', 'MM', 'dd'];
90
- }
91
- }
92
- }
93
- Masking.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: Masking, deps: [{ token: i1.Localize, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
94
- Masking.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: Masking, providedIn: 'root' });
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: Masking, decorators: [{
96
- type: Injectable,
97
- args: [{
98
- providedIn: 'root'
99
- }]
100
- }], ctorParameters: function () { return [{ type: i1.Localize, decorators: [{
101
- type: Optional
102
- }] }]; } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFza2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9tYXNraW5nL3NyYy9saWIvbWFza2luZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUseUJBQXlCLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUgsT0FBTyxFQUFDLFVBQVUsRUFBc0MsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RixPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBS25ELE1BQU0sT0FBTyxPQUFPO0lBRWhCLFlBQWdDLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFDcEQsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFzQixFQUFFLFlBQW9CLEdBQUc7UUFDaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQztRQUVsQyxNQUFNLE1BQU0sR0FBRyx1QkFBdUIsQ0FBQztRQUN2QyxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTNELE1BQU0sc0JBQXNCLEdBQUcsU0FBUzthQUNuQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLElBQUksVUFBVSxJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUM7YUFDakQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLHNCQUFzQixHQUFH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aUJBQ3JCOzswQkFHZ0IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Zm9ybWF0RGF0ZSwgZ2V0Q3VycmVuY3lTeW1ib2wsIGdldExvY2FsZU51bWJlclN5bWJvbCwgZ2V0TnVtYmVyT2ZDdXJyZW5jeURpZ2l0cywgTnVtYmVyU3ltYm9sfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtjcmVhdGVNYXNrLCBDdXJyZW5jeU1hc2tPcHRpb25zLCBEYXRlTWFza0Zvcm1hdH0gZnJvbSAnLi9pbnB1dC1tYXNrLmludGVyZmFjZSc7XG5pbXBvcnQge0xvY2FsaXplfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9sb2NhbGl6ZSc7XG5pbXBvcnQge0luamVjdGFibGUsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNYXNraW5nIHtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgX2xvY2FsaXplPzogTG9jYWxpemUpIHtcbiAgICB9XG5cbiAgICBkYXRlKGZvcm1hdDogRGF0ZU1hc2tGb3JtYXQsIHNlcGFyYXRvcjogc3RyaW5nID0gJy0nKSB7XG4gICAgICAgIGNvbnN0IGRhdGVQYXJ0cyA9IHRoaXMuZ2V0RGF0ZVBhcnRzKGZvcm1hdCk7XG4gICAgICAgIGNvbnN0IGlucHV0Rm9ybWF0ID0gZGF0ZVBhcnRzLmpvaW4oc2VwYXJhdG9yKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0Rm9ybWF0ID0gJ3l5eXktTU0tZGQnO1xuXG4gICAgICAgIGNvbnN0IGVzY2FwZSA9IC9bLiorP14ke30oKVxcL3xbXFxdXFxcXF0vZztcbiAgICAgICAgY29uc3QgZXNjYXBlZFNlcGFyYXRvciA9IHNlcGFyYXRvci5yZXBsYWNlKGVzY2FwZSwgJ1xcXFwkJicpO1xuXG4gICAgICAgIGNvbnN0IGlucHV0Rm9ybWF0UmVnZXhTdHJpbmcgPSBkYXRlUGFydHNcbiAgICAgICAgICAgIC5tYXAoaXRlbSA9PiBgKD88JHtpdGVtfT5bMC05XXske2l0ZW0/Lmxlbmd0aH19KWApXG4gICAgICAgICAgICAuam9pbihlc2NhcGVkU2VwYXJhdG9yKTtcbiAgICAgICAgY29uc3QgaW5wdXRGb3JtYXRSZWdleCA9IG5ldyBSZWdFeHAoYF4ke2lucHV0Rm9ybWF0UmVnZXhTdHJpbmd9JGApO1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVNYXNrKHtcbiAgICAgICAgICAgIGFsaWFzOiAnZGF0ZXRpbWUnLFxuICAgICAgICAgICAgaW5wdXRGb3JtYXQ6IGlucHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICBvdXRwdXRGb3JtYXQ6IG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLFxuICAgICAgICAgICAgbnVsbGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgaW5wdXRtb2RlOiAnbnVtZXJpYycsXG4gICAgICAgICAgICBvbkJlZm9yZU1hc2s6IChpbml0aWFsVmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBpbml0aWFsVmFsdWUgPyBmb3JtYXREYXRlKGluaXRpYWxWYWx1ZSwgaW5wdXRGb3JtYXQsICdlbi1VUycpIDogbnVsbDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkJlZm9yZVBhc3RlOiAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXJzZXI6ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnIHx8ICFpbnB1dEZvcm1hdFJlZ2V4LnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGVzID0gdmFsdWUubWF0Y2goaW5wdXRGb3JtYXRSZWdleCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeWVhciA9ICttYXRjaGVzPy5ncm91cHM/LlsneXl5eSddO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbnRoID0gK21hdGNoZXM/Lmdyb3Vwcz8uWydNTSddIC0gMTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXkgPSArbWF0Y2hlcz8uZ3JvdXBzPy5bJ2RkJ107XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXkpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTig8YW55PmRhdGUpXG4gICAgICAgICAgICAgICAgICAgID8gZm9ybWF0RGF0ZShkYXRlLCBvdXRwdXRGb3JtYXQsICdlbi1VUycpXG4gICAgICAgICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY3VycmVuY3koY29kZTogc3RyaW5nLCBvcHRpb25zPzogUGFydGlhbDxDdXJyZW5jeU1hc2tPcHRpb25zPikge1xuICAgICAgICBjb25zdCBsb2NhbGUgPSB0aGlzLl9sb2NhbGl6ZT8uY3VycmVudD8ubG9jYWxlID8/ICdlbic7XG4gICAgICAgIGNvbnN0IHN5bWJvbCA9IG9wdGlvbnM/LnN5bWJvbCA/PyBnZXRDdXJyZW5jeVN5bWJvbChjb2RlLCBvcHRpb25zPy5zeW1ib2xGb3JtYXQgPz8gJ25hcnJvdycsIGxvY2FsZSk7XG5cbiAgICAgICAgY29uc3QgZGVjaW1hbCA9IG9wdGlvbnM/LmRlY2ltYWxDaGFyYWN0ZXIgPz8gZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKGxvY2FsZSwgTnVtYmVyU3ltYm9sLkN1cnJlbmN5RGVjaW1hbCk7XG4gICAgICAgIGNvbnN0IGdyb3VwID0gb3B0aW9ucz8uZ3JvdXBDaGFyYWN0ZXIgPz8gZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKGxvY2FsZSwgTnVtYmVyU3ltYm9sLkN1cnJlbmN5R3JvdXApO1xuICAgICAgICBjb25zdCBkaWdpdHMgPSBvcHRpb25zPy5kaWdpdHMgPz8gZ2V0TnVtYmVyT2ZDdXJyZW5jeURpZ2l0cyhjb2RlKTtcbiAgICAgICAgY29uc3Qgc3BhY2VyID0gb3B0aW9ucz8uc3BhY2VyID8/ICcgJztcblxuICAgICAgICByZXR1cm4gY3JlYXRlTWFzayh7XG4gICAgICAgICAgICBhbGlhczogJ251bWVyaWMnLFxuICAgICAgICAgICAgZGlnaXRzOiBkaWdpdHMsXG4gICAgICAgICAgICBhbGxvd01pbnVzOiBvcHRpb25zPy5hbGxvd01pbnVzID8/IGZhbHNlLFxuICAgICAgICAgICAgbWluOiBvcHRpb25zPy5taW4gPz8gMCxcbiAgICAgICAgICAgIG1heDogb3B0aW9ucz8ubWF4ID8/IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLFxuICAgICAgICAgICAgcHJlZml4OiBgJHtzeW1ib2x9JHtzcGFjZXJ9YCxcbiAgICAgICAgICAgIHJhZGl4UG9pbnQ6IGRlY2ltYWwgPz8gJy4nLFxuICAgICAgICAgICAgZ3JvdXBTZXBhcmF0b3I6IGdyb3VwID8/ICcsJyxcbiAgICAgICAgICAgIGRpZ2l0c09wdGlvbmFsOiBvcHRpb25zPy5kaWdpdHNPcHRpb25hbCA/PyBmYWxzZSxcbiAgICAgICAgICAgIG51bGxhYmxlOiBvcHRpb25zPy5udWxsYWJsZSA/PyB0cnVlLFxuICAgICAgICAgICAgYXV0b1VubWFzazogdHJ1ZSxcbiAgICAgICAgICAgIHVubWFza0FzTnVtYmVyOiB0cnVlLFxuICAgICAgICAgICAgcmlnaHRBbGlnbjogZmFsc2UsXG4gICAgICAgICAgICBzaG93TWFza09uSG92ZXI6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd01hc2tPbkZvY3VzOiBmYWxzZSxcbiAgICAgICAgICAgIGlucHV0bW9kZTogZGlnaXRzID4gMCA/ICdkZWNpbWFsJyA6ICdudW1lcmljJyxcbiAgICAgICAgICAgIHBhcnNlcjogKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0ZVBhcnRzKGZvcm1hdDogRGF0ZU1hc2tGb3JtYXQpIHtcbiAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgIGNhc2UgJ2RheS1tb250aC15ZWFyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gWydkZCcsICdNTScsICd5eXl5J107XG4gICAgICAgICAgICBjYXNlICdtb250aC1kYXkteWVhcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsnTU0nLCAnZGQnLCAneXl5eSddO1xuICAgICAgICAgICAgY2FzZSAneWVhci1kYXktbW9udGgnOlxuICAgICAgICAgICAgICAgIHJldHVybiBbJ3l5eXknLCAnZGQnLCAnTU0nXTtcbiAgICAgICAgICAgIGNhc2UgJ3llYXItbW9udGgtZGF5JzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFsneXl5eScsICdNTScsICdkZCddO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=