@bravobit/bb-foundation 0.33.0 → 0.40.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 (444) hide show
  1. package/auth/lib/auth.config.d.ts +5 -0
  2. package/auth/lib/auth.interceptor.d.ts +2 -2
  3. package/auth/lib/auth.module.d.ts +1 -4
  4. package/auth/lib/auth.service.d.ts +2 -2
  5. package/auth/lib/directives/authenticated.directive.d.ts +11 -4
  6. package/auth/lib/guards/anonymous.guard.d.ts +2 -15
  7. package/auth/lib/guards/authenticated.guard.d.ts +2 -15
  8. package/auth/lib/interfaces/config.interface.d.ts +2 -1
  9. package/auth/public_api.d.ts +1 -0
  10. package/collections/lib/collections.module.d.ts +12 -3
  11. package/collections/lib/components/collections-actions/collections-actions.component.d.ts +10 -0
  12. package/collections/lib/components/collections-grid/collections-grid.component.d.ts +18 -0
  13. package/collections/lib/components/collections-pager/collections-pager.component.d.ts +15 -14
  14. package/collections/lib/components/collections-table/collections-table.component.d.ts +24 -0
  15. package/collections/lib/components/collections-table-label/collections-table-label.component.d.ts +11 -0
  16. package/collections/lib/components/collections-table-sorting/collections-table-sorting.component.d.ts +18 -0
  17. package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +9 -5
  18. package/collections/lib/directives/collections-data-row.directive.d.ts +14 -0
  19. package/collections/lib/directives/collections-data.directive.d.ts +14 -0
  20. package/collections/lib/directives/collections-empty.directive.d.ts +14 -0
  21. package/collections/lib/directives/collections-error.directive.d.ts +14 -0
  22. package/collections/lib/directives/collections-initial.directive.d.ts +11 -0
  23. package/collections/lib/directives/collections-item.directive.d.ts +14 -0
  24. package/collections/public_api.d.ts +11 -1
  25. package/dashboard/lib/dashboard/dashboard.component.d.ts +5 -8
  26. package/dashboard/lib/dashboard-header/dashboard-header.component.d.ts +3 -5
  27. package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +1 -1
  28. package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +4 -7
  29. package/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.d.ts +3 -5
  30. package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +6 -11
  31. package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +2 -2
  32. package/dashboard/lib/dashboard.module.d.ts +1 -4
  33. package/dialog/lib/dialog-actions/dialog-actions.component.d.ts +1 -1
  34. package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +2 -2
  35. package/dialog/lib/dialog-container/dialog-container.component.d.ts +2 -2
  36. package/dialog/lib/dialog-header/dialog-header.component.d.ts +1 -1
  37. package/dialog/lib/dialog-link/dialog-link.component.d.ts +1 -1
  38. package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +1 -1
  39. package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +2 -2
  40. package/dialog/lib/dialog.config.d.ts +3 -0
  41. package/dialog/lib/dialog.insertion.d.ts +1 -1
  42. package/dialog/lib/dialog.interfaces.d.ts +2 -0
  43. package/dialog/lib/dialog.module.d.ts +2 -4
  44. package/dialog/lib/directives/confirm.directive.d.ts +13 -0
  45. package/dialog/public_api.d.ts +2 -0
  46. package/elements/lib/avatar/avatar.component.d.ts +2 -1
  47. package/elements/lib/button/button.component.d.ts +12 -14
  48. package/elements/lib/checkbox/checkbox.component.d.ts +29 -22
  49. package/elements/lib/checkbox-group/checkbox-group.component.d.ts +13 -0
  50. package/elements/lib/date-picker/date-picker.component.d.ts +17 -10
  51. package/elements/lib/directives/addon.directive.d.ts +2 -2
  52. package/elements/lib/directives/extra-error-controls.directive.d.ts +13 -0
  53. package/elements/lib/directives/form-submit.directive.d.ts +1 -1
  54. package/elements/lib/directives/form-submitter.directive.d.ts +1 -1
  55. package/elements/lib/directives/image-upload.directive.d.ts +1 -1
  56. package/elements/lib/directives/input.directive.d.ts +9 -31
  57. package/elements/lib/elements.config.d.ts +84 -0
  58. package/elements/lib/elements.module.d.ts +20 -102
  59. package/elements/lib/file-picker/file-picker.component.d.ts +14 -10
  60. package/elements/lib/form-control/form-control.component.d.ts +8 -9
  61. package/elements/lib/form-error/form-error.component.d.ts +12 -9
  62. package/elements/lib/form-group/form-group.component.d.ts +4 -7
  63. package/elements/lib/icon/icon.component.d.ts +4 -4
  64. package/elements/lib/image-picker/image-picker.component.d.ts +9 -9
  65. package/elements/lib/multi-file-control/multi-file-control.component.d.ts +58 -0
  66. package/elements/lib/pipes/date.pipe.d.ts +9 -0
  67. package/elements/lib/pipes/file-image.pipe.d.ts +1 -1
  68. package/elements/lib/pipes/file-size.pipe.d.ts +1 -1
  69. package/elements/lib/pipes/relative-time.pipe.d.ts +1 -1
  70. package/elements/lib/radio-button/radio-button.component.d.ts +18 -0
  71. package/elements/lib/radio-group/radio-group.component.d.ts +38 -0
  72. package/elements/lib/spinner/spinner.component.d.ts +4 -7
  73. package/elements/public_api.d.ts +8 -3
  74. package/esm2022/auth/lib/auth.config.mjs +16 -0
  75. package/esm2022/auth/lib/auth.interceptor.mjs +10 -7
  76. package/esm2022/auth/lib/auth.module.mjs +9 -19
  77. package/esm2022/auth/lib/auth.service.mjs +22 -13
  78. package/esm2022/auth/lib/directives/authenticated.directive.mjs +45 -11
  79. package/esm2022/auth/lib/guards/anonymous.guard.mjs +27 -51
  80. package/esm2022/auth/lib/guards/authenticated.guard.mjs +30 -54
  81. package/esm2022/auth/lib/helpers/jwt.helper.mjs +2 -2
  82. package/esm2022/auth/lib/interfaces/config.interface.mjs +2 -3
  83. package/esm2022/auth/public_api.mjs +2 -1
  84. package/esm2022/collections/lib/collections.module.mjs +53 -23
  85. package/esm2022/collections/lib/components/collections-actions/collections-actions.component.mjs +39 -0
  86. package/esm2022/collections/lib/components/collections-grid/collections-grid.component.mjs +52 -0
  87. package/esm2022/collections/lib/components/collections-pager/collections-pager.component.mjs +51 -60
  88. package/esm2022/collections/lib/components/collections-table/collections-table.component.mjs +86 -0
  89. package/esm2022/collections/lib/components/collections-table-label/collections-table-label.component.mjs +33 -0
  90. package/esm2022/collections/lib/components/collections-table-sorting/collections-table-sorting.component.mjs +62 -0
  91. package/esm2022/collections/lib/components/collections-viewer/collections-viewer.component.mjs +10 -7
  92. package/esm2022/collections/lib/directives/collections-data-row.directive.mjs +26 -0
  93. package/esm2022/collections/lib/directives/collections-data.directive.mjs +26 -0
  94. package/esm2022/collections/lib/directives/collections-empty.directive.mjs +26 -0
  95. package/esm2022/collections/lib/directives/collections-error.directive.mjs +26 -0
  96. package/esm2022/collections/lib/directives/collections-initial.directive.mjs +22 -0
  97. package/esm2022/collections/lib/directives/collections-item.directive.mjs +26 -0
  98. package/esm2022/collections/public_api.mjs +12 -2
  99. package/esm2022/combobox/combobox/combobox-container.directive.mjs +3 -3
  100. package/esm2022/combobox/combobox/combobox.component.mjs +6 -6
  101. package/esm2022/combobox/combobox-label.directive.mjs +3 -3
  102. package/esm2022/combobox/combobox-option.directive.mjs +3 -3
  103. package/esm2022/combobox/combobox-panel/combobox-panel.component.mjs +5 -5
  104. package/esm2022/dashboard/lib/dashboard/dashboard.component.mjs +17 -24
  105. package/esm2022/dashboard/lib/dashboard-header/dashboard-header.component.mjs +12 -15
  106. package/esm2022/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +7 -8
  107. package/esm2022/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +20 -15
  108. package/esm2022/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +15 -14
  109. package/esm2022/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +20 -27
  110. package/esm2022/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +6 -10
  111. package/esm2022/dashboard/lib/dashboard.module.mjs +30 -27
  112. package/esm2022/dialog/lib/dialog-actions/dialog-actions.component.mjs +6 -6
  113. package/esm2022/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +12 -15
  114. package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +10 -7
  115. package/esm2022/dialog/lib/dialog-header/dialog-header.component.mjs +5 -6
  116. package/esm2022/dialog/lib/dialog-link/dialog-link.component.mjs +5 -5
  117. package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +7 -7
  118. package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +11 -7
  119. package/esm2022/dialog/lib/dialog.config.mjs +8 -0
  120. package/esm2022/dialog/lib/dialog.insertion.mjs +6 -5
  121. package/esm2022/dialog/lib/dialog.interfaces.mjs +3 -1
  122. package/esm2022/dialog/lib/dialog.module.mjs +17 -25
  123. package/esm2022/dialog/lib/dialog.service.mjs +8 -5
  124. package/esm2022/dialog/lib/directives/confirm.directive.mjs +50 -0
  125. package/esm2022/dialog/public_api.mjs +3 -1
  126. package/esm2022/elements/lib/avatar/avatar.component.mjs +15 -14
  127. package/esm2022/elements/lib/button/button.component.mjs +37 -32
  128. package/esm2022/elements/lib/checkbox/checkbox.component.mjs +86 -47
  129. package/esm2022/elements/lib/checkbox-group/checkbox-group.component.mjs +36 -0
  130. package/esm2022/elements/lib/date-picker/date-picker.component.mjs +64 -51
  131. package/esm2022/elements/lib/directives/addon.directive.mjs +11 -13
  132. package/esm2022/elements/lib/directives/extra-error-controls.directive.mjs +43 -0
  133. package/esm2022/elements/lib/directives/form-submit.directive.mjs +6 -5
  134. package/esm2022/elements/lib/directives/form-submitter.directive.mjs +6 -5
  135. package/esm2022/elements/lib/directives/image-upload.directive.mjs +6 -5
  136. package/esm2022/elements/lib/directives/input.directive.mjs +21 -110
  137. package/esm2022/elements/lib/elements.config.mjs +42 -0
  138. package/esm2022/elements/lib/elements.module.mjs +38 -77
  139. package/esm2022/elements/lib/file-picker/file-picker.component.mjs +36 -24
  140. package/esm2022/elements/lib/form-control/form-control.component.mjs +21 -24
  141. package/esm2022/elements/lib/form-error/form-error.component.mjs +35 -60
  142. package/esm2022/elements/lib/form-group/form-group.component.mjs +15 -12
  143. package/esm2022/elements/lib/icon/icon.component.mjs +19 -24
  144. package/esm2022/elements/lib/image-picker/image-picker.component.mjs +33 -19
  145. package/esm2022/elements/lib/multi-file-control/multi-file-control.component.mjs +165 -0
  146. package/esm2022/elements/lib/pipes/date.pipe.mjs +30 -0
  147. package/esm2022/elements/lib/pipes/file-image.pipe.mjs +6 -5
  148. package/esm2022/elements/lib/pipes/file-size.pipe.mjs +6 -5
  149. package/esm2022/elements/lib/pipes/relative-time.pipe.mjs +6 -5
  150. package/esm2022/elements/lib/radio-button/radio-button.component.mjs +59 -0
  151. package/esm2022/elements/lib/radio-group/radio-group.component.mjs +102 -0
  152. package/esm2022/elements/lib/spinner/spinner.component.mjs +12 -13
  153. package/esm2022/elements/public_api.mjs +9 -4
  154. package/esm2022/http/lib/http.config.mjs +18 -0
  155. package/esm2022/http/lib/http.interfaces.mjs +4 -2
  156. package/esm2022/http/lib/http.module.mjs +9 -22
  157. package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +9 -5
  158. package/esm2022/http/lib/interceptors/error.interceptor.mjs +10 -6
  159. package/esm2022/http/public_api.mjs +2 -1
  160. package/esm2022/lib/core/miscellaneous/coercion.mjs +5 -0
  161. package/esm2022/lib/core/services/exif.service.mjs +3 -3
  162. package/esm2022/lib/core/services/file-loader.service.mjs +3 -3
  163. package/esm2022/lib/core/services/files.service.mjs +3 -3
  164. package/esm2022/lib/core/services/image-converter.service.mjs +3 -3
  165. package/esm2022/lib/core/services/languages.service.mjs +3 -3
  166. package/esm2022/lib/core/services/network.service.mjs +3 -3
  167. package/esm2022/lib/core/services/patch.service.mjs +3 -3
  168. package/esm2022/localize/lib/interfaces/config.interfaces.mjs +2 -7
  169. package/esm2022/localize/lib/interfaces/functions.interfaces.mjs +6 -6
  170. package/esm2022/localize/lib/localizations/dutch.localization.mjs +19 -1
  171. package/esm2022/localize/lib/localizations/english.localization.mjs +19 -1
  172. package/esm2022/localize/lib/localize.config.mjs +43 -0
  173. package/esm2022/localize/lib/localize.module.mjs +10 -54
  174. package/esm2022/localize/lib/localize.pipe.mjs +6 -5
  175. package/esm2022/localize/lib/localize.service.mjs +26 -13
  176. package/esm2022/localize/lib/localize.tokens.mjs +18 -0
  177. package/esm2022/localize/lib/transforms/interpolate.transform.mjs +3 -2
  178. package/esm2022/localize/lib/transforms/plural.transform.mjs +5 -3
  179. package/esm2022/localize/lib/transforms/reference.transform.mjs +5 -3
  180. package/esm2022/localize/lib/views/localize-string/localize-string.component.mjs +6 -10
  181. package/esm2022/localize/lib/views/localize-template.directive.mjs +6 -5
  182. package/esm2022/localize/public_api.mjs +3 -3
  183. package/esm2022/masking/lib/directives/currency-mask.directive.mjs +6 -5
  184. package/esm2022/masking/lib/directives/date-mask.directive.mjs +6 -5
  185. package/esm2022/masking/lib/directives/input-mask.directive.mjs +6 -5
  186. package/esm2022/masking/lib/masking.module.mjs +6 -6
  187. package/esm2022/masking/lib/masking.service.mjs +3 -3
  188. package/esm2022/notifications/lib/notifications-item/notifications-item.component.mjs +7 -9
  189. package/esm2022/notifications/lib/notifications-list/notifications-list.component.mjs +8 -8
  190. package/esm2022/notifications/lib/notifications.config.mjs +8 -0
  191. package/esm2022/notifications/lib/notifications.interfaces.mjs +3 -1
  192. package/esm2022/notifications/lib/notifications.module.mjs +8 -18
  193. package/esm2022/notifications/lib/notifications.service.mjs +14 -8
  194. package/esm2022/notifications/public_api.mjs +2 -1
  195. package/esm2022/permissions/lib/directives/permission.directive.mjs +6 -5
  196. package/esm2022/permissions/lib/guards/permission.guard.mjs +23 -54
  197. package/esm2022/permissions/lib/permissions.config.mjs +20 -0
  198. package/esm2022/permissions/lib/permissions.interface.mjs +3 -1
  199. package/esm2022/permissions/lib/permissions.module.mjs +9 -23
  200. package/esm2022/permissions/lib/permissions.service.mjs +8 -5
  201. package/esm2022/permissions/public_api.mjs +2 -1
  202. package/esm2022/public_api.mjs +2 -10
  203. package/esm2022/recaptcha/lib/recaptcha/recaptcha.component.mjs +12 -13
  204. package/esm2022/recaptcha/lib/recaptcha-loader.service.mjs +21 -36
  205. package/esm2022/recaptcha/lib/recaptcha.config.mjs +8 -0
  206. package/esm2022/recaptcha/lib/recaptcha.module.mjs +8 -8
  207. package/esm2022/recaptcha/public_api.mjs +2 -1
  208. package/esm2022/select/bravobit-bb-foundation-select.mjs +5 -0
  209. package/esm2022/select/lib/select/select.component.mjs +210 -0
  210. package/esm2022/select/lib/select-label.directive.mjs +17 -0
  211. package/esm2022/select/lib/select-option-group.directive.mjs +17 -0
  212. package/esm2022/select/lib/select-option.directive.mjs +17 -0
  213. package/esm2022/select/lib/select.module.mjs +35 -0
  214. package/esm2022/select/public_api.mjs +6 -0
  215. package/esm2022/storage/lib/storage.service.mjs +3 -3
  216. package/esm2022/storage/lib/strategies/polyfill-storage.strategy.mjs +2 -5
  217. package/esm2022/table/lib/components/table/table.component.mjs +21 -22
  218. package/esm2022/table/lib/components/table-cell/table-cell.component.mjs +5 -5
  219. package/esm2022/table/lib/components/table-header-cell/table-header-cell.component.mjs +14 -14
  220. package/esm2022/table/lib/components/table-pager/table-pager.component.mjs +15 -17
  221. package/esm2022/table/lib/table.module.mjs +23 -21
  222. package/esm2022/tooltip/lib/tooltip-container/tooltip-container.component.mjs +11 -17
  223. package/esm2022/tooltip/lib/tooltip.directive.mjs +17 -27
  224. package/esm2022/tooltip/lib/tooltip.module.mjs +7 -22
  225. package/esm2022/tooltip/public_api.mjs +2 -2
  226. package/esm2022/utils/lib/directives/autosize.directive.mjs +9 -7
  227. package/esm2022/utils/lib/directives/focus-trap.directive.mjs +6 -5
  228. package/esm2022/utils/lib/directives/focus.directive.mjs +6 -5
  229. package/esm2022/utils/lib/directives/template.directive.mjs +6 -5
  230. package/esm2022/utils/lib/utils.module.mjs +6 -6
  231. package/fesm2022/bravobit-bb-foundation-auth.mjs +140 -175
  232. package/fesm2022/bravobit-bb-foundation-auth.mjs.map +1 -1
  233. package/fesm2022/bravobit-bb-foundation-collections.mjs +451 -106
  234. package/fesm2022/bravobit-bb-foundation-collections.mjs.map +1 -1
  235. package/fesm2022/bravobit-bb-foundation-combobox.mjs +18 -18
  236. package/fesm2022/bravobit-bb-foundation-combobox.mjs.map +1 -1
  237. package/fesm2022/bravobit-bb-foundation-dashboard.mjs +106 -116
  238. package/fesm2022/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  239. package/fesm2022/bravobit-bb-foundation-dialog.mjs +125 -70
  240. package/fesm2022/bravobit-bb-foundation-dialog.mjs.map +1 -1
  241. package/fesm2022/bravobit-bb-foundation-elements.mjs +1652 -1378
  242. package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -1
  243. package/fesm2022/bravobit-bb-foundation-http.mjs +38 -27
  244. package/fesm2022/bravobit-bb-foundation-http.mjs.map +1 -1
  245. package/fesm2022/bravobit-bb-foundation-localize.mjs +310 -264
  246. package/fesm2022/bravobit-bb-foundation-localize.mjs.map +1 -1
  247. package/fesm2022/bravobit-bb-foundation-masking.mjs +23 -20
  248. package/fesm2022/bravobit-bb-foundation-masking.mjs.map +1 -1
  249. package/fesm2022/bravobit-bb-foundation-notifications.mjs +67 -62
  250. package/fesm2022/bravobit-bb-foundation-notifications.mjs.map +1 -1
  251. package/fesm2022/bravobit-bb-foundation-permissions.mjs +54 -72
  252. package/fesm2022/bravobit-bb-foundation-permissions.mjs.map +1 -1
  253. package/fesm2022/bravobit-bb-foundation-recaptcha.mjs +44 -54
  254. package/fesm2022/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  255. package/fesm2022/bravobit-bb-foundation-select.mjs +288 -0
  256. package/fesm2022/bravobit-bb-foundation-select.mjs.map +1 -0
  257. package/fesm2022/bravobit-bb-foundation-storage.mjs +4 -7
  258. package/fesm2022/bravobit-bb-foundation-storage.mjs.map +1 -1
  259. package/fesm2022/bravobit-bb-foundation-table.mjs +67 -66
  260. package/fesm2022/bravobit-bb-foundation-table.mjs.map +1 -1
  261. package/fesm2022/bravobit-bb-foundation-tooltip.mjs +31 -61
  262. package/fesm2022/bravobit-bb-foundation-tooltip.mjs.map +1 -1
  263. package/fesm2022/bravobit-bb-foundation-utils.mjs +28 -23
  264. package/fesm2022/bravobit-bb-foundation-utils.mjs.map +1 -1
  265. package/fesm2022/bravobit-bb-foundation.mjs +27 -144
  266. package/fesm2022/bravobit-bb-foundation.mjs.map +1 -1
  267. package/http/lib/http.config.d.ts +5 -0
  268. package/http/lib/http.interfaces.d.ts +3 -0
  269. package/http/lib/http.module.d.ts +2 -6
  270. package/http/public_api.d.ts +1 -0
  271. package/lib/core/miscellaneous/coercion.d.ts +2 -0
  272. package/localize/lib/interfaces/config.interfaces.d.ts +1 -1
  273. package/localize/lib/interfaces/functions.interfaces.d.ts +0 -2
  274. package/localize/lib/localizations/dutch.localization.d.ts +18 -0
  275. package/localize/lib/localizations/english.localization.d.ts +18 -0
  276. package/localize/lib/localize.config.d.ts +6 -0
  277. package/localize/lib/localize.module.d.ts +2 -7
  278. package/localize/lib/localize.pipe.d.ts +1 -1
  279. package/localize/lib/localize.service.d.ts +4 -4
  280. package/localize/lib/localize.tokens.d.ts +11 -0
  281. package/localize/lib/views/localize-string/localize-string.component.d.ts +1 -1
  282. package/localize/lib/views/localize-template.directive.d.ts +1 -1
  283. package/localize/public_api.d.ts +2 -2
  284. package/masking/lib/directives/currency-mask.directive.d.ts +1 -1
  285. package/masking/lib/directives/date-mask.directive.d.ts +1 -1
  286. package/masking/lib/directives/input-mask.directive.d.ts +1 -1
  287. package/masking/lib/masking.module.d.ts +1 -1
  288. package/notifications/lib/notifications-item/notifications-item.component.d.ts +1 -1
  289. package/notifications/lib/notifications-list/notifications-list.component.d.ts +1 -1
  290. package/notifications/lib/notifications.config.d.ts +3 -0
  291. package/notifications/lib/notifications.interfaces.d.ts +2 -1
  292. package/notifications/lib/notifications.module.d.ts +1 -5
  293. package/notifications/public_api.d.ts +1 -0
  294. package/package.json +28 -33
  295. package/permissions/lib/directives/permission.directive.d.ts +1 -1
  296. package/permissions/lib/guards/permission.guard.d.ts +3 -15
  297. package/permissions/lib/permissions.config.d.ts +3 -0
  298. package/permissions/lib/permissions.interface.d.ts +2 -1
  299. package/permissions/lib/permissions.module.d.ts +1 -1
  300. package/permissions/public_api.d.ts +1 -0
  301. package/public_api.d.ts +1 -9
  302. package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +4 -7
  303. package/recaptcha/lib/recaptcha-loader.service.d.ts +9 -13
  304. package/recaptcha/lib/recaptcha.config.d.ts +3 -0
  305. package/recaptcha/lib/recaptcha.module.d.ts +2 -2
  306. package/recaptcha/public_api.d.ts +1 -0
  307. package/{theming → select}/index.d.ts +1 -1
  308. package/select/lib/select/select.component.d.ts +75 -0
  309. package/select/lib/select-label.directive.d.ts +8 -0
  310. package/select/lib/select-option-group.directive.d.ts +8 -0
  311. package/select/lib/select-option.directive.d.ts +8 -0
  312. package/select/lib/select.module.d.ts +10 -0
  313. package/select/public_api.d.ts +5 -0
  314. package/styles/colors.scss +20 -0
  315. package/styles/grid.scss +98 -0
  316. package/styles/reset.scss +65 -0
  317. package/styles/theme.scss +88 -0
  318. package/table/lib/components/table/table.component.d.ts +4 -6
  319. package/table/lib/components/table-cell/table-cell.component.d.ts +1 -1
  320. package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +4 -7
  321. package/table/lib/components/table-pager/table-pager.component.d.ts +4 -8
  322. package/table/lib/table.module.d.ts +1 -5
  323. package/tooltip/lib/tooltip-container/tooltip-container.component.d.ts +3 -4
  324. package/tooltip/lib/tooltip.directive.d.ts +8 -17
  325. package/tooltip/lib/tooltip.module.d.ts +2 -5
  326. package/tooltip/public_api.d.ts +1 -1
  327. package/utils/lib/directives/autosize.directive.d.ts +2 -1
  328. package/utils/lib/directives/focus-trap.directive.d.ts +1 -1
  329. package/utils/lib/directives/focus.directive.d.ts +1 -1
  330. package/utils/lib/directives/template.directive.d.ts +1 -1
  331. package/utils/lib/utils.module.d.ts +1 -1
  332. package/auth/lib/directives/abstract.directive.d.ts +0 -12
  333. package/collections/lib/components/collections.directive.d.ts +0 -17
  334. package/controls/index.d.ts +0 -5
  335. package/controls/lib/checkbox/checkbox/checkbox.component.d.ts +0 -51
  336. package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +0 -23
  337. package/controls/lib/checkbox/checkbox.module.d.ts +0 -10
  338. package/controls/lib/control-error/control-error/control-error.animation.d.ts +0 -1
  339. package/controls/lib/control-error/control-error/control-error.component.d.ts +0 -17
  340. package/controls/lib/control-error/control-error-submit.directive.d.ts +0 -15
  341. package/controls/lib/control-error/control-error.defaults.d.ts +0 -2
  342. package/controls/lib/control-error/control-error.interface.d.ts +0 -12
  343. package/controls/lib/control-error/control-error.module.d.ts +0 -9
  344. package/controls/lib/control-error/control-error.utils.d.ts +0 -3
  345. package/controls/lib/controls.interfaces.d.ts +0 -4
  346. package/controls/lib/controls.module.d.ts +0 -14
  347. package/controls/lib/form-control/form-control/form-control.component.d.ts +0 -29
  348. package/controls/lib/form-control/form-control-addon/form-control-addon.component.d.ts +0 -6
  349. package/controls/lib/form-control/form-control-input.directive.d.ts +0 -35
  350. package/controls/lib/form-control/form-control.module.d.ts +0 -12
  351. package/controls/lib/radio/radio-button/radio-button.component.d.ts +0 -24
  352. package/controls/lib/radio/radio-group/radio-group.component.d.ts +0 -53
  353. package/controls/lib/radio/radio.module.d.ts +0 -11
  354. package/controls/lib/toggle/toggle/toggle.component.d.ts +0 -45
  355. package/controls/lib/toggle/toggle-group/toggle-group.component.d.ts +0 -23
  356. package/controls/lib/toggle/toggle.module.d.ts +0 -10
  357. package/controls/public_api.d.ts +0 -20
  358. package/elements/lib/dropdown/dropdown.component.d.ts +0 -21
  359. package/elements/lib/tag/tag.component.d.ts +0 -7
  360. package/esm2022/auth/lib/directives/abstract.directive.mjs +0 -40
  361. package/esm2022/collections/lib/components/collections.directive.mjs +0 -43
  362. package/esm2022/controls/bravobit-bb-foundation-controls.mjs +0 -5
  363. package/esm2022/controls/lib/checkbox/checkbox/checkbox.component.mjs +0 -178
  364. package/esm2022/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +0 -68
  365. package/esm2022/controls/lib/checkbox/checkbox.module.mjs +0 -20
  366. package/esm2022/controls/lib/control-error/control-error/control-error.animation.mjs +0 -14
  367. package/esm2022/controls/lib/control-error/control-error/control-error.component.mjs +0 -63
  368. package/esm2022/controls/lib/control-error/control-error-submit.directive.mjs +0 -47
  369. package/esm2022/controls/lib/control-error/control-error.defaults.mjs +0 -26
  370. package/esm2022/controls/lib/control-error/control-error.interface.mjs +0 -3
  371. package/esm2022/controls/lib/control-error/control-error.module.mjs +0 -19
  372. package/esm2022/controls/lib/control-error/control-error.utils.mjs +0 -20
  373. package/esm2022/controls/lib/controls.interfaces.mjs +0 -2
  374. package/esm2022/controls/lib/controls.module.mjs +0 -62
  375. package/esm2022/controls/lib/form-control/form-control/form-control.component.mjs +0 -79
  376. package/esm2022/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +0 -22
  377. package/esm2022/controls/lib/form-control/form-control-input.directive.mjs +0 -124
  378. package/esm2022/controls/lib/form-control/form-control.module.mjs +0 -34
  379. package/esm2022/controls/lib/radio/radio-button/radio-button.component.mjs +0 -75
  380. package/esm2022/controls/lib/radio/radio-group/radio-group.component.mjs +0 -168
  381. package/esm2022/controls/lib/radio/radio.module.mjs +0 -21
  382. package/esm2022/controls/lib/toggle/toggle/toggle.component.mjs +0 -153
  383. package/esm2022/controls/lib/toggle/toggle-group/toggle-group.component.mjs +0 -62
  384. package/esm2022/controls/lib/toggle/toggle.module.mjs +0 -20
  385. package/esm2022/controls/public_api.mjs +0 -21
  386. package/esm2022/elements/lib/dropdown/dropdown.component.mjs +0 -100
  387. package/esm2022/elements/lib/tag/tag.component.mjs +0 -18
  388. package/esm2022/lib/core/mixins/can-disable.mjs +0 -16
  389. package/esm2022/lib/core/mixins/can-hide-errors.mjs +0 -16
  390. package/esm2022/lib/core/mixins/can-load.mjs +0 -16
  391. package/esm2022/lib/core/mixins/constructor.mjs +0 -2
  392. package/esm2022/lib/core/mixins/has-error.mjs +0 -16
  393. package/esm2022/lib/core/mixins/is-focused.mjs +0 -16
  394. package/esm2022/lib/core/mixins/is-grouped.mjs +0 -16
  395. package/esm2022/lib/core/mixins/is-readonly.mjs +0 -16
  396. package/esm2022/lib/core/mixins/is-required.mjs +0 -16
  397. package/esm2022/localize/lib/interfaces/transforms.interfaces.mjs +0 -3
  398. package/esm2022/localize/lib/locale.token.mjs +0 -14
  399. package/esm2022/theming/bravobit-bb-foundation-theming.mjs +0 -5
  400. package/esm2022/theming/lib/themes/checkbox-group.theme.mjs +0 -17
  401. package/esm2022/theming/lib/themes/checkbox.theme.mjs +0 -35
  402. package/esm2022/theming/lib/themes/control-error.theme.mjs +0 -11
  403. package/esm2022/theming/lib/themes/form-control-addon.theme.mjs +0 -6
  404. package/esm2022/theming/lib/themes/form-control.theme.mjs +0 -45
  405. package/esm2022/theming/lib/themes/radio-button.theme.mjs +0 -29
  406. package/esm2022/theming/lib/themes/radio-group.theme.mjs +0 -20
  407. package/esm2022/theming/lib/themes/toggle-group.theme.mjs +0 -17
  408. package/esm2022/theming/lib/themes/toggle.theme.mjs +0 -28
  409. package/esm2022/theming/lib/theming.data.mjs +0 -90
  410. package/esm2022/theming/lib/theming.directive.mjs +0 -38
  411. package/esm2022/theming/lib/theming.interface.mjs +0 -2
  412. package/esm2022/theming/lib/theming.module.mjs +0 -16
  413. package/esm2022/theming/lib/utils/theming.variable.mjs +0 -41
  414. package/esm2022/theming/public_api.mjs +0 -10
  415. package/fesm2022/bravobit-bb-foundation-controls.mjs +0 -1191
  416. package/fesm2022/bravobit-bb-foundation-controls.mjs.map +0 -1
  417. package/fesm2022/bravobit-bb-foundation-theming.mjs +0 -381
  418. package/fesm2022/bravobit-bb-foundation-theming.mjs.map +0 -1
  419. package/lib/core/mixins/can-disable.d.ts +0 -6
  420. package/lib/core/mixins/can-hide-errors.d.ts +0 -6
  421. package/lib/core/mixins/can-load.d.ts +0 -6
  422. package/lib/core/mixins/constructor.d.ts +0 -1
  423. package/lib/core/mixins/has-error.d.ts +0 -6
  424. package/lib/core/mixins/is-focused.d.ts +0 -6
  425. package/lib/core/mixins/is-grouped.d.ts +0 -6
  426. package/lib/core/mixins/is-readonly.d.ts +0 -6
  427. package/lib/core/mixins/is-required.d.ts +0 -6
  428. package/localize/lib/interfaces/transforms.interfaces.d.ts +0 -3
  429. package/localize/lib/locale.token.d.ts +0 -3
  430. package/theming/lib/themes/checkbox-group.theme.d.ts +0 -16
  431. package/theming/lib/themes/checkbox.theme.d.ts +0 -32
  432. package/theming/lib/themes/control-error.theme.d.ts +0 -9
  433. package/theming/lib/themes/form-control-addon.theme.d.ts +0 -5
  434. package/theming/lib/themes/form-control.theme.d.ts +0 -32
  435. package/theming/lib/themes/radio-button.theme.d.ts +0 -26
  436. package/theming/lib/themes/radio-group.theme.d.ts +0 -17
  437. package/theming/lib/themes/toggle-group.theme.d.ts +0 -16
  438. package/theming/lib/themes/toggle.theme.d.ts +0 -25
  439. package/theming/lib/theming.data.d.ts +0 -17
  440. package/theming/lib/theming.directive.d.ts +0 -13
  441. package/theming/lib/theming.interface.d.ts +0 -34
  442. package/theming/lib/theming.module.d.ts +0 -7
  443. package/theming/lib/utils/theming.variable.d.ts +0 -16
  444. package/theming/public_api.d.ts +0 -9
@@ -111,10 +111,10 @@ export class ImageConverter {
111
111
  // If the contents is a string convert it to an HTML image element.
112
112
  return this.stringToImage(contents);
113
113
  }
114
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ImageConverter, deps: [{ token: i1.Exif }, { token: i2.Platform }, { token: i3.FileLoader }], target: i0.ɵɵFactoryTarget.Injectable }); }
115
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ImageConverter, providedIn: 'root' }); }
114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ImageConverter, deps: [{ token: i1.Exif }, { token: i2.Platform }, { token: i3.FileLoader }], target: i0.ɵɵFactoryTarget.Injectable }); }
115
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ImageConverter, providedIn: 'root' }); }
116
116
  }
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ImageConverter, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ImageConverter, decorators: [{
118
118
  type: Injectable,
119
119
  args: [{
120
120
  providedIn: 'root'
@@ -57,10 +57,10 @@ export class Languages {
57
57
  .filter(item => !!item)
58
58
  .sort((a, b) => b.quality - a.quality);
59
59
  }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Languages, deps: [{ token: ACCEPT_LANGUAGE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
61
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Languages, providedIn: 'root' }); }
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Languages, deps: [{ token: ACCEPT_LANGUAGE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
61
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Languages, providedIn: 'root' }); }
62
62
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Languages, decorators: [{
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Languages, decorators: [{
64
64
  type: Injectable,
65
65
  args: [{
66
66
  providedIn: 'root'
@@ -33,10 +33,10 @@ export class Network {
33
33
  // a user is online/offline.
34
34
  this._online$ = merge(now$, online$, offline$).pipe(distinctUntilChanged(), shareReplay({ refCount: true, bufferSize: 1 }));
35
35
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Network, deps: [{ token: i1.Platform }, { token: WINDOW, optional: true }, { token: NAVIGATOR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
37
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Network, providedIn: 'root' }); }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Network, deps: [{ token: i1.Platform }, { token: WINDOW, optional: true }, { token: NAVIGATOR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
37
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Network, providedIn: 'root' }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Network, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Network, decorators: [{
40
40
  type: Injectable,
41
41
  args: [{
42
42
  providedIn: 'root'
@@ -41,10 +41,10 @@ export class Patch {
41
41
  // Save the subscription so we can destroy it later.
42
42
  this._subscription.add(subscription);
43
43
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Patch, deps: [{ token: i1.Platform }, { token: WINDOW, optional: true }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
45
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Patch, providedIn: 'root' }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Patch, deps: [{ token: i1.Platform }, { token: WINDOW, optional: true }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
45
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Patch, providedIn: 'root' }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Patch, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Patch, decorators: [{
48
48
  type: Injectable,
49
49
  args: [{
50
50
  providedIn: 'root'
@@ -1,7 +1,2 @@
1
- //
2
- // The configuration that can be passed when
3
- // the user initializes the localize module.
4
- //
5
- export class LocalizeConfig {
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2xvY2FsaXplL3NyYy9saWIvaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxFQUFFO0FBQ0YsNENBQTRDO0FBQzVDLDRDQUE0QztBQUM1QyxFQUFFO0FBRUYsTUFBTSxPQUFPLGNBQWM7Q0FVMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsaXplRGljdGlvbmFyeURhdGF9IGZyb20gJy4uL2RpY3Rpb25hcnkvZGljdGlvbmFyeS5kYXRhJztcblxuLy9cbi8vIFRoZSBjb25maWd1cmF0aW9uIHRoYXQgY2FuIGJlIHBhc3NlZCB3aGVuXG4vLyB0aGUgdXNlciBpbml0aWFsaXplcyB0aGUgbG9jYWxpemUgbW9kdWxlLlxuLy9cblxuZXhwb3J0IGNsYXNzIExvY2FsaXplQ29uZmlnIHtcbiAgICBsYW5ndWFnZXM6IExvY2FsaXplQ29uZmlnTGFuZ3VhZ2VbXTtcbiAgICBtb2RlPzogJ2F1dG9tYXRpYycgfCAnbWFudWFsJztcbiAgICBzdG9yYWdlVG9rZW4/OiBzdHJpbmc7XG4gICAgc3Vic3RpdHV0aW9ucz86IHtcbiAgICAgICAgcGx1cmFsPzogW2xlZnRTdWJzdGl0dXRpb246IHN0cmluZywgcmlnaHRTdWJzdGl0dXRpb246IHN0cmluZ107XG4gICAgICAgIHJlZmVyZW5jZXM/OiBbbGVmdFN1YnN0aXR1dGlvbjogc3RyaW5nLCByaWdodFN1YnN0aXR1dGlvbjogc3RyaW5nXTtcbiAgICAgICAgaW50ZXJwb2xhdGlvbj86IFtsZWZ0U3Vic3RpdHV0aW9uOiBzdHJpbmcsIHJpZ2h0U3Vic3RpdHV0aW9uOiBzdHJpbmddO1xuICAgIH07XG4gICAgY29tcGFyZURpY3Rpb25hcmllcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxpemVDb25maWdMYW5ndWFnZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBsb2NhbGU6IHN0cmluZztcbiAgICBzdXBwb3J0ZWQ6IHN0cmluZ1tdO1xuICAgIGRhdGE6ICgpID0+IExvY2FsaXplRGljdGlvbmFyeURhdGEgfCBQcm9taXNlPExvY2FsaXplRGljdGlvbmFyeURhdGE+O1xufVxuIl19
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2xvY2FsaXplL3NyYy9saWIvaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2NhbGl6ZURpY3Rpb25hcnlEYXRhfSBmcm9tICcuLi9kaWN0aW9uYXJ5L2RpY3Rpb25hcnkuZGF0YSc7XG5cbi8vXG4vLyBUaGUgY29uZmlndXJhdGlvbiB0aGF0IGNhbiBiZSBwYXNzZWQgd2hlblxuLy8gdGhlIHVzZXIgaW5pdGlhbGl6ZXMgdGhlIGxvY2FsaXplIG1vZHVsZS5cbi8vXG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxpemVDb25maWcge1xuICAgIGxhbmd1YWdlczogTG9jYWxpemVDb25maWdMYW5ndWFnZVtdO1xuICAgIG1vZGU/OiAnYXV0b21hdGljJyB8ICdtYW51YWwnO1xuICAgIHN0b3JhZ2VUb2tlbj86IHN0cmluZztcbiAgICBzdWJzdGl0dXRpb25zPzoge1xuICAgICAgICBwbHVyYWw/OiBbbGVmdFN1YnN0aXR1dGlvbjogc3RyaW5nLCByaWdodFN1YnN0aXR1dGlvbjogc3RyaW5nXTtcbiAgICAgICAgcmVmZXJlbmNlcz86IFtsZWZ0U3Vic3RpdHV0aW9uOiBzdHJpbmcsIHJpZ2h0U3Vic3RpdHV0aW9uOiBzdHJpbmddO1xuICAgICAgICBpbnRlcnBvbGF0aW9uPzogW2xlZnRTdWJzdGl0dXRpb246IHN0cmluZywgcmlnaHRTdWJzdGl0dXRpb246IHN0cmluZ107XG4gICAgfTtcbiAgICBjb21wYXJlRGljdGlvbmFyaWVzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbGl6ZUNvbmZpZ0xhbmd1YWdlIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGxvY2FsZTogc3RyaW5nO1xuICAgIHN1cHBvcnRlZDogc3RyaW5nW107XG4gICAgZGF0YTogKCkgPT4gTG9jYWxpemVEaWN0aW9uYXJ5RGF0YSB8IFByb21pc2U8TG9jYWxpemVEaWN0aW9uYXJ5RGF0YT47XG59XG4iXX0=
@@ -1,8 +1,8 @@
1
- import { InjectionToken } from '@angular/core';
2
1
  //
3
- // This is the injection token that will be injected
4
- // into the service so that the all localize functions
5
- // can retrieved and used.
2
+ // This is the interface that handles the localize functions.
3
+ // every localize function needs to conform to this interface.
4
+ // The interface allows the user to transform a token into
5
+ // another value.
6
6
  //
7
- export const LOCALIZE_FUNCTION = new InjectionToken('localize_function');
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2xvY2FsaXplL3NyYy9saWIvaW50ZXJmYWNlcy9mdW5jdGlvbnMuaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBMEI3QyxFQUFFO0FBQ0Ysb0RBQW9EO0FBQ3BELHNEQUFzRDtBQUN0RCwwQkFBMEI7QUFDMUIsRUFBRTtBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUV4QixJQUFJLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vXG4vLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2UgdGhhdCBoYW5kbGVzIHRoZSBsb2NhbGl6ZSBmdW5jdGlvbnMuXG4vLyBldmVyeSBsb2NhbGl6ZSBmdW5jdGlvbiBuZWVkcyB0byBjb25mb3JtIHRvIHRoaXMgaW50ZXJmYWNlLlxuLy8gVGhlIGludGVyZmFjZSBhbGxvd3MgdGhlIHVzZXIgdG8gdHJhbnNmb3JtIGEgdG9rZW4gaW50b1xuLy8gYW5vdGhlciB2YWx1ZS5cbi8vXG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxpemVGdW5jdGlvbiB7XG5cbiAgICBrZXl3b3JkKCk6IHN0cmluZztcblxuICAgIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpOiBzdHJpbmc7XG5cbn1cblxuLy9cbi8vIFRoaXMgaXMgdGhlIGludGVyZmFjZSB0aGF0IGhhbmRsZXMgdGhlIG1hcFxuLy8gb2YgYWxsIHRoZSBsb2NhbGl6ZSBmdW5jdGlvbnMuXG4vL1xuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsaXplRnVuY3Rpb25NYXAge1xuICAgIFtrZXl3b3JkOiBzdHJpbmddOiBMb2NhbGl6ZUZ1bmN0aW9uO1xufVxuXG4vL1xuLy8gVGhpcyBpcyB0aGUgaW5qZWN0aW9uIHRva2VuIHRoYXQgd2lsbCBiZSBpbmplY3RlZFxuLy8gaW50byB0aGUgc2VydmljZSBzbyB0aGF0IHRoZSBhbGwgbG9jYWxpemUgZnVuY3Rpb25zXG4vLyBjYW4gcmV0cmlldmVkIGFuZCB1c2VkLlxuLy9cblxuZXhwb3J0IGNvbnN0IExPQ0FMSVpFX0ZVTkNUSU9OXG4gICAgOiBJbmplY3Rpb25Ub2tlbjxMb2NhbGl6ZUZ1bmN0aW9uW10+XG4gICAgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ2xvY2FsaXplX2Z1bmN0aW9uJyk7XG4iXX0=
7
+ export {};
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2xvY2FsaXplL3NyYy9saWIvaW50ZXJmYWNlcy9mdW5jdGlvbnMuaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxFQUFFO0FBQ0YsNkRBQTZEO0FBQzdELDhEQUE4RDtBQUM5RCwwREFBMEQ7QUFDMUQsaUJBQWlCO0FBQ2pCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy8gVGhpcyBpcyB0aGUgaW50ZXJmYWNlIHRoYXQgaGFuZGxlcyB0aGUgbG9jYWxpemUgZnVuY3Rpb25zLlxuLy8gZXZlcnkgbG9jYWxpemUgZnVuY3Rpb24gbmVlZHMgdG8gY29uZm9ybSB0byB0aGlzIGludGVyZmFjZS5cbi8vIFRoZSBpbnRlcmZhY2UgYWxsb3dzIHRoZSB1c2VyIHRvIHRyYW5zZm9ybSBhIHRva2VuIGludG9cbi8vIGFub3RoZXIgdmFsdWUuXG4vL1xuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsaXplRnVuY3Rpb24ge1xuXG4gICAga2V5d29yZCgpOiBzdHJpbmc7XG5cbiAgICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgbG9jYWxlPzogc3RyaW5nKTogc3RyaW5nO1xuXG59XG5cbi8vXG4vLyBUaGlzIGlzIHRoZSBpbnRlcmZhY2UgdGhhdCBoYW5kbGVzIHRoZSBtYXBcbi8vIG9mIGFsbCB0aGUgbG9jYWxpemUgZnVuY3Rpb25zLlxuLy9cblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbGl6ZUZ1bmN0aW9uTWFwIHtcbiAgICBba2V5d29yZDogc3RyaW5nXTogTG9jYWxpemVGdW5jdGlvbjtcbn1cbiJdfQ==
@@ -18,6 +18,24 @@ export const extraDutchDictionary = {
18
18
  'minlength': 'Verwachtte minimaal {{requiredLength}} tekens, maar kreeg {{actualLength}} tekens.',
19
19
  'maxlength': 'Verwachtte maximaal {{requiredLength}} tekens, maar kreeg {{actualLength}} tekens.'
20
20
  },
21
+ 'select': {
22
+ 'not_found_text': 'Geen items gevonden',
23
+ 'clear_all_text': 'Wis alles',
24
+ 'loading_text': 'Aan het laden...',
25
+ 'type_to_search_text': 'Typ om te zoeken',
26
+ 'add_tag_text': 'Tag toevoegen'
27
+ },
28
+ 'multi-file-control': {
29
+ 'choose_file': 'Kies een bestand',
30
+ 'choose_file_text': '@element(label) of sleep de bestanden hiernaartoe'
31
+ },
32
+ 'collection': {
33
+ 'search_label': 'Zoeken...',
34
+ 'showing_label': 'Toont @element(start) tot @element(end) van @element(total) resultaten',
35
+ 'no_results_label': 'Er zijn geen resultaten voor @element(query). Probeer een andere zoekterm om resultaten te vinden...',
36
+ 'empty_label': 'Er zijn geen resultaten...',
37
+ 'error_label': 'Het lijkt erop dat een fout is opgetreden tijdens het gebruiken van de applicatie.'
38
+ },
21
39
  'tables': {
22
40
  'search': 'Zoeken...',
23
41
  'loading': 'Aan het laden...',
@@ -42,4 +60,4 @@ export const extraDutchDictionary = {
42
60
  'yesterday_at': 'Gisteren om {{date}}'
43
61
  }
44
62
  };
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHV0Y2gubG9jYWxpemF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2xvY2FsaXphdGlvbnMvZHV0Y2gubG9jYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2hDLHFCQUFxQixFQUFFO1FBQ25CLFNBQVMsRUFBRSxvQ0FBb0M7UUFDL0MsVUFBVSxFQUFFLHdCQUF3QjtRQUNwQyxTQUFTLEVBQUUsbUJBQW1CO1FBQzlCLE9BQU8sRUFBRSx3REFBd0Q7UUFDakUsWUFBWSxFQUFFLDhCQUE4QjtRQUM1QyxlQUFlLEVBQUUscUNBQXFDO1FBQ3RELFNBQVMsRUFBRSw2QkFBNkI7UUFDeEMsWUFBWSxFQUFFLHdDQUF3QztRQUN0RCxLQUFLLEVBQUUsd0NBQXdDO1FBQy9DLEtBQUssRUFBRSx3Q0FBd0M7UUFDL0MsaUJBQWlCLEVBQUUsc0NBQXNDO1FBQ3pELGFBQWEsRUFBRSx3RUFBd0U7UUFDdkYsU0FBUyxFQUFFLDRDQUE0QztRQUN2RCxTQUFTLEVBQUUsNkNBQTZDO1FBQ3hELGFBQWEsRUFBRSxxQ0FBcUM7UUFDcEQsV0FBVyxFQUFFLG9GQUFvRjtRQUNqRyxXQUFXLEVBQUUsb0ZBQW9GO0tBQ3BHO0lBQ0QsUUFBUSxFQUFFO1FBQ04sUUFBUSxFQUFFLFdBQVc7UUFDckIsU0FBUyxFQUFFLGtCQUFrQjtRQUM3QixPQUFPLEVBQUUsNkJBQTZCO1FBQ3RDLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLGtCQUFrQixFQUFFLG9DQUFvQztRQUN4RCxvQkFBb0IsRUFBRSxvREFBb0Q7UUFDMUUsaUJBQWlCLEVBQUUsbURBQW1EO1FBQ3RFLGlCQUFpQixFQUFFLGlDQUFpQztRQUNwRCxjQUFjLEVBQUUsNkVBQTZFO1FBQzdGLFlBQVksRUFBRSx1Q0FBdUM7UUFDckQsZUFBZSxFQUFFLGlGQUFpRjtLQUNyRztJQUNELGFBQWEsRUFBRTtRQUNYLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLFFBQVEsRUFBRSxtQkFBbUI7UUFDN0IsTUFBTSxFQUFFLGtDQUFrQztLQUM3QztJQUNELE9BQU8sRUFBRTtRQUNMLGFBQWEsRUFBRSxvQkFBb0I7UUFDbkMsVUFBVSxFQUFFLHFCQUFxQjtRQUNqQyxjQUFjLEVBQUUsc0JBQXNCO0tBQ3pDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBleHRyYUR1dGNoRGljdGlvbmFyeSA9IHtcbiAgICAnZm9ybS1jb250cm9sLWVycm9ycyc6IHtcbiAgICAgICAgJ3Vua25vd24nOiAnSGV0IHZlbGQgaGVlZnQgZWVuIG9uYmVrZW5kZSBmb3V0LicsXG4gICAgICAgICdyZXF1aXJlZCc6ICdEaXQgdmVsZCBpcyB2ZXJwbGljaHQuJyxcbiAgICAgICAgJ3BhdHRlcm4nOiAnT25nZWxkaWcgZm9ybWFhdC4nLFxuICAgICAgICAnZW1haWwnOiAnSGV0IHZlbGQga29tdCBuaWV0IG92ZXJlZW4gbWV0IGVlbiBnZWxkaWcgZS1tYWlsYWRyZXMuJyxcbiAgICAgICAgJ2VtYWlsVGFrZW4nOiAnSGV0IGUtbWFpbGFkcmVzIGlzIGFsIGJlemV0LicsXG4gICAgICAgICdwYXNzd29yZE1hdGNoJzogJ0RlIHdhY2h0d29vcmRlbiBrb21lbiBuaWV0IG92ZXJlZW4uJyxcbiAgICAgICAgJ2NvbmZpcm0nOiAnSGV0IHZlbGQga29tdCBuaWV0IG92ZXJlZW4uJyxcbiAgICAgICAgJ2Z1bGxOdW1iZXInOiAnSGV0IHZlbGQgbW9ldCBlZW4gdm9sbGVkaWcgZ2V0YWwgemlqbi4nLFxuICAgICAgICAnbWluJzogJ01pbmltdW0gaG9ldmVlbGhlaWQgbW9ldCB7e21pbn19IHppam4uJyxcbiAgICAgICAgJ21heCc6ICdNYXhpbXVtIGhvZXZlZWxoZWlkIG1vZXQge3ttYXh9fSB6aWpuLicsXG4gICAgICAgICdpbnZhbGlkRmlsZVR5cGUnOiAnSGV0IHR5cGUgYmVzdGFuZCBpcyBuaWV0IHRvZWdlc3RhYW4uJyxcbiAgICAgICAgJ21heEZpbGVTaXplJzogJ0hldCBiZXN0YW5kIGhlZWZ0IGRlIG1heGltdW0gaG9ldmVlbGhlaWQgdmFuIHt7bWF4U2l6ZX19IG92ZXJzY2hyZWRlbi4nLFxuICAgICAgICAnbWluRGF0ZSc6ICdEZSBlZXJzdCBtb2dlbGlqa2UgZGF0dW0gaXMge3tkYXRlfGRhdGV9fS4nLFxuICAgICAgICAnbWF4RGF0ZSc6ICdEZSBsYWF0c3QgbW9nZWxpamtlIGRhdHVtIGlzIHt7ZGF0ZXxkYXRlfX0uJyxcbiAgICAgICAgJ2ludmFsaWREYXRlJzogJ0hldCB2ZWxkIGJldmF0IGVlbiBvbmdlbGRpZ2UgZGF0dW0uJyxcbiAgICAgICAgJ21pbmxlbmd0aCc6ICdWZXJ3YWNodHRlIG1pbmltYWFsIHt7cmVxdWlyZWRMZW5ndGh9fSB0ZWtlbnMsIG1hYXIga3JlZWcge3thY3R1YWxMZW5ndGh9fSB0ZWtlbnMuJyxcbiAgICAgICAgJ21heGxlbmd0aCc6ICdWZXJ3YWNodHRlIG1heGltYWFsIHt7cmVxdWlyZWRMZW5ndGh9fSB0ZWtlbnMsIG1hYXIga3JlZWcge3thY3R1YWxMZW5ndGh9fSB0ZWtlbnMuJ1xuICAgIH0sXG4gICAgJ3RhYmxlcyc6IHtcbiAgICAgICAgJ3NlYXJjaCc6ICdab2VrZW4uLi4nLFxuICAgICAgICAnbG9hZGluZyc6ICdBYW4gaGV0IGxhZGVuLi4uJyxcbiAgICAgICAgJ2VtcHR5JzogJ0VyIGlzIGhpZXIgbmlldHMgdGUgdmluZGVuLicsXG4gICAgICAgICdwYWdlJzogJ3BhZ2luYScsXG4gICAgICAgICdlcnJvcl9kYXRhc291cmNlJzogJ0VyIGlzIGdlZW4gZ2VnZXZlbnNicm9uIHZlcnN0cmVrdC4nLFxuICAgICAgICAnZXJyb3JfdW5hdXRob3JpemVkJzogJ1UgbW9ldCBpbmdlbG9nZCB6aWpuIG9tIGRlemUgZ2VnZXZlbnMgdGUgYmVraWprZW4uJyxcbiAgICAgICAgJ2Vycm9yX2ZvcmJpZGRlbic6ICdVIGhlYnQgZ2VlbiB0b2VnYW5nIG9tIGRlemUgZ2VnZXZlbnMgdGUgYmVraWprZW4uJyxcbiAgICAgICAgJ2Vycm9yX25vdF9mb3VuZCc6ICdEZSBnZWdldmVucyB6aWpuIG5pZXQgZ2V2b25kZW4uJyxcbiAgICAgICAgJ2Vycm9yX3NlcnZlcic6ICdFciBpcyBlZW4gc2VydmVyZm91dCBvcGdldHJlZGVuIGJpaiBoZXQgb3BoYWxlbiB2YW4gZ2VnZXZlbnMgdmFuIGRlIHNlcnZlci4nLFxuICAgICAgICAnZXJyb3JfZG93bic6ICdIZXQgbGlqa3QgZXJvcCBkYXQgZGUgc2VydmVyIGRvd24gaXMuJyxcbiAgICAgICAgJ2Vycm9yX3Vua25vd24nOiAnRXIgaXMgZWVuIG9uYmVrZW5kZSBmb3V0IG9wZ2V0cmVkZW4gYmlqIGhldCBvcGhhbGVuIHZhbiBnZWdldmVucyB2YW4gZGUgc2VydmVyLidcbiAgICB9LFxuICAgICdmaWxlLXBpY2tlcic6IHtcbiAgICAgICAgJ2Nob29zZSc6ICdLaWVzIGJlc3RhbmQnLFxuICAgICAgICAncmVtb3ZlJzogJ1ZlcndpamRlciBiZXN0YW5kJyxcbiAgICAgICAgJ2Ryb3AnOiAnb2Ygc2xlZXAgaGV0IGJlc3RhbmQgaGllcm5hYXJ0b2UnXG4gICAgfSxcbiAgICAndGltZXMnOiB7XG4gICAgICAgICd0b21vcnJvd19hdCc6ICdNb3JnZW4gb20ge3tkYXRlfX0nLFxuICAgICAgICAndG9kYXlfYXQnOiAnVmFuZGFhZyBvbSB7e2RhdGV9fScsXG4gICAgICAgICd5ZXN0ZXJkYXlfYXQnOiAnR2lzdGVyZW4gb20ge3tkYXRlfX0nXG4gICAgfVxufTtcbiJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHV0Y2gubG9jYWxpemF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2xvY2FsaXphdGlvbnMvZHV0Y2gubG9jYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2hDLHFCQUFxQixFQUFFO1FBQ25CLFNBQVMsRUFBRSxvQ0FBb0M7UUFDL0MsVUFBVSxFQUFFLHdCQUF3QjtRQUNwQyxTQUFTLEVBQUUsbUJBQW1CO1FBQzlCLE9BQU8sRUFBRSx3REFBd0Q7UUFDakUsWUFBWSxFQUFFLDhCQUE4QjtRQUM1QyxlQUFlLEVBQUUscUNBQXFDO1FBQ3RELFNBQVMsRUFBRSw2QkFBNkI7UUFDeEMsWUFBWSxFQUFFLHdDQUF3QztRQUN0RCxLQUFLLEVBQUUsd0NBQXdDO1FBQy9DLEtBQUssRUFBRSx3Q0FBd0M7UUFDL0MsaUJBQWlCLEVBQUUsc0NBQXNDO1FBQ3pELGFBQWEsRUFBRSx3RUFBd0U7UUFDdkYsU0FBUyxFQUFFLDRDQUE0QztRQUN2RCxTQUFTLEVBQUUsNkNBQTZDO1FBQ3hELGFBQWEsRUFBRSxxQ0FBcUM7UUFDcEQsV0FBVyxFQUFFLG9GQUFvRjtRQUNqRyxXQUFXLEVBQUUsb0ZBQW9GO0tBQ3BHO0lBQ0QsUUFBUSxFQUFFO1FBQ04sZ0JBQWdCLEVBQUUscUJBQXFCO1FBQ3ZDLGdCQUFnQixFQUFFLFdBQVc7UUFDN0IsY0FBYyxFQUFFLGtCQUFrQjtRQUNsQyxxQkFBcUIsRUFBRSxrQkFBa0I7UUFDekMsY0FBYyxFQUFFLGVBQWU7S0FDbEM7SUFDRCxvQkFBb0IsRUFBRTtRQUNsQixhQUFhLEVBQUUsa0JBQWtCO1FBQ2pDLGtCQUFrQixFQUFFLG1EQUFtRDtLQUMxRTtJQUNELFlBQVksRUFBRTtRQUNWLGNBQWMsRUFBRSxXQUFXO1FBQzNCLGVBQWUsRUFBRSx3RUFBd0U7UUFDekYsa0JBQWtCLEVBQUUsc0dBQXNHO1FBQzFILGFBQWEsRUFBRSw0QkFBNEI7UUFDM0MsYUFBYSxFQUFFLG9GQUFvRjtLQUN0RztJQUNELFFBQVEsRUFBRTtRQUNOLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFNBQVMsRUFBRSxrQkFBa0I7UUFDN0IsT0FBTyxFQUFFLDZCQUE2QjtRQUN0QyxNQUFNLEVBQUUsUUFBUTtRQUNoQixrQkFBa0IsRUFBRSxvQ0FBb0M7UUFDeEQsb0JBQW9CLEVBQUUsb0RBQW9EO1FBQzFFLGlCQUFpQixFQUFFLG1EQUFtRDtRQUN0RSxpQkFBaUIsRUFBRSxpQ0FBaUM7UUFDcEQsY0FBYyxFQUFFLDZFQUE2RTtRQUM3RixZQUFZLEVBQUUsdUNBQXVDO1FBQ3JELGVBQWUsRUFBRSxpRkFBaUY7S0FDckc7SUFDRCxhQUFhLEVBQUU7UUFDWCxRQUFRLEVBQUUsY0FBYztRQUN4QixRQUFRLEVBQUUsbUJBQW1CO1FBQzdCLE1BQU0sRUFBRSxrQ0FBa0M7S0FDN0M7SUFDRCxPQUFPLEVBQUU7UUFDTCxhQUFhLEVBQUUsb0JBQW9CO1FBQ25DLFVBQVUsRUFBRSxxQkFBcUI7UUFDakMsY0FBYyxFQUFFLHNCQUFzQjtLQUN6QztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZXh0cmFEdXRjaERpY3Rpb25hcnkgPSB7XG4gICAgJ2Zvcm0tY29udHJvbC1lcnJvcnMnOiB7XG4gICAgICAgICd1bmtub3duJzogJ0hldCB2ZWxkIGhlZWZ0IGVlbiBvbmJla2VuZGUgZm91dC4nLFxuICAgICAgICAncmVxdWlyZWQnOiAnRGl0IHZlbGQgaXMgdmVycGxpY2h0LicsXG4gICAgICAgICdwYXR0ZXJuJzogJ09uZ2VsZGlnIGZvcm1hYXQuJyxcbiAgICAgICAgJ2VtYWlsJzogJ0hldCB2ZWxkIGtvbXQgbmlldCBvdmVyZWVuIG1ldCBlZW4gZ2VsZGlnIGUtbWFpbGFkcmVzLicsXG4gICAgICAgICdlbWFpbFRha2VuJzogJ0hldCBlLW1haWxhZHJlcyBpcyBhbCBiZXpldC4nLFxuICAgICAgICAncGFzc3dvcmRNYXRjaCc6ICdEZSB3YWNodHdvb3JkZW4ga29tZW4gbmlldCBvdmVyZWVuLicsXG4gICAgICAgICdjb25maXJtJzogJ0hldCB2ZWxkIGtvbXQgbmlldCBvdmVyZWVuLicsXG4gICAgICAgICdmdWxsTnVtYmVyJzogJ0hldCB2ZWxkIG1vZXQgZWVuIHZvbGxlZGlnIGdldGFsIHppam4uJyxcbiAgICAgICAgJ21pbic6ICdNaW5pbXVtIGhvZXZlZWxoZWlkIG1vZXQge3ttaW59fSB6aWpuLicsXG4gICAgICAgICdtYXgnOiAnTWF4aW11bSBob2V2ZWVsaGVpZCBtb2V0IHt7bWF4fX0gemlqbi4nLFxuICAgICAgICAnaW52YWxpZEZpbGVUeXBlJzogJ0hldCB0eXBlIGJlc3RhbmQgaXMgbmlldCB0b2VnZXN0YWFuLicsXG4gICAgICAgICdtYXhGaWxlU2l6ZSc6ICdIZXQgYmVzdGFuZCBoZWVmdCBkZSBtYXhpbXVtIGhvZXZlZWxoZWlkIHZhbiB7e21heFNpemV9fSBvdmVyc2NocmVkZW4uJyxcbiAgICAgICAgJ21pbkRhdGUnOiAnRGUgZWVyc3QgbW9nZWxpamtlIGRhdHVtIGlzIHt7ZGF0ZXxkYXRlfX0uJyxcbiAgICAgICAgJ21heERhdGUnOiAnRGUgbGFhdHN0IG1vZ2VsaWprZSBkYXR1bSBpcyB7e2RhdGV8ZGF0ZX19LicsXG4gICAgICAgICdpbnZhbGlkRGF0ZSc6ICdIZXQgdmVsZCBiZXZhdCBlZW4gb25nZWxkaWdlIGRhdHVtLicsXG4gICAgICAgICdtaW5sZW5ndGgnOiAnVmVyd2FjaHR0ZSBtaW5pbWFhbCB7e3JlcXVpcmVkTGVuZ3RofX0gdGVrZW5zLCBtYWFyIGtyZWVnIHt7YWN0dWFsTGVuZ3RofX0gdGVrZW5zLicsXG4gICAgICAgICdtYXhsZW5ndGgnOiAnVmVyd2FjaHR0ZSBtYXhpbWFhbCB7e3JlcXVpcmVkTGVuZ3RofX0gdGVrZW5zLCBtYWFyIGtyZWVnIHt7YWN0dWFsTGVuZ3RofX0gdGVrZW5zLidcbiAgICB9LFxuICAgICdzZWxlY3QnOiB7XG4gICAgICAgICdub3RfZm91bmRfdGV4dCc6ICdHZWVuIGl0ZW1zIGdldm9uZGVuJyxcbiAgICAgICAgJ2NsZWFyX2FsbF90ZXh0JzogJ1dpcyBhbGxlcycsXG4gICAgICAgICdsb2FkaW5nX3RleHQnOiAnQWFuIGhldCBsYWRlbi4uLicsXG4gICAgICAgICd0eXBlX3RvX3NlYXJjaF90ZXh0JzogJ1R5cCBvbSB0ZSB6b2VrZW4nLFxuICAgICAgICAnYWRkX3RhZ190ZXh0JzogJ1RhZyB0b2V2b2VnZW4nXG4gICAgfSxcbiAgICAnbXVsdGktZmlsZS1jb250cm9sJzoge1xuICAgICAgICAnY2hvb3NlX2ZpbGUnOiAnS2llcyBlZW4gYmVzdGFuZCcsXG4gICAgICAgICdjaG9vc2VfZmlsZV90ZXh0JzogJ0BlbGVtZW50KGxhYmVsKSBvZiBzbGVlcCBkZSBiZXN0YW5kZW4gaGllcm5hYXJ0b2UnXG4gICAgfSxcbiAgICAnY29sbGVjdGlvbic6IHtcbiAgICAgICAgJ3NlYXJjaF9sYWJlbCc6ICdab2VrZW4uLi4nLFxuICAgICAgICAnc2hvd2luZ19sYWJlbCc6ICdUb29udCBAZWxlbWVudChzdGFydCkgdG90IEBlbGVtZW50KGVuZCkgdmFuIEBlbGVtZW50KHRvdGFsKSByZXN1bHRhdGVuJyxcbiAgICAgICAgJ25vX3Jlc3VsdHNfbGFiZWwnOiAnRXIgemlqbiBnZWVuIHJlc3VsdGF0ZW4gdm9vciBAZWxlbWVudChxdWVyeSkuIFByb2JlZXIgZWVuIGFuZGVyZSB6b2VrdGVybSBvbSByZXN1bHRhdGVuIHRlIHZpbmRlbi4uLicsXG4gICAgICAgICdlbXB0eV9sYWJlbCc6ICdFciB6aWpuIGdlZW4gcmVzdWx0YXRlbi4uLicsXG4gICAgICAgICdlcnJvcl9sYWJlbCc6ICdIZXQgbGlqa3QgZXJvcCBkYXQgZWVuIGZvdXQgaXMgb3BnZXRyZWRlbiB0aWpkZW5zIGhldCBnZWJydWlrZW4gdmFuIGRlIGFwcGxpY2F0aWUuJ1xuICAgIH0sXG4gICAgJ3RhYmxlcyc6IHtcbiAgICAgICAgJ3NlYXJjaCc6ICdab2VrZW4uLi4nLFxuICAgICAgICAnbG9hZGluZyc6ICdBYW4gaGV0IGxhZGVuLi4uJyxcbiAgICAgICAgJ2VtcHR5JzogJ0VyIGlzIGhpZXIgbmlldHMgdGUgdmluZGVuLicsXG4gICAgICAgICdwYWdlJzogJ3BhZ2luYScsXG4gICAgICAgICdlcnJvcl9kYXRhc291cmNlJzogJ0VyIGlzIGdlZW4gZ2VnZXZlbnNicm9uIHZlcnN0cmVrdC4nLFxuICAgICAgICAnZXJyb3JfdW5hdXRob3JpemVkJzogJ1UgbW9ldCBpbmdlbG9nZCB6aWpuIG9tIGRlemUgZ2VnZXZlbnMgdGUgYmVraWprZW4uJyxcbiAgICAgICAgJ2Vycm9yX2ZvcmJpZGRlbic6ICdVIGhlYnQgZ2VlbiB0b2VnYW5nIG9tIGRlemUgZ2VnZXZlbnMgdGUgYmVraWprZW4uJyxcbiAgICAgICAgJ2Vycm9yX25vdF9mb3VuZCc6ICdEZSBnZWdldmVucyB6aWpuIG5pZXQgZ2V2b25kZW4uJyxcbiAgICAgICAgJ2Vycm9yX3NlcnZlcic6ICdFciBpcyBlZW4gc2VydmVyZm91dCBvcGdldHJlZGVuIGJpaiBoZXQgb3BoYWxlbiB2YW4gZ2VnZXZlbnMgdmFuIGRlIHNlcnZlci4nLFxuICAgICAgICAnZXJyb3JfZG93bic6ICdIZXQgbGlqa3QgZXJvcCBkYXQgZGUgc2VydmVyIGRvd24gaXMuJyxcbiAgICAgICAgJ2Vycm9yX3Vua25vd24nOiAnRXIgaXMgZWVuIG9uYmVrZW5kZSBmb3V0IG9wZ2V0cmVkZW4gYmlqIGhldCBvcGhhbGVuIHZhbiBnZWdldmVucyB2YW4gZGUgc2VydmVyLidcbiAgICB9LFxuICAgICdmaWxlLXBpY2tlcic6IHtcbiAgICAgICAgJ2Nob29zZSc6ICdLaWVzIGJlc3RhbmQnLFxuICAgICAgICAncmVtb3ZlJzogJ1ZlcndpamRlciBiZXN0YW5kJyxcbiAgICAgICAgJ2Ryb3AnOiAnb2Ygc2xlZXAgaGV0IGJlc3RhbmQgaGllcm5hYXJ0b2UnXG4gICAgfSxcbiAgICAndGltZXMnOiB7XG4gICAgICAgICd0b21vcnJvd19hdCc6ICdNb3JnZW4gb20ge3tkYXRlfX0nLFxuICAgICAgICAndG9kYXlfYXQnOiAnVmFuZGFhZyBvbSB7e2RhdGV9fScsXG4gICAgICAgICd5ZXN0ZXJkYXlfYXQnOiAnR2lzdGVyZW4gb20ge3tkYXRlfX0nXG4gICAgfVxufTtcbiJdfQ==
@@ -18,6 +18,24 @@ export const extraEnglishDictionary = {
18
18
  'minlength': 'Expected a minimum of {{requiredLength}} characters but got {{actualLength}} characters.',
19
19
  'maxlength': 'Expected a maximum of {{requiredLength}} characters but got {{actualLength}} characters.'
20
20
  },
21
+ 'select': {
22
+ 'not_found_text': 'No items found',
23
+ 'clear_all_text': 'Clear all',
24
+ 'loading_text': 'Loading...',
25
+ 'type_to_search_text': 'Typ to search',
26
+ 'add_tag_text': 'Add tag'
27
+ },
28
+ 'multi-file-control': {
29
+ 'choose_file': 'Choose a file',
30
+ 'choose_file_text': '@element(label) or drag and drop files here'
31
+ },
32
+ 'collection': {
33
+ 'search_label': 'Search...',
34
+ 'showing_label': 'Showing @element(start) to @element(end) of @element(total) results',
35
+ 'no_results_label': 'There are no results for @element(query). Try a different search term to find results...',
36
+ 'empty_label': 'There are no results...',
37
+ 'error_label': 'It seems that an error occurred while using the application.'
38
+ },
21
39
  'tables': {
22
40
  'search': 'Search...',
23
41
  'loading': 'Loading...',
@@ -42,4 +60,4 @@ export const extraEnglishDictionary = {
42
60
  'yesterday_at': 'Yesterday at {{date}}'
43
61
  }
44
62
  };
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5nbGlzaC5sb2NhbGl6YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2xvY2FsaXplL3NyYy9saWIvbG9jYWxpemF0aW9ucy9lbmdsaXNoLmxvY2FsaXphdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRztJQUNsQyxxQkFBcUIsRUFBRTtRQUNuQixTQUFTLEVBQUUsaUNBQWlDO1FBQzVDLFVBQVUsRUFBRSx5QkFBeUI7UUFDckMsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixPQUFPLEVBQUUsaURBQWlEO1FBQzFELFlBQVksRUFBRSw4QkFBOEI7UUFDNUMsZUFBZSxFQUFFLDZCQUE2QjtRQUM5QyxTQUFTLEVBQUUsMkJBQTJCO1FBQ3RDLFlBQVksRUFBRSxvQ0FBb0M7UUFDbEQsS0FBSyxFQUFFLG1DQUFtQztRQUMxQyxLQUFLLEVBQUUsbUNBQW1DO1FBQzFDLGlCQUFpQixFQUFFLCtCQUErQjtRQUNsRCxhQUFhLEVBQUUsd0RBQXdEO1FBQ3ZFLFNBQVMsRUFBRSwyQ0FBMkM7UUFDdEQsU0FBUyxFQUFFLDBDQUEwQztRQUNyRCxhQUFhLEVBQUUscUNBQXFDO1FBQ3BELFdBQVcsRUFBRSwwRkFBMEY7UUFDdkcsV0FBVyxFQUFFLDBGQUEwRjtLQUMxRztJQUNELFFBQVEsRUFBRTtRQUNOLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLE9BQU8sRUFBRSxnQ0FBZ0M7UUFDekMsTUFBTSxFQUFFLE1BQU07UUFDZCxrQkFBa0IsRUFBRSw4QkFBOEI7UUFDbEQsb0JBQW9CLEVBQUUsaURBQWlEO1FBQ3ZFLGlCQUFpQixFQUFFLDJDQUEyQztRQUM5RCxpQkFBaUIsRUFBRSx5QkFBeUI7UUFDNUMsY0FBYyxFQUFFLDhEQUE4RDtRQUM5RSxZQUFZLEVBQUUsbUNBQW1DO1FBQ2pELGVBQWUsRUFBRSwyQkFBMkI7S0FDL0M7SUFDRCxhQUFhLEVBQUU7UUFDWCxRQUFRLEVBQUUsYUFBYTtRQUN2QixRQUFRLEVBQUUsYUFBYTtRQUN2QixNQUFNLEVBQUUsNEJBQTRCO0tBQ3ZDO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsYUFBYSxFQUFFLHNCQUFzQjtRQUNyQyxVQUFVLEVBQUUsbUJBQW1CO1FBQy9CLGNBQWMsRUFBRSx1QkFBdUI7S0FDMUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGV4dHJhRW5nbGlzaERpY3Rpb25hcnkgPSB7XG4gICAgJ2Zvcm0tY29udHJvbC1lcnJvcnMnOiB7XG4gICAgICAgICd1bmtub3duJzogJ1RoZSBmaWVsZCBoYXMgYW4gdW5rbm93biBlcnJvci4nLFxuICAgICAgICAncmVxdWlyZWQnOiAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nLFxuICAgICAgICAncGF0dGVybic6ICdJbnZhbGlkIGZvcm1hdC4nLFxuICAgICAgICAnZW1haWwnOiAnVGhlIGZpZWxkIGRvZXMgbm90IG1hdGNoIGEgdmFsaWQgZW1haWwgYWRkcmVzcy4nLFxuICAgICAgICAnZW1haWxUYWtlbic6ICdUaGUgZS1tYWlsIGlzIGFscmVhZHkgdGFrZW4uJyxcbiAgICAgICAgJ3Bhc3N3b3JkTWF0Y2gnOiAnVGhlIHBhc3N3b3JkcyBkb25cXCd0IG1hdGNoLicsXG4gICAgICAgICdjb25maXJtJzogJ1RoZSBmaWVsZCBkb2VzIG5vdCBtYXRjaC4nLFxuICAgICAgICAnZnVsbE51bWJlcic6ICdUaGUgZmllbGQgc2hvdWxkIGJlIGEgZnVsbCBudW1iZXIuJyxcbiAgICAgICAgJ21pbic6ICdNaW5pbXVtIGFtb3VudCBzaG91bGQgYmUge3ttaW59fS4nLFxuICAgICAgICAnbWF4JzogJ01heGltdW0gYW1vdW50IHNob3VsZCBiZSB7e21heH19LicsXG4gICAgICAgICdpbnZhbGlkRmlsZVR5cGUnOiAnVGhlIGZpbGUgdHlwZSBpcyBub3QgYWxsb3dlZC4nLFxuICAgICAgICAnbWF4RmlsZVNpemUnOiAnVGhlIGZpbGUgaGFzIGV4Y2VlZCB0aGUgbWF4aW11bSBhbW91bnQgb2Yge3ttYXhTaXplfX0uJyxcbiAgICAgICAgJ21pbkRhdGUnOiAnVGhlIGZpcnN0IGFjY2VwdGVkIGRhdGUgaXMge3tkYXRlfGRhdGV9fS4nLFxuICAgICAgICAnbWF4RGF0ZSc6ICdUaGUgbGFzdCBhY2NlcHRlZCBkYXRlIGlzIHt7ZGF0ZXxkYXRlfX0uJyxcbiAgICAgICAgJ2ludmFsaWREYXRlJzogJ1RoZSBmaWVsZCBjb250YWlucyBhbiBpbnZhbGlkIGRhdGUuJyxcbiAgICAgICAgJ21pbmxlbmd0aCc6ICdFeHBlY3RlZCBhIG1pbmltdW0gb2Yge3tyZXF1aXJlZExlbmd0aH19IGNoYXJhY3RlcnMgYnV0IGdvdCB7e2FjdHVhbExlbmd0aH19IGNoYXJhY3RlcnMuJyxcbiAgICAgICAgJ21heGxlbmd0aCc6ICdFeHBlY3RlZCBhIG1heGltdW0gb2Yge3tyZXF1aXJlZExlbmd0aH19IGNoYXJhY3RlcnMgYnV0IGdvdCB7e2FjdHVhbExlbmd0aH19IGNoYXJhY3RlcnMuJ1xuICAgIH0sXG4gICAgJ3RhYmxlcyc6IHtcbiAgICAgICAgJ3NlYXJjaCc6ICdTZWFyY2guLi4nLFxuICAgICAgICAnbG9hZGluZyc6ICdMb2FkaW5nLi4uJyxcbiAgICAgICAgJ2VtcHR5JzogJ1RoZXJlIGlzIG5vdGhpbmcgdG8gZmluZCBoZXJlLicsXG4gICAgICAgICdwYWdlJzogJ3BhZ2UnLFxuICAgICAgICAnZXJyb3JfZGF0YXNvdXJjZSc6ICdObyBkYXRhIHNvdXJjZSB3YXMgcHJvdmlkZWQuJyxcbiAgICAgICAgJ2Vycm9yX3VuYXV0aG9yaXplZCc6ICdZb3UgbmVlZCB0byBiZSBhdXRoZW50aWNhdGVkIHRvIHZpZXcgdGhpcyBkYXRhLicsXG4gICAgICAgICdlcnJvcl9mb3JiaWRkZW4nOiAnWW91IGRvIG5vdCBoYXZlIGFjY2VzcyB0byB2aWV3IHRoaXMgZGF0YS4nLFxuICAgICAgICAnZXJyb3Jfbm90X2ZvdW5kJzogJ1RoZSBkYXRhIHdhcyBub3QgZm91bmQuJyxcbiAgICAgICAgJ2Vycm9yX3NlcnZlcic6ICdBIHNlcnZlciBlcnJvciBvY2N1cnJlZCB3aGlsZSBmZXRjaGluZyBkYXRhIGZyb20gdGhlIHNlcnZlci4nLFxuICAgICAgICAnZXJyb3JfZG93bic6ICdJdCBsb29rcyBsaWtlIHRoZSBzZXJ2ZXIgaXMgZG93bi4nLFxuICAgICAgICAnZXJyb3JfdW5rbm93bic6ICdBIHVua25vd24gZXJyb3Igb2NjdXJyZWQuJ1xuICAgIH0sXG4gICAgJ2ZpbGUtcGlja2VyJzoge1xuICAgICAgICAnY2hvb3NlJzogJ0Nob29zZSBmaWxlJyxcbiAgICAgICAgJ3JlbW92ZSc6ICdSZW1vdmUgZmlsZScsXG4gICAgICAgICdkcm9wJzogJ29yIGRyYWcgYW5kIGRyb3AgZmlsZSBoZXJlJ1xuICAgIH0sXG4gICAgJ3RpbWVzJzoge1xuICAgICAgICAndG9tb3Jyb3dfYXQnOiAnVG9tb3Jyb3cgYXQge3tkYXRlfX0nLFxuICAgICAgICAndG9kYXlfYXQnOiAnVG9kYXkgYXQge3tkYXRlfX0nLFxuICAgICAgICAneWVzdGVyZGF5X2F0JzogJ1llc3RlcmRheSBhdCB7e2RhdGV9fSdcbiAgICB9XG59O1xuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5nbGlzaC5sb2NhbGl6YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2xvY2FsaXplL3NyYy9saWIvbG9jYWxpemF0aW9ucy9lbmdsaXNoLmxvY2FsaXphdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRztJQUNsQyxxQkFBcUIsRUFBRTtRQUNuQixTQUFTLEVBQUUsaUNBQWlDO1FBQzVDLFVBQVUsRUFBRSx5QkFBeUI7UUFDckMsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixPQUFPLEVBQUUsaURBQWlEO1FBQzFELFlBQVksRUFBRSw4QkFBOEI7UUFDNUMsZUFBZSxFQUFFLDZCQUE2QjtRQUM5QyxTQUFTLEVBQUUsMkJBQTJCO1FBQ3RDLFlBQVksRUFBRSxvQ0FBb0M7UUFDbEQsS0FBSyxFQUFFLG1DQUFtQztRQUMxQyxLQUFLLEVBQUUsbUNBQW1DO1FBQzFDLGlCQUFpQixFQUFFLCtCQUErQjtRQUNsRCxhQUFhLEVBQUUsd0RBQXdEO1FBQ3ZFLFNBQVMsRUFBRSwyQ0FBMkM7UUFDdEQsU0FBUyxFQUFFLDBDQUEwQztRQUNyRCxhQUFhLEVBQUUscUNBQXFDO1FBQ3BELFdBQVcsRUFBRSwwRkFBMEY7UUFDdkcsV0FBVyxFQUFFLDBGQUEwRjtLQUMxRztJQUNELFFBQVEsRUFBRTtRQUNOLGdCQUFnQixFQUFFLGdCQUFnQjtRQUNsQyxnQkFBZ0IsRUFBRSxXQUFXO1FBQzdCLGNBQWMsRUFBRSxZQUFZO1FBQzVCLHFCQUFxQixFQUFFLGVBQWU7UUFDdEMsY0FBYyxFQUFFLFNBQVM7S0FDNUI7SUFDRCxvQkFBb0IsRUFBRTtRQUNsQixhQUFhLEVBQUUsZUFBZTtRQUM5QixrQkFBa0IsRUFBRSw2Q0FBNkM7S0FDcEU7SUFDRCxZQUFZLEVBQUU7UUFDVixjQUFjLEVBQUUsV0FBVztRQUMzQixlQUFlLEVBQUUscUVBQXFFO1FBQ3RGLGtCQUFrQixFQUFFLDBGQUEwRjtRQUM5RyxhQUFhLEVBQUUseUJBQXlCO1FBQ3hDLGFBQWEsRUFBRSw4REFBOEQ7S0FDaEY7SUFDRCxRQUFRLEVBQUU7UUFDTixRQUFRLEVBQUUsV0FBVztRQUNyQixTQUFTLEVBQUUsWUFBWTtRQUN2QixPQUFPLEVBQUUsZ0NBQWdDO1FBQ3pDLE1BQU0sRUFBRSxNQUFNO1FBQ2Qsa0JBQWtCLEVBQUUsOEJBQThCO1FBQ2xELG9CQUFvQixFQUFFLGlEQUFpRDtRQUN2RSxpQkFBaUIsRUFBRSwyQ0FBMkM7UUFDOUQsaUJBQWlCLEVBQUUseUJBQXlCO1FBQzVDLGNBQWMsRUFBRSw4REFBOEQ7UUFDOUUsWUFBWSxFQUFFLG1DQUFtQztRQUNqRCxlQUFlLEVBQUUsMkJBQTJCO0tBQy9DO0lBQ0QsYUFBYSxFQUFFO1FBQ1gsUUFBUSxFQUFFLGFBQWE7UUFDdkIsUUFBUSxFQUFFLGFBQWE7UUFDdkIsTUFBTSxFQUFFLDRCQUE0QjtLQUN2QztJQUNELE9BQU8sRUFBRTtRQUNMLGFBQWEsRUFBRSxzQkFBc0I7UUFDckMsVUFBVSxFQUFFLG1CQUFtQjtRQUMvQixjQUFjLEVBQUUsdUJBQXVCO0tBQzFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBleHRyYUVuZ2xpc2hEaWN0aW9uYXJ5ID0ge1xuICAgICdmb3JtLWNvbnRyb2wtZXJyb3JzJzoge1xuICAgICAgICAndW5rbm93bic6ICdUaGUgZmllbGQgaGFzIGFuIHVua25vd24gZXJyb3IuJyxcbiAgICAgICAgJ3JlcXVpcmVkJzogJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJyxcbiAgICAgICAgJ3BhdHRlcm4nOiAnSW52YWxpZCBmb3JtYXQuJyxcbiAgICAgICAgJ2VtYWlsJzogJ1RoZSBmaWVsZCBkb2VzIG5vdCBtYXRjaCBhIHZhbGlkIGVtYWlsIGFkZHJlc3MuJyxcbiAgICAgICAgJ2VtYWlsVGFrZW4nOiAnVGhlIGUtbWFpbCBpcyBhbHJlYWR5IHRha2VuLicsXG4gICAgICAgICdwYXNzd29yZE1hdGNoJzogJ1RoZSBwYXNzd29yZHMgZG9uXFwndCBtYXRjaC4nLFxuICAgICAgICAnY29uZmlybSc6ICdUaGUgZmllbGQgZG9lcyBub3QgbWF0Y2guJyxcbiAgICAgICAgJ2Z1bGxOdW1iZXInOiAnVGhlIGZpZWxkIHNob3VsZCBiZSBhIGZ1bGwgbnVtYmVyLicsXG4gICAgICAgICdtaW4nOiAnTWluaW11bSBhbW91bnQgc2hvdWxkIGJlIHt7bWlufX0uJyxcbiAgICAgICAgJ21heCc6ICdNYXhpbXVtIGFtb3VudCBzaG91bGQgYmUge3ttYXh9fS4nLFxuICAgICAgICAnaW52YWxpZEZpbGVUeXBlJzogJ1RoZSBmaWxlIHR5cGUgaXMgbm90IGFsbG93ZWQuJyxcbiAgICAgICAgJ21heEZpbGVTaXplJzogJ1RoZSBmaWxlIGhhcyBleGNlZWQgdGhlIG1heGltdW0gYW1vdW50IG9mIHt7bWF4U2l6ZX19LicsXG4gICAgICAgICdtaW5EYXRlJzogJ1RoZSBmaXJzdCBhY2NlcHRlZCBkYXRlIGlzIHt7ZGF0ZXxkYXRlfX0uJyxcbiAgICAgICAgJ21heERhdGUnOiAnVGhlIGxhc3QgYWNjZXB0ZWQgZGF0ZSBpcyB7e2RhdGV8ZGF0ZX19LicsXG4gICAgICAgICdpbnZhbGlkRGF0ZSc6ICdUaGUgZmllbGQgY29udGFpbnMgYW4gaW52YWxpZCBkYXRlLicsXG4gICAgICAgICdtaW5sZW5ndGgnOiAnRXhwZWN0ZWQgYSBtaW5pbXVtIG9mIHt7cmVxdWlyZWRMZW5ndGh9fSBjaGFyYWN0ZXJzIGJ1dCBnb3Qge3thY3R1YWxMZW5ndGh9fSBjaGFyYWN0ZXJzLicsXG4gICAgICAgICdtYXhsZW5ndGgnOiAnRXhwZWN0ZWQgYSBtYXhpbXVtIG9mIHt7cmVxdWlyZWRMZW5ndGh9fSBjaGFyYWN0ZXJzIGJ1dCBnb3Qge3thY3R1YWxMZW5ndGh9fSBjaGFyYWN0ZXJzLidcbiAgICB9LFxuICAgICdzZWxlY3QnOiB7XG4gICAgICAgICdub3RfZm91bmRfdGV4dCc6ICdObyBpdGVtcyBmb3VuZCcsXG4gICAgICAgICdjbGVhcl9hbGxfdGV4dCc6ICdDbGVhciBhbGwnLFxuICAgICAgICAnbG9hZGluZ190ZXh0JzogJ0xvYWRpbmcuLi4nLFxuICAgICAgICAndHlwZV90b19zZWFyY2hfdGV4dCc6ICdUeXAgdG8gc2VhcmNoJyxcbiAgICAgICAgJ2FkZF90YWdfdGV4dCc6ICdBZGQgdGFnJ1xuICAgIH0sXG4gICAgJ211bHRpLWZpbGUtY29udHJvbCc6IHtcbiAgICAgICAgJ2Nob29zZV9maWxlJzogJ0Nob29zZSBhIGZpbGUnLFxuICAgICAgICAnY2hvb3NlX2ZpbGVfdGV4dCc6ICdAZWxlbWVudChsYWJlbCkgb3IgZHJhZyBhbmQgZHJvcCBmaWxlcyBoZXJlJ1xuICAgIH0sXG4gICAgJ2NvbGxlY3Rpb24nOiB7XG4gICAgICAgICdzZWFyY2hfbGFiZWwnOiAnU2VhcmNoLi4uJyxcbiAgICAgICAgJ3Nob3dpbmdfbGFiZWwnOiAnU2hvd2luZyBAZWxlbWVudChzdGFydCkgdG8gQGVsZW1lbnQoZW5kKSBvZiBAZWxlbWVudCh0b3RhbCkgcmVzdWx0cycsXG4gICAgICAgICdub19yZXN1bHRzX2xhYmVsJzogJ1RoZXJlIGFyZSBubyByZXN1bHRzIGZvciBAZWxlbWVudChxdWVyeSkuIFRyeSBhIGRpZmZlcmVudCBzZWFyY2ggdGVybSB0byBmaW5kIHJlc3VsdHMuLi4nLFxuICAgICAgICAnZW1wdHlfbGFiZWwnOiAnVGhlcmUgYXJlIG5vIHJlc3VsdHMuLi4nLFxuICAgICAgICAnZXJyb3JfbGFiZWwnOiAnSXQgc2VlbXMgdGhhdCBhbiBlcnJvciBvY2N1cnJlZCB3aGlsZSB1c2luZyB0aGUgYXBwbGljYXRpb24uJ1xuICAgIH0sXG4gICAgJ3RhYmxlcyc6IHtcbiAgICAgICAgJ3NlYXJjaCc6ICdTZWFyY2guLi4nLFxuICAgICAgICAnbG9hZGluZyc6ICdMb2FkaW5nLi4uJyxcbiAgICAgICAgJ2VtcHR5JzogJ1RoZXJlIGlzIG5vdGhpbmcgdG8gZmluZCBoZXJlLicsXG4gICAgICAgICdwYWdlJzogJ3BhZ2UnLFxuICAgICAgICAnZXJyb3JfZGF0YXNvdXJjZSc6ICdObyBkYXRhIHNvdXJjZSB3YXMgcHJvdmlkZWQuJyxcbiAgICAgICAgJ2Vycm9yX3VuYXV0aG9yaXplZCc6ICdZb3UgbmVlZCB0byBiZSBhdXRoZW50aWNhdGVkIHRvIHZpZXcgdGhpcyBkYXRhLicsXG4gICAgICAgICdlcnJvcl9mb3JiaWRkZW4nOiAnWW91IGRvIG5vdCBoYXZlIGFjY2VzcyB0byB2aWV3IHRoaXMgZGF0YS4nLFxuICAgICAgICAnZXJyb3Jfbm90X2ZvdW5kJzogJ1RoZSBkYXRhIHdhcyBub3QgZm91bmQuJyxcbiAgICAgICAgJ2Vycm9yX3NlcnZlcic6ICdBIHNlcnZlciBlcnJvciBvY2N1cnJlZCB3aGlsZSBmZXRjaGluZyBkYXRhIGZyb20gdGhlIHNlcnZlci4nLFxuICAgICAgICAnZXJyb3JfZG93bic6ICdJdCBsb29rcyBsaWtlIHRoZSBzZXJ2ZXIgaXMgZG93bi4nLFxuICAgICAgICAnZXJyb3JfdW5rbm93bic6ICdBIHVua25vd24gZXJyb3Igb2NjdXJyZWQuJ1xuICAgIH0sXG4gICAgJ2ZpbGUtcGlja2VyJzoge1xuICAgICAgICAnY2hvb3NlJzogJ0Nob29zZSBmaWxlJyxcbiAgICAgICAgJ3JlbW92ZSc6ICdSZW1vdmUgZmlsZScsXG4gICAgICAgICdkcm9wJzogJ29yIGRyYWcgYW5kIGRyb3AgZmlsZSBoZXJlJ1xuICAgIH0sXG4gICAgJ3RpbWVzJzoge1xuICAgICAgICAndG9tb3Jyb3dfYXQnOiAnVG9tb3Jyb3cgYXQge3tkYXRlfX0nLFxuICAgICAgICAndG9kYXlfYXQnOiAnVG9kYXkgYXQge3tkYXRlfX0nLFxuICAgICAgICAneWVzdGVyZGF5X2F0JzogJ1llc3RlcmRheSBhdCB7e2RhdGV9fSdcbiAgICB9XG59O1xuIl19
@@ -0,0 +1,43 @@
1
+ import { LOCALIZE_CONFIG, LOCALIZE_FUNCTION, LOCALIZE_MISSING_HANDLER, LOCALIZE_TRANSFORM } from './localize.tokens';
2
+ import { APP_INITIALIZER, LOCALE_ID, makeEnvironmentProviders } from '@angular/core';
3
+ import { LocalizeInterpolateTransform } from './transforms/interpolate.transform';
4
+ import { LocalizeReferenceTransform } from './transforms/reference.transform';
5
+ import { LocalizeLowercaseFunction } from './functions/lowercase.function';
6
+ import { LocalizeUppercaseFunction } from './functions/uppercase.function';
7
+ import { LocalizePluralTransform } from './transforms/plural.transform';
8
+ import { LocalizeMissingHandler } from './handlers/missing.handler';
9
+ import { LocalizeDateFunction } from './functions/date.function';
10
+ import { Localize } from './localize.service';
11
+ export function provideLocalizeConfig(config) {
12
+ if (config?.languages?.length <= 0) {
13
+ throw new Error('One or more languages should be supplied.');
14
+ }
15
+ if (config?.compareDictionaries && config?.mode === 'manual') {
16
+ console?.warn?.('You cannot enable "compareDictionaries" when having mode set to "manual"; This setting will be ignored.');
17
+ }
18
+ const mode = config?.mode ?? 'automatic';
19
+ const automaticProviders = mode === 'automatic'
20
+ ? [
21
+ { provide: APP_INITIALIZER, deps: [Localize], useFactory: initializeLocale, multi: true },
22
+ { provide: LOCALE_ID, deps: [Localize], useFactory: getLocale }
23
+ ]
24
+ : [];
25
+ return makeEnvironmentProviders([
26
+ { provide: LOCALIZE_CONFIG, useValue: config },
27
+ ...automaticProviders,
28
+ { provide: LOCALIZE_FUNCTION, useClass: LocalizeLowercaseFunction, multi: true },
29
+ { provide: LOCALIZE_FUNCTION, useClass: LocalizeUppercaseFunction, multi: true },
30
+ { provide: LOCALIZE_FUNCTION, useClass: LocalizeDateFunction, multi: true },
31
+ { provide: LOCALIZE_TRANSFORM, useClass: LocalizePluralTransform, deps: [LOCALIZE_CONFIG], multi: true },
32
+ { provide: LOCALIZE_TRANSFORM, useClass: LocalizeReferenceTransform, deps: [LOCALIZE_CONFIG], multi: true },
33
+ { provide: LOCALIZE_TRANSFORM, useClass: LocalizeInterpolateTransform, deps: [LOCALIZE_CONFIG, LOCALIZE_FUNCTION], multi: true },
34
+ { provide: LOCALIZE_MISSING_HANDLER, useClass: LocalizeMissingHandler }
35
+ ]);
36
+ }
37
+ export function initializeLocale(localize) {
38
+ return localize.initialize();
39
+ }
40
+ export function getLocale(localize) {
41
+ return localize?.current?.locale ?? null;
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2xvY2FsaXplLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbkgsT0FBTyxFQUFDLGVBQWUsRUFBd0IsU0FBUyxFQUFFLHdCQUF3QixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRS9ELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QyxNQUFNLFVBQVUscUJBQXFCLENBQUMsTUFBc0I7SUFDeEQsSUFBSSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELElBQUksTUFBTSxFQUFFLG1CQUFtQixJQUFJLE1BQU0sRUFBRSxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLHlHQUF5RyxDQUFDLENBQUM7SUFDL0gsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxJQUFJLElBQUksV0FBVyxDQUFDO0lBQ3pDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxLQUFLLFdBQVc7UUFDM0MsQ0FBQyxDQUFDO1lBQ0UsRUFBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO1lBQ3ZGLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFDO1NBQ2hFO1FBQ0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUVULE9BQU8sd0JBQXdCLENBQUM7UUFDNUIsRUFBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUM7UUFDNUMsR0FBRyxrQkFBa0I7UUFDckIsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7UUFDOUUsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7UUFDOUUsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7UUFDekUsRUFBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7UUFDdEcsRUFBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7UUFDekcsRUFBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLDRCQUE0QixFQUFFLElBQUksRUFBRSxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7UUFDOUgsRUFBQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFDO0tBQ3hFLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsUUFBa0I7SUFDL0MsT0FBTyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsUUFBa0I7SUFDeEMsT0FBTyxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TE9DQUxJWkVfQ09ORklHLCBMT0NBTElaRV9GVU5DVElPTiwgTE9DQUxJWkVfTUlTU0lOR19IQU5ETEVSLCBMT0NBTElaRV9UUkFOU0ZPUk19IGZyb20gJy4vbG9jYWxpemUudG9rZW5zJztcbmltcG9ydCB7QVBQX0lOSVRJQUxJWkVSLCBFbnZpcm9ubWVudFByb3ZpZGVycywgTE9DQUxFX0lELCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2NhbGl6ZUludGVycG9sYXRlVHJhbnNmb3JtfSBmcm9tICcuL3RyYW5zZm9ybXMvaW50ZXJwb2xhdGUudHJhbnNmb3JtJztcbmltcG9ydCB7TG9jYWxpemVSZWZlcmVuY2VUcmFuc2Zvcm19IGZyb20gJy4vdHJhbnNmb3Jtcy9yZWZlcmVuY2UudHJhbnNmb3JtJztcbmltcG9ydCB7TG9jYWxpemVMb3dlcmNhc2VGdW5jdGlvbn0gZnJvbSAnLi9mdW5jdGlvbnMvbG93ZXJjYXNlLmZ1bmN0aW9uJztcbmltcG9ydCB7TG9jYWxpemVVcHBlcmNhc2VGdW5jdGlvbn0gZnJvbSAnLi9mdW5jdGlvbnMvdXBwZXJjYXNlLmZ1bmN0aW9uJztcbmltcG9ydCB7TG9jYWxpemVQbHVyYWxUcmFuc2Zvcm19IGZyb20gJy4vdHJhbnNmb3Jtcy9wbHVyYWwudHJhbnNmb3JtJztcbmltcG9ydCB7TG9jYWxpemVNaXNzaW5nSGFuZGxlcn0gZnJvbSAnLi9oYW5kbGVycy9taXNzaW5nLmhhbmRsZXInO1xuaW1wb3J0IHtMb2NhbGl6ZURhdGVGdW5jdGlvbn0gZnJvbSAnLi9mdW5jdGlvbnMvZGF0ZS5mdW5jdGlvbic7XG5pbXBvcnQge0xvY2FsaXplQ29uZmlnfSBmcm9tICcuL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZXMnO1xuaW1wb3J0IHtMb2NhbGl6ZX0gZnJvbSAnLi9sb2NhbGl6ZS5zZXJ2aWNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVMb2NhbGl6ZUNvbmZpZyhjb25maWc6IExvY2FsaXplQ29uZmlnKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICAgIGlmIChjb25maWc/Lmxhbmd1YWdlcz8ubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmUgb3IgbW9yZSBsYW5ndWFnZXMgc2hvdWxkIGJlIHN1cHBsaWVkLicpO1xuICAgIH1cblxuICAgIGlmIChjb25maWc/LmNvbXBhcmVEaWN0aW9uYXJpZXMgJiYgY29uZmlnPy5tb2RlID09PSAnbWFudWFsJykge1xuICAgICAgICBjb25zb2xlPy53YXJuPy4oJ1lvdSBjYW5ub3QgZW5hYmxlIFwiY29tcGFyZURpY3Rpb25hcmllc1wiIHdoZW4gaGF2aW5nIG1vZGUgc2V0IHRvIFwibWFudWFsXCI7IFRoaXMgc2V0dGluZyB3aWxsIGJlIGlnbm9yZWQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbW9kZSA9IGNvbmZpZz8ubW9kZSA/PyAnYXV0b21hdGljJztcbiAgICBjb25zdCBhdXRvbWF0aWNQcm92aWRlcnMgPSBtb2RlID09PSAnYXV0b21hdGljJ1xuICAgICAgICA/IFtcbiAgICAgICAgICAgIHtwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsIGRlcHM6IFtMb2NhbGl6ZV0sIHVzZUZhY3Rvcnk6IGluaXRpYWxpemVMb2NhbGUsIG11bHRpOiB0cnVlfSxcbiAgICAgICAgICAgIHtwcm92aWRlOiBMT0NBTEVfSUQsIGRlcHM6IFtMb2NhbGl6ZV0sIHVzZUZhY3Rvcnk6IGdldExvY2FsZX1cbiAgICAgICAgXVxuICAgICAgICA6IFtdO1xuXG4gICAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgICAgIHtwcm92aWRlOiBMT0NBTElaRV9DT05GSUcsIHVzZVZhbHVlOiBjb25maWd9LFxuICAgICAgICAuLi5hdXRvbWF0aWNQcm92aWRlcnMsXG4gICAgICAgIHtwcm92aWRlOiBMT0NBTElaRV9GVU5DVElPTiwgdXNlQ2xhc3M6IExvY2FsaXplTG93ZXJjYXNlRnVuY3Rpb24sIG11bHRpOiB0cnVlfSxcbiAgICAgICAge3Byb3ZpZGU6IExPQ0FMSVpFX0ZVTkNUSU9OLCB1c2VDbGFzczogTG9jYWxpemVVcHBlcmNhc2VGdW5jdGlvbiwgbXVsdGk6IHRydWV9LFxuICAgICAgICB7cHJvdmlkZTogTE9DQUxJWkVfRlVOQ1RJT04sIHVzZUNsYXNzOiBMb2NhbGl6ZURhdGVGdW5jdGlvbiwgbXVsdGk6IHRydWV9LFxuICAgICAgICB7cHJvdmlkZTogTE9DQUxJWkVfVFJBTlNGT1JNLCB1c2VDbGFzczogTG9jYWxpemVQbHVyYWxUcmFuc2Zvcm0sIGRlcHM6IFtMT0NBTElaRV9DT05GSUddLCBtdWx0aTogdHJ1ZX0sXG4gICAgICAgIHtwcm92aWRlOiBMT0NBTElaRV9UUkFOU0ZPUk0sIHVzZUNsYXNzOiBMb2NhbGl6ZVJlZmVyZW5jZVRyYW5zZm9ybSwgZGVwczogW0xPQ0FMSVpFX0NPTkZJR10sIG11bHRpOiB0cnVlfSxcbiAgICAgICAge3Byb3ZpZGU6IExPQ0FMSVpFX1RSQU5TRk9STSwgdXNlQ2xhc3M6IExvY2FsaXplSW50ZXJwb2xhdGVUcmFuc2Zvcm0sIGRlcHM6IFtMT0NBTElaRV9DT05GSUcsIExPQ0FMSVpFX0ZVTkNUSU9OXSwgbXVsdGk6IHRydWV9LFxuICAgICAgICB7cHJvdmlkZTogTE9DQUxJWkVfTUlTU0lOR19IQU5ETEVSLCB1c2VDbGFzczogTG9jYWxpemVNaXNzaW5nSGFuZGxlcn1cbiAgICBdKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemVMb2NhbGUobG9jYWxpemU6IExvY2FsaXplKSB7XG4gICAgcmV0dXJuIGxvY2FsaXplLmluaXRpYWxpemUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZShsb2NhbGl6ZTogTG9jYWxpemUpIHtcbiAgICByZXR1cm4gbG9jYWxpemU/LmN1cnJlbnQ/LmxvY2FsZSA/PyBudWxsO1xufVxuIl19
@@ -1,68 +1,30 @@
1
- import { APP_INITIALIZER, LOCALE_ID, NgModule } from '@angular/core';
2
1
  import { BbLocalizeString } from './views/localize-string/localize-string.component';
3
- import { LocalizeInterpolateTransform } from './transforms/interpolate.transform';
4
- import { LocalizeReferenceTransform } from './transforms/reference.transform';
5
- import { LocalizeLowercaseFunction } from './functions/lowercase.function';
6
- import { LocalizeUppercaseFunction } from './functions/uppercase.function';
7
2
  import { BbLocalizeTemplate } from './views/localize-template.directive';
8
- import { LocalizePluralTransform } from './transforms/plural.transform';
9
- import { LOCALIZE_TRANSFORM } from './interfaces/transforms.interfaces';
10
- import { LOCALIZE_FUNCTION } from './interfaces/functions.interfaces';
11
- import { LocalizeMissingHandler } from './handlers/missing.handler';
12
- import { LocalizeDateFunction } from './functions/date.function';
13
- import { LocalizeConfig } from './interfaces/config.interfaces';
14
- import { UtilsModule } from '@bravobit/bb-foundation/utils';
15
- import { CommonModule } from '@angular/common';
16
- import { Localize } from './localize.service';
3
+ import { NgModule } from '@angular/core';
4
+ import { provideLocalizeConfig } from './localize.config';
17
5
  import { BbLocalize } from './localize.pipe';
18
6
  import * as i0 from "@angular/core";
19
7
  export class LocalizeModule {
20
8
  static forRoot(config) {
21
- if (config?.languages?.length <= 0) {
22
- throw new Error('One or more languages should be supplied.');
23
- }
24
- if (config?.compareDictionaries && config?.mode === 'manual') {
25
- console?.warn?.('You cannot enable "compareDictionaries" when having mode set to "manual"; This setting will be ignored.');
26
- }
27
- const mode = config?.mode ?? 'automatic';
28
9
  return {
29
10
  ngModule: LocalizeModule,
30
11
  providers: [
31
- // Angular providers.
32
- ...(mode === 'automatic' ? [
33
- { provide: APP_INITIALIZER, deps: [Localize], useFactory: initializeLocale, multi: true },
34
- { provide: LOCALE_ID, deps: [Localize], useFactory: getLocale }
35
- ] : []),
36
- // Config provider.
37
- { provide: LocalizeConfig, useValue: config },
38
- // Function providers.
39
- { provide: LOCALIZE_FUNCTION, useClass: LocalizeLowercaseFunction, multi: true },
40
- { provide: LOCALIZE_FUNCTION, useClass: LocalizeUppercaseFunction, multi: true },
41
- { provide: LOCALIZE_FUNCTION, useClass: LocalizeDateFunction, multi: true },
42
- // Transform providers.
43
- { provide: LOCALIZE_TRANSFORM, useClass: LocalizePluralTransform, deps: [LocalizeConfig], multi: true },
44
- { provide: LOCALIZE_TRANSFORM, useClass: LocalizeReferenceTransform, deps: [LocalizeConfig], multi: true },
45
- { provide: LOCALIZE_TRANSFORM, useClass: LocalizeInterpolateTransform, deps: [LocalizeConfig, LOCALIZE_FUNCTION], multi: true },
46
- // Handler providers.
47
- { provide: LocalizeMissingHandler, useClass: LocalizeMissingHandler },
48
- // Service providers.
49
- Localize
12
+ provideLocalizeConfig(config)
50
13
  ]
51
14
  };
52
15
  }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LocalizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
54
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: LocalizeModule, declarations: [BbLocalize,
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: LocalizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.5", ngImport: i0, type: LocalizeModule, imports: [BbLocalize,
55
18
  BbLocalizeString,
56
- BbLocalizeTemplate], imports: [CommonModule, UtilsModule], exports: [BbLocalize,
19
+ BbLocalizeTemplate], exports: [BbLocalize,
57
20
  BbLocalizeString,
58
21
  BbLocalizeTemplate] }); }
59
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LocalizeModule, imports: [CommonModule, UtilsModule] }); }
22
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: LocalizeModule }); }
60
23
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LocalizeModule, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: LocalizeModule, decorators: [{
62
25
  type: NgModule,
63
26
  args: [{
64
- imports: [CommonModule, UtilsModule],
65
- declarations: [
27
+ imports: [
66
28
  BbLocalize,
67
29
  BbLocalizeString,
68
30
  BbLocalizeTemplate
@@ -74,10 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
74
36
  ]
75
37
  }]
76
38
  }] });
77
- export function initializeLocale(localize) {
78
- return localize.initialize();
79
- }
80
- export function getLocale(localize) {
81
- return localize?.current?.locale ?? null;
82
- }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2xvY2FsaXplLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLFNBQVMsRUFBdUIsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM1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Q2hCLGtCQUFrQjtxQkFDckI7aUJBQ0o7O0FBeUNELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxRQUFrQjtJQUMvQyxPQUFPLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUNqQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxRQUFrQjtJQUN4QyxPQUFPLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIExPQ0FMRV9JRCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYkxvY2FsaXplU3RyaW5nfSBmcm9tICcuL3ZpZXdzL2xvY2FsaXplLXN0cmluZy9sb2NhbGl6ZS1zdHJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7TG9jYWxpemVJbnRlcnBvbGF0ZVRyYW5zZm9ybX0gZnJvbSAnLi90cmFuc2Zvcm1zL2ludGVycG9sYXRlLnRyYW5zZm9ybSc7XG5pbXBvcnQge0xvY2FsaXplUmVmZXJlbmNlVHJhbnNmb3JtfSBmcm9tICcuL3RyYW5zZm9ybXMvcmVmZXJlbmNlLnRyYW5zZm9ybSc7XG5pbXBvcnQge0xvY2FsaXplTG93ZXJjYXNlRnVuY3Rpb259IGZyb20gJy4vZnVuY3Rpb25zL2xvd2VyY2FzZS5mdW5jdGlvbic7XG5pbXBvcnQge0xvY2FsaXplVXBwZXJjYXNlRnVuY3Rpb259IGZyb20gJy4vZnVuY3Rpb25zL3VwcGVyY2FzZS5mdW5jdGlvbic7XG5pbXBvcnQge0JiTG9jYWxpemVUZW1wbGF0ZX0gZnJvbSAnLi92aWV3cy9sb2NhbGl6ZS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtMb2NhbGl6ZVBsdXJhbFRyYW5zZm9ybX0gZnJvbSAnLi90cmFuc2Zvcm1zL3BsdXJhbC50cmFuc2Zvcm0nO1xuaW1wb3J0IHtMT0NBTElaRV9UUkFOU0ZPUk19IGZyb20gJy4vaW50ZXJmYWNlcy90cmFuc2Zvcm1zLmludGVyZmFjZXMnO1xuaW1wb3J0IHtMT0NBTElaRV9GVU5DVElPTn0gZnJvbSAnLi9pbnRlcmZhY2VzL2Z1bmN0aW9ucy5pbnRlcmZhY2VzJztcbmltcG9ydCB7TG9jYWxpemVNaXNzaW5nSGFuZGxlcn0gZnJvbSAnLi9oYW5kbGVycy9taXNzaW5nLmhhbmRsZXInO1xuaW1wb3J0IHtMb2NhbGl6ZURhdGVGdW5jdGlvbn0gZnJvbSAnLi9mdW5jdGlvbnMvZGF0ZS5mdW5jdGlvbic7XG5pbXBvcnQge0xvY2FsaXplQ29uZmlnfSBmcm9tICcuL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZXMnO1xuaW1wb3J0IHtVdGlsc01vZHVsZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vdXRpbHMnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0xvY2FsaXplfSBmcm9tICcuL2xvY2FsaXplLnNlcnZpY2UnO1xuaW1wb3J0IHtCYkxvY2FsaXplfSBmcm9tICcuL2xvY2FsaXplLnBpcGUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFV0aWxzTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgQmJMb2NhbGl6ZSxcbiAgICAgICAgQmJMb2NhbGl6ZVN0cmluZyxcbiAgICAgICAgQmJMb2NhbGl6ZVRlbXBsYXRlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEJiTG9jYWxpemUsXG4gICAgICAgIEJiTG9jYWxpemVTdHJpbmcsXG4gICAgICAgIEJiTG9jYWxpemVUZW1wbGF0ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9jYWxpemVNb2R1bGUge1xuXG4gICAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBMb2NhbGl6ZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TG9jYWxpemVNb2R1bGU+IHtcbiAgICAgICAgaWYgKGNvbmZpZz8ubGFuZ3VhZ2VzPy5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmUgb3IgbW9yZSBsYW5ndWFnZXMgc2hvdWxkIGJlIHN1cHBsaWVkLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbmZpZz8uY29tcGFyZURpY3Rpb25hcmllcyAmJiBjb25maWc/Lm1vZGUgPT09ICdtYW51YWwnKSB7XG4gICAgICAgICAgICBjb25zb2xlPy53YXJuPy4oJ1lvdSBjYW5ub3QgZW5hYmxlIFwiY29tcGFyZURpY3Rpb25hcmllc1wiIHdoZW4gaGF2aW5nIG1vZGUgc2V0IHRvIFwibWFudWFsXCI7IFRoaXMgc2V0dGluZyB3aWxsIGJlIGlnbm9yZWQuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb2RlID0gY29uZmlnPy5tb2RlID8/ICdhdXRvbWF0aWMnO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IExvY2FsaXplTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgLy8gQW5ndWxhciBwcm92aWRlcnMuXG4gICAgICAgICAgICAgICAgLi4uKG1vZGUgPT09ICdhdXRvbWF0aWMnID8gW1xuICAgICAgICAgICAgICAgICAgICB7cHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLCBkZXBzOiBbTG9jYWxpemVdLCB1c2VGYWN0b3J5OiBpbml0aWFsaXplTG9jYWxlLCBtdWx0aTogdHJ1ZX0sXG4gICAgICAgICAgICAgICAgICAgIHtwcm92aWRlOiBMT0NBTEVfSUQsIGRlcHM6IFtMb2NhbGl6ZV0sIHVzZUZhY3Rvcnk6IGdldExvY2FsZX1cbiAgICAgICAgICAgICAgICBdIDogW10pLFxuICAgICAgICAgICAgICAgIC8vIENvbmZpZyBwcm92aWRlci5cbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogTG9jYWxpemVDb25maWcsIHVzZVZhbHVlOiBjb25maWd9LFxuICAgICAgICAgICAgICAgIC8vIEZ1bmN0aW9uIHByb3ZpZGVycy5cbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogTE9DQUxJWkVfRlVOQ1RJT04sIHVzZUNsYXNzOiBMb2NhbGl6ZUxvd2VyY2FzZUZ1bmN0aW9uLCBtdWx0aTogdHJ1ZX0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IExPQ0FMSVpFX0ZVTkNUSU9OLCB1c2VDbGFzczogTG9jYWxpemVVcHBlcmNhc2VGdW5jdGlvbiwgbXVsdGk6IHRydWV9LFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBMT0NBTElaRV9GVU5DVElPTiwgdXNlQ2xhc3M6IExvY2FsaXplRGF0ZUZ1bmN0aW9uLCBtdWx0aTogdHJ1ZX0sXG4gICAgICAgICAgICAgICAgLy8gVHJhbnNmb3JtIHByb3ZpZGVycy5cbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogTE9DQUxJWkVfVFJBTlNGT1JNLCB1c2VDbGFzczogTG9jYWxpemVQbHVyYWxUcmFuc2Zvcm0sIGRlcHM6IFtMb2NhbGl6ZUNvbmZpZ10sIG11bHRpOiB0cnVlfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogTE9DQUxJWkVfVFJBTlNGT1JNLCB1c2VDbGFzczogTG9jYWxpemVSZWZlcmVuY2VUcmFuc2Zvcm0sIGRlcHM6IFtMb2NhbGl6ZUNvbmZpZ10sIG11bHRpOiB0cnVlfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogTE9DQUxJWkVfVFJBTlNGT1JNLCB1c2VDbGFzczogTG9jYWxpemVJbnRlcnBvbGF0ZVRyYW5zZm9ybSwgZGVwczogW0xvY2FsaXplQ29uZmlnLCBMT0NBTElaRV9GVU5DVElPTl0sIG11bHRpOiB0cnVlfSxcbiAgICAgICAgICAgICAgICAvLyBIYW5kbGVyIHByb3ZpZGVycy5cbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogTG9jYWxpemVNaXNzaW5nSGFuZGxlciwgdXNlQ2xhc3M6IExvY2FsaXplTWlzc2luZ0hhbmRsZXJ9LFxuICAgICAgICAgICAgICAgIC8vIFNlcnZpY2UgcHJvdmlkZXJzLlxuICAgICAgICAgICAgICAgIExvY2FsaXplXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplTG9jYWxlKGxvY2FsaXplOiBMb2NhbGl6ZSkge1xuICAgIHJldHVybiBsb2NhbGl6ZS5pbml0aWFsaXplKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGUobG9jYWxpemU6IExvY2FsaXplKSB7XG4gICAgcmV0dXJuIGxvY2FsaXplPy5jdXJyZW50Py5sb2NhbGUgPz8gbnVsbDtcbn1cbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2xvY2FsaXplLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUNuRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUV2RSxPQUFPLEVBQXNCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBYzNDLE1BQU0sT0FBTyxjQUFjO0lBRXZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBc0I7UUFDakMsT0FBTztZQUNILFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRTtnQkFDUCxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7YUFDaEM7U0FDSixDQUFDO0lBQ04sQ0FBQzs4R0FUUSxjQUFjOytHQUFkLGNBQWMsWUFWbkIsVUFBVTtZQUNWLGdCQUFnQjtZQUNoQixrQkFBa0IsYUFHbEIsVUFBVTtZQUNWLGdCQUFnQjtZQUNoQixrQkFBa0I7K0dBR2IsY0FBYzs7MkZBQWQsY0FBYztrQkFaMUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFVBQVU7d0JBQ1YsZ0JBQWdCO3dCQUNoQixrQkFBa0I7cUJBQ3JCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCYkxvY2FsaXplU3RyaW5nfSBmcm9tICcuL3ZpZXdzL2xvY2FsaXplLXN0cmluZy9sb2NhbGl6ZS1zdHJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7QmJMb2NhbGl6ZVRlbXBsYXRlfSBmcm9tICcuL3ZpZXdzL2xvY2FsaXplLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0xvY2FsaXplQ29uZmlnfSBmcm9tICcuL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZXMnO1xuaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Byb3ZpZGVMb2NhbGl6ZUNvbmZpZ30gZnJvbSAnLi9sb2NhbGl6ZS5jb25maWcnO1xuaW1wb3J0IHtCYkxvY2FsaXplfSBmcm9tICcuL2xvY2FsaXplLnBpcGUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQmJMb2NhbGl6ZSxcbiAgICAgICAgQmJMb2NhbGl6ZVN0cmluZyxcbiAgICAgICAgQmJMb2NhbGl6ZVRlbXBsYXRlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEJiTG9jYWxpemUsXG4gICAgICAgIEJiTG9jYWxpemVTdHJpbmcsXG4gICAgICAgIEJiTG9jYWxpemVUZW1wbGF0ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9jYWxpemVNb2R1bGUge1xuXG4gICAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBMb2NhbGl6ZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TG9jYWxpemVNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBMb2NhbGl6ZU1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHByb3ZpZGVMb2NhbGl6ZUNvbmZpZyhjb25maWcpXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxuXG59XG4iXX0=
@@ -32,15 +32,16 @@ export class BbLocalize {
32
32
  // Return the combined params and options.
33
33
  return { ...params, ...options };
34
34
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbLocalize, deps: [{ token: i1.Localize, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
36
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: BbLocalize, name: "bbLocalize" }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: BbLocalize, deps: [{ token: i1.Localize, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
36
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.5", ngImport: i0, type: BbLocalize, isStandalone: true, name: "bbLocalize" }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BbLocalize, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: BbLocalize, decorators: [{
39
39
  type: Pipe,
40
40
  args: [{
41
- name: 'bbLocalize'
41
+ name: 'bbLocalize',
42
+ standalone: true
42
43
  }]
43
44
  }], ctorParameters: () => [{ type: i1.Localize, decorators: [{
44
45
  type: Optional
45
46
  }] }] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi9sb2NhbGl6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQzs7O0FBTTVELE1BQU0sT0FBTyxVQUFVO0lBRW5CLFlBQWdDLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFDcEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxhQUFzQyxFQUFFLElBQXNCO1FBQ3BFLG1FQUFtRTtRQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWxFLHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sTUFBTSxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUM7UUFDakMsQ0FBQztRQUVELDZCQUE2QjtRQUM3QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxhQUFzQyxFQUFFLElBQXNCO1FBQzNGLHFCQUFxQjtRQUNyQixNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRTFCLHFEQUFxRDtRQUNyRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUM3RCxJQUFJLE9BQU8sTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssV0FBVyxFQUFFLENBQUM7Z0JBQzNDLE9BQU8sUUFBUSxDQUFDO1lBQ3BCLENBQUM7WUFFRCxPQUFPLEVBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDO1FBQ3ZELENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVQLCtDQUErQztRQUMvQyxNQUFNLE1BQU0sR0FBRyxPQUFPLGFBQWEsS0FBSyxRQUFRO1lBQzVDLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUM7WUFDckUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUVwQiwwQ0FBMEM7UUFDMUMsT0FBTyxFQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFDLENBQUM7SUFDbkMsQ0FBQzs4R0F0Q1EsVUFBVTs0R0FBVixVQUFVOzsyRkFBVixVQUFVO2tCQUh0QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxZQUFZO2lCQUNyQjs7MEJBR2dCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsaXplT3B0aW9ucywgTG9jYWxpemVQYXJhbXN9IGZyb20gJy4vaW50ZXJmYWNlcy9vcHRpb25zLmludGVyZmFjZXMnO1xuaW1wb3J0IHtPcHRpb25hbCwgUGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvY2FsaXplfSBmcm9tICcuL2xvY2FsaXplLnNlcnZpY2UnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2JiTG9jYWxpemUnXG59KVxuZXhwb3J0IGNsYXNzIEJiTG9jYWxpemUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgX2xvY2FsaXplPzogTG9jYWxpemUpIHtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm0odG9rZW5PclBhcmFtczogc3RyaW5nIHwgTG9jYWxpemVQYXJhbXMsIGFyZ3M/OiBMb2NhbGl6ZU9wdGlvbnMpIHtcbiAgICAgICAgLy8gQ29tYmluZSB0aGUgcGFyYW1zIHdpdGggdGhlIG9wdGlvbnMgdG8gZm9ybSB0aGUgbG9jYWxpemUgcGFyYW1zLlxuICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmNvbWJpbmVQYXJhbXNXaXRoT3B0aW9ucyh0b2tlbk9yUGFyYW1zLCBhcmdzKTtcblxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGF0IHRoZSBsb2NhbGl6ZSBzZXJ2aWNlIGV4aXN0cyBpbiB0aGUgcGlwZS5cbiAgICAgICAgaWYgKCF0aGlzLl9sb2NhbGl6ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcmFtcz8udG9rZW4gPz8gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRyeSB0byBsb2NhbGl6ZSB0aGUgdmFsdWUuXG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGl6ZS50cmFuc2xhdGUocGFyYW1zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbWJpbmVQYXJhbXNXaXRoT3B0aW9ucyh0b2tlbk9yUGFyYW1zOiBzdHJpbmcgfCBMb2NhbGl6ZVBhcmFtcywgYXJncz86IExvY2FsaXplT3B0aW9ucykge1xuICAgICAgICAvLyBHYXRoZXIgdGhlIGV4dHJhcy5cbiAgICAgICAgY29uc3QgZXh0cmFzID0gYXJncyA/PyB7fTtcblxuICAgICAgICAvLyBMb29wIHRocm91Z2ggYWxsIHRoZSBrZXlzIHRvIGZpbmQgdGhlIHNldCBvcHRpb25zLlxuICAgICAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0LmtleXMoZXh0cmFzKS5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhcz8uW2N1cnJlbnRdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHsuLi5wcmV2aW91cywgW2N1cnJlbnRdOiBleHRyYXM/LltjdXJyZW50XX07XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICAvLyBDb252ZXJ0IHRoZSBzdHJpbmcgdG9rZW4gdG8gYSBwYXJhbXMgb2JqZWN0LlxuICAgICAgICBjb25zdCBwYXJhbXMgPSB0eXBlb2YgdG9rZW5PclBhcmFtcyA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgID8ge3Rva2VuOiB0b2tlbk9yUGFyYW1zLCBvcHRpb25hbDogZmFsc2UsIGRhdGE6IHt9LCBkaWN0aW9uYXJ5OiBudWxsfVxuICAgICAgICAgICAgOiB0b2tlbk9yUGFyYW1zO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgY29tYmluZWQgcGFyYW1zIGFuZCBvcHRpb25zLlxuICAgICAgICByZXR1cm4gey4uLnBhcmFtcywgLi4ub3B0aW9uc307XG4gICAgfVxuXG59XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi9sb2NhbGl6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQzs7O0FBTzVELE1BQU0sT0FBTyxVQUFVO0lBRW5CLFlBQWdDLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFDcEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxhQUFzQyxFQUFFLElBQXNCO1FBQ3BFLG1FQUFtRTtRQUNuRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWxFLHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sTUFBTSxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUM7UUFDakMsQ0FBQztRQUVELDZCQUE2QjtRQUM3QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxhQUFzQyxFQUFFLElBQXNCO1FBQzNGLHFCQUFxQjtRQUNyQixNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRTFCLHFEQUFxRDtRQUNyRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUM3RCxJQUFJLE9BQU8sTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssV0FBVyxFQUFFLENBQUM7Z0JBQzNDLE9BQU8sUUFBUSxDQUFDO1lBQ3BCLENBQUM7WUFFRCxPQUFPLEVBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDO1FBQ3ZELENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVQLCtDQUErQztRQUMvQyxNQUFNLE1BQU0sR0FBRyxPQUFPLGFBQWEsS0FBSyxRQUFRO1lBQzVDLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUM7WUFDckUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUVwQiwwQ0FBMEM7UUFDMUMsT0FBTyxFQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFDLENBQUM7SUFDbkMsQ0FBQzs4R0F0Q1EsVUFBVTs0R0FBVixVQUFVOzsyRkFBVixVQUFVO2tCQUp0QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxZQUFZO29CQUNsQixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQUdnQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2NhbGl6ZU9wdGlvbnMsIExvY2FsaXplUGFyYW1zfSBmcm9tICcuL2ludGVyZmFjZXMvb3B0aW9ucy5pbnRlcmZhY2VzJztcbmltcG9ydCB7T3B0aW9uYWwsIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2NhbGl6ZX0gZnJvbSAnLi9sb2NhbGl6ZS5zZXJ2aWNlJztcblxuQFBpcGUoe1xuICAgIG5hbWU6ICdiYkxvY2FsaXplJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEJiTG9jYWxpemUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgX2xvY2FsaXplPzogTG9jYWxpemUpIHtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm0odG9rZW5PclBhcmFtczogc3RyaW5nIHwgTG9jYWxpemVQYXJhbXMsIGFyZ3M/OiBMb2NhbGl6ZU9wdGlvbnMpIHtcbiAgICAgICAgLy8gQ29tYmluZSB0aGUgcGFyYW1zIHdpdGggdGhlIG9wdGlvbnMgdG8gZm9ybSB0aGUgbG9jYWxpemUgcGFyYW1zLlxuICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmNvbWJpbmVQYXJhbXNXaXRoT3B0aW9ucyh0b2tlbk9yUGFyYW1zLCBhcmdzKTtcblxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGF0IHRoZSBsb2NhbGl6ZSBzZXJ2aWNlIGV4aXN0cyBpbiB0aGUgcGlwZS5cbiAgICAgICAgaWYgKCF0aGlzLl9sb2NhbGl6ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcmFtcz8udG9rZW4gPz8gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRyeSB0byBsb2NhbGl6ZSB0aGUgdmFsdWUuXG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGl6ZS50cmFuc2xhdGUocGFyYW1zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbWJpbmVQYXJhbXNXaXRoT3B0aW9ucyh0b2tlbk9yUGFyYW1zOiBzdHJpbmcgfCBMb2NhbGl6ZVBhcmFtcywgYXJncz86IExvY2FsaXplT3B0aW9ucykge1xuICAgICAgICAvLyBHYXRoZXIgdGhlIGV4dHJhcy5cbiAgICAgICAgY29uc3QgZXh0cmFzID0gYXJncyA/PyB7fTtcblxuICAgICAgICAvLyBMb29wIHRocm91Z2ggYWxsIHRoZSBrZXlzIHRvIGZpbmQgdGhlIHNldCBvcHRpb25zLlxuICAgICAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0LmtleXMoZXh0cmFzKS5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhcz8uW2N1cnJlbnRdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHsuLi5wcmV2aW91cywgW2N1cnJlbnRdOiBleHRyYXM/LltjdXJyZW50XX07XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICAvLyBDb252ZXJ0IHRoZSBzdHJpbmcgdG9rZW4gdG8gYSBwYXJhbXMgb2JqZWN0LlxuICAgICAgICBjb25zdCBwYXJhbXMgPSB0eXBlb2YgdG9rZW5PclBhcmFtcyA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgID8ge3Rva2VuOiB0b2tlbk9yUGFyYW1zLCBvcHRpb25hbDogZmFsc2UsIGRhdGE6IHt9LCBkaWN0aW9uYXJ5OiBudWxsfVxuICAgICAgICAgICAgOiB0b2tlbk9yUGFyYW1zO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgY29tYmluZWQgcGFyYW1zIGFuZCBvcHRpb25zLlxuICAgICAgICByZXR1cm4gey4uLnBhcmFtcywgLi4ub3B0aW9uc307XG4gICAgfVxuXG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { LOCALIZE_TRANSFORM } from './interfaces/transforms.interfaces';
1
+ import { LOCALIZE_CONFIG, LOCALIZE_MISSING_HANDLER, LOCALIZE_TRANSFORM } from './localize.tokens';
2
2
  import { LocalizeDictionary } from './dictionary/dictionary.class';
3
3
  import { Inject, Injectable, Optional } from '@angular/core';
4
4
  import { WINDOW } from '@bravobit/bb-foundation';
@@ -8,16 +8,15 @@ import * as i0 from "@angular/core";
8
8
  import * as i1 from "@bravobit/bb-foundation/storage";
9
9
  import * as i2 from "@bravobit/bb-foundation";
10
10
  import * as i3 from "./handlers/missing.handler";
11
- import * as i4 from "./interfaces/config.interfaces";
12
11
  export class Localize {
13
- constructor(_storage, _languages, _missingHandler, _config, _window, _document, _transforms) {
12
+ constructor(_storage, _languages, _window, _document, _config, _transforms, _missingHandler) {
14
13
  this._storage = _storage;
15
14
  this._languages = _languages;
16
- this._missingHandler = _missingHandler;
17
- this._config = _config;
18
15
  this._window = _window;
19
16
  this._document = _document;
17
+ this._config = _config;
20
18
  this._transforms = _transforms;
19
+ this._missingHandler = _missingHandler;
21
20
  // Readonly data.
22
21
  this._storageToken = this._config?.storageToken ?? 'bb-language-dictionary-id';
23
22
  this._availableLanguages = this?._config?.languages ?? [];
@@ -110,6 +109,9 @@ export class Localize {
110
109
  const searchResult = !!dictionary ? dictionary.get(params?.token) : null;
111
110
  // 3. Verify the translation was found.
112
111
  if (!searchResult) {
112
+ if (!this._missingHandler) {
113
+ return null;
114
+ }
113
115
  return this._missingHandler.handle(params);
114
116
  }
115
117
  return this.transform(searchResult, params?.data);
@@ -159,14 +161,15 @@ export class Localize {
159
161
  ?.map(language => language?.id);
160
162
  return await this.current.compare(languageIds);
161
163
  }
162
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Localize, deps: [{ token: i1.Storage }, { token: i2.Languages }, { token: i3.LocalizeMissingHandler }, { token: i4.LocalizeConfig, optional: true }, { token: WINDOW, optional: true }, { token: DOCUMENT, optional: true }, { token: LOCALIZE_TRANSFORM, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
163
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Localize }); }
164
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Localize, deps: [{ token: i1.Storage }, { token: i2.Languages }, { token: WINDOW, optional: true }, { token: DOCUMENT, optional: true }, { token: LOCALIZE_CONFIG, optional: true }, { token: LOCALIZE_TRANSFORM, optional: true }, { token: LOCALIZE_MISSING_HANDLER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
165
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Localize, providedIn: 'root' }); }
164
166
  }
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: Localize, decorators: [{
166
- type: Injectable
167
- }], ctorParameters: () => [{ type: i1.Storage }, { type: i2.Languages }, { type: i3.LocalizeMissingHandler }, { type: i4.LocalizeConfig, decorators: [{
168
- type: Optional
169
- }] }, { type: Window, decorators: [{
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Localize, decorators: [{
168
+ type: Injectable,
169
+ args: [{
170
+ providedIn: 'root'
171
+ }]
172
+ }], ctorParameters: () => [{ type: i1.Storage }, { type: i2.Languages }, { type: Window, decorators: [{
170
173
  type: Optional
171
174
  }, {
172
175
  type: Inject,
@@ -178,8 +181,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
178
181
  args: [DOCUMENT]
179
182
  }] }, { type: undefined, decorators: [{
180
183
  type: Optional
184
+ }, {
185
+ type: Inject,
186
+ args: [LOCALIZE_CONFIG]
187
+ }] }, { type: undefined, decorators: [{
188
+ type: Optional
181
189
  }, {
182
190
  type: Inject,
183
191
  args: [LOCALIZE_TRANSFORM]
192
+ }] }, { type: i3.LocalizeMissingHandler, decorators: [{
193
+ type: Optional
194
+ }, {
195
+ type: Inject,
196
+ args: [LOCALIZE_MISSING_HANDLER]
184
197
  }] }] });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi9sb2NhbGl6ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBSXRFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRWpFLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQVksTUFBTSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFMUQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7OztBQUdyQyxNQUFNLE9BQU8sUUFBUTtJQWVqQixZQUFvQixRQUFpQixFQUNqQixVQUFxQixFQUNyQixlQUF1QyxFQUMzQixPQUF3QixFQUNSLE9BQWdCLEVBQ2QsU0FBb0IsRUFDVixXQUFpQztRQU56RSxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDckIsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQzNCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ1IsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNkLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDVixnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7UUFuQjdGLGlCQUFpQjtRQUNBLGtCQUFhLEdBQVcsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLElBQUksMkJBQTJCLENBQUM7UUFDbEYsd0JBQW1CLEdBQTZCLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUMvRSwwQkFBcUIsR0FBMkIsSUFBSSxD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UUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFcEMsT0FBTyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7OEdBN0tRLFFBQVEsc0pBbUJlLE1BQU0sNkJBQ04sUUFBUSw2QkFDUixrQkFBa0I7a0hBckJ6QyxRQUFROzsyRkFBUixRQUFRO2tCQURwQixVQUFVOzswQkFtQk0sUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxNQUFNOzswQkFDekIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFROzswQkFDM0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsaXplQ29uZmlnLCBMb2NhbGl6ZUNvbmZpZ0xhbmd1YWdlfSBmcm9tICcuL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZXMnO1xuaW1wb3J0IHtMT0NBTElaRV9UUkFOU0ZPUk19IGZyb20gJy4vaW50ZXJmYWNlcy90cmFuc2Zvcm1zLmludGVyZmFjZXMnO1xuaW1wb3J0IHtMb2NhbGl6ZURpY3Rpb25hcnlEYXRhfSBmcm9tICcuL2RpY3Rpb25hcnkvZGljdGlvbmFyeS5kYXRhJztcbmltcG9ydCB7TG9jYWxpemVUcmFuc2Zvcm19IGZyb20gJy4vdHJhbnNmb3Jtcy9hYnN0cmFjdC50cmFuc2Zvcm0nO1xuaW1wb3J0IHtMb2NhbGl6ZU1pc3NpbmdIYW5kbGVyfSBmcm9tICcuL2hhbmRsZXJzL21pc3NpbmcuaGFuZGxlcic7XG5pbXBvcnQge0xvY2FsaXplRGljdGlvbmFyeX0gZnJvbSAnLi9kaWN0aW9uYXJ5L2RpY3Rpb25hcnkuY2xhc3MnO1xuaW1wb3J0IHtMb2NhbGl6ZVBhcmFtc30gZnJvbSAnLi9pbnRlcmZhY2VzL29wdGlvbnMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMYW5ndWFnZXMsIFdJTkRPV30gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24nO1xuaW1wb3J0IHtTdG9yYWdlfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9zdG9yYWdlJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMb2NhbGl6ZSB7XG5cbiAgICAvLyBSZWFkb25seSBkYXRhLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JhZ2VUb2tlbjogc3RyaW5nID0gdGhpcy5fY29uZmlnPy5zdG9yYWdlVG9rZW4gPz8gJ2JiLWxhbmd1YWdlLWRpY3Rpb25hcnktaWQnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2F2YWlsYWJsZUxhbmd1YWdlczogTG9jYWxpemVDb25maWdMYW5ndWFnZVtdID0gdGhpcz8uX2NvbmZpZz8ubGFuZ3VhZ2VzID8/IFtdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Jlc3RNYXRjaGluZ0xhbmd1YWdlOiBMb2NhbGl6ZUNvbmZpZ0xhbmd1YWdlID0gdGhpcy5yZXRyaWV2ZUJlc3RNYXRjaGluZ0xhbmd1YWdlKCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9sb2FkZWREaWN0aW9uYXJpZXM6IE1hcDxzdHJpbmcsIExvY2FsaXplRGljdGlvbmFyeT4gPSBuZXcgTWFwPHN0cmluZywgTG9jYWxpemVEaWN0aW9uYXJ5PigpO1xuXG4gICAgLy8gQ3VycmVudCBkaWN0aW9uYXJ5LlxuICAgIHByaXZhdGUgX2N1cnJlbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMb2NhbGl6ZURpY3Rpb25hcnkgfCBudWxsPihudWxsKTtcblxuICAgIC8vIFN0YXRlIGNoYW5nZXMuXG4gICAgZGljdGlvbmFyeUNoYW5nZXMkID0gdGhpcy5fY3VycmVudCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdG9yYWdlOiBTdG9yYWdlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2xhbmd1YWdlczogTGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX21pc3NpbmdIYW5kbGVyOiBMb2NhbGl6ZU1pc3NpbmdIYW5kbGVyLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbmZpZz86IExvY2FsaXplQ29uZmlnLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIF93aW5kb3c/OiBXaW5kb3csXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ/OiBEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExPQ0FMSVpFX1RSQU5TRk9STSkgcHJpdmF0ZSBfdHJhbnNmb3Jtcz86IExvY2FsaXplVHJhbnNmb3JtW10pIHtcbiAgICAgICAgdGhpcy5yZW5kZXJEb2N1bWVudExhbmd1YWdlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGxhbmd1YWdlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F2YWlsYWJsZUxhbmd1YWdlcyA/PyBbXTtcbiAgICB9XG5cbiAgICBnZXQgY3VycmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnQkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgbG9hZChpZDogc3RyaW5nKSB7XG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBsb2FkIGxhbmd1YWdlIHdpdGggaWQ6IFwiJHtpZH1cIi5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9sb2FkZWREaWN0aW9uYXJpZXMuaGFzKGlkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRlZERpY3Rpb25hcmllcy5nZXQoaWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLmxhbmd1YWdlcz8uZmluZChsYW5ndWFnZSA9PiBsYW5ndWFnZT8uaWQgPT09IGlkKTtcbiAgICAgICAgaWYgKCFsYW5ndWFnZSB8fCAhbGFuZ3VhZ2U/LmRhdGEpIHtcbiAgICAgICAgICAgIGNvbnNvbGU/Lndhcm4/LihgTm8gbGFuZ3VhZ2Ugd2FzIGZvdW5kIHdpdGggaWQ6IFwiJHtpZH1cIjsgRGVmYXVsdGluZyB0byBmaXJzdCBhdmFpbGFibGUgbGFuZ3VhZ2UuYCk7XG4gICAgICAgICAgICBjb25zdCBsYW5ndWFnZUlkID0gdGhpcy5sYW5ndWFnZXM/LlswXT8uaWQgPz8gbnVsbDtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWQobGFuZ3VhZ2VJZCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkaWN0aW9uYXJ5RGF0YVZhbHVlcyA9IGF3YWl0IGxhbmd1YWdlPy5kYXRhPy4oKTtcbiAgICAgICAgY29uc3QgZGljdGlvbmFyeSA9IHRoaXMuY3JlYXRlRGljdGlvbmFyeShkaWN0aW9uYXJ5RGF0YVZhbHVlcywgbGFuZ3VhZ2UpO1xuICAgICAgICB0aGlzLl9sb2FkZWREaWN0aW9uYXJpZXMuc2V0KGlkLCBkaWN0aW9uYXJ5KTtcbiAgICAgICAgcmV0dXJuIGRpY3Rpb25hcnk7XG4gICAgfVxuXG4gICAgYXN5bmMgbG9hZEFsbExhbmd1YWdlcygpIHtcbiAgICAgICAgZm9yIChjb25zdCBsYW5ndWFnZSBvZiB0aGlzLmxhbmd1YWdlcykge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkKGxhbmd1YWdlPy5pZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBzd2l0Y2goaWQ6IHN0cmluZywgb3B0aW9ucz86IHsgY2FjaGU/OiBib29sZWFuLCByZWxvYWQ/OiBib29sZWFuIH0pIHtcbiAgICAgICAgY29uc3QgZGljdGlvbmFyeSA9IGF3YWl0IHRoaXMubG9hZChpZCk7XG4gICAgICAgIHRoaXMuX2N1cnJlbnQkLm5leHQoZGljdGlvbmFyeSk7XG5cbiAgICAgICAgY29uc3QgY2FjaGUgPSBvcHRpb25zPy5jYWNoZSA/PyB0cnVlO1xuICAgICAgICBpZiAoY2FjaGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0b3JhZ2UuY29va2llLnNldDxzdHJpbmc+KHRoaXMuX3N0b3JhZ2VUb2tlbiwgZGljdGlvbmFyeT8uaWQsIHt9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlbG9hZCA9IG9wdGlvbnM/LnJlbG9hZCA/PyBmYWxzZTtcbiAgICAgICAgaWYgKHJlbG9hZCkge1xuICAgICAgICAgICAgdGhpcy5fd2luZG93Py5sb2NhdGlvbj8ucmVsb2FkPy4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkaWN0aW9uYXJ5O1xuICAgIH1cblxuICAgIHNlbGVjdChpZDogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5fbG9hZGVkRGljdGlvbmFyaWVzLmhhcyhpZCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRGljdGlvbmFyeSB3aXRoIGlkOiBcIiR7aWR9XCIgbm90IGxvYWRlZDsgTG9hZCBkaWN0aW9uYXJ5IGZpcnN0IGJlZm9yZSB1c2luZyAuc2VsZWN0KDppZCkuYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRlZERpY3Rpb25hcmllcy5nZXQoaWQpO1xuICAgIH1cblxuICAgIGluaXRpYWxpemUoKSB7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnN3aXRjaCh0aGlzLl9iZXN0TWF0Y2hpbmdMYW5ndWFnZT8uaWQsIHtyZWxvYWQ6IGZhbHNlLCBjYWNoZTogZmFsc2V9KTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVEaWN0aW9uYXJpZXMoKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5fc3RvcmFnZS5jb29raWUucmVtb3ZlKHRoaXMuX3N0b3JhZ2VUb2tlbik7XG4gICAgfVxuXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcsIGRhdGE6IExvY2FsaXplUGFyYW1zWydkYXRhJ10gPSB7fSkge1xuICAgICAgICByZXR1cm4gKHRoaXMuX3RyYW5zZm9ybXMgPz8gW10pLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50LmV4ZWN1dGUocHJldmlvdXMsIGRhdGEsIHRoaXMpO1xuICAgICAgICB9LCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgdHJhbnNsYXRlKHRva2VuT3JQYXJhbXM6IHN0cmluZyB8IExvY2FsaXplUGFyYW1zKSB7XG4gICAgICAgIC8vIDEuIENvbnZlcnQgdG8gdGhlIHBhcmFtcy5cbiAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5jb252ZXJ0VG9QYXJhbXModG9rZW5PclBhcmFtcyk7XG5cbiAgICAgICAgLy8gMi4gVHJ5IHRvIGZpbmQgdGhlIHRyYW5zbGF0aW9uIGluIHRoZSBkaWN0aW9uYXJ5LlxuICAgICAgICBjb25zdCBkaWN0aW9uYXJ5ID0gdGhpcy5nZXREaWN0aW9uYXJ5KHBhcmFtcz8uZGljdGlvbmFyeSk7XG4gICAgICAgIGNvbnN0IHNlYXJjaFJlc3VsdCA9ICEhZGljdGlvbmFyeSA/IGRpY3Rpb25hcnkuZ2V0KHBhcmFtcz8udG9rZW4pIDogbnVsbDtcblxuICAgICAgICAvLyAzLiBWZXJpZnkgdGhlIHRyYW5zbGF0aW9uIHdhcyBmb3VuZC5cbiAgICAgICAgaWYgKCFzZWFyY2hSZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9taXNzaW5nSGFuZGxlci5oYW5kbGUocGFyYW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybShzZWFyY2hSZXN1bHQsIHBhcmFtcz8uZGF0YSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXRyaWV2ZUJlc3RNYXRjaGluZ0xhbmd1YWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRMYW5ndWFnZUZyb21TdG9yYWdlKClcbiAgICAgICAgICAgID8/IHRoaXMuZ2V0QmVzdEJyb3dzZXJNYXRjaExhbmd1YWdlKClcbiAgICAgICAgICAgID8/IHRoaXMuX2F2YWlsYWJsZUxhbmd1YWdlcz8uWzBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TGFuZ3VhZ2VGcm9tU3RvcmFnZSgpIHtcbiAgICAgICAgLy8gR2V0IGlkIGZyb20gdGhlIHN0b3JhZ2UuXG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5fc3RvcmFnZS5jb29raWUuZ2V0PHN0cmluZz4odGhpcy5fc3RvcmFnZVRva2VuKTtcblxuICAgICAgICAvLyBSZXR1cm4gdGhlIGxhbmd1YWdlIGJhc2VkIG9uIHRoZSBzdG9yYWdlIGlkLlxuICAgICAgICByZXR1cm4gdGhpcy5fYXZhaWxhYmxlTGFuZ3VhZ2VzLmZpbmQoaXRlbSA9PiBpdGVtPy5pZCA9PT0gaWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QmVzdEJyb3dzZXJNYXRjaExhbmd1YWdlKCkge1xuICAgICAgICAvLyBMb29wIHRocm91Z2ggYWxsIGJyb3dzZXIgbGFuZ3VhZ2VzIGFuZCByZXR1cm4gdGhlXG4gICAgICAgIC8vIGJlc3QgbWF0Y2hpbmcgbGFuZ3VhZ2UuXG4gICAgICAgIHJldHVybiB0aGlzLl9sYW5ndWFnZXMuYWxsLm1hcCgoe2NvZGUsIHJlZ2lvbn0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhbmd1YWdlQ29kZSA9IFtjb2RlLCByZWdpb25dLmZpbHRlcihkYXRhID0+ICEhZGF0YSkuam9pbignLScpO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYXZhaWxhYmxlTGFuZ3VhZ2VzLmZpbmQoaXRlbSA9PiBpdGVtPy5zdXBwb3J0ZWQ/LmluY2x1ZGVzKGxhbmd1YWdlQ29kZSkpO1xuICAgICAgICB9KS5maWx0ZXIoaXRlbSA9PiAhIWl0ZW0pLmZpbmQoKF8sIGluZGV4KSA9PiBpbmRleCA9PT0gMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVEaWN0aW9uYXJ5KGRhdGE6IExvY2FsaXplRGljdGlvbmFyeURhdGEsIGxhbmd1YWdlOiBMb2NhbGl6ZUNvbmZpZ0xhbmd1YWdlKSB7XG4gICAgICAgIHJldHVybiBuZXcgTG9jYWxpemVEaWN0aW9uYXJ5KGxhbmd1YWdlPy5pZCwgbGFuZ3VhZ2U/LmxvY2FsZSwgbGFuZ3VhZ2U/LnN1cHBvcnRlZCwgZGF0YT8uZGF0YSwgdGhpcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREaWN0aW9uYXJ5KGlkOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdChpZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJEb2N1bWVudExhbmd1YWdlKCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZG9jdW1lbnQ/LmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBlbGVtZW50LmxhbmcgPSB0aGlzLl9iZXN0TWF0Y2hpbmdMYW5ndWFnZT8uc3VwcG9ydGVkPy5bMF0gPz8gdGhpcy5fYmVzdE1hdGNoaW5nTGFuZ3VhZ2U/LmxvY2FsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGNvbXBhcmVEaWN0aW9uYXJpZXMoKSB7XG4gICAgICAgIGNvbnN0IGNvbXBhcmVEaWN0aW9uYXJpZXMgPSB0aGlzLl9jb25maWcuY29tcGFyZURpY3Rpb25hcmllcyA/PyBmYWxzZTtcbiAgICAgICAgaWYgKCFjb21wYXJlRGljdGlvbmFyaWVzIHx8ICF0aGlzLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxhbmd1YWdlSWRzID0gKHRoaXMubGFuZ3VhZ2VzID8/IFtdKVxuICAgICAgICAgICAgPy5maWx0ZXIobGFuZ3VhZ2UgPT4gbGFuZ3VhZ2U/LmlkICE9PSB0aGlzLmN1cnJlbnQ/LmlkKVxuICAgICAgICAgICAgPy5tYXAobGFuZ3VhZ2UgPT4gbGFuZ3VhZ2U/LmlkKTtcblxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5jdXJyZW50LmNvbXBhcmUobGFuZ3VhZ2VJZHMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydFRvUGFyYW1zID0gKHRva2VuT3JQYXJhbXM6IHN0cmluZyB8IExvY2FsaXplUGFyYW1zKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgdG9rZW5PclBhcmFtcyAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIC8vIERlc3RydWN0IHRoZSBwYXJhbXMgZnJvbSB0aGUgb2JqZWN0LlxuICAgICAgICAgICAgY29uc3Qge3Rva2VuLCBvcHRpb25hbCwgZGljdGlvbmFyeSwgZGF0YX0gPSB0b2tlbk9yUGFyYW1zO1xuXG4gICAgICAgICAgICAvLyBNYWtlIHN1cmUgYWxsIHBhcmFtZXRlcnMgYXJlIHZhbGlkXG4gICAgICAgICAgICAvLyBieSB0eXBlIHNhZmUgYWRkaW5nIHRoZW0uXG4gICAgICAgICAgICByZXR1cm4ge3Rva2VuOiB0b2tlbiwgb3B0aW9uYWw6IG9wdGlvbmFsID8/IGZhbHNlLCBkaWN0aW9uYXJ5OiBkaWN0aW9uYXJ5ID8/IG51bGwsIGRhdGE6IGRhdGEgPz8ge319O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhlIHBhcmFtZXRlciBpcyBhIHN0cmluZyBmaWxsIGluIHRoZSBibGFua3MuXG4gICAgICAgIHJldHVybiB7dG9rZW46IHRva2VuT3JQYXJhbXMsIG9wdGlvbmFsOiBmYWxzZSwgZGljdGlvbmFyeTogbnVsbCwgZGF0YToge319O1xuICAgIH07XG5cbn1cbiJdfQ==
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi9sb2NhbGl6ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUtoRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUVqRSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFZLE1BQU0sRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTFELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7OztBQUtyQyxNQUFNLE9BQU8sUUFBUTtJQWVqQixZQUFvQixRQUFpQixFQUNqQixVQUFxQixFQUNPLE9BQWdCLEVBQ2QsU0FBb0IsRUFDYixPQUF3QixFQUNyQixXQUFpQyxFQUMzQixlQUF3QztRQU50RixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDTyxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2QsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNiLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtRQUMzQixvQkFBZSxHQUFmLGVBQWUsQ0FBeUI7UUFuQjFHLGlCQUFpQjtRQUNBLGtCQUFhLEdBQVcsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLElBQUksMkJBQTJCLENBQUM7UUFDbEYsd0JBQW1CLEdBQTZCLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUMv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QUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXBDLE9BQU8sTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDOzhHQWhMUSxRQUFRLGtFQWlCZSxNQUFNLDZCQUNOLFFBQVEsNkJBQ1IsZUFBZSw2QkFDZixrQkFBa0IsNkJBQ2xCLHdCQUF3QjtrSEFyQi9DLFFBQVEsY0FGTCxNQUFNOzsyRkFFVCxRQUFRO2tCQUhwQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBa0JnQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLE1BQU07OzBCQUN6QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7OzBCQUMzQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7OzBCQUNsQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQ3JDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMT0NBTElaRV9DT05GSUcsIExPQ0FMSVpFX01JU1NJTkdfSEFORExFUiwgTE9DQUxJWkVfVFJBTlNGT1JNfSBmcm9tICcuL2xvY2FsaXplLnRva2Vucyc7XG5pbXBvcnQge0xvY2FsaXplQ29uZmlnLCBMb2NhbGl6ZUNvbmZpZ0xhbmd1YWdlfSBmcm9tICcuL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZXMnO1xuaW1wb3J0IHtMb2NhbGl6ZURpY3Rpb25hcnlEYXRhfSBmcm9tICcuL2RpY3Rpb25hcnkvZGljdGlvbmFyeS5kYXRhJztcbmltcG9ydCB7TG9jYWxpemVUcmFuc2Zvcm19IGZyb20gJy4vdHJhbnNmb3Jtcy9hYnN0cmFjdC50cmFuc2Zvcm0nO1xuaW1wb3J0IHtMb2NhbGl6ZU1pc3NpbmdIYW5kbGVyfSBmcm9tICcuL2hhbmRsZXJzL21pc3NpbmcuaGFuZGxlcic7XG5pbXBvcnQge0xvY2FsaXplRGljdGlvbmFyeX0gZnJvbSAnLi9kaWN0aW9uYXJ5L2RpY3Rpb25hcnkuY2xhc3MnO1xuaW1wb3J0IHtMb2NhbGl6ZVBhcmFtc30gZnJvbSAnLi9pbnRlcmZhY2VzL29wdGlvbnMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMYW5ndWFnZXMsIFdJTkRPV30gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24nO1xuaW1wb3J0IHtTdG9yYWdlfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9zdG9yYWdlJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTG9jYWxpemUge1xuXG4gICAgLy8gUmVhZG9ubHkgZGF0YS5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yYWdlVG9rZW46IHN0cmluZyA9IHRoaXMuX2NvbmZpZz8uc3RvcmFnZVRva2VuID8/ICdiYi1sYW5ndWFnZS1kaWN0aW9uYXJ5LWlkJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hdmFpbGFibGVMYW5ndWFnZXM6IExvY2FsaXplQ29uZmlnTGFuZ3VhZ2VbXSA9IHRoaXM/Ll9jb25maWc/Lmxhbmd1YWdlcyA/PyBbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9iZXN0TWF0Y2hpbmdMYW5ndWFnZTogTG9jYWxpemVDb25maWdMYW5ndWFnZSA9IHRoaXMucmV0cmlldmVCZXN0TWF0Y2hpbmdMYW5ndWFnZSgpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbG9hZGVkRGljdGlvbmFyaWVzOiBNYXA8c3RyaW5nLCBMb2NhbGl6ZURpY3Rpb25hcnk+ID0gbmV3IE1hcDxzdHJpbmcsIExvY2FsaXplRGljdGlvbmFyeT4oKTtcblxuICAgIC8vIEN1cnJlbnQgZGljdGlvbmFyeS5cbiAgICBwcml2YXRlIF9jdXJyZW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TG9jYWxpemVEaWN0aW9uYXJ5IHwgbnVsbD4obnVsbCk7XG5cbiAgICAvLyBTdGF0ZSBjaGFuZ2VzLlxuICAgIGRpY3Rpb25hcnlDaGFuZ2VzJCA9IHRoaXMuX2N1cnJlbnQkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfc3RvcmFnZTogU3RvcmFnZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9sYW5ndWFnZXM6IExhbmd1YWdlcyxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFdJTkRPVykgcHJpdmF0ZSBfd2luZG93PzogV2luZG93LFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50PzogRG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChMT0NBTElaRV9DT05GSUcpIHByaXZhdGUgX2NvbmZpZz86IExvY2FsaXplQ29uZmlnLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTE9DQUxJWkVfVFJBTlNGT1JNKSBwcml2YXRlIF90cmFuc2Zvcm1zPzogTG9jYWxpemVUcmFuc2Zvcm1bXSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExPQ0FMSVpFX01JU1NJTkdfSEFORExFUikgcHJpdmF0ZSBfbWlzc2luZ0hhbmRsZXI/OiBMb2NhbGl6ZU1pc3NpbmdIYW5kbGVyKSB7XG4gICAgICAgIHRoaXMucmVuZGVyRG9jdW1lbnRMYW5ndWFnZSgpO1xuICAgIH1cblxuICAgIGdldCBsYW5ndWFnZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdmFpbGFibGVMYW5ndWFnZXMgPz8gW107XG4gICAgfVxuXG4gICAgZ2V0IGN1cnJlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50JC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIGFzeW5jIGxvYWQoaWQ6IHN0cmluZykge1xuICAgICAgICBpZiAoaWQgPT09IG51bGwgfHwgaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgbG9hZCBsYW5ndWFnZSB3aXRoIGlkOiBcIiR7aWR9XCIuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fbG9hZGVkRGljdGlvbmFyaWVzLmhhcyhpZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2FkZWREaWN0aW9uYXJpZXMuZ2V0KGlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy5sYW5ndWFnZXM/LmZpbmQobGFuZ3VhZ2UgPT4gbGFuZ3VhZ2U/LmlkID09PSBpZCk7XG4gICAgICAgIGlmICghbGFuZ3VhZ2UgfHwgIWxhbmd1YWdlPy5kYXRhKSB7XG4gICAgICAgICAgICBjb25zb2xlPy53YXJuPy4oYE5vIGxhbmd1YWdlIHdhcyBmb3VuZCB3aXRoIGlkOiBcIiR7aWR9XCI7IERlZmF1bHRpbmcgdG8gZmlyc3QgYXZhaWxhYmxlIGxhbmd1YWdlLmApO1xuICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2VJZCA9IHRoaXMubGFuZ3VhZ2VzPy5bMF0/LmlkID8/IG51bGw7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkKGxhbmd1YWdlSWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGljdGlvbmFyeURhdGFWYWx1ZXMgPSBhd2FpdCBsYW5ndWFnZT8uZGF0YT8uKCk7XG4gICAgICAgIGNvbnN0IGRpY3Rpb25hcnkgPSB0aGlzLmNyZWF0ZURpY3Rpb25hcnkoZGljdGlvbmFyeURhdGFWYWx1ZXMsIGxhbmd1YWdlKTtcbiAgICAgICAgdGhpcy5fbG9hZGVkRGljdGlvbmFyaWVzLnNldChpZCwgZGljdGlvbmFyeSk7XG4gICAgICAgIHJldHVybiBkaWN0aW9uYXJ5O1xuICAgIH1cblxuICAgIGFzeW5jIGxvYWRBbGxMYW5ndWFnZXMoKSB7XG4gICAgICAgIGZvciAoY29uc3QgbGFuZ3VhZ2Ugb2YgdGhpcy5sYW5ndWFnZXMpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZChsYW5ndWFnZT8uaWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgc3dpdGNoKGlkOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGNhY2hlPzogYm9vbGVhbiwgcmVsb2FkPzogYm9vbGVhbiB9KSB7XG4gICAgICAgIGNvbnN0IGRpY3Rpb25hcnkgPSBhd2FpdCB0aGlzLmxvYWQoaWQpO1xuICAgICAgICB0aGlzLl9jdXJyZW50JC5uZXh0KGRpY3Rpb25hcnkpO1xuXG4gICAgICAgIGNvbnN0IGNhY2hlID0gb3B0aW9ucz8uY2FjaGUgPz8gdHJ1ZTtcbiAgICAgICAgaWYgKGNhY2hlKSB7XG4gICAgICAgICAgICB0aGlzLl9zdG9yYWdlLmNvb2tpZS5zZXQ8c3RyaW5nPih0aGlzLl9zdG9yYWdlVG9rZW4sIGRpY3Rpb25hcnk/LmlkLCB7fSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZWxvYWQgPSBvcHRpb25zPy5yZWxvYWQgPz8gZmFsc2U7XG4gICAgICAgIGlmIChyZWxvYWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3dpbmRvdz8ubG9jYXRpb24/LnJlbG9hZD8uKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGljdGlvbmFyeTtcbiAgICB9XG5cbiAgICBzZWxlY3QoaWQ6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMuX2xvYWRlZERpY3Rpb25hcmllcy5oYXMoaWQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYERpY3Rpb25hcnkgd2l0aCBpZDogXCIke2lkfVwiIG5vdCBsb2FkZWQ7IExvYWQgZGljdGlvbmFyeSBmaXJzdCBiZWZvcmUgdXNpbmcgLnNlbGVjdCg6aWQpLmApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2FkZWREaWN0aW9uYXJpZXMuZ2V0KGlkKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKCkge1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5zd2l0Y2godGhpcy5fYmVzdE1hdGNoaW5nTGFuZ3VhZ2U/LmlkLCB7cmVsb2FkOiBmYWxzZSwgY2FjaGU6IGZhbHNlfSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlRGljdGlvbmFyaWVzKCk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuX3N0b3JhZ2UuY29va2llLnJlbW92ZSh0aGlzLl9zdG9yYWdlVG9rZW4pO1xuICAgIH1cblxuICAgIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBkYXRhOiBMb2NhbGl6ZVBhcmFtc1snZGF0YSddID0ge30pIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLl90cmFuc2Zvcm1zID8/IFtdKS5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudC5leGVjdXRlKHByZXZpb3VzLCBkYXRhLCB0aGlzKTtcbiAgICAgICAgfSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHRyYW5zbGF0ZSh0b2tlbk9yUGFyYW1zOiBzdHJpbmcgfCBMb2NhbGl6ZVBhcmFtcykge1xuICAgICAgICAvLyAxLiBDb252ZXJ0IHRvIHRoZSBwYXJhbXMuXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29udmVydFRvUGFyYW1zKHRva2VuT3JQYXJhbXMpO1xuXG4gICAgICAgIC8vIDIuIFRyeSB0byBmaW5kIHRoZSB0cmFuc2xhdGlvbiBpbiB0aGUgZGljdGlvbmFyeS5cbiAgICAgICAgY29uc3QgZGljdGlvbmFyeSA9IHRoaXMuZ2V0RGljdGlvbmFyeShwYXJhbXM/LmRpY3Rpb25hcnkpO1xuICAgICAgICBjb25zdCBzZWFyY2hSZXN1bHQgPSAhIWRpY3Rpb25hcnkgPyBkaWN0aW9uYXJ5LmdldChwYXJhbXM/LnRva2VuKSA6IG51bGw7XG5cbiAgICAgICAgLy8gMy4gVmVyaWZ5IHRoZSB0cmFuc2xhdGlvbiB3YXMgZm91bmQuXG4gICAgICAgIGlmICghc2VhcmNoUmVzdWx0KSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX21pc3NpbmdIYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWlzc2luZ0hhbmRsZXIuaGFuZGxlKHBhcmFtcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm0oc2VhcmNoUmVzdWx0LCBwYXJhbXM/LmRhdGEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmV0cmlldmVCZXN0TWF0Y2hpbmdMYW5ndWFnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TGFuZ3VhZ2VGcm9tU3RvcmFnZSgpXG4gICAgICAgICAgICA/PyB0aGlzLmdldEJlc3RCcm93c2VyTWF0Y2hMYW5ndWFnZSgpXG4gICAgICAgICAgICA/PyB0aGlzLl9hdmFpbGFibGVMYW5ndWFnZXM/LlswXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExhbmd1YWdlRnJvbVN0b3JhZ2UoKSB7XG4gICAgICAgIC8vIEdldCBpZCBmcm9tIHRoZSBzdG9yYWdlLlxuICAgICAgICBjb25zdCBpZCA9IHRoaXMuX3N0b3JhZ2UuY29va2llLmdldDxzdHJpbmc+KHRoaXMuX3N0b3JhZ2VUb2tlbik7XG5cbiAgICAgICAgLy8gUmV0dXJuIHRoZSBsYW5ndWFnZSBiYXNlZCBvbiB0aGUgc3RvcmFnZSBpZC5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2F2YWlsYWJsZUxhbmd1YWdlcy5maW5kKGl0ZW0gPT4gaXRlbT8uaWQgPT09IGlkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJlc3RCcm93c2VyTWF0Y2hMYW5ndWFnZSgpIHtcbiAgICAgICAgLy8gTG9vcCB0aHJvdWdoIGFsbCBicm93c2VyIGxhbmd1YWdlcyBhbmQgcmV0dXJuIHRoZVxuICAgICAgICAvLyBiZXN0IG1hdGNoaW5nIGxhbmd1YWdlLlxuICAgICAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2VzLmFsbC5tYXAoKHtjb2RlLCByZWdpb259KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYW5ndWFnZUNvZGUgPSBbY29kZSwgcmVnaW9uXS5maWx0ZXIoZGF0YSA9PiAhIWRhdGEpLmpvaW4oJy0nKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2F2YWlsYWJsZUxhbmd1YWdlcy5maW5kKGl0ZW0gPT4gaXRlbT8uc3VwcG9ydGVkPy5pbmNsdWRlcyhsYW5ndWFnZUNvZGUpKTtcbiAgICAgICAgfSkuZmlsdGVyKGl0ZW0gPT4gISFpdGVtKS5maW5kKChfLCBpbmRleCkgPT4gaW5kZXggPT09IDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRGljdGlvbmFyeShkYXRhOiBMb2NhbGl6ZURpY3Rpb25hcnlEYXRhLCBsYW5ndWFnZTogTG9jYWxpemVDb25maWdMYW5ndWFnZSkge1xuICAgICAgICByZXR1cm4gbmV3IExvY2FsaXplRGljdGlvbmFyeShsYW5ndWFnZT8uaWQsIGxhbmd1YWdlPy5sb2NhbGUsIGxhbmd1YWdlPy5zdXBwb3J0ZWQsIGRhdGE/LmRhdGEsIHRoaXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGljdGlvbmFyeShpZDogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICBpZiAoaWQgPT09IG51bGwgfHwgaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3QoaWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyRG9jdW1lbnRMYW5ndWFnZSgpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2RvY3VtZW50Py5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxlbWVudC5sYW5nID0gdGhpcy5fYmVzdE1hdGNoaW5nTGFuZ3VhZ2U/LnN1cHBvcnRlZD8uWzBdID8/IHRoaXMuX2Jlc3RNYXRjaGluZ0xhbmd1YWdlPy5sb2NhbGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBjb21wYXJlRGljdGlvbmFyaWVzKCkge1xuICAgICAgICBjb25zdCBjb21wYXJlRGljdGlvbmFyaWVzID0gdGhpcy5fY29uZmlnLmNvbXBhcmVEaWN0aW9uYXJpZXMgPz8gZmFsc2U7XG4gICAgICAgIGlmICghY29tcGFyZURpY3Rpb25hcmllcyB8fCAhdGhpcy5jdXJyZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYW5ndWFnZUlkcyA9ICh0aGlzLmxhbmd1YWdlcyA/PyBbXSlcbiAgICAgICAgICAgID8uZmlsdGVyKGxhbmd1YWdlID0+IGxhbmd1YWdlPy5pZCAhPT0gdGhpcy5jdXJyZW50Py5pZClcbiAgICAgICAgICAgID8ubWFwKGxhbmd1YWdlID0+IGxhbmd1YWdlPy5pZCk7XG5cbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY3VycmVudC5jb21wYXJlKGxhbmd1YWdlSWRzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnZlcnRUb1BhcmFtcyA9ICh0b2tlbk9yUGFyYW1zOiBzdHJpbmcgfCBMb2NhbGl6ZVBhcmFtcykgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHRva2VuT3JQYXJhbXMgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAvLyBEZXN0cnVjdCB0aGUgcGFyYW1zIGZyb20gdGhlIG9iamVjdC5cbiAgICAgICAgICAgIGNvbnN0IHt0b2tlbiwgb3B0aW9uYWwsIGRpY3Rpb25hcnksIGRhdGF9ID0gdG9rZW5PclBhcmFtcztcblxuICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGFsbCBwYXJhbWV0ZXJzIGFyZSB2YWxpZFxuICAgICAgICAgICAgLy8gYnkgdHlwZSBzYWZlIGFkZGluZyB0aGVtLlxuICAgICAgICAgICAgcmV0dXJuIHt0b2tlbjogdG9rZW4sIG9wdGlvbmFsOiBvcHRpb25hbCA/PyBmYWxzZSwgZGljdGlvbmFyeTogZGljdGlvbmFyeSA/PyBudWxsLCBkYXRhOiBkYXRhID8/IHt9fTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZSBwYXJhbWV0ZXIgaXMgYSBzdHJpbmcgZmlsbCBpbiB0aGUgYmxhbmtzLlxuICAgICAgICByZXR1cm4ge3Rva2VuOiB0b2tlbk9yUGFyYW1zLCBvcHRpb25hbDogZmFsc2UsIGRpY3Rpb25hcnk6IG51bGwsIGRhdGE6IHt9fTtcbiAgICB9O1xuXG59XG4iXX0=