@bravobit/bb-foundation 0.15.4 → 0.16.1

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 (377) hide show
  1. package/auth/lib/auth.interceptor.d.ts +1 -1
  2. package/auth/lib/auth.service.d.ts +1 -1
  3. package/auth/package.json +5 -5
  4. package/collections/package.json +5 -5
  5. package/controls/bravobit-bb-foundation-controls.d.ts +5 -0
  6. package/controls/lib/checkbox/checkbox.component.d.ts +27 -0
  7. package/controls/lib/checkbox/checkbox.module.d.ts +9 -0
  8. package/controls/lib/controls.module.d.ts +7 -0
  9. package/controls/package.json +10 -0
  10. package/controls/public_api.d.ts +3 -0
  11. package/dashboard/package.json +5 -5
  12. package/dialog/package.json +5 -5
  13. package/elements/package.json +5 -5
  14. package/{esm2015/auth/bravobit-bb-foundation-auth.js → esm2020/auth/bravobit-bb-foundation-auth.mjs} +0 -0
  15. package/esm2020/auth/lib/auth.interceptor.mjs +94 -0
  16. package/{esm2015/auth/lib/auth.module.js → esm2020/auth/lib/auth.module.mjs} +5 -5
  17. package/esm2020/auth/lib/auth.service.mjs +276 -0
  18. package/esm2020/auth/lib/auth.session.mjs +131 -0
  19. package/{esm2015/auth/lib/directives/authenticated.directive.js → esm2020/auth/lib/directives/authenticated.directive.mjs} +5 -6
  20. package/esm2020/auth/lib/directives/permission.directive.mjs +80 -0
  21. package/esm2020/auth/lib/directives/role.directive.mjs +37 -0
  22. package/esm2020/auth/lib/guards/anonymous.guard.mjs +34 -0
  23. package/esm2020/auth/lib/guards/authenticated.guard.mjs +35 -0
  24. package/{esm2015/auth/lib/helpers/jwt.helper.js → esm2020/auth/lib/helpers/jwt.helper.mjs} +3 -3
  25. package/{esm2015/auth/lib/helpers/mapper.helper.js → esm2020/auth/lib/helpers/mapper.helper.mjs} +4 -4
  26. package/{esm2015/auth/lib/interfaces/config.interface.js → esm2020/auth/lib/interfaces/config.interface.mjs} +0 -0
  27. package/{esm2015/auth/lib/interfaces/mapper.interface.js → esm2020/auth/lib/interfaces/mapper.interface.mjs} +0 -0
  28. package/{esm2015/auth/lib/interfaces/provider.interface.js → esm2020/auth/lib/interfaces/provider.interface.mjs} +0 -0
  29. package/{esm2015/auth/lib/interfaces/token.interface.js → esm2020/auth/lib/interfaces/token.interface.mjs} +0 -0
  30. package/esm2020/auth/lib/permissions.service.mjs +56 -0
  31. package/esm2020/auth/lib/providers/email.provider.mjs +25 -0
  32. package/esm2020/auth/lib/providers/verify.provider.mjs +19 -0
  33. package/{esm2015/auth/lib/tokens/use-authorization.token.js → esm2020/auth/lib/tokens/use-authorization.token.mjs} +0 -0
  34. package/{esm2015/auth/public_api.js → esm2020/auth/public_api.mjs} +0 -0
  35. package/{esm2015/bravobit-bb-foundation.js → esm2020/bravobit-bb-foundation.mjs} +0 -0
  36. package/{esm2015/collections/bravobit-bb-foundation-collections.js → esm2020/collections/bravobit-bb-foundation-collections.mjs} +0 -0
  37. package/esm2020/collections/lib/collection.mjs +98 -0
  38. package/{esm2015/collections/lib/collections.module.js → esm2020/collections/lib/collections.module.mjs} +5 -5
  39. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +123 -0
  40. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +31 -0
  41. package/{esm2015/collections/lib/components/collections.directive.js → esm2020/collections/lib/components/collections.directive.mjs} +13 -13
  42. package/{esm2015/collections/lib/interfaces/collection.interface.js → esm2020/collections/lib/interfaces/collection.interface.mjs} +0 -0
  43. package/esm2020/collections/lib/providers/api-collection.provider.mjs +68 -0
  44. package/esm2020/collections/lib/providers/collection.provider.mjs +13 -0
  45. package/{esm2015/collections/lib/providers/local-collection.provider.js → esm2020/collections/lib/providers/local-collection.provider.mjs} +0 -0
  46. package/{esm2015/collections/public_api.js → esm2020/collections/public_api.mjs} +0 -0
  47. package/esm2020/controls/bravobit-bb-foundation-controls.mjs +5 -0
  48. package/esm2020/controls/lib/checkbox/checkbox.component.mjs +86 -0
  49. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +19 -0
  50. package/esm2020/controls/lib/controls.module.mjs +16 -0
  51. package/esm2020/controls/public_api.mjs +4 -0
  52. package/{esm2015/dashboard/bravobit-bb-foundation-dashboard.js → esm2020/dashboard/bravobit-bb-foundation-dashboard.mjs} +0 -0
  53. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +56 -0
  54. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +30 -0
  55. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +31 -0
  56. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +29 -0
  57. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +75 -0
  58. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +99 -0
  59. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +62 -0
  60. package/{esm2015/dashboard/lib/dashboard.module.js → esm2020/dashboard/lib/dashboard.module.mjs} +5 -5
  61. package/{esm2015/dashboard/public_api.js → esm2020/dashboard/public_api.mjs} +0 -0
  62. package/{esm2015/dialog/bravobit-bb-foundation-dialog.js → esm2020/dialog/bravobit-bb-foundation-dialog.mjs} +0 -0
  63. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +12 -0
  64. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +37 -0
  65. package/{esm2015/dialog/lib/dialog-container/dialog-container.component.js → esm2020/dialog/lib/dialog-container/dialog-container.component.mjs} +6 -15
  66. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +25 -0
  67. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +11 -0
  68. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +46 -0
  69. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +134 -0
  70. package/{esm2015/dialog/lib/dialog.injector.js → esm2020/dialog/lib/dialog.injector.mjs} +0 -0
  71. package/{esm2015/dialog/lib/dialog.insertion.js → esm2020/dialog/lib/dialog.insertion.mjs} +4 -4
  72. package/{esm2015/dialog/lib/dialog.interfaces.js → esm2020/dialog/lib/dialog.interfaces.mjs} +0 -0
  73. package/{esm2015/dialog/lib/dialog.module.js → esm2020/dialog/lib/dialog.module.mjs} +5 -9
  74. package/{esm2015/dialog/lib/dialog.ref.js → esm2020/dialog/lib/dialog.ref.mjs} +0 -0
  75. package/{esm2015/dialog/lib/dialog.service.js → esm2020/dialog/lib/dialog.service.mjs} +5 -5
  76. package/{esm2015/dialog/public_api.js → esm2020/dialog/public_api.mjs} +0 -0
  77. package/{esm2015/elements/bravobit-bb-foundation-elements.js → esm2020/elements/bravobit-bb-foundation-elements.mjs} +0 -0
  78. package/esm2020/elements/lib/avatar/avatar.component.mjs +142 -0
  79. package/esm2020/elements/lib/button/button.component.mjs +61 -0
  80. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +73 -0
  81. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +304 -0
  82. package/{esm2015/elements/lib/directives/addon.directive.js → esm2020/elements/lib/directives/addon.directive.mjs} +7 -7
  83. package/esm2020/elements/lib/directives/autosize.directive.mjs +72 -0
  84. package/{esm2015/elements/lib/directives/focus-trap.directive.js → esm2020/elements/lib/directives/focus-trap.directive.mjs} +4 -4
  85. package/{esm2015/elements/lib/directives/focus.directive.js → esm2020/elements/lib/directives/focus.directive.mjs} +4 -4
  86. package/esm2020/elements/lib/directives/form-submit.directive.mjs +50 -0
  87. package/esm2020/elements/lib/directives/input.directive.mjs +136 -0
  88. package/{esm2015/elements/lib/directives/template.directive.js → esm2020/elements/lib/directives/template.directive.mjs} +4 -4
  89. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +100 -0
  90. package/{esm2015/elements/lib/elements.interfaces.js → esm2020/elements/lib/elements.interfaces.mjs} +0 -0
  91. package/{esm2015/elements/lib/elements.module.js → esm2020/elements/lib/elements.module.mjs} +5 -5
  92. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +236 -0
  93. package/esm2020/elements/lib/form-control/form-control.component.mjs +49 -0
  94. package/esm2020/elements/lib/form-error/form-error.component.mjs +108 -0
  95. package/esm2020/elements/lib/form-group/form-group.component.mjs +18 -0
  96. package/esm2020/elements/lib/icon/icon.component.mjs +102 -0
  97. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +106 -0
  98. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +42 -0
  99. package/{esm2015/elements/lib/pipes/file-size.pipe.js → esm2020/elements/lib/pipes/file-size.pipe.mjs} +4 -4
  100. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +94 -0
  101. package/esm2020/elements/lib/spinner/spinner.component.mjs +25 -0
  102. package/esm2020/elements/lib/tag/tag.component.mjs +18 -0
  103. package/{esm2015/elements/public_api.js → esm2020/elements/public_api.mjs} +0 -0
  104. package/{esm2015/http/bravobit-bb-foundation-http.js → esm2020/http/bravobit-bb-foundation-http.mjs} +0 -0
  105. package/esm2020/http/lib/classes/http.config.mjs +29 -0
  106. package/esm2020/http/lib/classes/http.error.mjs +20 -0
  107. package/{esm2015/http/lib/http.interfaces.js → esm2020/http/lib/http.interfaces.mjs} +0 -0
  108. package/{esm2015/http/lib/http.module.js → esm2020/http/lib/http.module.mjs} +5 -5
  109. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +50 -0
  110. package/esm2020/http/lib/interceptors/error.interceptor.mjs +32 -0
  111. package/{esm2015/http/public_api.js → esm2020/http/public_api.mjs} +0 -0
  112. package/{esm2015/lib/core/coercions/boolean-coercion.js → esm2020/lib/core/coercions/boolean-coercion.mjs} +0 -0
  113. package/{esm2015/lib/core/miscellaneous/regex.js → esm2020/lib/core/miscellaneous/regex.mjs} +0 -0
  114. package/esm2020/lib/core/miscellaneous/validator.mjs +85 -0
  115. package/{esm2015/lib/core/mixins/can-disable.js → esm2020/lib/core/mixins/can-disable.mjs} +0 -0
  116. package/{esm2015/lib/core/mixins/can-hide-errors.js → esm2020/lib/core/mixins/can-hide-errors.mjs} +0 -0
  117. package/{esm2015/lib/core/mixins/can-load.js → esm2020/lib/core/mixins/can-load.mjs} +0 -0
  118. package/{esm2015/lib/core/mixins/constructor.js → esm2020/lib/core/mixins/constructor.mjs} +0 -0
  119. package/{esm2015/lib/core/mixins/has-error.js → esm2020/lib/core/mixins/has-error.mjs} +0 -0
  120. package/{esm2015/lib/core/mixins/is-focused.js → esm2020/lib/core/mixins/is-focused.mjs} +0 -0
  121. package/{esm2015/lib/core/mixins/is-grouped.js → esm2020/lib/core/mixins/is-grouped.mjs} +0 -0
  122. package/{esm2015/lib/core/mixins/is-readonly.js → esm2020/lib/core/mixins/is-readonly.mjs} +0 -0
  123. package/{esm2015/lib/core/mixins/is-required.js → esm2020/lib/core/mixins/is-required.mjs} +0 -0
  124. package/esm2020/lib/core/services/clipboard.service.mjs +70 -0
  125. package/esm2020/lib/core/services/exif.service.mjs +163 -0
  126. package/esm2020/lib/core/services/file-loader.service.mjs +87 -0
  127. package/esm2020/lib/core/services/image-converter.service.mjs +123 -0
  128. package/{esm2015/lib/core/services/languages.service.js → esm2020/lib/core/services/languages.service.mjs} +4 -4
  129. package/{esm2015/lib/core/services/network.service.js → esm2020/lib/core/services/network.service.mjs} +5 -6
  130. package/esm2020/lib/core/services/patch.service.mjs +63 -0
  131. package/{esm2015/lib/core/services/platform.service.js → esm2020/lib/core/services/platform.service.mjs} +5 -5
  132. package/{esm2015/lib/core/tokens/accept-language.token.js → esm2020/lib/core/tokens/accept-language.token.mjs} +0 -0
  133. package/{esm2015/lib/core/tokens/base-url.token.js → esm2020/lib/core/tokens/base-url.token.mjs} +0 -0
  134. package/{esm2015/lib/core/tokens/cookie.token.js → esm2020/lib/core/tokens/cookie.token.mjs} +0 -0
  135. package/{esm2015/lib/core/tokens/location.token.js → esm2020/lib/core/tokens/location.token.mjs} +0 -0
  136. package/{esm2015/lib/core/tokens/navigator.token.js → esm2020/lib/core/tokens/navigator.token.mjs} +0 -0
  137. package/{esm2015/lib/core/tokens/window.token.js → esm2020/lib/core/tokens/window.token.mjs} +0 -0
  138. package/{esm2015/localize/bravobit-bb-foundation-localize.js → esm2020/localize/bravobit-bb-foundation-localize.mjs} +0 -0
  139. package/{esm2015/localize/lib/functions/date.function.js → esm2020/localize/lib/functions/date.function.mjs} +0 -0
  140. package/{esm2015/localize/lib/functions/lowercase.function.js → esm2020/localize/lib/functions/lowercase.function.mjs} +0 -0
  141. package/{esm2015/localize/lib/functions/uppercase.function.js → esm2020/localize/lib/functions/uppercase.function.mjs} +0 -0
  142. package/{esm2015/localize/lib/handlers/missing.handler.js → esm2020/localize/lib/handlers/missing.handler.mjs} +0 -0
  143. package/{esm2015/localize/lib/interfaces/config.interfaces.js → esm2020/localize/lib/interfaces/config.interfaces.mjs} +0 -0
  144. package/{esm2015/localize/lib/interfaces/dictionary.interfaces.js → esm2020/localize/lib/interfaces/dictionary.interfaces.mjs} +0 -0
  145. package/{esm2015/localize/lib/interfaces/functions.interfaces.js → esm2020/localize/lib/interfaces/functions.interfaces.mjs} +0 -0
  146. package/{esm2015/localize/lib/interfaces/handlers.interfaces.js → esm2020/localize/lib/interfaces/handlers.interfaces.mjs} +0 -0
  147. package/{esm2015/localize/lib/interfaces/options.interfaces.js → esm2020/localize/lib/interfaces/options.interfaces.mjs} +0 -0
  148. package/{esm2015/localize/lib/localizations/dutch.localization.js → esm2020/localize/lib/localizations/dutch.localization.mjs} +0 -0
  149. package/{esm2015/localize/lib/localizations/english.localization.js → esm2020/localize/lib/localizations/english.localization.mjs} +0 -0
  150. package/esm2020/localize/lib/localize.dictionary.mjs +135 -0
  151. package/{esm2015/localize/lib/localize.module.js → esm2020/localize/lib/localize.module.mjs} +5 -5
  152. package/{esm2015/localize/lib/localize.pipe.js → esm2020/localize/lib/localize.pipe.mjs} +5 -5
  153. package/esm2020/localize/lib/localize.service.mjs +277 -0
  154. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +88 -0
  155. package/{esm2015/localize/lib/views/localize-template-or-string.directive.js → esm2020/localize/lib/views/localize-template-or-string.directive.mjs} +4 -4
  156. package/{esm2015/localize/lib/views/localize-template.directive.js → esm2020/localize/lib/views/localize-template.directive.mjs} +4 -4
  157. package/{esm2015/localize/public_api.js → esm2020/localize/public_api.mjs} +0 -0
  158. package/{esm2015/notifications/bravobit-bb-foundation-notifications.js → esm2020/notifications/bravobit-bb-foundation-notifications.mjs} +0 -0
  159. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +100 -0
  160. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +47 -0
  161. package/{esm2015/notifications/lib/notifications.animations.js → esm2020/notifications/lib/notifications.animations.mjs} +0 -0
  162. package/{esm2015/notifications/lib/notifications.injector.js → esm2020/notifications/lib/notifications.injector.mjs} +0 -0
  163. package/{esm2015/notifications/lib/notifications.interfaces.js → esm2020/notifications/lib/notifications.interfaces.mjs} +0 -0
  164. package/{esm2015/notifications/lib/notifications.module.js → esm2020/notifications/lib/notifications.module.mjs} +6 -7
  165. package/{esm2015/notifications/lib/notifications.service.js → esm2020/notifications/lib/notifications.service.mjs} +5 -5
  166. package/{esm2015/notifications/public_api.js → esm2020/notifications/public_api.mjs} +0 -0
  167. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  168. package/{esm2015/recaptcha/bravobit-bb-foundation-recaptcha.js → esm2020/recaptcha/bravobit-bb-foundation-recaptcha.mjs} +0 -0
  169. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +185 -0
  170. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +90 -0
  171. package/{esm2015/recaptcha/lib/recaptcha.interface.js → esm2020/recaptcha/lib/recaptcha.interface.mjs} +0 -0
  172. package/{esm2015/recaptcha/lib/recaptcha.module.js → esm2020/recaptcha/lib/recaptcha.module.mjs} +5 -5
  173. package/{esm2015/recaptcha/public_api.js → esm2020/recaptcha/public_api.mjs} +0 -0
  174. package/{esm2015/rxjs/bravobit-bb-foundation-rxjs.js → esm2020/rxjs/bravobit-bb-foundation-rxjs.mjs} +0 -0
  175. package/esm2020/rxjs/lib/operators/combine-latest-map.operator.mjs +10 -0
  176. package/{esm2015/rxjs/lib/operators/filter-nil.operator.js → esm2020/rxjs/lib/operators/filter-nil.operator.mjs} +0 -0
  177. package/{esm2015/rxjs/public_api.js → esm2020/rxjs/public_api.mjs} +0 -0
  178. package/{esm2015/storage/bravobit-bb-foundation-storage.js → esm2020/storage/bravobit-bb-foundation-storage.mjs} +0 -0
  179. package/{esm2015/storage/lib/interfaces/attributes.interface.js → esm2020/storage/lib/interfaces/attributes.interface.mjs} +0 -0
  180. package/{esm2015/storage/lib/interfaces/memory.interface.js → esm2020/storage/lib/interfaces/memory.interface.mjs} +0 -0
  181. package/{esm2015/storage/lib/interfaces/strategy.interface.js → esm2020/storage/lib/interfaces/strategy.interface.mjs} +0 -0
  182. package/esm2020/storage/lib/storage.service.mjs +109 -0
  183. package/esm2020/storage/lib/strategies/cookie-storage.strategy.mjs +142 -0
  184. package/{esm2015/storage/lib/strategies/memory-storage.strategy.js → esm2020/storage/lib/strategies/memory-storage.strategy.mjs} +2 -2
  185. package/esm2020/storage/lib/strategies/polyfill-storage.strategy.mjs +102 -0
  186. package/{esm2015/storage/public_api.js → esm2020/storage/public_api.mjs} +0 -0
  187. package/{esm2015/table/bravobit-bb-foundation-table.js → esm2020/table/bravobit-bb-foundation-table.mjs} +0 -0
  188. package/esm2020/table/lib/components/table/table.component.mjs +191 -0
  189. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +11 -0
  190. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +131 -0
  191. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +136 -0
  192. package/esm2020/table/lib/data/datasource.data.mjs +32 -0
  193. package/esm2020/table/lib/data/generic.data.mjs +72 -0
  194. package/{esm2015/table/lib/interfaces/datasource.interface.js → esm2020/table/lib/interfaces/datasource.interface.mjs} +0 -0
  195. package/{esm2015/table/lib/interfaces/table.interfaces.js → esm2020/table/lib/interfaces/table.interfaces.mjs} +0 -0
  196. package/{esm2015/table/lib/table.module.js → esm2020/table/lib/table.module.mjs} +5 -5
  197. package/{esm2015/table/public_api.js → esm2020/table/public_api.mjs} +0 -0
  198. package/fesm2015/{bravobit-bb-foundation-auth.js → bravobit-bb-foundation-auth.mjs} +79 -68
  199. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +1 -0
  200. package/fesm2015/{bravobit-bb-foundation-collections.js → bravobit-bb-foundation-collections.mjs} +33 -47
  201. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +1 -0
  202. package/fesm2015/bravobit-bb-foundation-controls.mjs +123 -0
  203. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -0
  204. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +416 -0
  205. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -0
  206. package/fesm2015/{bravobit-bb-foundation-dialog.js → bravobit-bb-foundation-dialog.mjs} +45 -106
  207. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -0
  208. package/fesm2015/{bravobit-bb-foundation-elements.js → bravobit-bb-foundation-elements.mjs} +193 -302
  209. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -0
  210. package/fesm2015/{bravobit-bb-foundation-http.js → bravobit-bb-foundation-http.mjs} +18 -16
  211. package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -0
  212. package/fesm2015/{bravobit-bb-foundation-localize.js → bravobit-bb-foundation-localize.mjs} +63 -69
  213. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -0
  214. package/fesm2015/bravobit-bb-foundation-notifications.mjs +377 -0
  215. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -0
  216. package/fesm2015/{bravobit-bb-foundation-recaptcha.js → bravobit-bb-foundation-recaptcha.mjs} +40 -47
  217. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +1 -0
  218. package/fesm2015/{bravobit-bb-foundation-rxjs.js → bravobit-bb-foundation-rxjs.mjs} +1 -1
  219. package/fesm2015/bravobit-bb-foundation-rxjs.mjs.map +1 -0
  220. package/fesm2015/{bravobit-bb-foundation-storage.js → bravobit-bb-foundation-storage.mjs} +12 -10
  221. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -0
  222. package/fesm2015/bravobit-bb-foundation-table.mjs +603 -0
  223. package/fesm2015/bravobit-bb-foundation-table.mjs.map +1 -0
  224. package/fesm2015/{bravobit-bb-foundation.js → bravobit-bb-foundation.mjs} +74 -64
  225. package/fesm2015/bravobit-bb-foundation.mjs.map +1 -0
  226. package/fesm2020/bravobit-bb-foundation-auth.mjs +928 -0
  227. package/fesm2020/bravobit-bb-foundation-auth.mjs.map +1 -0
  228. package/fesm2020/bravobit-bb-foundation-collections.mjs +434 -0
  229. package/fesm2020/bravobit-bb-foundation-collections.mjs.map +1 -0
  230. package/fesm2020/bravobit-bb-foundation-controls.mjs +121 -0
  231. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -0
  232. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +404 -0
  233. package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -0
  234. package/fesm2020/bravobit-bb-foundation-dialog.mjs +584 -0
  235. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -0
  236. package/fesm2020/bravobit-bb-foundation-elements.mjs +1993 -0
  237. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -0
  238. package/fesm2020/bravobit-bb-foundation-http.mjs +168 -0
  239. package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -0
  240. package/fesm2020/bravobit-bb-foundation-localize.mjs +832 -0
  241. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -0
  242. package/fesm2020/bravobit-bb-foundation-notifications.mjs +375 -0
  243. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -0
  244. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +300 -0
  245. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +1 -0
  246. package/fesm2020/bravobit-bb-foundation-rxjs.mjs +21 -0
  247. package/fesm2020/bravobit-bb-foundation-rxjs.mjs.map +1 -0
  248. package/fesm2020/bravobit-bb-foundation-storage.mjs +413 -0
  249. package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -0
  250. package/fesm2020/bravobit-bb-foundation-table.mjs +592 -0
  251. package/fesm2020/bravobit-bb-foundation-table.mjs.map +1 -0
  252. package/fesm2020/bravobit-bb-foundation.mjs +895 -0
  253. package/fesm2020/bravobit-bb-foundation.mjs.map +1 -0
  254. package/http/package.json +5 -5
  255. package/localize/package.json +5 -5
  256. package/notifications/package.json +5 -5
  257. package/package.json +125 -8
  258. package/recaptcha/package.json +5 -5
  259. package/rxjs/package.json +5 -5
  260. package/storage/package.json +5 -5
  261. package/table/lib/components/table/table.component.d.ts +3 -0
  262. package/table/package.json +5 -5
  263. package/bundles/bravobit-bb-foundation-auth.umd.js +0 -1483
  264. package/bundles/bravobit-bb-foundation-auth.umd.js.map +0 -1
  265. package/bundles/bravobit-bb-foundation-collections.umd.js +0 -868
  266. package/bundles/bravobit-bb-foundation-collections.umd.js.map +0 -1
  267. package/bundles/bravobit-bb-foundation-dashboard.umd.js +0 -876
  268. package/bundles/bravobit-bb-foundation-dashboard.umd.js.map +0 -1
  269. package/bundles/bravobit-bb-foundation-dialog.umd.js +0 -716
  270. package/bundles/bravobit-bb-foundation-dialog.umd.js.map +0 -1
  271. package/bundles/bravobit-bb-foundation-elements.umd.js +0 -2768
  272. package/bundles/bravobit-bb-foundation-elements.umd.js.map +0 -1
  273. package/bundles/bravobit-bb-foundation-http.umd.js +0 -535
  274. package/bundles/bravobit-bb-foundation-http.umd.js.map +0 -1
  275. package/bundles/bravobit-bb-foundation-localize.umd.js +0 -1292
  276. package/bundles/bravobit-bb-foundation-localize.umd.js.map +0 -1
  277. package/bundles/bravobit-bb-foundation-notifications.umd.js +0 -794
  278. package/bundles/bravobit-bb-foundation-notifications.umd.js.map +0 -1
  279. package/bundles/bravobit-bb-foundation-recaptcha.umd.js +0 -683
  280. package/bundles/bravobit-bb-foundation-recaptcha.umd.js.map +0 -1
  281. package/bundles/bravobit-bb-foundation-rxjs.umd.js +0 -29
  282. package/bundles/bravobit-bb-foundation-rxjs.umd.js.map +0 -1
  283. package/bundles/bravobit-bb-foundation-storage.umd.js +0 -799
  284. package/bundles/bravobit-bb-foundation-storage.umd.js.map +0 -1
  285. package/bundles/bravobit-bb-foundation-table.umd.js +0 -1070
  286. package/bundles/bravobit-bb-foundation-table.umd.js.map +0 -1
  287. package/bundles/bravobit-bb-foundation.umd.js +0 -1440
  288. package/bundles/bravobit-bb-foundation.umd.js.map +0 -1
  289. package/esm2015/auth/lib/auth.interceptor.js +0 -95
  290. package/esm2015/auth/lib/auth.service.js +0 -299
  291. package/esm2015/auth/lib/auth.session.js +0 -136
  292. package/esm2015/auth/lib/directives/permission.directive.js +0 -81
  293. package/esm2015/auth/lib/directives/role.directive.js +0 -38
  294. package/esm2015/auth/lib/guards/anonymous.guard.js +0 -35
  295. package/esm2015/auth/lib/guards/authenticated.guard.js +0 -36
  296. package/esm2015/auth/lib/permissions.service.js +0 -58
  297. package/esm2015/auth/lib/providers/email.provider.js +0 -26
  298. package/esm2015/auth/lib/providers/verify.provider.js +0 -20
  299. package/esm2015/collections/lib/collection.js +0 -104
  300. package/esm2015/collections/lib/components/collections-pager/collections-pager.component.js +0 -136
  301. package/esm2015/collections/lib/components/collections-viewer/collections-viewer.component.js +0 -39
  302. package/esm2015/collections/lib/providers/api-collection.provider.js +0 -69
  303. package/esm2015/collections/lib/providers/collection.provider.js +0 -14
  304. package/esm2015/dashboard/lib/dashboard/dashboard.component.js +0 -64
  305. package/esm2015/dashboard/lib/dashboard-header/dashboard-header.component.js +0 -41
  306. package/esm2015/dashboard/lib/dashboard-menu/dashboard-menu.component.js +0 -39
  307. package/esm2015/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.js +0 -38
  308. package/esm2015/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.js +0 -83
  309. package/esm2015/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.js +0 -110
  310. package/esm2015/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.js +0 -71
  311. package/esm2015/dialog/lib/dialog-actions/dialog-actions.component.js +0 -20
  312. package/esm2015/dialog/lib/dialog-confirm/dialog-confirm.component.js +0 -45
  313. package/esm2015/dialog/lib/dialog-header/dialog-header.component.js +0 -33
  314. package/esm2015/dialog/lib/dialog-link/dialog-link.component.js +0 -19
  315. package/esm2015/dialog/lib/dialog-modal/dialog-modal.component.js +0 -54
  316. package/esm2015/dialog/lib/dialog-overlay/dialog-overlay.component.js +0 -143
  317. package/esm2015/elements/lib/avatar/avatar.component.js +0 -151
  318. package/esm2015/elements/lib/button/button.component.js +0 -79
  319. package/esm2015/elements/lib/checkbox/checkbox.component.js +0 -83
  320. package/esm2015/elements/lib/date-picker/date-picker.component.js +0 -322
  321. package/esm2015/elements/lib/directives/autosize.directive.js +0 -74
  322. package/esm2015/elements/lib/directives/form-submit.directive.js +0 -53
  323. package/esm2015/elements/lib/directives/input.directive.js +0 -139
  324. package/esm2015/elements/lib/dropdown/dropdown.component.js +0 -111
  325. package/esm2015/elements/lib/file-picker/file-picker.component.js +0 -247
  326. package/esm2015/elements/lib/form-control/form-control.component.js +0 -58
  327. package/esm2015/elements/lib/form-error/form-error.component.js +0 -116
  328. package/esm2015/elements/lib/form-group/form-group.component.js +0 -27
  329. package/esm2015/elements/lib/icon/icon.component.js +0 -110
  330. package/esm2015/elements/lib/image-picker/image-picker.component.js +0 -119
  331. package/esm2015/elements/lib/pipes/file-image.pipe.js +0 -45
  332. package/esm2015/elements/lib/pipes/relative-time.pipe.js +0 -96
  333. package/esm2015/elements/lib/spinner/spinner.component.js +0 -34
  334. package/esm2015/elements/lib/tag/tag.component.js +0 -26
  335. package/esm2015/http/lib/classes/http.config.js +0 -31
  336. package/esm2015/http/lib/classes/http.error.js +0 -21
  337. package/esm2015/http/lib/interceptors/base-url.interceptor.js +0 -52
  338. package/esm2015/http/lib/interceptors/error.interceptor.js +0 -33
  339. package/esm2015/lib/core/miscellaneous/validator.js +0 -86
  340. package/esm2015/lib/core/services/clipboard.service.js +0 -72
  341. package/esm2015/lib/core/services/exif.service.js +0 -168
  342. package/esm2015/lib/core/services/file-loader.service.js +0 -90
  343. package/esm2015/lib/core/services/image-converter.service.js +0 -130
  344. package/esm2015/lib/core/services/patch.service.js +0 -65
  345. package/esm2015/localize/lib/localize.dictionary.js +0 -137
  346. package/esm2015/localize/lib/localize.service.js +0 -282
  347. package/esm2015/localize/lib/views/localize-string/localize-string.component.js +0 -99
  348. package/esm2015/notifications/lib/notifications-item/notifications-item.component.js +0 -108
  349. package/esm2015/notifications/lib/notifications-list/notifications-list.component.js +0 -56
  350. package/esm2015/recaptcha/lib/recaptcha/recaptcha.component.js +0 -199
  351. package/esm2015/recaptcha/lib/recaptcha-loader.service.js +0 -93
  352. package/esm2015/rxjs/lib/operators/combine-latest-map.operator.js +0 -7
  353. package/esm2015/storage/lib/storage.service.js +0 -111
  354. package/esm2015/storage/lib/strategies/cookie-storage.strategy.js +0 -143
  355. package/esm2015/storage/lib/strategies/polyfill-storage.strategy.js +0 -102
  356. package/esm2015/table/lib/components/table/table.component.js +0 -196
  357. package/esm2015/table/lib/components/table-cell/table-cell.component.js +0 -19
  358. package/esm2015/table/lib/components/table-header-cell/table-header-cell.component.js +0 -141
  359. package/esm2015/table/lib/components/table-pager/table-pager.component.js +0 -146
  360. package/esm2015/table/lib/data/datasource.data.js +0 -32
  361. package/esm2015/table/lib/data/generic.data.js +0 -73
  362. package/fesm2015/bravobit-bb-foundation-auth.js.map +0 -1
  363. package/fesm2015/bravobit-bb-foundation-collections.js.map +0 -1
  364. package/fesm2015/bravobit-bb-foundation-dashboard.js +0 -468
  365. package/fesm2015/bravobit-bb-foundation-dashboard.js.map +0 -1
  366. package/fesm2015/bravobit-bb-foundation-dialog.js.map +0 -1
  367. package/fesm2015/bravobit-bb-foundation-elements.js.map +0 -1
  368. package/fesm2015/bravobit-bb-foundation-http.js.map +0 -1
  369. package/fesm2015/bravobit-bb-foundation-localize.js.map +0 -1
  370. package/fesm2015/bravobit-bb-foundation-notifications.js +0 -393
  371. package/fesm2015/bravobit-bb-foundation-notifications.js.map +0 -1
  372. package/fesm2015/bravobit-bb-foundation-recaptcha.js.map +0 -1
  373. package/fesm2015/bravobit-bb-foundation-rxjs.js.map +0 -1
  374. package/fesm2015/bravobit-bb-foundation-storage.js.map +0 -1
  375. package/fesm2015/bravobit-bb-foundation-table.js +0 -626
  376. package/fesm2015/bravobit-bb-foundation-table.js.map +0 -1
  377. package/fesm2015/bravobit-bb-foundation.js.map +0 -1
@@ -1,137 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { makeStateKey } from '@angular/platform-browser';
3
- import { USE_AUTHORIZATION } from '@bravobit/bb-foundation/auth';
4
- import { HttpContext } from '@angular/common/http';
5
- export class LocalizeDictionary {
6
- constructor({ id, data, locale, supportedLanguages }, baseUrl, http) {
7
- // Dictionary data.
8
- this._data = {};
9
- this._url = null;
10
- this.isAbsoluteUrl = (url) => {
11
- if (url.indexOf('//') === 0) {
12
- return true;
13
- }
14
- if (url.indexOf('://') === -1) {
15
- return false;
16
- }
17
- if (url.indexOf('.') === -1) {
18
- return false;
19
- }
20
- if (url.indexOf('/') === -1) {
21
- return false;
22
- }
23
- if (url.indexOf(':') > url.indexOf('/')) {
24
- return false;
25
- }
26
- return url.indexOf('://') < url.indexOf('.');
27
- };
28
- this.recursiveSearchValue = (data, value) => {
29
- if (typeof data === 'undefined' || typeof data === 'string') {
30
- return undefined;
31
- }
32
- return data[value];
33
- };
34
- this._id = id;
35
- this._locale = locale || 'en-US';
36
- this._supportedLanguages = supportedLanguages || [];
37
- this._http = http;
38
- this.stateKey = makeStateKey(`locale:${this._id}`);
39
- // Set the correct variable to the url or data.
40
- if (typeof data === 'string') {
41
- this._url = this.getUrl(data, baseUrl);
42
- }
43
- else {
44
- this._data = data;
45
- }
46
- }
47
- get id() {
48
- return this._id;
49
- }
50
- get locale() {
51
- return this._locale;
52
- }
53
- get supportedLanguages() {
54
- return this._supportedLanguages;
55
- }
56
- get data() {
57
- return this._data;
58
- }
59
- load(data) {
60
- return __awaiter(this, void 0, void 0, function* () {
61
- // Check if data was passed.
62
- if (data) {
63
- this.setData(data);
64
- return true;
65
- }
66
- // If the url was not set the data was already loaded
67
- // return true because it was successful.
68
- if (!this._url) {
69
- return true;
70
- }
71
- try {
72
- // Try to load the data via a HTTP request.
73
- const context = new HttpContext().set(USE_AUTHORIZATION, false);
74
- const result = yield this._http.get(this._url, { context })
75
- .toPromise();
76
- // Set the data.
77
- this.setData(result);
78
- // Return true because it succeeded.
79
- return true;
80
- }
81
- catch (_a) {
82
- // Return false because it failed.
83
- return false;
84
- }
85
- });
86
- }
87
- combine(extraDictionary, mode = 'prepend') {
88
- // Validate that the locale matches.
89
- if (extraDictionary.locale !== this._locale) {
90
- return;
91
- }
92
- // Extract the extra data.
93
- const extraData = extraDictionary.data || {};
94
- // If the selected mode is prepend
95
- // add the data in front.
96
- if (mode === 'prepend') {
97
- this._data = Object.assign(Object.assign({}, extraData), this._data);
98
- return;
99
- }
100
- // If the selected mode is append
101
- // add the data in the back.
102
- this._data = Object.assign(Object.assign({}, this._data), extraData);
103
- }
104
- search(token) {
105
- // Check if the token is present in the
106
- // data, if so return it.
107
- if (this._data[token]) {
108
- return this._data[token];
109
- }
110
- // Values might be nested in objects this means we need
111
- // to split them on the dot and search them recursively
112
- // in the data.
113
- const value = (token || '')
114
- .split('.')
115
- .filter(value => !!value)
116
- .reduce(this.recursiveSearchValue, this._data);
117
- // Check if the value is a string
118
- // if this is true it can be returned.
119
- if (typeof value === 'string') {
120
- return value;
121
- }
122
- // This means the translation was incorrect.
123
- return null;
124
- }
125
- setData(data) {
126
- this._data = data || {};
127
- this._url = null;
128
- }
129
- getUrl(value, baseUrl) {
130
- const isAbsolute = this.isAbsoluteUrl(value);
131
- if (isAbsolute || !baseUrl) {
132
- return value;
133
- }
134
- return [baseUrl, value].join('/');
135
- }
136
- }
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuZGljdGlvbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi9sb2NhbGl6ZS5kaWN0aW9uYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsWUFBWSxFQUFXLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFhLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRTdELE1BQU0sT0FBTyxrQkFBa0I7SUFjM0IsWUFBWSxFQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUEyQixFQUFFLE9BQWUsRUFBRSxJQUFnQjtRQUovRyxtQkFBbUI7UUFDWCxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBMkgzQixrQkFBYSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDcEMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDekIsT0FBTyxJQUFJLENBQUM7YUFDZjtZQUVELElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDM0IsT0FBTyxLQUFLLENBQUM7YUFDaEI7WUFFRCxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pCLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBRUQsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QixPQUFPLEtBQUssQ0FBQzthQUNoQjtZQUVELElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMs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QUFDLENBQUM7UUFDN0MsSUFBSSxVQUFVLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDeEIsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBa0NKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2NhbGl6ZURpY3Rpb25hcnlQYXJhbXMsIExvY2FsaXplRXh0cmFEaWN0aW9uYXJ5fSBmcm9tICcuL2ludGVyZmFjZXMvZGljdGlvbmFyeS5pbnRlcmZhY2VzJztcbmltcG9ydCB7bWFrZVN0YXRlS2V5LCBTdGF0ZUtleX0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge1VTRV9BVVRIT1JJWkFUSU9OfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9hdXRoJztcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cENvbnRleHR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuZXhwb3J0IGNsYXNzIExvY2FsaXplRGljdGlvbmFyeSB7XG5cbiAgICAvLyBSZWFkb25seSBkYXRhLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2lkOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfbG9jYWxlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfc3VwcG9ydGVkTGFuZ3VhZ2VzOiBzdHJpbmdbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9odHRwOiBIdHRwQ2xpZW50O1xuXG4gICAgcmVhZG9ubHkgc3RhdGVLZXk6IFN0YXRlS2V5PG9iamVjdD47XG5cbiAgICAvLyBEaWN0aW9uYXJ5IGRhdGEuXG4gICAgcHJpdmF0ZSBfZGF0YTogb2JqZWN0ID0ge307XG4gICAgcHJpdmF0ZSBfdXJsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHtpZCwgZGF0YSwgbG9jYWxlLCBzdXBwb3J0ZWRMYW5ndWFnZXN9OiBMb2NhbGl6ZURpY3Rpb25hcnlQYXJhbXMsIGJhc2VVcmw6IHN0cmluZywgaHR0cDogSHR0cENsaWVudCkge1xuICAgICAgICB0aGlzLl9pZCA9IGlkO1xuICAgICAgICB0aGlzLl9sb2NhbGUgPSBsb2NhbGUgfHwgJ2VuLVVTJztcbiAgICAgICAgdGhpcy5fc3VwcG9ydGVkTGFuZ3VhZ2VzID0gc3VwcG9ydGVkTGFuZ3VhZ2VzIHx8IFtdO1xuICAgICAgICB0aGlzLl9odHRwID0gaHR0cDtcbiAgICAgICAgdGhpcy5zdGF0ZUtleSA9IG1ha2VTdGF0ZUtleShgbG9jYWxlOiR7dGhpcy5faWR9YCk7XG5cbiAgICAgICAgLy8gU2V0IHRoZSBjb3JyZWN0IHZhcmlhYmxlIHRvIHRoZSB1cmwgb3IgZGF0YS5cbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhpcy5fdXJsID0gdGhpcy5nZXRVcmwoZGF0YSwgYmFzZVVybCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhID0gZGF0YTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBpZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkO1xuICAgIH1cblxuICAgIGdldCBsb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGU7XG4gICAgfVxuXG4gICAgZ2V0IHN1cHBvcnRlZExhbmd1YWdlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1cHBvcnRlZExhbmd1YWdlcztcbiAgICB9XG5cbiAgICBnZXQgZGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gICAgfVxuXG4gICAgYXN5bmMgbG9hZChkYXRhPzogb2JqZWN0IHwgbnVsbCkge1xuICAgICAgICAvLyBDaGVjayBpZiBkYXRhIHdhcyBwYXNzZWQuXG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICB0aGlzLnNldERhdGEoZGF0YSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZSB1cmwgd2FzIG5vdCBzZXQgdGhlIGRhdGEgd2FzIGFscmVhZHkgbG9hZGVkXG4gICAgICAgIC8vIHJldHVybiB0cnVlIGJlY2F1c2UgaXQgd2FzIHN1Y2Nlc3NmdWwuXG4gICAgICAgIGlmICghdGhpcy5fdXJsKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBUcnkgdG8gbG9hZCB0aGUgZGF0YSB2aWEgYSBIVFRQIHJlcXVlc3QuXG4gICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gbmV3IEh0dHBDb250ZXh0KCkuc2V0KFVTRV9BVVRIT1JJWkFUSU9OLCBmYWxzZSk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9odHRwLmdldDxvYmplY3Q+KHRoaXMuX3VybCwge2NvbnRleHR9KVxuICAgICAgICAgICAgICAgIC50b1Byb21pc2UoKTtcblxuICAgICAgICAgICAgLy8gU2V0IHRoZSBkYXRhLlxuICAgICAgICAgICAgdGhpcy5zZXREYXRhKHJlc3VsdCk7XG5cbiAgICAgICAgICAgIC8vIFJldHVybiB0cnVlIGJlY2F1c2UgaXQgc3VjY2VlZGVkLlxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gUmV0dXJuIGZhbHNlIGJlY2F1c2UgaXQgZmFpbGVkLlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29tYmluZShleHRyYURpY3Rpb25hcnk6IExvY2FsaXplRXh0cmFEaWN0aW9uYXJ5LCBtb2RlOiAncHJlcGVuZCcgfCAnYXBwZW5kJyA9ICdwcmVwZW5kJykge1xuICAgICAgICAvLyBWYWxpZGF0ZSB0aGF0IHRoZSBsb2NhbGUgbWF0Y2hlcy5cbiAgICAgICAgaWYgKGV4dHJhRGljdGlvbmFyeS5sb2NhbGUgIT09IHRoaXMuX2xvY2FsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRXh0cmFjdCB0aGUgZXh0cmEgZGF0YS5cbiAgICAgICAgY29uc3QgZXh0cmFEYXRhID0gZXh0cmFEaWN0aW9uYXJ5LmRhdGEgfHwge307XG5cbiAgICAgICAgLy8gSWYgdGhlIHNlbGVjdGVkIG1vZGUgaXMgcHJlcGVuZFxuICAgICAgICAvLyBhZGQgdGhlIGRhdGEgaW4gZnJvbnQuXG4gICAgICAgIGlmIChtb2RlID09PSAncHJlcGVuZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGEgPSB7Li4uZXh0cmFEYXRhLCAuLi50aGlzLl9kYXRhfTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZSBzZWxlY3RlZCBtb2RlIGlzIGFwcGVuZFxuICAgICAgICAvLyBhZGQgdGhlIGRhdGEgaW4gdGhlIGJhY2suXG4gICAgICAgIHRoaXMuX2RhdGEgPSB7Li4udGhpcy5fZGF0YSwgLi4uZXh0cmFEYXRhfTtcbiAgICB9XG5cbiAgICBzZWFyY2godG9rZW46IHN0cmluZykge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgdG9rZW4gaXMgcHJlc2VudCBpbiB0aGVcbiAgICAgICAgLy8gZGF0YSwgaWYgc28gcmV0dXJuIGl0LlxuICAgICAgICBpZiAodGhpcy5fZGF0YVt0b2tlbl0pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhW3Rva2VuXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZhbHVlcyBtaWdodCBiZSBuZXN0ZWQgaW4gb2JqZWN0cyB0aGlzIG1lYW5zIHdlIG5lZWRcbiAgICAgICAgLy8gdG8gc3BsaXQgdGhlbSBvbiB0aGUgZG90IGFuZCBzZWFyY2ggdGhlbSByZWN1cnNpdmVseVxuICAgICAgICAvLyBpbiB0aGUgZGF0YS5cbiAgICAgICAgY29uc3QgdmFsdWUgPSAodG9rZW4gfHwgJycpXG4gICAgICAgICAgICAuc3BsaXQoJy4nKVxuICAgICAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiAhIXZhbHVlKVxuICAgICAgICAgICAgLnJlZHVjZSh0aGlzLnJlY3Vyc2l2ZVNlYXJjaFZhbHVlLCB0aGlzLl9kYXRhKTtcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSBzdHJpbmdcbiAgICAgICAgLy8gaWYgdGhpcyBpcyB0cnVlIGl0IGNhbiBiZSByZXR1cm5lZC5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXMgbWVhbnMgdGhlIHRyYW5zbGF0aW9uIHdhcyBpbmNvcnJlY3QuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RGF0YShkYXRhOiBvYmplY3QpIHtcbiAgICAgICAgdGhpcy5fZGF0YSA9IGRhdGEgfHwge307XG4gICAgICAgIHRoaXMuX3VybCA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRVcmwodmFsdWU6IHN0cmluZywgYmFzZVVybDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGlzQWJzb2x1dGUgPSB0aGlzLmlzQWJzb2x1dGVVcmwodmFsdWUpO1xuICAgICAgICBpZiAoaXNBYnNvbHV0ZSB8fCAhYmFzZVVybCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtiYXNlVXJsLCB2YWx1ZV0uam9pbignLycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNBYnNvbHV0ZVVybCA9ICh1cmw6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAodXJsLmluZGV4T2YoJy8vJykgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHVybC5pbmRleE9mKCc6Ly8nKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh1cmwuaW5kZXhPZignLicpID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHVybC5pbmRleE9mKCcvJykgPT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodXJsLmluZGV4T2YoJzonKSA+IHVybC5pbmRleE9mKCcvJykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cmwuaW5kZXhPZignOi8vJykgPCB1cmwuaW5kZXhPZignLicpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIHJlY3Vyc2l2ZVNlYXJjaFZhbHVlID0gKGRhdGEsIHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGFbdmFsdWVdO1xuICAgIH07XG5cbn1cbiJdfQ==
@@ -1,282 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { LOCALIZE_FUNCTION } from './interfaces/functions.interfaces';
3
- import { LOCALIZE_EXTRA_DICTIONARY } from './interfaces/dictionary.interfaces';
4
- import { BASE_URL, LOCATION } from '@bravobit/bb-foundation';
5
- import { Inject, Injectable, Optional } from '@angular/core';
6
- import { LocalizeDictionary } from './localize.dictionary';
7
- import { DOCUMENT } from '@angular/common';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common/http";
10
- import * as i2 from "@bravobit/bb-foundation/storage";
11
- import * as i3 from "@bravobit/bb-foundation";
12
- import * as i4 from "@angular/platform-browser";
13
- import * as i5 from "./interfaces/config.interfaces";
14
- import * as i6 from "./handlers/missing.handler";
15
- export class Localize {
16
- constructor(_http, _storage, _platform, _languages, _state, _config, _missingHandler, _document, _location, _baseUrl, _functions, _extras) {
17
- this._http = _http;
18
- this._storage = _storage;
19
- this._platform = _platform;
20
- this._languages = _languages;
21
- this._state = _state;
22
- this._config = _config;
23
- this._missingHandler = _missingHandler;
24
- this._document = _document;
25
- this._location = _location;
26
- this._baseUrl = _baseUrl;
27
- this._functions = _functions;
28
- this._extras = _extras;
29
- this._storageToken = 'bb-language-dictionary-id';
30
- this.convertToParams = (tokenOrParams) => {
31
- if (typeof tokenOrParams !== 'string') {
32
- // Destruct the params from the object.
33
- const { token, optional, data } = tokenOrParams;
34
- // Make sure all parameters are valid
35
- // by type safe adding them.
36
- return { token: token, optional: optional || false, data: data || {} };
37
- }
38
- // If the parameter is a string fill in the blanks.
39
- return { token: tokenOrParams, optional: false, data: {} };
40
- };
41
- this.getMatches = (value, substitutions) => {
42
- // Get the matching substitutions.
43
- const { start, end } = substitutions;
44
- // Compose a regex that will find the matches.
45
- const regex = new RegExp(`${start}([^${end}]+)${end}`, 'g');
46
- // Execute the regex to find matches.
47
- let match = regex.exec(value);
48
- const matches = [];
49
- while (match !== null) {
50
- // Push a new match.
51
- matches.push({
52
- match: match[0],
53
- token: match[1]
54
- });
55
- // Try to find more matches.
56
- match = regex.exec(value);
57
- }
58
- // Return the processed value.
59
- return matches.filter(item => !!item);
60
- };
61
- this.reload = () => { var _a; return (_a = this._location) === null || _a === void 0 ? void 0 : _a.reload(); };
62
- // Check if at least one language was passed in the config.
63
- if (this._config.dictionary.length < 1) {
64
- throw new Error('Localize: one or more languages should be supplied.');
65
- }
66
- // Gather the dictionaries.
67
- this._dictionaries = this._config.dictionary.map(item => {
68
- return new LocalizeDictionary(item, this._baseUrl, this._http);
69
- });
70
- // Save the best matching current dictionary.
71
- this._currentDictionary = this.retrieveBestMatchingDictionary();
72
- // Gather all the localize functions.
73
- this._functionMiddleware = this._functions.reduce((previous, current) => {
74
- previous[current.keyword()] = current;
75
- return previous;
76
- }, {});
77
- this.renderDocumentLanguage();
78
- }
79
- get dictionaries() {
80
- return this._dictionaries;
81
- }
82
- get current() {
83
- return this._currentDictionary;
84
- }
85
- get locale() {
86
- return this._currentDictionary.locale;
87
- }
88
- initialize() {
89
- return () => __awaiter(this, void 0, void 0, function* () { return this.load(this._currentDictionary); });
90
- }
91
- change(id, reload = true) {
92
- // Try to fetch the dictionary.
93
- const dictionary = this._dictionaries.find(item => item.id === id);
94
- // Validate the dictionary exists.
95
- if (!dictionary) {
96
- throw new Error(`Localize: Could not find dictionary with id: "${id}"`);
97
- }
98
- // Save the language in the storage.
99
- this._storage.cookie.set(this._storageToken, dictionary.id, {});
100
- // Just quit if we don't need to reload.
101
- if (!reload) {
102
- return;
103
- }
104
- // We need to reload the application for the translations.
105
- return this.reload();
106
- }
107
- clear(reload = true) {
108
- // Remove the language in the local storage.
109
- this._storage.cookie.remove(this._storageToken);
110
- // Just quit if we don't need to reload.
111
- if (!reload) {
112
- return;
113
- }
114
- // We need to reload the application for the translations.
115
- return this.reload();
116
- }
117
- translate(tokenOrParams) {
118
- // 1. Convert to the params.
119
- const params = this.convertToParams(tokenOrParams);
120
- // 2. Try to find the translation in the dictionary.
121
- const searchResult = this._currentDictionary.search(params.token);
122
- // 3. Verify the translation was found.
123
- if (!searchResult) {
124
- return this._missingHandler.handle(params);
125
- }
126
- // 4. Find references in the translation that need to be translated as well.
127
- const processResult = this.findReferencesInTranslation(searchResult);
128
- // 5. Parse the interpolation data.
129
- return this.parseInterpolationData(processResult, params.data);
130
- }
131
- parseInterpolationData(value, data) {
132
- // Get the interpolation substitutions.
133
- const substitutions = this.getSubstitutions('interpolation', ['{{', '}}']);
134
- // Get all matches in the value.
135
- const matches = this.getMatches(value, substitutions);
136
- // Replace all matches with the parsed value.
137
- return matches.reduce((previous, current) => {
138
- // Try to parse the token.
139
- const interpolatedToken = this.interpolateFunctionData(current.token, data);
140
- // Replace the match with the parsed token.
141
- return previous.replace(current.match, interpolatedToken);
142
- }, `${value}`);
143
- }
144
- interpolateFunctionData(value, interpolationData) {
145
- // Get the token and the methods by splitting
146
- // on the pipe symbol.
147
- const [token, ...methods] = value.split('|').map(item => item.trim());
148
- // Get the value for the token from
149
- // the interpolation data.
150
- const interpolationValue = interpolationData[token] || token;
151
- // Loop through all the middleware methods and try to
152
- // conform the string to the given parameters.
153
- return methods.reduce((string, middlewareName) => {
154
- // Try to retrieve the middleware from the collection.
155
- const middleware = this._functionMiddleware[middlewareName];
156
- // If the middleware is missing return an error
157
- // so that the user knows it was not found.
158
- if (!middleware) {
159
- return string;
160
- }
161
- // Execute the middleware function with the string.
162
- return middleware.transform(string, this.locale);
163
- }, `${interpolationValue}`);
164
- }
165
- findReferencesInTranslation(value) {
166
- // Get the reference substitutions.
167
- const substitutions = this.getSubstitutions('references', ['#(', ')']);
168
- // Get all matches in the value.
169
- const matches = this.getMatches(value, substitutions);
170
- // Replace all matches with the translated value.
171
- return matches.reduce((previous, current) => {
172
- // Try to translate the token.
173
- const translatedToken = this.translate(current.token);
174
- // Replace the match with the translated token.
175
- return previous.replace(current.match, translatedToken);
176
- }, value);
177
- }
178
- getSubstitutions(type, defaultValue) {
179
- const substitutions = (this._config
180
- && this._config.substitutions
181
- && this._config.substitutions[type]);
182
- // Get the substitutions.
183
- const value = (!substitutions || substitutions.length !== 2)
184
- ? defaultValue
185
- : substitutions;
186
- // Escape both substitutions so that they
187
- // can be used.
188
- const escape = /[.*+?^${}()|[\]\\]/g;
189
- const start = value[0].replace(escape, '\\$&');
190
- const end = value[1].replace(escape, '\\$&');
191
- // Return the substitutions.
192
- return { start, end };
193
- }
194
- retrieveBestMatchingDictionary() {
195
- // Get the dictionary based on storage.
196
- const storageDictionary = this.getDictionaryFromStorage();
197
- // Get the dictionary based on the supported language.
198
- const browserDictionary = this.getBestBrowserMatchDictionary();
199
- // Get the dictionary based on the first index.
200
- const firstDictionary = this._dictionaries[0];
201
- // Return the best matching dictionary.
202
- return storageDictionary || browserDictionary || firstDictionary;
203
- }
204
- getDictionaryFromStorage() {
205
- // Get dictionary id from the storage..
206
- const dictionaryId = this._storage.cookie.get(this._storageToken);
207
- // Return the dictionary based on the storage dictionary id.
208
- return this._dictionaries.find(item => item.id === dictionaryId);
209
- }
210
- getBestBrowserMatchDictionary() {
211
- // Loop through all browser languages and return the
212
- // best matching dictionary.
213
- return this._languages.all.map(({ code, region }) => {
214
- const languageCode = [code, region].filter(data => !!data).join('-');
215
- return this._dictionaries.find(item => item.supportedLanguages.includes(languageCode));
216
- }).filter(item => !!item).find((_, index) => index === 0);
217
- }
218
- load(dictionary) {
219
- var _a, _b, _c, _d;
220
- return __awaiter(this, void 0, void 0, function* () {
221
- const data = ((_a = this._state) === null || _a === void 0 ? void 0 : _a.hasKey(dictionary.stateKey))
222
- ? (_b = this._state) === null || _b === void 0 ? void 0 : _b.get(dictionary.stateKey, {})
223
- : null;
224
- // Try to load the dictionary data.
225
- const loaded = yield dictionary.load(data);
226
- // Verify the data was loaded.
227
- if (!loaded) {
228
- throw new Error(`Localize: Could not correctly fetch the data from: "${dictionary.id}"`);
229
- }
230
- if (!this._platform.isBrowser && this._state) {
231
- (_c = this._state) === null || _c === void 0 ? void 0 : _c.set(dictionary === null || dictionary === void 0 ? void 0 : dictionary.stateKey, (_d = dictionary === null || dictionary === void 0 ? void 0 : dictionary.data) !== null && _d !== void 0 ? _d : {});
232
- }
233
- // Combine the extra dictionary data.
234
- (this._extras || []).forEach(extraDictionary => dictionary.combine(extraDictionary));
235
- // Return the dictionary.
236
- return dictionary;
237
- });
238
- }
239
- renderDocumentLanguage() {
240
- var _a, _b, _c, _d, _e;
241
- const element = (_a = this._document) === null || _a === void 0 ? void 0 : _a.documentElement;
242
- if (!element) {
243
- return;
244
- }
245
- element.lang = (_d = (_c = (_b = this._currentDictionary) === null || _b === void 0 ? void 0 : _b.supportedLanguages) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : (_e = this._currentDictionary) === null || _e === void 0 ? void 0 : _e.locale;
246
- }
247
- }
248
- Localize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: Localize, deps: [{ token: i1.HttpClient }, { token: i2.Storage }, { token: i3.Platform }, { token: i3.Languages }, { token: i4.TransferState, optional: true }, { token: i5.LocalizeConfig, optional: true }, { token: i6.LocalizeMissingHandler }, { token: DOCUMENT, optional: true }, { token: LOCATION, optional: true }, { token: BASE_URL, optional: true }, { token: LOCALIZE_FUNCTION, optional: true }, { token: LOCALIZE_EXTRA_DICTIONARY, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
249
- Localize.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: Localize });
250
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: Localize, decorators: [{
251
- type: Injectable
252
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Storage }, { type: i3.Platform }, { type: i3.Languages }, { type: i4.TransferState, decorators: [{
253
- type: Optional
254
- }] }, { type: i5.LocalizeConfig, decorators: [{
255
- type: Optional
256
- }] }, { type: i6.LocalizeMissingHandler }, { type: undefined, decorators: [{
257
- type: Optional
258
- }, {
259
- type: Inject,
260
- args: [DOCUMENT]
261
- }] }, { type: undefined, decorators: [{
262
- type: Optional
263
- }, {
264
- type: Inject,
265
- args: [LOCATION]
266
- }] }, { type: undefined, decorators: [{
267
- type: Optional
268
- }, {
269
- type: Inject,
270
- args: [BASE_URL]
271
- }] }, { type: undefined, decorators: [{
272
- type: Optional
273
- }, {
274
- type: Inject,
275
- args: [LOCALIZE_FUNCTION]
276
- }] }, { type: undefined, decorators: [{
277
- type: Optional
278
- }, {
279
- type: Inject,
280
- args: [LOCALIZE_EXTRA_DICTIONARY]
281
- }] }]; } });
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi9sb2NhbGl6ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQXdDLE1BQU0sbUNBQW1DLENBQUM7QUFDM0csT0FBTyxFQUFDLHlCQUF5QixFQUEwQixNQUFNLG9DQUFvQyxDQUFDO0FBRXRHLE9BQU8sRUFBQyxRQUFRLEVBQWEsUUFBUSxFQUFXLE1BQU0seUJBQXlCLENBQUM7QUFHaEYsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBSXpELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7QUFHekMsTUFBTSxPQUFPLFFBQVE7SUFRakIsWUFBb0IsS0FBaUIsRUFDakIsUUFBaUIsRUFDakIsU0FBbUIsRUFDbkIsVUFBcUIsRUFDVCxNQUFxQixFQUNyQixPQUF1QixFQUNuQyxlQUF1QyxFQUNULFNBQWUsRUFDZixTQUFlLEVBQ2YsUUFBaUIsRUFDUixVQUErQixFQUN2QixPQUFtQztRQVhsRixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQ1QsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUNuQyxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7UUFDVCxjQUFTLEdBQVQsU0FBUyxDQUFNO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBTTtRQUNmLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDUixl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LENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFFckYseUJBQXlCO1lBQ3pCLE9BQU8sVUFBVSxDQUFDOztLQUNyQjtJQUVPLHNCQUFzQjs7UUFDMUIsTUFBTSxPQUFPLEdBQUcsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxlQUFlLENBQUM7UUFDaEQsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNWLE9BQU87U0FDVjtRQUVELE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLGtCQUFrQiwwQ0FBRSxrQkFBa0IsMENBQUcsQ0FBQyxDQUFDLG1DQUFJLE1BQUEsSUFBSSxDQUFDLGtCQUFrQiwwQ0FBRSxNQUFNLENBQUM7SUFDdkcsQ0FBQzs7c0dBNVFRLFFBQVEscVBBZWUsUUFBUSw2QkFDUixRQUFRLDZCQUNSLFFBQVEsNkJBQ1IsaUJBQWlCLDZCQUNqQix5QkFBeUI7MEdBbkJoRCxRQUFROzRGQUFSLFFBQVE7a0JBRHBCLFVBQVU7OzBCQWFNLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUVSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsUUFBUTs7MEJBQzNCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsUUFBUTs7MEJBQzNCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsUUFBUTs7MEJBQzNCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDcEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xPQ0FMSVpFX0ZVTkNUSU9OLCBMb2NhbGl6ZUZ1bmN0aW9uLCBMb2NhbGl6ZUZ1bmN0aW9uTWFwfSBmcm9tICcuL2ludGVyZmFjZXMvZnVuY3Rpb25zLmludGVyZmFjZXMnO1xuaW1wb3J0IHtMT0NBTElaRV9FWFRSQV9ESUNUSU9OQVJZLCBMb2NhbGl6ZUV4dHJhRGljdGlvbmFyeX0gZnJvbSAnLi9pbnRlcmZhY2VzL2RpY3Rpb25hcnkuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0xvY2FsaXplT3B0aW9uc0RhdGEsIExvY2FsaXplUGFyYW1zfSBmcm9tICcuL2ludGVyZmFjZXMvb3B0aW9ucy5pbnRlcmZhY2VzJztcbmltcG9ydCB7QkFTRV9VUkwsIExhbmd1YWdlcywgTE9DQVRJT04sIFBsYXRmb3JtfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbic7XG5pbXBvcnQge0xvY2FsaXplTWlzc2luZ0hhbmRsZXJ9IGZyb20gJy4vaGFuZGxlcnMvbWlzc2luZy5oYW5kbGVyJztcbmltcG9ydCB7TG9jYWxpemVDb25maWd9IGZyb20gJy4vaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2NhbGl6ZURpY3Rpb25hcnl9IGZyb20gJy4vbG9jYWxpemUuZGljdGlvbmFyeSc7XG5pbXBvcnQge1N0b3JhZ2V9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL3N0b3JhZ2UnO1xuaW1wb3J0IHtUcmFuc2ZlclN0YXRlfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExvY2FsaXplIHtcblxuICAgIC8vIFJlYWRvbmx5IGRhdGEuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGljdGlvbmFyaWVzOiBMb2NhbGl6ZURpY3Rpb25hcnlbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jdXJyZW50RGljdGlvbmFyeTogTG9jYWxpemVEaWN0aW9uYXJ5O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Z1bmN0aW9uTWlkZGxld2FyZTogTG9jYWxpemVGdW5jdGlvbk1hcDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yYWdlVG9rZW46IHN0cmluZyA9ICdiYi1sYW5ndWFnZS1kaWN0aW9uYXJ5LWlkJztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfc3RvcmFnZTogU3RvcmFnZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9wbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfbGFuZ3VhZ2VzOiBMYW5ndWFnZXMsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfc3RhdGU6IFRyYW5zZmVyU3RhdGUsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY29uZmlnOiBMb2NhbGl6ZUNvbmZpZyxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9taXNzaW5nSGFuZGxlcjogTG9jYWxpemVNaXNzaW5nSGFuZGxlcixcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudD86IGFueSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExPQ0FUSU9OKSBwcml2YXRlIF9sb2NhdGlvbj86IGFueSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEJBU0VfVVJMKSBwcml2YXRlIF9iYXNlVXJsPzogc3RyaW5nLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTE9DQUxJWkVfRlVOQ1RJT04pIHByaXZhdGUgX2Z1bmN0aW9ucz86IExvY2FsaXplRnVuY3Rpb25bXSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExPQ0FMSVpFX0VYVFJBX0RJQ1RJT05BUlkpIHByaXZhdGUgX2V4dHJhcz86IExvY2FsaXplRXh0cmFEaWN0aW9uYXJ5W10pIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgYXQgbGVhc3Qgb25lIGxhbmd1YWdlIHdhcyBwYXNzZWQgaW4gdGhlIGNvbmZpZy5cbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5kaWN0aW9uYXJ5Lmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTG9jYWxpemU6IG9uZSBvciBtb3JlIGxhbmd1YWdlcyBzaG91bGQgYmUgc3VwcGxpZWQuJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHYXRoZXIgdGhlIGRpY3Rpb25hcmllcy5cbiAgICAgICAgdGhpcy5fZGljdGlvbmFyaWVzID0gdGhpcy5fY29uZmlnLmRpY3Rpb25hcnkubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMb2NhbGl6ZURpY3Rpb25hcnkoaXRlbSwgdGhpcy5fYmFzZVVybCwgdGhpcy5faHR0cCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFNhdmUgdGhlIGJlc3QgbWF0Y2hpbmcgY3VycmVudCBkaWN0aW9uYXJ5LlxuICAgICAgICB0aGlzLl9jdXJyZW50RGljdGlvbmFyeSA9IHRoaXMucmV0cmlldmVCZXN0TWF0Y2hpbmdEaWN0aW9uYXJ5KCk7XG5cbiAgICAgICAgLy8gR2F0aGVyIGFsbCB0aGUgbG9jYWxpemUgZnVuY3Rpb25zLlxuICAgICAgICB0aGlzLl9mdW5jdGlvbk1pZGRsZXdhcmUgPSB0aGlzLl9mdW5jdGlvbnMucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4ge1xuICAgICAgICAgICAgcHJldmlvdXNbY3VycmVudC5rZXl3b3JkKCldID0gY3VycmVudDtcbiAgICAgICAgICAgIHJldHVybiBwcmV2aW91cztcbiAgICAgICAgfSwge30pO1xuXG4gICAgICAgIHRoaXMucmVuZGVyRG9jdW1lbnRMYW5ndWFnZSgpO1xuICAgIH1cblxuICAgIGdldCBkaWN0aW9uYXJpZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaWN0aW9uYXJpZXM7XG4gICAgfVxuXG4gICAgZ2V0IGN1cnJlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50RGljdGlvbmFyeTtcbiAgICB9XG5cbiAgICBnZXQgbG9jYWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudERpY3Rpb25hcnkubG9jYWxlO1xuICAgIH1cblxuICAgIGluaXRpYWxpemUoKSB7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiB0aGlzLmxvYWQodGhpcy5fY3VycmVudERpY3Rpb25hcnkpO1xuICAgIH1cblxuICAgIGNoYW5nZShpZDogc3RyaW5nLCByZWxvYWQ6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIC8vIFRyeSB0byBmZXRjaCB0aGUgZGljdGlvbmFyeS5cbiAgICAgICAgY29uc3QgZGljdGlvbmFyeSA9IHRoaXMuX2RpY3Rpb25hcmllcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gaWQpO1xuXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBkaWN0aW9uYXJ5IGV4aXN0cy5cbiAgICAgICAgaWYgKCFkaWN0aW9uYXJ5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYExvY2FsaXplOiBDb3VsZCBub3QgZmluZCBkaWN0aW9uYXJ5IHdpdGggaWQ6IFwiJHtpZH1cImApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2F2ZSB0aGUgbGFuZ3VhZ2UgaW4gdGhlIHN0b3JhZ2UuXG4gICAgICAgIHRoaXMuX3N0b3JhZ2UuY29va2llLnNldDxzdHJpbmc+KHRoaXMuX3N0b3JhZ2VUb2tlbiwgZGljdGlvbmFyeS5pZCwge30pO1xuXG4gICAgICAgIC8vIEp1c3QgcXVpdCBpZiB3ZSBkb24ndCBuZWVkIHRvIHJlbG9hZC5cbiAgICAgICAgaWYgKCFyZWxvYWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gcmVsb2FkIHRoZSBhcHBsaWNhdGlvbiBmb3IgdGhlIHRyYW5zbGF0aW9ucy5cbiAgICAgICAgcmV0dXJuIHRoaXMucmVsb2FkKCk7XG4gICAgfVxuXG4gICAgY2xlYXIocmVsb2FkOiBib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAvLyBSZW1vdmUgdGhlIGxhbmd1YWdlIGluIHRoZSBsb2NhbCBzdG9yYWdlLlxuICAgICAgICB0aGlzLl9zdG9yYWdlLmNvb2tpZS5yZW1vdmUodGhpcy5fc3RvcmFnZVRva2VuKTtcblxuICAgICAgICAvLyBKdXN0IHF1aXQgaWYgd2UgZG9uJ3QgbmVlZCB0byByZWxvYWQuXG4gICAgICAgIGlmICghcmVsb2FkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXZSBuZWVkIHRvIHJlbG9hZCB0aGUgYXBwbGljYXRpb24gZm9yIHRoZSB0cmFuc2xhdGlvbnMuXG4gICAgICAgIHJldHVybiB0aGlzLnJlbG9hZCgpO1xuICAgIH1cblxuICAgIHRyYW5zbGF0ZSh0b2tlbk9yUGFyYW1zOiBzdHJpbmcgfCBMb2NhbGl6ZVBhcmFtcykge1xuICAgICAgICAvLyAxLiBDb252ZXJ0IHRvIHRoZSBwYXJhbXMuXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuY29udmVydFRvUGFyYW1zKHRva2VuT3JQYXJhbXMpO1xuXG4gICAgICAgIC8vIDIuIFRyeSB0byBmaW5kIHRoZSB0cmFuc2xhdGlvbiBpbiB0aGUgZGljdGlvbmFyeS5cbiAgICAgICAgY29uc3Qgc2VhcmNoUmVzdWx0ID0gdGhpcy5fY3VycmVudERpY3Rpb25hcnkuc2VhcmNoKHBhcmFtcy50b2tlbik7XG5cbiAgICAgICAgLy8gMy4gVmVyaWZ5IHRoZSB0cmFuc2xhdGlvbiB3YXMgZm91bmQuXG4gICAgICAgIGlmICghc2VhcmNoUmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWlzc2luZ0hhbmRsZXIuaGFuZGxlKHBhcmFtcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyA0LiBGaW5kIHJlZmVyZW5jZXMgaW4gdGhlIHRyYW5zbGF0aW9uIHRoYXQgbmVlZCB0byBiZSB0cmFuc2xhdGVkIGFzIHdlbGwuXG4gICAgICAgIGNvbnN0IHByb2Nlc3NSZXN1bHQgPSB0aGlzLmZpbmRSZWZlcmVuY2VzSW5UcmFuc2xhdGlvbihzZWFyY2hSZXN1bHQpO1xuXG4gICAgICAgIC8vIDUuIFBhcnNlIHRoZSBpbnRlcnBvbGF0aW9uIGRhdGEuXG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlSW50ZXJwb2xhdGlvbkRhdGEocHJvY2Vzc1Jlc3VsdCwgcGFyYW1zLmRhdGEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGFyc2VJbnRlcnBvbGF0aW9uRGF0YSh2YWx1ZTogc3RyaW5nLCBkYXRhOiBMb2NhbGl6ZU9wdGlvbnNEYXRhKSB7XG4gICAgICAgIC8vIEdldCB0aGUgaW50ZXJwb2xhdGlvbiBzdWJzdGl0dXRpb25zLlxuICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25zID0gdGhpcy5nZXRTdWJzdGl0dXRpb25zKCdpbnRlcnBvbGF0aW9uJywgWyd7eycsICd9fSddKTtcblxuICAgICAgICAvLyBHZXQgYWxsIG1hdGNoZXMgaW4gdGhlIHZhbHVlLlxuICAgICAgICBjb25zdCBtYXRjaGVzID0gdGhpcy5nZXRNYXRjaGVzKHZhbHVlLCBzdWJzdGl0dXRpb25zKTtcblxuICAgICAgICAvLyBSZXBsYWNlIGFsbCBtYXRjaGVzIHdpdGggdGhlIHBhcnNlZCB2YWx1ZS5cbiAgICAgICAgcmV0dXJuIG1hdGNoZXMucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4ge1xuICAgICAgICAgICAgLy8gVHJ5IHRvIHBhcnNlIHRoZSB0b2tlbi5cbiAgICAgICAgICAgIGNvbnN0IGludGVycG9sYXRlZFRva2VuID0gdGhpcy5pbnRlcnBvbGF0ZUZ1bmN0aW9uRGF0YShjdXJyZW50LnRva2VuLCBkYXRhKTtcblxuICAgICAgICAgICAgLy8gUmVwbGFjZSB0aGUgbWF0Y2ggd2l0aCB0aGUgcGFyc2VkIHRva2VuLlxuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzLnJlcGxhY2UoY3VycmVudC5tYXRjaCwgaW50ZXJwb2xhdGVkVG9rZW4pO1xuICAgICAgICB9LCBgJHt2YWx1ZX1gKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGludGVycG9sYXRlRnVuY3Rpb25EYXRhKHZhbHVlOiBzdHJpbmcsIGludGVycG9sYXRpb25EYXRhOiBMb2NhbGl6ZU9wdGlvbnNEYXRhKSB7XG4gICAgICAgIC8vIEdldCB0aGUgdG9rZW4gYW5kIHRoZSBtZXRob2RzIGJ5IHNwbGl0dGluZ1xuICAgICAgICAvLyBvbiB0aGUgcGlwZSBzeW1ib2wuXG4gICAgICAgIGNvbnN0IFt0b2tlbiwgLi4ubWV0aG9kc10gPSB2YWx1ZS5zcGxpdCgnfCcpLm1hcChpdGVtID0+IGl0ZW0udHJpbSgpKTtcblxuICAgICAgICAvLyBHZXQgdGhlIHZhbHVlIGZvciB0aGUgdG9rZW4gZnJvbVxuICAgICAgICAvLyB0aGUgaW50ZXJwb2xhdGlvbiBkYXRhLlxuICAgICAgICBjb25zdCBpbnRlcnBvbGF0aW9uVmFsdWUgPSBpbnRlcnBvbGF0aW9uRGF0YVt0b2tlbl0gfHwgdG9rZW47XG5cbiAgICAgICAgLy8gTG9vcCB0aHJvdWdoIGFsbCB0aGUgbWlkZGxld2FyZSBtZXRob2RzIGFuZCB0cnkgdG9cbiAgICAgICAgLy8gY29uZm9ybSB0aGUgc3RyaW5nIHRvIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLlxuICAgICAgICByZXR1cm4gbWV0aG9kcy5yZWR1Y2UoKHN0cmluZywgbWlkZGxld2FyZU5hbWUpID0+IHtcbiAgICAgICAgICAgIC8vIFRyeSB0byByZXRyaWV2ZSB0aGUgbWlkZGxld2FyZSBmcm9tIHRoZSBjb2xsZWN0aW9uLlxuICAgICAgICAgICAgY29uc3QgbWlkZGxld2FyZSA9IHRoaXMuX2Z1bmN0aW9uTWlkZGxld2FyZVttaWRkbGV3YXJlTmFtZV07XG5cbiAgICAgICAgICAgIC8vIElmIHRoZSBtaWRkbGV3YXJlIGlzIG1pc3NpbmcgcmV0dXJuIGFuIGVycm9yXG4gICAgICAgICAgICAvLyBzbyB0aGF0IHRoZSB1c2VyIGtub3dzIGl0IHdhcyBub3QgZm91bmQuXG4gICAgICAgICAgICBpZiAoIW1pZGRsZXdhcmUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyaW5nO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBFeGVjdXRlIHRoZSBtaWRkbGV3YXJlIGZ1bmN0aW9uIHdpdGggdGhlIHN0cmluZy5cbiAgICAgICAgICAgIHJldHVybiBtaWRkbGV3YXJlLnRyYW5zZm9ybShzdHJpbmcsIHRoaXMubG9jYWxlKTtcbiAgICAgICAgfSwgYCR7aW50ZXJwb2xhdGlvblZhbHVlfWApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZFJlZmVyZW5jZXNJblRyYW5zbGF0aW9uKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgLy8gR2V0IHRoZSByZWZlcmVuY2Ugc3Vic3RpdHV0aW9ucy5cbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IHRoaXMuZ2V0U3Vic3RpdHV0aW9ucygncmVmZXJlbmNlcycsIFsnIygnLCAnKSddKTtcblxuICAgICAgICAvLyBHZXQgYWxsIG1hdGNoZXMgaW4gdGhlIHZhbHVlLlxuICAgICAgICBjb25zdCBtYXRjaGVzID0gdGhpcy5nZXRNYXRjaGVzKHZhbHVlLCBzdWJzdGl0dXRpb25zKTtcblxuICAgICAgICAvLyBSZXBsYWNlIGFsbCBtYXRjaGVzIHdpdGggdGhlIHRyYW5zbGF0ZWQgdmFsdWUuXG4gICAgICAgIHJldHVybiBtYXRjaGVzLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIC8vIFRyeSB0byB0cmFuc2xhdGUgdGhlIHRva2VuLlxuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRlZFRva2VuID0gdGhpcy50cmFuc2xhdGUoY3VycmVudC50b2tlbik7XG5cbiAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIG1hdGNoIHdpdGggdGhlIHRyYW5zbGF0ZWQgdG9rZW4uXG4gICAgICAgICAgICByZXR1cm4gcHJldmlvdXMucmVwbGFjZShjdXJyZW50Lm1hdGNoLCB0cmFuc2xhdGVkVG9rZW4pO1xuICAgICAgICB9LCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTdWJzdGl0dXRpb25zKHR5cGU6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBzdHJpbmdbXSkge1xuICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25zID0gKHRoaXMuX2NvbmZpZ1xuICAgICAgICAgICAgJiYgdGhpcy5fY29uZmlnLnN1YnN0aXR1dGlvbnNcbiAgICAgICAgICAgICYmIHRoaXMuX2NvbmZpZy5zdWJzdGl0dXRpb25zW3R5cGVdKTtcblxuICAgICAgICAvLyBHZXQgdGhlIHN1YnN0aXR1dGlvbnMuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gKCFzdWJzdGl0dXRpb25zIHx8IHN1YnN0aXR1dGlvbnMubGVuZ3RoICE9PSAyKVxuICAgICAgICAgICAgPyBkZWZhdWx0VmFsdWVcbiAgICAgICAgICAgIDogc3Vic3RpdHV0aW9ucztcblxuICAgICAgICAvLyBFc2NhcGUgYm90aCBzdWJzdGl0dXRpb25zIHNvIHRoYXQgdGhleVxuICAgICAgICAvLyBjYW4gYmUgdXNlZC5cbiAgICAgICAgY29uc3QgZXNjYXBlID0gL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nO1xuICAgICAgICBjb25zdCBzdGFydCA9IHZhbHVlWzBdLnJlcGxhY2UoZXNjYXBlLCAnXFxcXCQmJyk7XG4gICAgICAgIGNvbnN0IGVuZCA9IHZhbHVlWzFdLnJlcGxhY2UoZXNjYXBlLCAnXFxcXCQmJyk7XG5cbiAgICAgICAgLy8gUmV0dXJuIHRoZSBzdWJzdGl0dXRpb25zLlxuICAgICAgICByZXR1cm4ge3N0YXJ0LCBlbmR9O1xuICAgIH1cblxuICAgIHByaXZhdGUgcmV0cmlldmVCZXN0TWF0Y2hpbmdEaWN0aW9uYXJ5KCkge1xuICAgICAgICAvLyBHZXQgdGhlIGRpY3Rpb25hcnkgYmFzZWQgb24gc3RvcmFnZS5cbiAgICAgICAgY29uc3Qgc3RvcmFnZURpY3Rpb25hcnkgPSB0aGlzLmdldERpY3Rpb25hcnlGcm9tU3RvcmFnZSgpO1xuXG4gICAgICAgIC8vIEdldCB0aGUgZGljdGlvbmFyeSBiYXNlZCBvbiB0aGUgc3VwcG9ydGVkIGxhbmd1YWdlLlxuICAgICAgICBjb25zdCBicm93c2VyRGljdGlvbmFyeSA9IHRoaXMuZ2V0QmVzdEJyb3dzZXJNYXRjaERpY3Rpb25hcnkoKTtcblxuICAgICAgICAvLyBHZXQgdGhlIGRpY3Rpb25hcnkgYmFzZWQgb24gdGhlIGZpcnN0IGluZGV4LlxuICAgICAgICBjb25zdCBmaXJzdERpY3Rpb25hcnkgPSB0aGlzLl9kaWN0aW9uYXJpZXNbMF07XG5cbiAgICAgICAgLy8gUmV0dXJuIHRoZSBiZXN0IG1hdGNoaW5nIGRpY3Rpb25hcnkuXG4gICAgICAgIHJldHVybiBzdG9yYWdlRGljdGlvbmFyeSB8fCBicm93c2VyRGljdGlvbmFyeSB8fCBmaXJzdERpY3Rpb25hcnk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREaWN0aW9uYXJ5RnJvbVN0b3JhZ2UoKSB7XG4gICAgICAgIC8vIEdldCBkaWN0aW9uYXJ5IGlkIGZyb20gdGhlIHN0b3JhZ2UuLlxuICAgICAgICBjb25zdCBkaWN0aW9uYXJ5SWQgPSB0aGlzLl9zdG9yYWdlLmNvb2tpZS5nZXQ8c3RyaW5nPih0aGlzLl9zdG9yYWdlVG9rZW4pO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgZGljdGlvbmFyeSBiYXNlZCBvbiB0aGUgc3RvcmFnZSBkaWN0aW9uYXJ5IGlkLlxuICAgICAgICByZXR1cm4gdGhpcy5fZGljdGlvbmFyaWVzLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBkaWN0aW9uYXJ5SWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QmVzdEJyb3dzZXJNYXRjaERpY3Rpb25hcnkoKSB7XG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCBhbGwgYnJvd3NlciBsYW5ndWFnZXMgYW5kIHJldHVybiB0aGVcbiAgICAgICAgLy8gYmVzdCBtYXRjaGluZyBkaWN0aW9uYXJ5LlxuICAgICAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2VzLmFsbC5tYXAoKHtjb2RlLCByZWdpb259KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYW5ndWFnZUNvZGUgPSBbY29kZSwgcmVnaW9uXS5maWx0ZXIoZGF0YSA9PiAhIWRhdGEpLmpvaW4oJy0nKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RpY3Rpb25hcmllcy5maW5kKGl0ZW0gPT4gaXRlbS5zdXBwb3J0ZWRMYW5ndWFnZXMuaW5jbHVkZXMobGFuZ3VhZ2VDb2RlKSk7XG4gICAgICAgIH0pLmZpbHRlcihpdGVtID0+ICEhaXRlbSkuZmluZCgoXywgaW5kZXgpID0+IGluZGV4ID09PSAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnZlcnRUb1BhcmFtcyA9ICh0b2tlbk9yUGFyYW1zOiBzdHJpbmcgfCBMb2NhbGl6ZVBhcmFtcykgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHRva2VuT3JQYXJhbXMgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAvLyBEZXN0cnVjdCB0aGUgcGFyYW1zIGZyb20gdGhlIG9iamVjdC5cbiAgICAgICAgICAgIGNvbnN0IHt0b2tlbiwgb3B0aW9uYWwsIGRhdGF9ID0gdG9rZW5PclBhcmFtcztcblxuICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGFsbCBwYXJhbWV0ZXJzIGFyZSB2YWxpZFxuICAgICAgICAgICAgLy8gYnkgdHlwZSBzYWZlIGFkZGluZyB0aGVtLlxuICAgICAgICAgICAgcmV0dXJuIHt0b2tlbjogdG9rZW4sIG9wdGlvbmFsOiBvcHRpb25hbCB8fCBmYWxzZSwgZGF0YTogZGF0YSB8fCB7fX07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB0aGUgcGFyYW1ldGVyIGlzIGEgc3RyaW5nIGZpbGwgaW4gdGhlIGJsYW5rcy5cbiAgICAgICAgcmV0dXJuIHt0b2tlbjogdG9rZW5PclBhcmFtcywgb3B0aW9uYWw6IGZhbHNlLCBkYXRhOiB7fX07XG4gICAgfTtcblxuICAgIHByaXZhdGUgYXN5bmMgbG9hZChkaWN0aW9uYXJ5OiBMb2NhbGl6ZURpY3Rpb25hcnkpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuX3N0YXRlPy5oYXNLZXkoZGljdGlvbmFyeS5zdGF0ZUtleSlcbiAgICAgICAgICAgID8gdGhpcy5fc3RhdGU/LmdldChkaWN0aW9uYXJ5LnN0YXRlS2V5LCB7fSlcbiAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICAvLyBUcnkgdG8gbG9hZCB0aGUgZGljdGlvbmFyeSBkYXRhLlxuICAgICAgICBjb25zdCBsb2FkZWQgPSBhd2FpdCBkaWN0aW9uYXJ5LmxvYWQoZGF0YSk7XG5cbiAgICAgICAgLy8gVmVyaWZ5IHRoZSBkYXRhIHdhcyBsb2FkZWQuXG4gICAgICAgIGlmICghbG9hZGVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYExvY2FsaXplOiBDb3VsZCBub3QgY29ycmVjdGx5IGZldGNoIHRoZSBkYXRhIGZyb206IFwiJHtkaWN0aW9uYXJ5LmlkfVwiYCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3NlciAmJiB0aGlzLl9zdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5fc3RhdGU/LnNldDxvYmplY3Q+KGRpY3Rpb25hcnk/LnN0YXRlS2V5LCBkaWN0aW9uYXJ5Py5kYXRhID8/IHt9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENvbWJpbmUgdGhlIGV4dHJhIGRpY3Rpb25hcnkgZGF0YS5cbiAgICAgICAgKHRoaXMuX2V4dHJhcyB8fCBbXSkuZm9yRWFjaChleHRyYURpY3Rpb25hcnkgPT4gZGljdGlvbmFyeS5jb21iaW5lKGV4dHJhRGljdGlvbmFyeSkpO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgZGljdGlvbmFyeS5cbiAgICAgICAgcmV0dXJuIGRpY3Rpb25hcnk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJEb2N1bWVudExhbmd1YWdlKCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZG9jdW1lbnQ/LmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBlbGVtZW50LmxhbmcgPSB0aGlzLl9jdXJyZW50RGljdGlvbmFyeT8uc3VwcG9ydGVkTGFuZ3VhZ2VzPy5bMF0gPz8gdGhpcy5fY3VycmVudERpY3Rpb25hcnk/LmxvY2FsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1hdGNoZXMgPSAodmFsdWU6IHN0cmluZywgc3Vic3RpdHV0aW9uczogeyBzdGFydDogc3RyaW5nLCBlbmQ6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgIC8vIEdldCB0aGUgbWF0Y2hpbmcgc3Vic3RpdHV0aW9ucy5cbiAgICAgICAgY29uc3Qge3N0YXJ0LCBlbmR9ID0gc3Vic3RpdHV0aW9ucztcblxuICAgICAgICAvLyBDb21wb3NlIGEgcmVnZXggdGhhdCB3aWxsIGZpbmQgdGhlIG1hdGNoZXMuXG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgJHtzdGFydH0oW14ke2VuZH1dKykke2VuZH1gLCAnZycpO1xuXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIHJlZ2V4IHRvIGZpbmQgbWF0Y2hlcy5cbiAgICAgICAgbGV0IG1hdGNoID0gcmVnZXguZXhlYyh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IG1hdGNoZXMgPSBbXTtcblxuICAgICAgICB3aGlsZSAobWF0Y2ggIT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIFB1c2ggYSBuZXcgbWF0Y2guXG4gICAgICAgICAgICBtYXRjaGVzLnB1c2goe1xuICAgICAgICAgICAgICAgIG1hdGNoOiBtYXRjaFswXSxcbiAgICAgICAgICAgICAgICB0b2tlbjogbWF0Y2hbMV1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBUcnkgdG8gZmluZCBtb3JlIG1hdGNoZXMuXG4gICAgICAgICAgICBtYXRjaCA9IHJlZ2V4LmV4ZWModmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmV0dXJuIHRoZSBwcm9jZXNzZWQgdmFsdWUuXG4gICAgICAgIHJldHVybiBtYXRjaGVzLmZpbHRlcihpdGVtID0+ICEhaXRlbSk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgcmVsb2FkID0gKCkgPT4gdGhpcy5fbG9jYXRpb24/LnJlbG9hZCgpO1xuXG59XG4iXX0=
@@ -1,99 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ContentChildren, Input, ViewEncapsulation } from '@angular/core';
2
- import { BbLocalizeTemplate } from '../localize-template.directive';
3
- import { startWith } from 'rxjs/operators';
4
- import { Subscription } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "../localize-template-or-string.directive";
8
- export class BbLocalizeString {
9
- constructor(_changeDetection) {
10
- this._changeDetection = _changeDetection;
11
- // Inputs.
12
- this.substitutions = ['[', ']'];
13
- // Data.
14
- this.components = [];
15
- // Subscriptions.
16
- this._subscription = new Subscription();
17
- // State.
18
- this._value = null;
19
- }
20
- set value(value) {
21
- this._value = value;
22
- this.revalidate();
23
- }
24
- get value() {
25
- return this._value;
26
- }
27
- ngAfterViewInit() {
28
- this.observeItemChanges();
29
- }
30
- ngOnDestroy() {
31
- var _a;
32
- (_a = this._subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
33
- }
34
- observeItemChanges() {
35
- const subscription = this.items.changes.pipe(startWith(0)).subscribe(() => this.revalidate());
36
- this._subscription.add(subscription);
37
- }
38
- revalidate() {
39
- var _a, _b;
40
- const items = (_b = (_a = this.items) === null || _a === void 0 ? void 0 : _a.toArray()) !== null && _b !== void 0 ? _b : [];
41
- if (items.length <= 0) {
42
- return;
43
- }
44
- this.setComponents(items);
45
- }
46
- setComponents(items) {
47
- const [start, end] = this.substitutions;
48
- const templates = items.reduce((previous, current) => {
49
- var _a, _b;
50
- const template = (_a = current === null || current === void 0 ? void 0 : current.templateRef) !== null && _a !== void 0 ? _a : null;
51
- const name = (_b = current === null || current === void 0 ? void 0 : current.name) !== null && _b !== void 0 ? _b : null;
52
- if (!template || !name) {
53
- return previous;
54
- }
55
- return Object.assign(Object.assign({}, previous), { [`${start}${name}${end}`]: template });
56
- }, {});
57
- this.components = this.getStringComponents(this._value)
58
- .map(component => { var _a, _b; return (_b = (_a = templates === null || templates === void 0 ? void 0 : templates[component]) !== null && _a !== void 0 ? _a : component) !== null && _b !== void 0 ? _b : null; })
59
- .filter(item => !!item);
60
- this._changeDetection.detectChanges();
61
- }
62
- getStringComponents(value) {
63
- const [start, end] = this.getSubstitutions();
64
- const regex = new RegExp(`(${start}[a-zA-Z]+${end})`, 'g');
65
- return value.split(regex);
66
- }
67
- getSubstitutions() {
68
- const [start, end] = this.substitutions;
69
- const escape = /[.*+?^${}()|[\]\\]/g;
70
- return [
71
- start.replace(escape, '\\$&'),
72
- end.replace(escape, '\\$&')
73
- ];
74
- }
75
- }
76
- BbLocalizeString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbLocalizeString, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
77
- BbLocalizeString.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.11", type: BbLocalizeString, selector: "bb-localize-string", inputs: { substitutions: "substitutions", value: "value" }, host: { classAttribute: "bb-localize-string" }, queries: [{ propertyName: "items", predicate: BbLocalizeTemplate }], ngImport: i0, template: "<ng-container *ngFor=\"let component of components\">\n <ng-template [bbLocalizeTemplateOrString]=\"component\">{{ component }}</ng-template>\n</ng-container>\n", styles: [".bb-localize-string{display:inline}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: ["bbLocalizeTemplateOrString"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbLocalizeString, decorators: [{
79
- type: Component,
80
- args: [{
81
- selector: 'bb-localize-string',
82
- templateUrl: './localize-string.component.html',
83
- styleUrls: ['./localize-string.component.scss'],
84
- changeDetection: ChangeDetectionStrategy.OnPush,
85
- encapsulation: ViewEncapsulation.None,
86
- preserveWhitespaces: false,
87
- host: {
88
- 'class': 'bb-localize-string'
89
- }
90
- }]
91
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
92
- type: ContentChildren,
93
- args: [BbLocalizeTemplate]
94
- }], substitutions: [{
95
- type: Input
96
- }], value: [{
97
- type: Input
98
- }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi92aWV3cy9sb2NhbGl6ZS1zdHJpbmcvbG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi92aWV3cy9sb2NhbGl6ZS1zdHJpbmcvbG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFDZixLQUFLLEVBSUwsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7O0FBYWxDLE1BQU0sT0FBTyxnQkFBZ0I7SUEyQnpCLFlBQW9CLGdCQUFtQztRQUFuQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBdEJ2RCxVQUFVO1FBQ0Qsa0JBQWEsR0FBcUIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFdEQsUUFBUTtRQUNSLGVBQVUsR0FBa0MsRUFBRSxDQUFDO1FBRS9DLGlCQUFpQjtRQUNULGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUzQyxTQUFTO1FBQ0QsV0FBTSxHQUFrQixJQUFJLENBQUM7SUFhckMsQ0FBQztJQVhELElBQ0ksS0FBSyxDQUFDLEtBQW9CO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFV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QU0sQ0FBQztZQUM3QixHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7U0FDOUIsQ0FBQztJQUNOLENBQUM7OzhHQXpGUSxnQkFBZ0I7a0dBQWhCLGdCQUFnQiw0TEFHUixrQkFBa0IsNkJDOUJ2QyxxS0FHQTs0RkR3QmEsZ0JBQWdCO2tCQVg1QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSxrQ0FBa0M7b0JBQy9DLFNBQVMsRUFBRSxDQUFDLGtDQUFrQyxDQUFDO29CQUMvQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLG1CQUFtQixFQUFFLEtBQUs7b0JBQzFCLElBQUksRUFBRTt3QkFDRixPQUFPLEVBQUUsb0JBQW9CO3FCQUNoQztpQkFDSjt3R0FJd0MsS0FBSztzQkFBekMsZUFBZTt1QkFBQyxrQkFBa0I7Z0JBRzFCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBWUYsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmJMb2NhbGl6ZVRlbXBsYXRlfSBmcm9tICcuLi9sb2NhbGl6ZS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1sb2NhbGl6ZS1zdHJpbmcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sb2NhbGl6ZS1zdHJpbmcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xvY2FsaXplLXN0cmluZy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmItbG9jYWxpemUtc3RyaW5nJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQmJMb2NhbGl6ZVN0cmluZyBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBDb250ZW50IGNoaWxkcmVuLlxuICAgIEBDb250ZW50Q2hpbGRyZW4oQmJMb2NhbGl6ZVRlbXBsYXRlKSBpdGVtcz86IFF1ZXJ5TGlzdDxCYkxvY2FsaXplVGVtcGxhdGU+O1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgpIHN1YnN0aXR1dGlvbnM6IFtzdHJpbmcsIHN0cmluZ10gPSBbJ1snLCAnXSddO1xuXG4gICAgLy8gRGF0YS5cbiAgICBjb21wb25lbnRzOiAoc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PilbXSA9IFtdO1xuXG4gICAgLy8gU3Vic2NyaXB0aW9ucy5cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBwcml2YXRlIF92YWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnJldmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICBnZXQgdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLm9ic2VydmVJdGVtQ2hhbmdlcygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlSXRlbUNoYW5nZXMoKSB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuaXRlbXMuY2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKDApXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmV2YWxpZGF0ZSgpKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHN1YnNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXZhbGlkYXRlKCkge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuaXRlbXM/LnRvQXJyYXkoKSA/PyBbXTtcbiAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldENvbXBvbmVudHMoaXRlbXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q29tcG9uZW50cyhpdGVtczogQmJMb2NhbGl6ZVRlbXBsYXRlW10pIHtcbiAgICAgICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gdGhpcy5zdWJzdGl0dXRpb25zO1xuXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IGl0ZW1zLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRlbXBsYXRlID0gY3VycmVudD8udGVtcGxhdGVSZWYgPz8gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBjdXJyZW50Py5uYW1lID8/IG51bGw7XG4gICAgICAgICAgICBpZiAoIXRlbXBsYXRlIHx8ICFuYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gey4uLnByZXZpb3VzLCBbYCR7c3RhcnR9JHtuYW1lfSR7ZW5kfWBdOiB0ZW1wbGF0ZX07XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICB0aGlzLmNvbXBvbmVudHMgPSB0aGlzLmdldFN0cmluZ0NvbXBvbmVudHModGhpcy5fdmFsdWUpXG4gICAgICAgICAgICAubWFwKGNvbXBvbmVudCA9PiB0ZW1wbGF0ZXM/Lltjb21wb25lbnRdID8/IGNvbXBvbmVudCA/PyBudWxsKVxuICAgICAgICAgICAgLmZpbHRlcihpdGVtID0+ICEhaXRlbSk7XG5cbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0aW9uLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFN0cmluZ0NvbXBvbmVudHModmFsdWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB0aGlzLmdldFN1YnN0aXR1dGlvbnMoKTtcbiAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGAoJHtzdGFydH1bYS16QS1aXSske2VuZH0pYCwgJ2cnKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnNwbGl0KHJlZ2V4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFN1YnN0aXR1dGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IHRoaXMuc3Vic3RpdHV0aW9ucztcbiAgICAgICAgY29uc3QgZXNjYXBlID0gL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdGFydC5yZXBsYWNlKGVzY2FwZSwgJ1xcXFwkJicpLFxuICAgICAgICAgICAgZW5kLnJlcGxhY2UoZXNjYXBlLCAnXFxcXCQmJylcbiAgICAgICAgXTtcbiAgICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbXBvbmVudCBvZiBjb21wb25lbnRzXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtiYkxvY2FsaXplVGVtcGxhdGVPclN0cmluZ109XCJjb21wb25lbnRcIj57eyBjb21wb25lbnQgfX08L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=