@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
@@ -0,0 +1,88 @@
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
+ this._subscription?.unsubscribe();
32
+ }
33
+ observeItemChanges() {
34
+ const subscription = this.items.changes.pipe(startWith(0)).subscribe(() => this.revalidate());
35
+ this._subscription.add(subscription);
36
+ }
37
+ revalidate() {
38
+ const items = this.items?.toArray() ?? [];
39
+ if (items.length <= 0) {
40
+ return;
41
+ }
42
+ this.setComponents(items);
43
+ }
44
+ setComponents(items) {
45
+ const [start, end] = this.substitutions;
46
+ const templates = items.reduce((previous, current) => {
47
+ const template = current?.templateRef ?? null;
48
+ const name = current?.name ?? null;
49
+ if (!template || !name) {
50
+ return previous;
51
+ }
52
+ return { ...previous, [`${start}${name}${end}`]: template };
53
+ }, {});
54
+ this.components = this.getStringComponents(this._value)
55
+ .map(component => templates?.[component] ?? component ?? null)
56
+ .filter(item => !!item);
57
+ this._changeDetection.detectChanges();
58
+ }
59
+ getStringComponents(value) {
60
+ const [start, end] = this.getSubstitutions();
61
+ const regex = new RegExp(`(${start}[a-zA-Z]+${end})`, 'g');
62
+ return value.split(regex);
63
+ }
64
+ getSubstitutions() {
65
+ const [start, end] = this.substitutions;
66
+ const escape = /[.*+?^${}()|[\]\\]/g;
67
+ return [
68
+ start.replace(escape, '\\$&'),
69
+ end.replace(escape, '\\$&')
70
+ ];
71
+ }
72
+ }
73
+ BbLocalizeString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbLocalizeString, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
74
+ BbLocalizeString.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", 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 });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbLocalizeString, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: 'bb-localize-string', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
78
+ 'class': 'bb-localize-string'
79
+ }, template: "<ng-container *ngFor=\"let component of components\">\n <ng-template [bbLocalizeTemplateOrString]=\"component\">{{ component }}</ng-template>\n</ng-container>\n", styles: [".bb-localize-string{display:inline}\n"] }]
80
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { items: [{
81
+ type: ContentChildren,
82
+ args: [BbLocalizeTemplate]
83
+ }], substitutions: [{
84
+ type: Input
85
+ }], value: [{
86
+ type: Input
87
+ }] } });
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi92aWV3cy9sb2NhbGl6ZS1zdHJpbmcvbG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi92aWV3cy9sb2NhbGl6ZS1zdHJpbmcvbG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFDZixLQUFLLEVBSUwsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7O0FBYWxDLE1BQU0sT0FBTyxnQkFBZ0I7SUEyQnpCLFlBQW9CLGdCQUFtQztRQUFuQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBdEJ2RCxVQUFVO1FBQ0Qsa0JBQWEsR0FBcUIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFdEQsUUFBUTtRQUNSLGVBQVUsR0FBa0MsRUFBRSxDQUFDO1FBRS9DLGlCQUFpQjtRQUNULGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUzQyxTQUFTO1FBQ0QsV0FBTSxHQUFrQixJQUFJLENBQUM7SUFhckMsQ0FBQztJQVhELElBQ0ksS0FBSyxDQUFDLEtBQW9CO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFLRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTyxrQkFBa0I7UUFDdEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUN4QyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFckMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLFVBQVU7UUFDZCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMxQyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ25CLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQUEyQjtRQUM3QyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFeEMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNqRCxNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQztZQUM5QyxNQUFNLElBQUksR0FBRyxPQUFPLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQztZQUNuQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNwQixPQUFPLFFBQVEsQ0FBQzthQUNuQjtZQUVELE9BQU8sRUFBQyxHQUFHLFFBQVEsRUFBRSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBQyxDQUFDO1FBQzlELENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDbEQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQzthQUM3RCxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxLQUFhO1FBQ3JDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFlBQVksR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0QsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3hDLE1BQU0sTUFBTSxHQUFHLHFCQUFxQixDQUFDO1FBRXJDLE9BQU87WUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7WUFDN0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO1NBQzlCLENBQUM7SUFDTixDQUFDOzs2R0F6RlEsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsNExBR1Isa0JBQWtCLDZCQzlCdkMscUtBR0E7MkZEd0JhLGdCQUFnQjtrQkFYNUIsU0FBUzsrQkFDSSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSyxRQUNwQjt3QkFDRixPQUFPLEVBQUUsb0JBQW9CO3FCQUNoQzt3R0FLb0MsS0FBSztzQkFBekMsZUFBZTt1QkFBQyxrQkFBa0I7Z0JBRzFCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBWUYsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmJMb2NhbGl6ZVRlbXBsYXRlfSBmcm9tICcuLi9sb2NhbGl6ZS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1sb2NhbGl6ZS1zdHJpbmcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sb2NhbGl6ZS1zdHJpbmcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xvY2FsaXplLXN0cmluZy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmItbG9jYWxpemUtc3RyaW5nJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQmJMb2NhbGl6ZVN0cmluZyBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBDb250ZW50IGNoaWxkcmVuLlxuICAgIEBDb250ZW50Q2hpbGRyZW4oQmJMb2NhbGl6ZVRlbXBsYXRlKSBpdGVtcz86IFF1ZXJ5TGlzdDxCYkxvY2FsaXplVGVtcGxhdGU+O1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgpIHN1YnN0aXR1dGlvbnM6IFtzdHJpbmcsIHN0cmluZ10gPSBbJ1snLCAnXSddO1xuXG4gICAgLy8gRGF0YS5cbiAgICBjb21wb25lbnRzOiAoc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PilbXSA9IFtdO1xuXG4gICAgLy8gU3Vic2NyaXB0aW9ucy5cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvLyBTdGF0ZS5cbiAgICBwcml2YXRlIF92YWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnJldmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICBnZXQgdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLm9ic2VydmVJdGVtQ2hhbmdlcygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlSXRlbUNoYW5nZXMoKSB7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuaXRlbXMuY2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKDApXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmV2YWxpZGF0ZSgpKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHN1YnNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXZhbGlkYXRlKCkge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuaXRlbXM/LnRvQXJyYXkoKSA/PyBbXTtcbiAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldENvbXBvbmVudHMoaXRlbXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q29tcG9uZW50cyhpdGVtczogQmJMb2NhbGl6ZVRlbXBsYXRlW10pIHtcbiAgICAgICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gdGhpcy5zdWJzdGl0dXRpb25zO1xuXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IGl0ZW1zLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRlbXBsYXRlID0gY3VycmVudD8udGVtcGxhdGVSZWYgPz8gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBjdXJyZW50Py5uYW1lID8/IG51bGw7XG4gICAgICAgICAgICBpZiAoIXRlbXBsYXRlIHx8ICFuYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gey4uLnByZXZpb3VzLCBbYCR7c3RhcnR9JHtuYW1lfSR7ZW5kfWBdOiB0ZW1wbGF0ZX07XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICB0aGlzLmNvbXBvbmVudHMgPSB0aGlzLmdldFN0cmluZ0NvbXBvbmVudHModGhpcy5fdmFsdWUpXG4gICAgICAgICAgICAubWFwKGNvbXBvbmVudCA9PiB0ZW1wbGF0ZXM/Lltjb21wb25lbnRdID8/IGNvbXBvbmVudCA/PyBudWxsKVxuICAgICAgICAgICAgLmZpbHRlcihpdGVtID0+ICEhaXRlbSk7XG5cbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0aW9uLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFN0cmluZ0NvbXBvbmVudHModmFsdWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB0aGlzLmdldFN1YnN0aXR1dGlvbnMoKTtcbiAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGAoJHtzdGFydH1bYS16QS1aXSske2VuZH0pYCwgJ2cnKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnNwbGl0KHJlZ2V4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFN1YnN0aXR1dGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IHRoaXMuc3Vic3RpdHV0aW9ucztcbiAgICAgICAgY29uc3QgZXNjYXBlID0gL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdGFydC5yZXBsYWNlKGVzY2FwZSwgJ1xcXFwkJicpLFxuICAgICAgICAgICAgZW5kLnJlcGxhY2UoZXNjYXBlLCAnXFxcXCQmJylcbiAgICAgICAgXTtcbiAgICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbXBvbmVudCBvZiBjb21wb25lbnRzXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtiYkxvY2FsaXplVGVtcGxhdGVPclN0cmluZ109XCJjb21wb25lbnRcIj57eyBjb21wb25lbnQgfX08L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -15,9 +15,9 @@ export class BbLocalizeTemplateOrString {
15
15
  this._viewContainerRef.createEmbeddedView(template);
16
16
  }
17
17
  }
18
- BbLocalizeTemplateOrString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbLocalizeTemplateOrString, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
19
- BbLocalizeTemplateOrString.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.11", type: BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: { bbLocalizeTemplateOrString: "bbLocalizeTemplateOrString" }, ngImport: i0 });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbLocalizeTemplateOrString, decorators: [{
18
+ BbLocalizeTemplateOrString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbLocalizeTemplateOrString, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
19
+ BbLocalizeTemplateOrString.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.0", type: BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: { bbLocalizeTemplateOrString: "bbLocalizeTemplateOrString" }, ngImport: i0 });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbLocalizeTemplateOrString, decorators: [{
21
21
  type: Directive,
22
22
  args: [{
23
23
  selector: '[bbLocalizeTemplateOrString]'
@@ -25,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImpo
25
25
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { bbLocalizeTemplateOrString: [{
26
26
  type: Input
27
27
  }] } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUtdGVtcGxhdGUtb3Itc3RyaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi92aWV3cy9sb2NhbGl6ZS10ZW1wbGF0ZS1vci1zdHJpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBbUIsTUFBTSxlQUFlLENBQUM7O0FBSzlFLE1BQU0sT0FBTywwQkFBMEI7SUFhbkMsWUFBb0IsWUFBOEIsRUFDOUIsaUJBQW1DO1FBRG5DLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO0lBQ3ZELENBQUM7SUFiRCxJQUFhLDBCQUEwQixDQUFDLE9BQWtDO1FBQ3RFLG9CQUFvQjtRQUNwQixNQUFNLFFBQVEsR0FBRyxPQUFPLFlBQVksV0FBVztZQUMzQyxDQUFDLENBQUMsT0FBTztZQUNULENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXhCLG9EQUFvRDtRQUNwRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hELENBQUM7O3dIQVhRLDBCQUEwQjs0R0FBMUIsMEJBQTBCOzRGQUExQiwwQkFBMEI7a0JBSHRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDhCQUE4QjtpQkFDM0M7aUlBR2dCLDBCQUEwQjtzQkFBdEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tiYkxvY2FsaXplVGVtcGxhdGVPclN0cmluZ10nXG59KVxuZXhwb3J0IGNsYXNzIEJiTG9jYWxpemVUZW1wbGF0ZU9yU3RyaW5nIHtcblxuICAgIEBJbnB1dCgpIHNldCBiYkxvY2FsaXplVGVtcGxhdGVPclN0cmluZyhjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIC8vIEdldCB0aGUgdGVtcGxhdGUuXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlID0gY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmXG4gICAgICAgICAgICA/IGNvbnRlbnRcbiAgICAgICAgICAgIDogdGhpcy5fdGVtcGxhdGVSZWY7XG5cbiAgICAgICAgLy8gQ2xlYXIgdGhlIHZpZXcgY29udGFpbmVyIHJlZiBhbmQgY3JlYXRlIHRoZSB2aWV3LlxuICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF90ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgfVxuXG59XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUtdGVtcGxhdGUtb3Itc3RyaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi92aWV3cy9sb2NhbGl6ZS10ZW1wbGF0ZS1vci1zdHJpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBbUIsTUFBTSxlQUFlLENBQUM7O0FBSzlFLE1BQU0sT0FBTywwQkFBMEI7SUFhbkMsWUFBb0IsWUFBOEIsRUFDOUIsaUJBQW1DO1FBRG5DLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO0lBQ3ZELENBQUM7SUFiRCxJQUFhLDBCQUEwQixDQUFDLE9BQWtDO1FBQ3RFLG9CQUFvQjtRQUNwQixNQUFNLFFBQVEsR0FBRyxPQUFPLFlBQVksV0FBVztZQUMzQyxDQUFDLENBQUMsT0FBTztZQUNULENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXhCLG9EQUFvRDtRQUNwRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hELENBQUM7O3VIQVhRLDBCQUEwQjsyR0FBMUIsMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBSHRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDhCQUE4QjtpQkFDM0M7aUlBR2dCLDBCQUEwQjtzQkFBdEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tiYkxvY2FsaXplVGVtcGxhdGVPclN0cmluZ10nXG59KVxuZXhwb3J0IGNsYXNzIEJiTG9jYWxpemVUZW1wbGF0ZU9yU3RyaW5nIHtcblxuICAgIEBJbnB1dCgpIHNldCBiYkxvY2FsaXplVGVtcGxhdGVPclN0cmluZyhjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIC8vIEdldCB0aGUgdGVtcGxhdGUuXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlID0gY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmXG4gICAgICAgICAgICA/IGNvbnRlbnRcbiAgICAgICAgICAgIDogdGhpcy5fdGVtcGxhdGVSZWY7XG5cbiAgICAgICAgLy8gQ2xlYXIgdGhlIHZpZXcgY29udGFpbmVyIHJlZiBhbmQgY3JlYXRlIHRoZSB2aWV3LlxuICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF90ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgfVxuXG59XG4iXX0=
@@ -7,9 +7,9 @@ export class BbLocalizeTemplate {
7
7
  this.name = null;
8
8
  }
9
9
  }
10
- BbLocalizeTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbLocalizeTemplate, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
11
- BbLocalizeTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.11", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: { name: ["bbLocalizeTemplate", "name"] }, ngImport: i0 });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: BbLocalizeTemplate, decorators: [{
10
+ BbLocalizeTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbLocalizeTemplate, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
11
+ BbLocalizeTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.0", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: { name: ["bbLocalizeTemplate", "name"] }, ngImport: i0 });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbLocalizeTemplate, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: '[bbLocalizeTemplate]'
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImpo
18
18
  type: Input,
19
19
  args: ['bbLocalizeTemplate']
20
20
  }] } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUtdGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL3ZpZXdzL2xvY2FsaXplLXRlbXBsYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBYyxNQUFNLGVBQWUsQ0FBQzs7QUFLNUQsTUFBTSxPQUFPLGtCQUFrQjtJQUszQixZQUFtQixXQUE2QjtRQUE3QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFIaEQsVUFBVTtRQUNtQixTQUFJLEdBQWtCLElBQUksQ0FBQztJQUd4RCxDQUFDOztnSEFOUSxrQkFBa0I7b0dBQWxCLGtCQUFrQjs0RkFBbEIsa0JBQWtCO2tCQUg5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7aUJBQ25DO2tHQUlnQyxJQUFJO3NCQUFoQyxLQUFLO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tiYkxvY2FsaXplVGVtcGxhdGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBCYkxvY2FsaXplVGVtcGxhdGUge1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgnYmJMb2NhbGl6ZVRlbXBsYXRlJykgbmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB9XG5cbn1cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUtdGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL3ZpZXdzL2xvY2FsaXplLXRlbXBsYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBYyxNQUFNLGVBQWUsQ0FBQzs7QUFLNUQsTUFBTSxPQUFPLGtCQUFrQjtJQUszQixZQUFtQixXQUE2QjtRQUE3QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFIaEQsVUFBVTtRQUNtQixTQUFJLEdBQWtCLElBQUksQ0FBQztJQUd4RCxDQUFDOzsrR0FOUSxrQkFBa0I7bUdBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUg5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7aUJBQ25DO2tHQUlnQyxJQUFJO3NCQUFoQyxLQUFLO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tiYkxvY2FsaXplVGVtcGxhdGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBCYkxvY2FsaXplVGVtcGxhdGUge1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgnYmJMb2NhbGl6ZVRlbXBsYXRlJykgbmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,100 @@
1
+ import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@bravobit/bb-foundation";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@bravobit/bb-foundation/localize";
6
+ export class BbNotificationsItem {
7
+ constructor(_zone, _platform, _changeDetection) {
8
+ this._zone = _zone;
9
+ this._platform = _platform;
10
+ this._changeDetection = _changeDetection;
11
+ // Data.
12
+ this._progress = 0;
13
+ this._count = 0;
14
+ // Data.
15
+ this._radius = 19;
16
+ this._circumference = this._radius * 2 * Math.PI;
17
+ this.callActionAndDestroy = (notification, action) => {
18
+ // Perform the callback (if it exists).
19
+ action && action.callback && action.callback();
20
+ // Call the destroy method (if it exists).
21
+ notification && notification.destroy && notification.destroy();
22
+ };
23
+ this.instance = () => {
24
+ // Calculate the difference.
25
+ this._difference = (Date.now() - this._startTime) - (this._count * this._speed);
26
+ // Add up the count.
27
+ if (this._count++ === this._steps) {
28
+ this.notification.destroy();
29
+ }
30
+ // Add the steps to the progress.
31
+ this._progress += 100 / this._steps;
32
+ // Set a new timer.
33
+ this._timer = this.setTimeout(this.instance, this._speed - this._difference);
34
+ // Run a new change detection cycle.
35
+ this._zone.run(() => this._changeDetection.detectChanges());
36
+ };
37
+ this.setTimeout = (method, timeout) => {
38
+ // Check if the window and method exist.
39
+ if (!window || !window.setTimeout) {
40
+ return null;
41
+ }
42
+ return window.setTimeout(method, timeout);
43
+ };
44
+ }
45
+ get getClass() {
46
+ return `bb-notifications-item ${this.notification.type}`;
47
+ }
48
+ get progressStrokeArray() {
49
+ const value = Math.floor(this._circumference);
50
+ return `${value}, ${value}`;
51
+ }
52
+ get progressStrokeOffset() {
53
+ return Math.floor(this._circumference - this._progress / 100 * this._circumference);
54
+ }
55
+ get isContentString() {
56
+ return typeof this.notification.content === 'string';
57
+ }
58
+ ngOnInit() {
59
+ // Check if the notification timeout is not 0 and the platform is a browser.
60
+ if (this.notification.timeout <= 0 || !this._platform.isBrowser) {
61
+ this.notification.dismiss = true;
62
+ return;
63
+ }
64
+ // Start the timeout.
65
+ this.startTimeout();
66
+ }
67
+ ngOnDestroy() {
68
+ // Clear the timeout if it was set.
69
+ this._timer && window && window.clearTimeout && window.clearTimeout(this._timer);
70
+ }
71
+ startTimeout() {
72
+ // Calculate the steps of the timeout.
73
+ this._steps = this.notification.timeout / 10;
74
+ // Calculate the speed of the timeout.
75
+ this._speed = this.notification.timeout / this._steps;
76
+ // Get the start time.
77
+ this._startTime = Date.now();
78
+ // Set a new timer outside of Angular.
79
+ this._zone.runOutsideAngular(() => this._timer = this.setTimeout(this.instance, this._speed));
80
+ }
81
+ }
82
+ BbNotificationsItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbNotificationsItem, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
83
+ BbNotificationsItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: BbNotificationsItem, selector: "bb-notifications-item", inputs: { notification: "notification", dismissButtonText: "dismissButtonText" }, host: { attributes: { "role": "alert" }, properties: { "class": "this.getClass" } }, viewQueries: [{ propertyName: "progressElementRef", first: true, predicate: ["progress"], descendants: true }], ngImport: i0, template: "<div class=\"notification-content-wrapper\">\n <!--\n The icon for the notification.\n\n The icon is reflected by the type of the\n notification. Same goes for the color and\n background-color.\n -->\n <div [style.color]=\"notification?.color\"\n [style.background-color]=\"notification?.backgroundColor\"\n class=\"notification-icon-wrapper\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 19.5\"\n class=\"notification-icon\">\n <path\n d=\"M8 19.5c1.1 0 2-.9 2-2H6c0 1.1.9 2 2 2zM14 13.5v-5c0-3.1-1.6-5.6-4.5-6.3v-.7C9.5.7 8.8 0 8 0S6.5.7 6.5 1.5v.7C3.6 2.9 2 5.4 2 8.5v5l-2 2v1h16v-1l-2-2z\">\n </path>\n </svg>\n\n <!--\n The circular progress for the notification.\n\n The progress is only visible when a timeout is\n set. The progress adapts to the time remaining\n for the notification.\n -->\n <svg *ngIf=\"notification?.timeout > 0\"\n class=\"notification-progress-ring\"\n viewBox=\"0 0 40 40\"\n role=\"progressbar\">\n <circle #progress\n [attr.stroke-dasharray]=\"progressStrokeArray\"\n [attr.stroke-dashoffset]=\"progressStrokeOffset\"\n [style.stroke]=\"notification?.color\"\n class=\"notification-progress-circle\"\n stroke-width=\"2\"\n fill=\"transparent\"\n r=\"19\"\n cx=\"20\"\n cy=\"20\">\n </circle>\n </svg>\n </div>\n\n <!--\n The content for the notification.\n\n This displays a string or a template based\n on the given parameter by the user.\n -->\n <div class=\"notification-content\">\n <ng-container *ngIf=\"isContentString; else templateContent\"\n [ngSwitch]=\"notification?.localize\">\n <ng-container *ngSwitchCase=\"true\">\n {{ $any(notification?.content) | bbLocalize:{data: notification?.data} }}\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{ notification?.content }}\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<!--\n The actions of the notification.\n\n All actions are displayed here and are\n based on the actions array the user provided.\n-->\n<div *ngIf=\"notification?.actions?.length > 0 || notification?.dismiss\"\n class=\"notification-actions\">\n <button *ngFor=\"let action of notification?.actions\"\n (click)=\"callActionAndDestroy(notification, action)\"\n type=\"button\"\n [class.destructive]=\"action?.type === 'cancel'\"\n class=\"notification-actions-button\">\n <span [ngSwitch]=\"notification?.localize\"\n class=\"notification-actions-button-highlight\">\n <ng-container *ngSwitchCase=\"true\">\n {{ action?.title | bbLocalize:{data: notification?.data} }}\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{ action?.title }}\n </ng-container>\n </span>\n </button>\n <button *ngIf=\"notification?.dismiss\"\n (click)=\"notification?.destroy()\"\n class=\"notification-actions-button destructive\"\n type=\"button\">\n <span class=\"notification-actions-button-highlight\">\n {{ notification?.dismissText || dismissButtonText }}\n </span>\n </button>\n</div>\n\n<!--\n The outlet for the notification content template ref.\n-->\n<ng-template #templateContent>\n <ng-container *ngTemplateOutlet=\"$any(notification?.content)\"></ng-container>\n</ng-template>\n", styles: [".bb-notifications-item{display:flex;border-radius:4px;flex-direction:column;background-color:#fff;border:1px solid #d6dbe0}.bb-notifications-item.success .notification-icon-wrapper{color:#2dc05d;background-color:#ebfaf0}.bb-notifications-item.success .notification-progress-circle{stroke:#36d068}.bb-notifications-item.error .notification-icon-wrapper{color:#f43e3e;background-color:#feeeee}.bb-notifications-item.error .notification-progress-circle{stroke:#f55656}.bb-notifications-item.warning .notification-icon-wrapper{color:#f1ae00;background-color:#fff8e7}.bb-notifications-item.warning .notification-progress-circle{stroke:#ffbc0b}.bb-notifications-item.info .notification-icon-wrapper{color:#099bf6;background-color:#e9f6fe}.bb-notifications-item.info .notification-progress-circle{stroke:#22a5f7}.bb-notifications-item.custom .notification-icon-wrapper{color:#657385;background-color:#f3f5f6}.bb-notifications-item.custom .notification-progress-circle{stroke:#657385}.notification-content-wrapper{padding:20px;display:flex;align-items:center}.notification-icon-wrapper{width:40px;height:40px;display:flex;-webkit-user-select:none;user-select:none;position:relative;border-radius:50%;align-items:center;justify-content:center;color:#657385;background-color:#f3f5f6}.notification-icon{width:100%;height:100%;padding:10px;fill:currentColor}.notification-content{flex:1;font-size:14px;line-height:1.5;font-weight:500;margin-left:20px;color:#000000d9}.notification-content i{font-style:italic}.notification-content,.notification-actions-button{font-family:inherit}.notification-actions{display:flex;margin:0 20px;-webkit-user-select:none;user-select:none;border-top:1px solid #f3f5f6}.notification-actions-button{flex:1;border:none;color:#22a5f7;cursor:pointer;font-size:14px;font-weight:500;padding:12px 2px;text-align:center;background-color:transparent}.notification-actions-button:hover>.notification-actions-button-highlight,.notification-actions-button:focus>.notification-actions-button-highlight{background-color:#22a5f71a}.notification-actions-button:active>.notification-actions-button-highlight{background-color:#22a5f733}.notification-actions-button.destructive{color:#f55656}.notification-actions-button.destructive:hover>.notification-actions-button-highlight,.notification-actions-button.destructive:focus>.notification-actions-button-highlight{background-color:#f556561a}.notification-actions-button.destructive:active>.notification-actions-button-highlight{background-color:#f5565633}.notification-actions-button-highlight{padding:4px 12px;border-radius:12px;display:inline-flex;transition:background-color .15s cubic-bezier(0,0,.2,1)}.notification-progress-ring{top:0;left:0;right:0;bottom:0;width:100%;height:100%;position:absolute}.notification-progress-circle{transform:rotate(-90deg);transform-origin:50% 50%;stroke:#657385}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "bbLocalize": i3.BbLocalize }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbNotificationsItem, decorators: [{
85
+ type: Component,
86
+ args: [{ selector: 'bb-notifications-item', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
87
+ 'role': 'alert'
88
+ }, template: "<div class=\"notification-content-wrapper\">\n <!--\n The icon for the notification.\n\n The icon is reflected by the type of the\n notification. Same goes for the color and\n background-color.\n -->\n <div [style.color]=\"notification?.color\"\n [style.background-color]=\"notification?.backgroundColor\"\n class=\"notification-icon-wrapper\">\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 19.5\"\n class=\"notification-icon\">\n <path\n d=\"M8 19.5c1.1 0 2-.9 2-2H6c0 1.1.9 2 2 2zM14 13.5v-5c0-3.1-1.6-5.6-4.5-6.3v-.7C9.5.7 8.8 0 8 0S6.5.7 6.5 1.5v.7C3.6 2.9 2 5.4 2 8.5v5l-2 2v1h16v-1l-2-2z\">\n </path>\n </svg>\n\n <!--\n The circular progress for the notification.\n\n The progress is only visible when a timeout is\n set. The progress adapts to the time remaining\n for the notification.\n -->\n <svg *ngIf=\"notification?.timeout > 0\"\n class=\"notification-progress-ring\"\n viewBox=\"0 0 40 40\"\n role=\"progressbar\">\n <circle #progress\n [attr.stroke-dasharray]=\"progressStrokeArray\"\n [attr.stroke-dashoffset]=\"progressStrokeOffset\"\n [style.stroke]=\"notification?.color\"\n class=\"notification-progress-circle\"\n stroke-width=\"2\"\n fill=\"transparent\"\n r=\"19\"\n cx=\"20\"\n cy=\"20\">\n </circle>\n </svg>\n </div>\n\n <!--\n The content for the notification.\n\n This displays a string or a template based\n on the given parameter by the user.\n -->\n <div class=\"notification-content\">\n <ng-container *ngIf=\"isContentString; else templateContent\"\n [ngSwitch]=\"notification?.localize\">\n <ng-container *ngSwitchCase=\"true\">\n {{ $any(notification?.content) | bbLocalize:{data: notification?.data} }}\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{ notification?.content }}\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<!--\n The actions of the notification.\n\n All actions are displayed here and are\n based on the actions array the user provided.\n-->\n<div *ngIf=\"notification?.actions?.length > 0 || notification?.dismiss\"\n class=\"notification-actions\">\n <button *ngFor=\"let action of notification?.actions\"\n (click)=\"callActionAndDestroy(notification, action)\"\n type=\"button\"\n [class.destructive]=\"action?.type === 'cancel'\"\n class=\"notification-actions-button\">\n <span [ngSwitch]=\"notification?.localize\"\n class=\"notification-actions-button-highlight\">\n <ng-container *ngSwitchCase=\"true\">\n {{ action?.title | bbLocalize:{data: notification?.data} }}\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{ action?.title }}\n </ng-container>\n </span>\n </button>\n <button *ngIf=\"notification?.dismiss\"\n (click)=\"notification?.destroy()\"\n class=\"notification-actions-button destructive\"\n type=\"button\">\n <span class=\"notification-actions-button-highlight\">\n {{ notification?.dismissText || dismissButtonText }}\n </span>\n </button>\n</div>\n\n<!--\n The outlet for the notification content template ref.\n-->\n<ng-template #templateContent>\n <ng-container *ngTemplateOutlet=\"$any(notification?.content)\"></ng-container>\n</ng-template>\n", styles: [".bb-notifications-item{display:flex;border-radius:4px;flex-direction:column;background-color:#fff;border:1px solid #d6dbe0}.bb-notifications-item.success .notification-icon-wrapper{color:#2dc05d;background-color:#ebfaf0}.bb-notifications-item.success .notification-progress-circle{stroke:#36d068}.bb-notifications-item.error .notification-icon-wrapper{color:#f43e3e;background-color:#feeeee}.bb-notifications-item.error .notification-progress-circle{stroke:#f55656}.bb-notifications-item.warning .notification-icon-wrapper{color:#f1ae00;background-color:#fff8e7}.bb-notifications-item.warning .notification-progress-circle{stroke:#ffbc0b}.bb-notifications-item.info .notification-icon-wrapper{color:#099bf6;background-color:#e9f6fe}.bb-notifications-item.info .notification-progress-circle{stroke:#22a5f7}.bb-notifications-item.custom .notification-icon-wrapper{color:#657385;background-color:#f3f5f6}.bb-notifications-item.custom .notification-progress-circle{stroke:#657385}.notification-content-wrapper{padding:20px;display:flex;align-items:center}.notification-icon-wrapper{width:40px;height:40px;display:flex;-webkit-user-select:none;user-select:none;position:relative;border-radius:50%;align-items:center;justify-content:center;color:#657385;background-color:#f3f5f6}.notification-icon{width:100%;height:100%;padding:10px;fill:currentColor}.notification-content{flex:1;font-size:14px;line-height:1.5;font-weight:500;margin-left:20px;color:#000000d9}.notification-content i{font-style:italic}.notification-content,.notification-actions-button{font-family:inherit}.notification-actions{display:flex;margin:0 20px;-webkit-user-select:none;user-select:none;border-top:1px solid #f3f5f6}.notification-actions-button{flex:1;border:none;color:#22a5f7;cursor:pointer;font-size:14px;font-weight:500;padding:12px 2px;text-align:center;background-color:transparent}.notification-actions-button:hover>.notification-actions-button-highlight,.notification-actions-button:focus>.notification-actions-button-highlight{background-color:#22a5f71a}.notification-actions-button:active>.notification-actions-button-highlight{background-color:#22a5f733}.notification-actions-button.destructive{color:#f55656}.notification-actions-button.destructive:hover>.notification-actions-button-highlight,.notification-actions-button.destructive:focus>.notification-actions-button-highlight{background-color:#f556561a}.notification-actions-button.destructive:active>.notification-actions-button-highlight{background-color:#f5565633}.notification-actions-button-highlight{padding:4px 12px;border-radius:12px;display:inline-flex;transition:background-color .15s cubic-bezier(0,0,.2,1)}.notification-progress-ring{top:0;left:0;right:0;bottom:0;width:100%;height:100%;position:absolute}.notification-progress-circle{transform:rotate(-90deg);transform-origin:50% 50%;stroke:#657385}\n"] }]
89
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { notification: [{
90
+ type: Input
91
+ }], dismissButtonText: [{
92
+ type: Input
93
+ }], progressElementRef: [{
94
+ type: ViewChild,
95
+ args: ['progress']
96
+ }], getClass: [{
97
+ type: HostBinding,
98
+ args: ['class']
99
+ }] } });
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbm90aWZpY2F0aW9ucy9zcmMvbGliL25vdGlmaWNhdGlvbnMtaXRlbS9ub3RpZmljYXRpb25zLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9ub3RpZmljYXRpb25zL3NyYy9saWIvbm90aWZpY2F0aW9ucy1pdGVtL25vdGlmaWNhdGlvbnMtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUlMLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBZXZCLE1BQU0sT0FBTyxtQkFBbUI7SUE0QjVCLFlBQW9CLEtBQWEsRUFDYixTQUFtQixFQUNuQixnQkFBbUM7UUFGbkMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQXJCdkQsUUFBUTtRQUNBLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBU25CLFFBQVE7UUFDUyxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsbUJBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBd0M3RCx5QkFBb0IsR0FBRyxDQUFDLFlBQTBCLEVBQUUsTUFBMEIsRUFBRSxFQUFFO1lBQzlFLHVDQUF1QztZQUN2QyxNQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFL0MsMENBQTBDO1lBQzFDLFlBQVksSUFBSSxZQUFZLENBQUMsT0FBTyxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuRSxDQUFDLENBQUM7UUFnQk0sYUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNwQiw0QkFBNEI7WUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVoRixvQkFBb0I7WUFDcEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUMvQjtZQUVELGlDQUFpQztZQUNqQyxJQUFJLENBQUMsU0FBUyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBRXBDLG1CQUFtQjtZQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUU3RSxvQ0FBb0M7WUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQyxDQUFDO1FBRU0sZUFBVSxHQUFHLENBQUMsTUFBa0IsRUFBRSxPQUFlLEVBQUUsRUFBRTtZQUN6RCx3Q0FBd0M7WUFDeEMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7Z0JBQy9CLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFFRCxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQztJQS9FRixDQUFDO0lBUEQsSUFBMEIsUUFBUTtRQUM5QixPQUFPLHlCQUF5QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdELENBQUM7SUFPRCxJQUFJLG1CQUFtQjtRQUNuQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM5QyxPQUFPLEdBQUcsS0FBSyxLQUFLLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELElBQUksZUFBZTtRQUNmLE9BQU8sT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUM7SUFDekQsQ0FBQztJQUVELFFBQVE7UUFDSiw0RUFBNEU7UUFDNUUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRTtZQUM3RCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDakMsT0FBTztTQUNWO1FBRUQscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNQLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFVTyxZQUFZO1FBQ2hCLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUU3QyxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRXRELHNCQUFzQjtRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU3QixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDOztnSEFsRlEsbUJBQW1CO29HQUFuQixtQkFBbUIsb1ZDM0JoQywweUhBc0dBOzJGRDNFYSxtQkFBbUI7a0JBWC9CLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLHVCQUNoQixLQUFLLFFBQ3BCO3dCQUNGLE1BQU0sRUFBRSxPQUFPO3FCQUNsQjtvSkFLUSxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHaUIsa0JBQWtCO3NCQUF4QyxTQUFTO3VCQUFDLFVBQVU7Z0JBaUJLLFFBQVE7c0JBQWpDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOb3RpZmljYXRpb24sIE5vdGlmaWNhdGlvbkFjdGlvbn0gZnJvbSAnLi4vbm90aWZpY2F0aW9ucy5pbnRlcmZhY2VzJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1ub3RpZmljYXRpb25zLWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb25zLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbnMtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgaG9zdDoge1xuICAgICAgICAncm9sZSc6ICdhbGVydCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEJiTm90aWZpY2F0aW9uc0l0ZW0gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyBJbnB1dHMuXG4gICAgQElucHV0KCkgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb247XG4gICAgQElucHV0KCkgZGlzbWlzc0J1dHRvblRleHQ6IHN0cmluZyB8IG51bGw7XG5cbiAgICAvLyBFbGVtZW50cy5cbiAgICBAVmlld0NoaWxkKCdwcm9ncmVzcycpIHByb2dyZXNzRWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICAgIC8vIERhdGEuXG4gICAgcHJpdmF0ZSBfcHJvZ3Jlc3MgPSAwO1xuICAgIHByaXZhdGUgX2NvdW50ID0gMDtcblxuICAgIC8vIEhlbHBlciB2YXJpYWJsZXMuXG4gICAgcHJpdmF0ZSBfc3RlcHM6IG51bWJlcjtcbiAgICBwcml2YXRlIF9zcGVlZDogbnVtYmVyO1xuICAgIHByaXZhdGUgX3RpbWVyOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfc3RhcnRUaW1lOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfZGlmZmVyZW5jZTogbnVtYmVyO1xuXG4gICAgLy8gRGF0YS5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yYWRpdXMgPSAxOTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jaXJjdW1mZXJlbmNlID0gdGhpcy5fcmFkaXVzICogMiAqIE1hdGguUEk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGdldENsYXNzKCkge1xuICAgICAgICByZXR1cm4gYGJiLW5vdGlmaWNhdGlvbnMtaXRlbSAke3RoaXMubm90aWZpY2F0aW9uLnR5cGV9YDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF96b25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB9XG5cbiAgICBnZXQgcHJvZ3Jlc3NTdHJva2VBcnJheSgpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBNYXRoLmZsb29yKHRoaXMuX2NpcmN1bWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gYCR7dmFsdWV9LCAke3ZhbHVlfWA7XG4gICAgfVxuXG4gICAgZ2V0IHByb2dyZXNzU3Ryb2tlT2Zmc2V0KCkge1xuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcih0aGlzLl9jaXJjdW1mZXJlbmNlIC0gdGhpcy5fcHJvZ3Jlc3MgLyAxMDAgKiB0aGlzLl9jaXJjdW1mZXJlbmNlKTtcbiAgICB9XG5cbiAgICBnZXQgaXNDb250ZW50U3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMubm90aWZpY2F0aW9uLmNvbnRlbnQgPT09ICdzdHJpbmcnO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgbm90aWZpY2F0aW9uIHRpbWVvdXQgaXMgbm90IDAgYW5kIHRoZSBwbGF0Zm9ybSBpcyBhIGJyb3dzZXIuXG4gICAgICAgIGlmICh0aGlzLm5vdGlmaWNhdGlvbi50aW1lb3V0IDw9IDAgfHwgIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uZGlzbWlzcyA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTdGFydCB0aGUgdGltZW91dC5cbiAgICAgICAgdGhpcy5zdGFydFRpbWVvdXQoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gQ2xlYXIgdGhlIHRpbWVvdXQgaWYgaXQgd2FzIHNldC5cbiAgICAgICAgdGhpcy5fdGltZXIgJiYgd2luZG93ICYmIHdpbmRvdy5jbGVhclRpbWVvdXQgJiYgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLl90aW1lcik7XG4gICAgfVxuXG4gICAgY2FsbEFjdGlvbkFuZERlc3Ryb3kgPSAobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24sIGFjdGlvbjogTm90aWZpY2F0aW9uQWN0aW9uKSA9PiB7XG4gICAgICAgIC8vIFBlcmZvcm0gdGhlIGNhbGxiYWNrIChpZiBpdCBleGlzdHMpLlxuICAgICAgICBhY3Rpb24gJiYgYWN0aW9uLmNhbGxiYWNrICYmIGFjdGlvbi5jYWxsYmFjaygpO1xuXG4gICAgICAgIC8vIENhbGwgdGhlIGRlc3Ryb3kgbWV0aG9kIChpZiBpdCBleGlzdHMpLlxuICAgICAgICBub3RpZmljYXRpb24gJiYgbm90aWZpY2F0aW9uLmRlc3Ryb3kgJiYgbm90aWZpY2F0aW9uLmRlc3Ryb3koKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBzdGFydFRpbWVvdXQoKSB7XG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgc3RlcHMgb2YgdGhlIHRpbWVvdXQuXG4gICAgICAgIHRoaXMuX3N0ZXBzID0gdGhpcy5ub3RpZmljYXRpb24udGltZW91dCAvIDEwO1xuXG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgc3BlZWQgb2YgdGhlIHRpbWVvdXQuXG4gICAgICAgIHRoaXMuX3NwZWVkID0gdGhpcy5ub3RpZmljYXRpb24udGltZW91dCAvIHRoaXMuX3N0ZXBzO1xuXG4gICAgICAgIC8vIEdldCB0aGUgc3RhcnQgdGltZS5cbiAgICAgICAgdGhpcy5fc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcblxuICAgICAgICAvLyBTZXQgYSBuZXcgdGltZXIgb3V0c2lkZSBvZiBBbmd1bGFyLlxuICAgICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuX3RpbWVyID0gdGhpcy5zZXRUaW1lb3V0KHRoaXMuaW5zdGFuY2UsIHRoaXMuX3NwZWVkKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbnN0YW5jZSA9ICgpID0+IHtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBkaWZmZXJlbmNlLlxuICAgICAgICB0aGlzLl9kaWZmZXJlbmNlID0gKERhdGUubm93KCkgLSB0aGlzLl9zdGFydFRpbWUpIC0gKHRoaXMuX2NvdW50ICogdGhpcy5fc3BlZWQpO1xuXG4gICAgICAgIC8vIEFkZCB1cCB0aGUgY291bnQuXG4gICAgICAgIGlmICh0aGlzLl9jb3VudCsrID09PSB0aGlzLl9zdGVwcykge1xuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uZGVzdHJveSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWRkIHRoZSBzdGVwcyB0byB0aGUgcHJvZ3Jlc3MuXG4gICAgICAgIHRoaXMuX3Byb2dyZXNzICs9IDEwMCAvIHRoaXMuX3N0ZXBzO1xuXG4gICAgICAgIC8vIFNldCBhIG5ldyB0aW1lci5cbiAgICAgICAgdGhpcy5fdGltZXIgPSB0aGlzLnNldFRpbWVvdXQodGhpcy5pbnN0YW5jZSwgdGhpcy5fc3BlZWQgLSB0aGlzLl9kaWZmZXJlbmNlKTtcblxuICAgICAgICAvLyBSdW4gYSBuZXcgY2hhbmdlIGRldGVjdGlvbiBjeWNsZS5cbiAgICAgICAgdGhpcy5fem9uZS5ydW4oKCkgPT4gdGhpcy5fY2hhbmdlRGV0ZWN0aW9uLmRldGVjdENoYW5nZXMoKSk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgc2V0VGltZW91dCA9IChtZXRob2Q6ICgpID0+IHZvaWQsIHRpbWVvdXQ6IG51bWJlcikgPT4ge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgd2luZG93IGFuZCBtZXRob2QgZXhpc3QuXG4gICAgICAgIGlmICghd2luZG93IHx8ICF3aW5kb3cuc2V0VGltZW91dCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gd2luZG93LnNldFRpbWVvdXQobWV0aG9kLCB0aW1lb3V0KTtcbiAgICB9O1xuXG59XG4iLCI8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9uLWNvbnRlbnQtd3JhcHBlclwiPlxuICAgIDwhLS1cbiAgICAgICAgVGhlIGljb24gZm9yIHRoZSBub3RpZmljYXRpb24uXG5cbiAgICAgICAgVGhlIGljb24gaXMgcmVmbGVjdGVkIGJ5IHRoZSB0eXBlIG9mIHRoZVxuICAgICAgICBub3RpZmljYXRpb24uIFNhbWUgZ29lcyBmb3IgdGhlIGNvbG9yIGFuZFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yLlxuICAgIC0tPlxuICAgIDxkaXYgW3N0eWxlLmNvbG9yXT1cIm5vdGlmaWNhdGlvbj8uY29sb3JcIlxuICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwibm90aWZpY2F0aW9uPy5iYWNrZ3JvdW5kQ29sb3JcIlxuICAgICAgICAgY2xhc3M9XCJub3RpZmljYXRpb24taWNvbi13cmFwcGVyXCI+XG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxOS41XCJcbiAgICAgICAgICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbi1pY29uXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNOCAxOS41YzEuMSAwIDItLjkgMi0ySDZjMCAxLjEuOSAyIDIgMnpNMTQgMTMuNXYtNWMwLTMuMS0xLjYtNS42LTQuNS02LjN2LS43QzkuNS43IDguOCAwIDggMFM2LjUuNyA2LjUgMS41di43QzMuNiAyLjkgMiA1LjQgMiA4LjV2NWwtMiAydjFoMTZ2LTFsLTItMnpcIj5cbiAgICAgICAgICAgIDwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG5cbiAgICAgICAgPCEtLVxuICAgICAgICAgICAgVGhlIGNpcmN1bGFyIHByb2dyZXNzIGZvciB0aGUgbm90aWZpY2F0aW9uLlxuXG4gICAgICAgICAgICBUaGUgcHJvZ3Jlc3MgaXMgb25seSB2aXNpYmxlIHdoZW4gYSB0aW1lb3V0IGlzXG4gICAgICAgICAgICBzZXQuIFRoZSBwcm9ncmVzcyBhZGFwdHMgdG8gdGhlIHRpbWUgcmVtYWluaW5nXG4gICAgICAgICAgICBmb3IgdGhlIG5vdGlmaWNhdGlvbi5cbiAgICAgICAgLS0+XG4gICAgICAgIDxzdmcgKm5nSWY9XCJub3RpZmljYXRpb24/LnRpbWVvdXQgPiAwXCJcbiAgICAgICAgICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbi1wcm9ncmVzcy1yaW5nXCJcbiAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDQwIDQwXCJcbiAgICAgICAgICAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIj5cbiAgICAgICAgICAgIDxjaXJjbGUgI3Byb2dyZXNzXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZS1kYXNoYXJyYXldPVwicHJvZ3Jlc3NTdHJva2VBcnJheVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZS1kYXNob2Zmc2V0XT1cInByb2dyZXNzU3Ryb2tlT2Zmc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnN0cm9rZV09XCJub3RpZmljYXRpb24/LmNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJub3RpZmljYXRpb24tcHJvZ3Jlc3MtY2lyY2xlXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIHI9XCIxOVwiXG4gICAgICAgICAgICAgICAgICAgIGN4PVwiMjBcIlxuICAgICAgICAgICAgICAgICAgICBjeT1cIjIwXCI+XG4gICAgICAgICAgICA8L2NpcmNsZT5cbiAgICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tXG4gICAgICAgIFRoZSBjb250ZW50IGZvciB0aGUgbm90aWZpY2F0aW9uLlxuXG4gICAgICAgIFRoaXMgZGlzcGxheXMgYSBzdHJpbmcgb3IgYSB0ZW1wbGF0ZSBiYXNlZFxuICAgICAgICBvbiB0aGUgZ2l2ZW4gcGFyYW1ldGVyIGJ5IHRoZSB1c2VyLlxuICAgIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24tY29udGVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDb250ZW50U3RyaW5nOyBlbHNlIHRlbXBsYXRlQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgW25nU3dpdGNoXT1cIm5vdGlmaWNhdGlvbj8ubG9jYWxpemVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICB7eyAkYW55KG5vdGlmaWNhdGlvbj8uY29udGVudCkgfCBiYkxvY2FsaXplOntkYXRhOiBub3RpZmljYXRpb24/LmRhdGF9IH19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgICAgICAgICB7eyBub3RpZmljYXRpb24/LmNvbnRlbnQgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tXG4gICAgVGhlIGFjdGlvbnMgb2YgdGhlIG5vdGlmaWNhdGlvbi5cblxuICAgIEFsbCBhY3Rpb25zIGFyZSBkaXNwbGF5ZWQgaGVyZSBhbmQgYXJlXG4gICAgYmFzZWQgb24gdGhlIGFjdGlvbnMgYXJyYXkgdGhlIHVzZXIgcHJvdmlkZWQuXG4tLT5cbjxkaXYgKm5nSWY9XCJub3RpZmljYXRpb24/LmFjdGlvbnM/Lmxlbmd0aCA+IDAgfHwgbm90aWZpY2F0aW9uPy5kaXNtaXNzXCJcbiAgICAgY2xhc3M9XCJub3RpZmljYXRpb24tYWN0aW9uc1wiPlxuICAgIDxidXR0b24gKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBub3RpZmljYXRpb24/LmFjdGlvbnNcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNhbGxBY3Rpb25BbmREZXN0cm95KG5vdGlmaWNhdGlvbiwgYWN0aW9uKVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtjbGFzcy5kZXN0cnVjdGl2ZV09XCJhY3Rpb24/LnR5cGUgPT09ICdjYW5jZWwnXCJcbiAgICAgICAgICAgIGNsYXNzPVwibm90aWZpY2F0aW9uLWFjdGlvbnMtYnV0dG9uXCI+XG4gICAgICAgIDxzcGFuIFtuZ1N3aXRjaF09XCJub3RpZmljYXRpb24/LmxvY2FsaXplXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJub3RpZmljYXRpb24tYWN0aW9ucy1idXR0b24taGlnaGxpZ2h0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAge3sgYWN0aW9uPy50aXRsZSB8IGJiTG9jYWxpemU6e2RhdGE6IG5vdGlmaWNhdGlvbj8uZGF0YX0gfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgICAgICAgIHt7IGFjdGlvbj8udGl0bGUgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cIm5vdGlmaWNhdGlvbj8uZGlzbWlzc1wiXG4gICAgICAgICAgICAoY2xpY2spPVwibm90aWZpY2F0aW9uPy5kZXN0cm95KClcIlxuICAgICAgICAgICAgY2xhc3M9XCJub3RpZmljYXRpb24tYWN0aW9ucy1idXR0b24gZGVzdHJ1Y3RpdmVcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5vdGlmaWNhdGlvbi1hY3Rpb25zLWJ1dHRvbi1oaWdobGlnaHRcIj5cbiAgICAgICAgICAgIHt7IG5vdGlmaWNhdGlvbj8uZGlzbWlzc1RleHQgfHwgZGlzbWlzc0J1dHRvblRleHQgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjwhLS1cbiAgICBUaGUgb3V0bGV0IGZvciB0aGUgbm90aWZpY2F0aW9uIGNvbnRlbnQgdGVtcGxhdGUgcmVmLlxuLS0+XG48bmctdGVtcGxhdGUgI3RlbXBsYXRlQ29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiJGFueShub3RpZmljYXRpb24/LmNvbnRlbnQpXCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -0,0 +1,47 @@
1
+ import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';
2
+ import { notificationAnimation } from '../notifications.animations';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../notifications.interfaces";
5
+ import * as i2 from "../notifications-item/notifications-item.component";
6
+ import * as i3 from "@angular/common";
7
+ export class BbNotificationsList {
8
+ constructor(data) {
9
+ this.data = data;
10
+ // Data.
11
+ this.position = null;
12
+ // Track by function.
13
+ this.trackByFn = (_, item) => item.id;
14
+ }
15
+ get horizontalPosition() {
16
+ return this.location.horizontal;
17
+ }
18
+ get verticalPosition() {
19
+ return this.location.vertical;
20
+ }
21
+ get animation() {
22
+ const to = this.horizontalPosition === 'flex-start'
23
+ ? -50
24
+ : 50;
25
+ return { to };
26
+ }
27
+ get location() {
28
+ const [y, x] = (this.data.position || '').split('|');
29
+ return { vertical: y || null, horizontal: x || null };
30
+ }
31
+ }
32
+ BbNotificationsList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbNotificationsList, deps: [{ token: i1.NotificationsData }], target: i0.ɵɵFactoryTarget.Component });
33
+ BbNotificationsList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: BbNotificationsList, selector: "bb-notifications-list", host: { attributes: { "role": "list" }, properties: { "style.justify-content": "this.horizontalPosition", "style.align-items": "this.verticalPosition" }, classAttribute: "bb-notifications-list" }, ngImport: i0, template: "<!--\n The notifications list.\n\n The list provides the animation effect for the\n incoming notifications.\n-->\n<div *ngIf=\"data?.data | async as notifications\"\n [@notificationListAnimation]=\"{value: notifications?.length, params: animation}\"\n class=\"notifications-list-wrapper\">\n <!--\n The loop for the notifications.\n\n All notifications will be displayed here. They\n are wrapped within a wrapper which separates them.\n -->\n <div *ngFor=\"let notification of notifications; trackBy: trackByFn\"\n class=\"notifications-item-wrapper\">\n <bb-notifications-item [notification]=\"notification\"\n [dismissButtonText]=\"data?.dismissText\">\n </bb-notifications-item>\n </div>\n</div>\n", styles: [".bb-notifications-list{top:0;left:0;right:0;bottom:0;z-index:1100;padding:10px;display:flex;position:fixed;pointer-events:none}.notifications-list-wrapper{width:100%;display:block;max-width:400px;position:relative}.notifications-item-wrapper{padding:0;margin:0 0 10px;pointer-events:all}\n"], components: [{ type: i2.BbNotificationsItem, selector: "bb-notifications-item", inputs: ["notification", "dismissButtonText"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i3.AsyncPipe }, animations: [notificationAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbNotificationsList, decorators: [{
35
+ type: Component,
36
+ args: [{ selector: 'bb-notifications-list', animations: [notificationAnimation], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
37
+ 'class': 'bb-notifications-list',
38
+ 'role': 'list'
39
+ }, template: "<!--\n The notifications list.\n\n The list provides the animation effect for the\n incoming notifications.\n-->\n<div *ngIf=\"data?.data | async as notifications\"\n [@notificationListAnimation]=\"{value: notifications?.length, params: animation}\"\n class=\"notifications-list-wrapper\">\n <!--\n The loop for the notifications.\n\n All notifications will be displayed here. They\n are wrapped within a wrapper which separates them.\n -->\n <div *ngFor=\"let notification of notifications; trackBy: trackByFn\"\n class=\"notifications-item-wrapper\">\n <bb-notifications-item [notification]=\"notification\"\n [dismissButtonText]=\"data?.dismissText\">\n </bb-notifications-item>\n </div>\n</div>\n", styles: [".bb-notifications-list{top:0;left:0;right:0;bottom:0;z-index:1100;padding:10px;display:flex;position:fixed;pointer-events:none}.notifications-list-wrapper{width:100%;display:block;max-width:400px;position:relative}.notifications-item-wrapper{padding:0;margin:0 0 10px;pointer-events:all}\n"] }]
40
+ }], ctorParameters: function () { return [{ type: i1.NotificationsData }]; }, propDecorators: { horizontalPosition: [{
41
+ type: HostBinding,
42
+ args: ['style.justify-content']
43
+ }], verticalPosition: [{
44
+ type: HostBinding,
45
+ args: ['style.align-items']
46
+ }] } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbm90aWZpY2F0aW9ucy9zcmMvbGliL25vdGlmaWNhdGlvbnMtbGlzdC9ub3RpZmljYXRpb25zLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9ub3RpZmljYXRpb25zL3NyYy9saWIvbm90aWZpY2F0aW9ucy1saXN0L25vdGlmaWNhdGlvbnMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFlbEUsTUFBTSxPQUFPLG1CQUFtQjtJQVE1QixZQUFtQixJQUF1QjtRQUF2QixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQU4xQyxRQUFRO1FBQ1IsYUFBUSxHQUFpQyxJQUFJLENBQUM7UUFFOUMscUJBQXFCO1FBQ3JCLGNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBRy9DLENBQUM7SUFFRCxJQUNJLGtCQUFrQjtRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUNJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEtBQUssWUFBWTtZQUMvQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVULE9BQU8sRUFBQyxFQUFFLEVBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBWSxRQUFRO1FBQ2hCLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFckQsT0FBTyxFQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFDLENBQUM7SUFDeEQsQ0FBQzs7Z0hBakNRLG1CQUFtQjtvR0FBbkIsbUJBQW1CLGtRQ2pCaEMsb3lCQXNCQSwwcUJEZGdCLENBQUMscUJBQXFCLENBQUM7MkZBUzFCLG1CQUFtQjtrQkFiL0IsU0FBUzsrQkFDSSx1QkFBdUIsY0FHckIsQ0FBQyxxQkFBcUIsQ0FBQyxtQkFDbEIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSyxRQUNwQjt3QkFDRixPQUFPLEVBQUUsdUJBQXVCO3dCQUNoQyxNQUFNLEVBQUUsTUFBTTtxQkFDakI7d0dBY0csa0JBQWtCO3NCQURyQixXQUFXO3VCQUFDLHVCQUF1QjtnQkFNaEMsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Tm90aWZpY2F0aW9uLCBOb3RpZmljYXRpb25zRGF0YSwgTm90aWZpY2F0aW9uc1Bvc2l0aW9ufSBmcm9tICcuLi9ub3RpZmljYXRpb25zLmludGVyZmFjZXMnO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtub3RpZmljYXRpb25BbmltYXRpb259IGZyb20gJy4uL25vdGlmaWNhdGlvbnMuYW5pbWF0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmItbm90aWZpY2F0aW9ucy1saXN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9ucy1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9ub3RpZmljYXRpb25zLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBhbmltYXRpb25zOiBbbm90aWZpY2F0aW9uQW5pbWF0aW9uXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2JiLW5vdGlmaWNhdGlvbnMtbGlzdCcsXG4gICAgICAgICdyb2xlJzogJ2xpc3QnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBCYk5vdGlmaWNhdGlvbnNMaXN0IHtcblxuICAgIC8vIERhdGEuXG4gICAgcG9zaXRpb246IE5vdGlmaWNhdGlvbnNQb3NpdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8gVHJhY2sgYnkgZnVuY3Rpb24uXG4gICAgdHJhY2tCeUZuID0gKF8sIGl0ZW06IE5vdGlmaWNhdGlvbikgPT4gaXRlbS5pZDtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhOiBOb3RpZmljYXRpb25zRGF0YSkge1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuanVzdGlmeS1jb250ZW50JylcbiAgICBnZXQgaG9yaXpvbnRhbFBvc2l0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhdGlvbi5ob3Jpem9udGFsO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuYWxpZ24taXRlbXMnKVxuICAgIGdldCB2ZXJ0aWNhbFBvc2l0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhdGlvbi52ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICBnZXQgYW5pbWF0aW9uKCkge1xuICAgICAgICBjb25zdCB0byA9IHRoaXMuaG9yaXpvbnRhbFBvc2l0aW9uID09PSAnZmxleC1zdGFydCdcbiAgICAgICAgICAgID8gLTUwXG4gICAgICAgICAgICA6IDUwO1xuXG4gICAgICAgIHJldHVybiB7dG99O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGxvY2F0aW9uKCkge1xuICAgICAgICBjb25zdCBbeSwgeF0gPSAodGhpcy5kYXRhLnBvc2l0aW9uIHx8ICcnKS5zcGxpdCgnfCcpO1xuXG4gICAgICAgIHJldHVybiB7dmVydGljYWw6IHkgfHwgbnVsbCwgaG9yaXpvbnRhbDogeCB8fCBudWxsfTtcbiAgICB9XG5cbn1cbiIsIjwhLS1cbiAgICBUaGUgbm90aWZpY2F0aW9ucyBsaXN0LlxuXG4gICAgVGhlIGxpc3QgcHJvdmlkZXMgdGhlIGFuaW1hdGlvbiBlZmZlY3QgZm9yIHRoZVxuICAgIGluY29taW5nIG5vdGlmaWNhdGlvbnMuXG4tLT5cbjxkaXYgKm5nSWY9XCJkYXRhPy5kYXRhIHwgYXN5bmMgYXMgbm90aWZpY2F0aW9uc1wiXG4gICAgIFtAbm90aWZpY2F0aW9uTGlzdEFuaW1hdGlvbl09XCJ7dmFsdWU6IG5vdGlmaWNhdGlvbnM/Lmxlbmd0aCwgcGFyYW1zOiBhbmltYXRpb259XCJcbiAgICAgY2xhc3M9XCJub3RpZmljYXRpb25zLWxpc3Qtd3JhcHBlclwiPlxuICAgIDwhLS1cbiAgICAgICAgVGhlIGxvb3AgZm9yIHRoZSBub3RpZmljYXRpb25zLlxuXG4gICAgICAgIEFsbCBub3RpZmljYXRpb25zIHdpbGwgYmUgZGlzcGxheWVkIGhlcmUuIFRoZXlcbiAgICAgICAgYXJlIHdyYXBwZWQgd2l0aGluIGEgd3JhcHBlciB3aGljaCBzZXBhcmF0ZXMgdGhlbS5cbiAgICAtLT5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBub3RpZmljYXRpb24gb2Ygbm90aWZpY2F0aW9uczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICAgICAgIGNsYXNzPVwibm90aWZpY2F0aW9ucy1pdGVtLXdyYXBwZXJcIj5cbiAgICAgICAgPGJiLW5vdGlmaWNhdGlvbnMtaXRlbSBbbm90aWZpY2F0aW9uXT1cIm5vdGlmaWNhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc21pc3NCdXR0b25UZXh0XT1cImRhdGE/LmRpc21pc3NUZXh0XCI+XG4gICAgICAgIDwvYmItbm90aWZpY2F0aW9ucy1pdGVtPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -17,15 +17,14 @@ export class NotificationsModule {
17
17
  };
18
18
  }
19
19
  }
20
- NotificationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: NotificationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- NotificationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: NotificationsModule, declarations: [BbNotificationsList, BbNotificationsItem], imports: [CommonModule, LocalizeModule] });
22
- NotificationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: NotificationsModule, imports: [[CommonModule, LocalizeModule]] });
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: NotificationsModule, decorators: [{
20
+ NotificationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: NotificationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
+ NotificationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: NotificationsModule, declarations: [BbNotificationsList, BbNotificationsItem], imports: [CommonModule, LocalizeModule] });
22
+ NotificationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: NotificationsModule, imports: [[CommonModule, LocalizeModule]] });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: NotificationsModule, decorators: [{
24
24
  type: NgModule,
25
25
  args: [{
26
26
  imports: [CommonModule, LocalizeModule],
27
- declarations: [BbNotificationsList, BbNotificationsItem],
28
- entryComponents: [BbNotificationsList]
27
+ declarations: [BbNotificationsList, BbNotificationsItem]
29
28
  }]
30
29
  }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL25vdGlmaWNhdGlvbnMvc3JjL2xpYi9ub3RpZmljYXRpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUN0RixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUN0RixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFPN0MsTUFBTSxPQUFPLG1CQUFtQjtJQUU1QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQTRCO1FBQ3ZDLE9BQU87WUFDSCxRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLFNBQVMsRUFBRTtnQkFDUCxFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDO2dCQUNoRCxhQUFhO2FBQ2hCO1NBQ0osQ0FBQztJQUNOLENBQUM7O2lIQVZRLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGlCQUhiLG1CQUFtQixFQUFFLG1CQUFtQixhQUQ3QyxZQUFZLEVBQUUsY0FBYztrSEFJN0IsbUJBQW1CLFlBSm5CLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQzs0RkFJOUIsbUJBQW1CO2tCQUwvQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUM7b0JBQ3ZDLFlBQVksRUFBRSxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDO29CQUN4RCxlQUFlLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JiTm90aWZpY2F0aW9uc0xpc3R9IGZyb20gJy4vbm90aWZpY2F0aW9ucy1saXN0L25vdGlmaWNhdGlvbnMtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtCYk5vdGlmaWNhdGlvbnNJdGVtfSBmcm9tICcuL25vdGlmaWNhdGlvbnMtaXRlbS9ub3RpZmljYXRpb25zLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7TG9jYWxpemVNb2R1bGV9IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uL2xvY2FsaXplJztcbmltcG9ydCB7Tm90aWZpY2F0aW9uc0NvbmZpZ30gZnJvbSAnLi9ub3RpZmljYXRpb25zLmludGVyZmFjZXMnO1xuaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05vdGlmaWNhdGlvbnN9IGZyb20gJy4vbm90aWZpY2F0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIExvY2FsaXplTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtCYk5vdGlmaWNhdGlvbnNMaXN0LCBCYk5vdGlmaWNhdGlvbnNJdGVtXSxcbiAgICBlbnRyeUNvbXBvbmVudHM6IFtCYk5vdGlmaWNhdGlvbnNMaXN0XVxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zTW9kdWxlIHtcblxuICAgIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IE5vdGlmaWNhdGlvbnNDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5vdGlmaWNhdGlvbnNNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBOb3RpZmljYXRpb25zTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IE5vdGlmaWNhdGlvbnNDb25maWcsIHVzZVZhbHVlOiBjb25maWd9LFxuICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbnNcbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG5cbn1cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL25vdGlmaWNhdGlvbnMvc3JjL2xpYi9ub3RpZmljYXRpb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUN0RixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUN0RixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFNN0MsTUFBTSxPQUFPLG1CQUFtQjtJQUU1QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQTRCO1FBQ3ZDLE9BQU87WUFDSCxRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLFNBQVMsRUFBRTtnQkFDUCxFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDO2dCQUNoRCxhQUFhO2FBQ2hCO1NBQ0osQ0FBQztJQUNOLENBQUM7O2dIQVZRLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQUZiLG1CQUFtQixFQUFFLG1CQUFtQixhQUQ3QyxZQUFZLEVBQUUsY0FBYztpSEFHN0IsbUJBQW1CLFlBSG5CLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQzsyRkFHOUIsbUJBQW1CO2tCQUovQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUM7b0JBQ3ZDLFlBQVksRUFBRSxDQUFDLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDO2lCQUMzRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QmJOb3RpZmljYXRpb25zTGlzdH0gZnJvbSAnLi9ub3RpZmljYXRpb25zLWxpc3Qvbm90aWZpY2F0aW9ucy1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge0JiTm90aWZpY2F0aW9uc0l0ZW19IGZyb20gJy4vbm90aWZpY2F0aW9ucy1pdGVtL25vdGlmaWNhdGlvbnMtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHtMb2NhbGl6ZU1vZHVsZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vbG9jYWxpemUnO1xuaW1wb3J0IHtOb3RpZmljYXRpb25zQ29uZmlnfSBmcm9tICcuL25vdGlmaWNhdGlvbnMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge01vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Tm90aWZpY2F0aW9uc30gZnJvbSAnLi9ub3RpZmljYXRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTG9jYWxpemVNb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW0JiTm90aWZpY2F0aW9uc0xpc3QsIEJiTm90aWZpY2F0aW9uc0l0ZW1dXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNNb2R1bGUge1xuXG4gICAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogTm90aWZpY2F0aW9uc0NvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Tm90aWZpY2F0aW9uc01vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IE5vdGlmaWNhdGlvbnNNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogTm90aWZpY2F0aW9uc0NvbmZpZywgdXNlVmFsdWU6IGNvbmZpZ30sXG4gICAgICAgICAgICAgICAgTm90aWZpY2F0aW9uc1xuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cblxufVxuIl19
@@ -128,18 +128,18 @@ export class Notifications {
128
128
  // Append the element to the DOM.
129
129
  document.body.appendChild(this._ref.location.nativeElement);
130
130
  }
131
- catch (_a) {
131
+ catch {
132
132
  // Don't do anything, because it must've failed.
133
133
  }
134
134
  }
135
135
  }
136
- Notifications.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: Notifications, deps: [{ token: i0.Injector }, { token: i1.Platform }, { token: i0.ApplicationRef }, { token: i2.Localize, optional: true }, { token: i3.NotificationsConfig, optional: true }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
137
- Notifications.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: Notifications });
138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: Notifications, decorators: [{
136
+ Notifications.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Notifications, deps: [{ token: i0.Injector }, { token: i1.Platform }, { token: i0.ApplicationRef }, { token: i2.Localize, optional: true }, { token: i3.NotificationsConfig, optional: true }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
137
+ Notifications.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Notifications });
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Notifications, decorators: [{
139
139
  type: Injectable
140
140
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Platform }, { type: i0.ApplicationRef }, { type: i2.Localize, decorators: [{
141
141
  type: Optional
142
142
  }] }, { type: i3.NotificationsConfig, decorators: [{
143
143
  type: Optional
144
144
  }] }, { type: i0.ComponentFactoryResolver }]; } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9ub3RpZmljYXRpb25zL3NyYy9saWIvbm90aWZpY2F0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJSCxVQUFVLEVBRVYsUUFBUSxFQUVYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHSCxxQkFBcUIsRUFFckIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNwQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRy9ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUdyQyxNQUFNLE9BQU8sYUFBYTtJQWdCdEIsWUFBb0IsU0FBbUIsRUFDbkIsU0FBbUIsRUFDbkIsZUFBK0IsRUFDbkIsU0FBbUIsRUFDbkIsT0FBNEIsRUFDeEMseUJBQW1EO1FBTG5ELGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUN4Qyw4QkFBeUIsR0FBekIseUJBQXlCLENBQTBCO1FBUnZFLHlDQUF5QztRQUNqQyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFpQixFQUFFLENBQUMsQ0FBQztRQStJMUQsZ0JBQVcsR0FBRyxDQUFDLFFBQWEsRUFBRSxZQUFpQixFQUFFLEVBQUU7WUFDdkQsT0FBTyxPQUFPLFFBQVEsS0FBSyxXQUFXO2dCQUNsQyxD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UUFDNUIsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFN0UsbUNBQW1DO1FBQ25DLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyx5QkFBeUI7YUFDckMsdUJBQXVCLENBQUMsbUJBQW1CLENBQUM7YUFDNUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFbkMsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFNUMsaURBQWlEO1FBQ2pELGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXBELDJDQUEyQztRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUU7WUFDM0IsT0FBTztTQUNWO1FBRUQsSUFBSTtZQUNBLGlDQUFpQztZQUNqQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMvRDtRQUFDLFdBQU07WUFDSixnREFBZ0Q7U0FDbkQ7SUFDTCxDQUFDOzsyR0EzSlEsYUFBYTsrR0FBYixhQUFhOzRGQUFiLGFBQWE7a0JBRHpCLFVBQVU7OzBCQW9CTSxRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvblJlZixcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEluamVjdGFibGUsXG4gICAgSW5qZWN0b3IsXG4gICAgT3B0aW9uYWwsXG4gICAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIE5vdGlmaWNhdGlvbixcbiAgICBOb3RpZmljYXRpb25BY3Rpb24sXG4gICAgTm90aWZpY2F0aW9uc1Bvc2l0aW9uLFxuICAgIE5vdGlmaWNhdGlvbnNDb25maWcsXG4gICAgTm90aWZpY2F0aW9uVHlwZSxcbiAgICBOb3RpZmljYXRpb25zRGF0YVxufSBmcm9tICcuL25vdGlmaWNhdGlvbnMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0JiTm90aWZpY2F0aW9uc0xpc3R9IGZyb20gJy4vbm90aWZpY2F0aW9ucy1saXN0L25vdGlmaWNhdGlvbnMtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtOb3RpZmljYXRpb25zSW5qZWN0b3J9IGZyb20gJy4vbm90aWZpY2F0aW9ucy5pbmplY3Rvcic7XG5pbXBvcnQge0xvY2FsaXplfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9sb2NhbGl6ZSc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3NoYXJlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zIHtcblxuICAgIC8vIFJlZmVyZW5jZSB0byB0aGUgbGlzdC5cbiAgICBwcml2YXRlIF9yZWY6IENvbXBvbmVudFJlZjxCYk5vdGlmaWNhdGlvbnNMaXN0PjtcblxuICAgIC8vIFRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGUgbm90aWZpY2F0aW9ucy5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0TW9kZTogJ3ByZXBlbmQnIHwgJ2FwcGVuZCc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdFRpbWVvdXQ6IG51bWJlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0TG9jYWxpemU6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdERpc21pc3M6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdERpc21pc3NUZXh0OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdFBvc2l0aW9uOiBOb3RpZmljYXRpb25zUG9zaXRpb247XG5cbiAgICAvLyBUaGUgZGF0YSBjb250YWluaW5nIHRoZSBub3RpZmljYXRpb25zLlxuICAgIHByaXZhdGUgX25vdGlmaWNhdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOb3RpZmljYXRpb25bXT4oW10pO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3BsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9hcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfbG9jYWxpemU6IExvY2FsaXplLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbmZpZzogTm90aWZpY2F0aW9uc0NvbmZpZyxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xuICAgICAgICAvLyBHZXQgdGhlIGNvbmZpZy5cbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5fY29uZmlnIHx8IHt9O1xuXG4gICAgICAgIC8vIFNldCB0aGUgY29uZmlnLlxuICAgICAgICB0aGlzLl9kZWZhdWx0TW9kZSA9IHRoaXMuZ2V0UHJvcGVydHkoY29uZmlnLm1vZGUsICdwcmVwZW5kJyk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRUaW1lb3V0ID0gdGhpcy5nZXRQcm9wZXJ0eShjb25maWcudGltZW91dCwgODAwMCk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRMb2NhbGl6ZSA9IHRoaXMuZ2V0UHJvcGVydHkoY29uZmlnLmxvY2FsaXplLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHREaXNtaXNzID0gdGhpcy5nZXRQcm9wZXJ0eShjb25maWcuZGlzbWlzcywgdHJ1ZSk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHREaXNtaXNzVGV4dCA9IHRoaXMuZ2V0UHJvcGVydHkoY29uZmlnLmRpc21pc3NUZXh0LCAnRGlzbWlzcycpO1xuICAgICAgICB0aGlzLl9kZWZhdWx0UG9zaXRpb24gPSB0aGlzLmdldFByb3BlcnR5KGNvbmZpZy5wb3NpdGlvbiwgTm90aWZpY2F0aW9uc1Bvc2l0aW9uLlRvcFJpZ2h0KTtcblxuICAgICAgICAvLyBDcmVhdGUgdGhlIGVsZW1lbnQgdGhhdCBob2xkcyBhbGwgbm90aWZpY2F0aW9ucy5cbiAgICAgICAgdGhpcy5jcmVhdGVFbGVtZW50KCk7XG4gICAgfVxuXG4gICAgc3VjY2Vzcyhjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+LCBhY3Rpb25zOiBOb3RpZmljYXRpb25BY3Rpb25bXSA9IFtdLCB0aW1lb3V0ID0gdGhpcy5fZGVmYXVsdFRpbWVvdXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKHtjb250ZW50LCB0aW1lb3V0LCBhY3Rpb25zLCB0eXBlOiBOb3RpZmljYXRpb25UeXBlLlN1Y2Nlc3N9KTtcbiAgICB9XG5cbiAgICBlcnJvcihjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+LCBhY3Rpb25zOiBOb3RpZmljYXRpb25BY3Rpb25bXSA9IFtdLCB0aW1lb3V0ID0gdGhpcy5fZGVmYXVsdFRpbWVvdXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKHtjb250ZW50LCB0aW1lb3V0LCBhY3Rpb25zLCB0eXBlOiBOb3RpZmljYXRpb25UeXBlLkVycm9yfSk7XG4gICAgfVxuXG4gICAgd2Fybihjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+LCBhY3Rpb25zOiBOb3RpZmljYXRpb25BY3Rpb25bXSA9IFtdLCB0aW1lb3V0ID0gdGhpcy5fZGVmYXVsdFRpbWVvdXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKHtjb250ZW50LCB0aW1lb3V0LCBhY3Rpb25zLCB0eXBlOiBOb3RpZmljYXRpb25UeXBlLldhcm5pbmd9KTtcbiAgICB9XG5cbiAgICBpbmZvKGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4sIGFjdGlvbnM6IE5vdGlmaWNhdGlvbkFjdGlvbltdID0gW10sIHRpbWVvdXQgPSB0aGlzLl9kZWZhdWx0VGltZW91dCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGUoe2NvbnRlbnQsIHRpbWVvdXQsIGFjdGlvbnMsIHR5cGU6IE5vdGlmaWNhdGlvblR5cGUuSW5mb30pO1xuICAgIH1cblxuICAgIGNyZWF0ZShub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikge1xuICAgICAgICAvLyBDb21wb3NlIGEgbmV3IG5vdGlmaWNhdGlvbiBpdGVtLlxuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5jb21wb3NlKG5vdGlmaWNhdGlvbik7XG5cbiAgICAgICAgLy8gQWRkIHRoZSBkZXN0cm95IGZ1bmN0aW9uIHRvIHRoZSBub3RpZmljYXRpb24uXG4gICAgICAgIGl0ZW0uZGVzdHJveSA9ICgpID0+IHRoaXMucHVsbChpdGVtKTtcblxuICAgICAgICAvLyBBZGQgdGhlIG5vdGlmaWNhdGlvbiB0byB0aGUgbGlzdFxuICAgICAgICAvLyBhbmQgcmV0dXJuIHRoZSBpdGVtLlxuICAgICAgICByZXR1cm4gdGhpcy5wdXNoKGl0ZW0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHVzaChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikge1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgbGlzdC5cbiAgICAgICAgY29uc3Qgb2xkTGlzdCA9IHRoaXMuX25vdGlmaWNhdGlvbnMkLmdldFZhbHVlKCk7XG5cbiAgICAgICAgLy8gQ2hlY2sgd2hpY2ggbW9kZSBpcyBhY3RpdmF0ZWQuXG4gICAgICAgIGxldCBuZXdMaXN0OiBOb3RpZmljYXRpb25bXTtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9kZWZhdWx0TW9kZSkge1xuICAgICAgICAgICAgY2FzZSAnYXBwZW5kJzpcbiAgICAgICAgICAgICAgICBuZXdMaXN0ID0gWy4uLm9sZExpc3QsIG5vdGlmaWNhdGlvbl07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwcmVwZW5kJzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgbmV3TGlzdCA9IFtub3RpZmljYXRpb24sIC4uLm9sZExpc3RdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHVzaCB0aGUgbmV3IG5vdGlmaWNhdGlvbnMuXG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMkLm5leHQobmV3TGlzdCk7XG5cbiAgICAgICAgLy8gUmV0dXJuIHRoZSBub3RpZmljYXRpb24gZm9yIGZ1cnRoZXIgdXNlLlxuICAgICAgICByZXR1cm4gbm90aWZpY2F0aW9uO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHVsbChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikge1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgbGlzdC5cbiAgICAgICAgY29uc3QgbmV3TGlzdCA9IHRoaXMuX25vdGlmaWNhdGlvbnMkXG4gICAgICAgICAgICAuZ2V0VmFsdWUoKVxuICAgICAgICAgICAgLmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgIT09IG5vdGlmaWNhdGlvbi5pZCk7XG5cbiAgICAgICAgLy8gUHVzaCBhIG5ldyBsaXN0LlxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zJC5uZXh0KG5ld0xpc3QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29tcG9zZShub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikge1xuICAgICAgICAvLyBBdHRhY2ggYSByYW5kb20gaWQgdG8gdGhlIG5vdGlmaWNhdGlvbi5cbiAgICAgICAgbm90aWZpY2F0aW9uLmlkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDEwKTtcblxuICAgICAgICAvLyBTZXQgYWxsIHByb3BlcnRpZXMuXG4gICAgICAgIG5vdGlmaWNhdGlvbi50eXBlID0gdGhpcy5nZXRQcm9wZXJ0eShub3RpZmljYXRpb24udHlwZSwgTm90aWZpY2F0aW9uVHlwZS5DdXN0b20pO1xuICAgICAgICBub3RpZmljYXRpb24uY29udGVudCA9IHRoaXMuZ2V0UHJvcGVydHkobm90aWZpY2F0aW9uLmNvbnRlbnQsIG51bGwpO1xuICAgICAgICBub3RpZmljYXRpb24uZGF0YSA9IHRoaXMuZ2V0UHJvcGVydHkobm90aWZpY2F0aW9uLmRhdGEsIHt9KTtcbiAgICAgICAgbm90aWZpY2F0aW9uLnRpbWVvdXQgPSB0aGlzLmdldFByb3BlcnR5KG5vdGlmaWNhdGlvbi50aW1lb3V0LCB0aGlzLl9kZWZhdWx0VGltZW91dCk7XG4gICAgICAgIG5vdGlmaWNhdGlvbi5sb2NhbGl6ZSA9IHRoaXMuZ2V0UHJvcGVydHkobm90aWZpY2F0aW9uLmxvY2FsaXplLCB0aGlzLl9kZWZhdWx0TG9jYWxpemUpO1xuICAgICAgICBub3RpZmljYXRpb24uZGlzbWlzcyA9IHRoaXMuZ2V0UHJvcGVydHkobm90aWZpY2F0aW9uLmRpc21pc3MsIHRoaXMuX2RlZmF1bHREaXNtaXNzKTtcblxuICAgICAgICAvLyBEaXNtaXNzIHRleHQgbG9jYWxpemF0aW9uLlxuICAgICAgICBjb25zdCBkaXNtaXNzVGV4dCA9IHRoaXMuZ2V0UHJvcGVydHkobm90aWZpY2F0aW9uLmRpc21pc3NUZXh0LCB0aGlzLl9kZWZhdWx0RGlzbWlzc1RleHQpO1xuICAgICAgICBub3RpZmljYXRpb24uZGlzbWlzc1RleHQgPSB0aGlzLl9kZWZhdWx0TG9jYWxpemUgJiYgdGhpcy5fbG9jYWxpemVcbiAgICAgICAgICAgID8gdGhpcy5fbG9jYWxpemUudHJhbnNsYXRlKGRpc21pc3NUZXh0KVxuICAgICAgICAgICAgOiBkaXNtaXNzVGV4dDtcblxuICAgICAgICAvLyBSZXR1cm4gdGhlIGNvbXBvc2VkIG5vdGlmaWNhdGlvbi5cbiAgICAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUVsZW1lbnQoKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIG1hcCB3aXRoIHRoZSBjb25maWcuXG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICAgIG1hcC5zZXQoTm90aWZpY2F0aW9uc0RhdGEsIHtcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuX25vdGlmaWNhdGlvbnMkLnBpcGUoc2hhcmUoKSksXG4gICAgICAgICAgICBkaXNtaXNzVGV4dDogdGhpcy5fZGVmYXVsdERpc21pc3NUZXh0LFxuICAgICAgICAgICAgcG9zaXRpb246IHRoaXMuX2RlZmF1bHRQb3NpdGlvblxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBDcmVhdGUgYSBjdXN0b20gaW5qZWN0b3IuXG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbnNJbmplY3RvciA9IG5ldyBOb3RpZmljYXRpb25zSW5qZWN0b3IodGhpcy5faW5qZWN0b3IsIG1hcCk7XG5cbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBub3RpZmljYXRpb24gbGlzdCBhbmRcbiAgICAgICAgLy8gZ2V0IGEgcmVmZXJlbmNlIHRvIHRoZSBjb21wb25lbnQuXG4gICAgICAgIHRoaXMuX3JlZiA9IHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICAgICAgICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KEJiTm90aWZpY2F0aW9uc0xpc3QpXG4gICAgICAgICAgICAuY3JlYXRlKG5vdGlmaWNhdGlvbnNJbmplY3Rvcik7XG5cbiAgICAgICAgLy8gRGV0ZWN0IHRoZSBjaGFuZ2VzLlxuICAgICAgICB0aGlzLl9yZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIC8vIEF0dGFjaCB0aGUgY29tcG9uZW50J3MgdmlldyB0byB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgLy8gc28gdGhhdCB0aGUgY2hhbmdlIGRldGVjdGlvbiB3aWxsIHJ1biBwcm9wZXJseS5cbiAgICAgICAgdGhpcy5fYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyh0aGlzLl9yZWYuaG9zdFZpZXcpO1xuXG4gICAgICAgIC8vIElmIHRoZSBwbGF0Zm9ybSBpcyBub3QgYSBicm93c2VyIHJldHVybi5cbiAgICAgICAgaWYgKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBBcHBlbmQgdGhlIGVsZW1lbnQgdG8gdGhlIERPTS5cbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5fcmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIERvbid0IGRvIGFueXRoaW5nLCBiZWNhdXNlIGl0IG11c3QndmUgZmFpbGVkLlxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQcm9wZXJ0eSA9IChwcm9wZXJ0eTogYW55LCBkZWZhdWx0VmFsdWU6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHByb3BlcnR5ID09PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgPyBkZWZhdWx0VmFsdWVcbiAgICAgICAgICAgIDogcHJvcGVydHk7XG4gICAgfTtcblxufVxuIl19
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9ub3RpZmljYXRpb25zL3NyYy9saWIvbm90aWZpY2F0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJSCxVQUFVLEVBRVYsUUFBUSxFQUVYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHSCxxQkFBcUIsRUFFckIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNwQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRy9ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUdyQyxNQUFNLE9BQU8sYUFBYTtJQWdCdEIsWUFBb0IsU0FBbUIsRUFDbkIsU0FBbUIsRUFDbkIsZUFBK0IsRUFDbkIsU0FBbUIsRUFDbkIsT0FBNEIsRUFDeEMseUJBQW1EO1FBTG5ELGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUN4Qyw4QkFBeUIsR0FBekIseUJBQXlCLENBQTBCO1FBUnZFLHlDQUF5QztRQUNqQyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFpQixFQUFFLENBQUMsQ0FBQztRQStJMUQsZ0JBQVcsR0FBRyxDQUFDLFFBQWEsRUFBRSxZQUFpQixFQUFFLEVBQUU7WUFDdkQsT0FBTyxPQUFPLFFBQVEsS0FBSyxXQUFXO2dCQUNsQyxD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UUFDNUIsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFN0UsbUNBQW1DO1FBQ25DLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyx5QkFBeUI7YUFDckMsdUJBQXVCLENBQUMsbUJBQW1CLENBQUM7YUFDNUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFbkMsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFNUMsaURBQWlEO1FBQ2pELGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXBELDJDQUEyQztRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUU7WUFDM0IsT0FBTztTQUNWO1FBRUQsSUFBSTtZQUNBLGlDQUFpQztZQUNqQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMvRDtRQUFDLE1BQU07WUFDSixnREFBZ0Q7U0FDbkQ7SUFDTCxDQUFDOzswR0EzSlEsYUFBYTs4R0FBYixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFVBQVU7OzBCQW9CTSxRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvblJlZixcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEluamVjdGFibGUsXG4gICAgSW5qZWN0b3IsXG4gICAgT3B0aW9uYWwsXG4gICAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIE5vdGlmaWNhdGlvbixcbiAgICBOb3RpZmljYXRpb25BY3Rpb24sXG4gICAgTm90aWZpY2F0aW9uc1Bvc2l0aW9uLFxuICAgIE5vdGlmaWNhdGlvbnNDb25maWcsXG4gICAgTm90aWZpY2F0aW9uVHlwZSxcbiAgICBOb3RpZmljYXRpb25zRGF0YVxufSBmcm9tICcuL25vdGlmaWNhdGlvbnMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0JiTm90aWZpY2F0aW9uc0xpc3R9IGZyb20gJy4vbm90aWZpY2F0aW9ucy1saXN0L25vdGlmaWNhdGlvbnMtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtOb3RpZmljYXRpb25zSW5qZWN0b3J9IGZyb20gJy4vbm90aWZpY2F0aW9ucy5pbmplY3Rvcic7XG5pbXBvcnQge0xvY2FsaXplfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9sb2NhbGl6ZSc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3NoYXJlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zIHtcblxuICAgIC8vIFJlZmVyZW5jZSB0byB0aGUgbGlzdC5cbiAgICBwcml2YXRlIF9yZWY6IENvbXBvbmVudFJlZjxCYk5vdGlmaWNhdGlvbnNMaXN0PjtcblxuICAgIC8vIFRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGUgbm90aWZpY2F0aW9ucy5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0TW9kZTogJ3ByZXBlbmQnIHwgJ2FwcGVuZCc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdFRpbWVvdXQ6IG51bWJlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0TG9jYWxpemU6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdERpc21pc3M6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdERpc21pc3NUZXh0OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVmYXVsdFBvc2l0aW9uOiBOb3RpZmljYXRpb25zUG9zaXRpb247XG5cbiAgICAvLyBUaGUgZGF0YSBjb250YWluaW5nIHRoZSBub3RpZmljYXRpb25zLlxuICAgIHByaXZhdGUgX25vdGlmaWNhdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOb3RpZmljYXRpb25bXT4oW10pO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3BsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9hcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfbG9jYWxpemU6IExvY2FsaXplLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbmZpZzogTm90aWZpY2F0aW9uc0NvbmZpZyxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xuICAgICAgICAvLyBHZXQgdGhlIGNvbmZpZy5cbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5fY29uZmlnIHx8IHt9O1xuXG4gICAgICAgIC8vIFNldCB0aGUgY29uZmlnLlxuICAgICAgICB0aGlzLl9kZWZhdWx0TW9kZSA9IHRoaXMuZ2V0UHJvcGVydHkoY29uZmlnLm1vZGUsICdwcmVwZW5kJyk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRUaW1lb3V0ID0gdGhpcy5nZXRQcm9wZXJ0eShjb25maWcudGltZW91dCwgODAwMCk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRMb2NhbGl6ZSA9IHRoaXMuZ2V0UHJvcGVydHkoY29uZmlnLmxvY2FsaXplLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHREaXNtaXNzID0gdGhpcy5nZXRQcm9wZXJ0eShjb25maWcuZGlzbWlzcywgdHJ1ZSk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHREaXNtaXNzVGV4dCA9IHRoaXMuZ2V0UHJvcGVydHkoY29uZmlnLmRpc21pc3NUZXh0LCAnRGlzbWlzcycpO1xuICAgICAgICB0aGlzLl9kZWZhdWx0UG9zaXRpb24gPSB0aGlzLmdldFByb3BlcnR5KGNvbmZpZy5wb3NpdGlvbiwgTm90aWZpY2F0aW9uc1Bvc2l0aW9uLlRvcFJpZ2h0KTtcblxuICAgICAgICAvLyBDcmVhdGUgdGhlIGVsZW1lbnQgdGhhdCBob2xkcyBhbGwgbm90aWZpY2F0aW9ucy5cbiAgICAgICAgdGhpcy5jcmVhdGVFbGVtZW50KCk7XG4gICAgfVxuXG4gICAgc3VjY2Vzcyhjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+LCBhY3Rpb25zOiBOb3RpZmljYXRpb25BY3Rpb25bXSA9IFtdLCB0aW1lb3V0ID0gdGhpcy5fZGVmYXVsdFRpbWVvdXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKHtjb250ZW50LCB0aW1lb3V0LCBhY3Rpb25zLCB0eXBlOiBOb3RpZmljYXRpb25UeXBlLlN1Y2Nlc3N9KTtcbiAgICB9XG5cbiAgICBlcnJvcihjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+LCBhY3Rpb25zOiBOb3RpZmljYXRpb25BY3Rpb25bXSA9IFtdLCB0aW1lb3V0ID0gdGhpcy5fZGVmYXVsdFRpbWVvdXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKHtjb250ZW50LCB0aW1lb3V0LCBhY3Rpb25zLCB0eXBlOiBOb3RpZmljYXRpb25UeXBlLkVycm9yfSk7XG4gICAgfVxuXG4gICAgd2Fybihjb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+LCBhY3Rpb25zOiBOb3RpZmljYXRpb25BY3Rpb25bXSA9IFtdLCB0aW1lb3V0ID0gdGhpcy5fZGVmYXVsdFRpbWVvdXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKHtjb250ZW50LCB0aW1lb3V0LCBhY3Rpb25zLCB0eXBlOiBOb3RpZmljYXRpb25UeXBlLldhcm5pbmd9KTtcbiAgICB9XG5cbiAgICBpbmZvKGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4sIGFjdGlvbnM6IE5vdGlmaWNhdGlvbkFjdGlvbltdID0gW10sIHRpbWVvdXQgPSB0aGlzLl9kZWZhdWx0VGltZW91dCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGUoe2NvbnRlbnQsIHRpbWVvdXQsIGFjdGlvbnMsIHR5cGU6IE5vdGlmaWNhdGlvblR5cGUuSW5mb30pO1xuICAgIH1cblxuICAgIGNyZWF0ZShub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikge1xuICAgICAgICAvLyBDb21wb3NlIGEgbmV3IG5vdGlmaWNhdGlvbiBpdGVtLlxuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5jb21wb3NlKG5vdGlmaWNhdGlvbik7XG5cbiAgICAgICAgLy8gQWRkIHRoZSBkZXN0cm95IGZ1bmN0aW9uIHRvIHRoZSBub3RpZmljYXRpb24uXG4gICAgICAgIGl0ZW0uZGVzdHJveSA9ICgpID0+IHRoaXMucHVsbChpdGVtKTtcblxuICAgICAgICAvLyBBZGQgdGhlIG5vdGlmaWNhdGlvbiB0byB0aGUgbGlzdFxuICAgICAgICAvLyBhbmQgcmV0dXJuIHRoZSBpdGVtLlxuICAgICAgICByZXR1cm4gdGhpcy5wdXNoKGl0ZW0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHVzaChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikge1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgbGlzdC5cbiAgICAgICAgY29uc3Qgb2xkTGlzdCA9IHRoaXMuX25vdGlmaWNhdGlvbnMkLmdldFZhbHVlKCk7XG5cbiAgICAgICAgLy8gQ2hlY2sgd2hpY2ggbW9kZSBpcyBhY3RpdmF0ZWQuXG4gICAgICAgIGxldCBuZXdMaXN0OiBOb3RpZmljYXRpb25bXTtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9kZWZhdWx0TW9kZSkge1xuICAgICAgICAgICAgY2FzZSAnYXBwZW5kJzpcbiAgICAgICAgICAgICAgICBuZXdMaXN0ID0gWy4uLm9sZExpc3QsIG5vdGlmaWNhdGlvbl07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwcmVwZW5kJzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgbmV3TGlzdCA9IFtub3RpZmljYXRpb24sIC4uLm9sZExpc3RdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHVzaCB0aGUgbmV3IG5vdGlmaWNhdGlvbnMuXG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMkLm5leHQobmV3TGlzdCk7XG5cbiAgICAgICAgLy8gUmV0dXJuIHRoZSBub3RpZmljYXRpb24gZm9yIGZ1cnRoZXIgdXNlLlxuICAgICAgICByZXR1cm4gbm90aWZpY2F0aW9uO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHVsbChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikge1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgbGlzdC5cbiAgICAgICAgY29uc3QgbmV3TGlzdCA9IHRoaXMuX25vdGlmaWNhdGlvbnMkXG4gICAgICAgICAgICAuZ2V0VmFsdWUoKVxuICAgICAgICAgICAgLmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgIT09IG5vdGlmaWNhdGlvbi5pZCk7XG5cbiAgICAgICAgLy8gUHVzaCBhIG5ldyBsaXN0LlxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zJC5uZXh0KG5ld0xpc3QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29tcG9zZShub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikge1xuICAgICAgICAvLyBBdHRhY2ggYSByYW5kb20gaWQgdG8gdGhlIG5vdGlmaWNhdGlvbi5cbiAgICAgICAgbm90aWZpY2F0aW9uLmlkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDEwKTtcblxuICAgICAgICAvLyBTZXQgYWxsIHByb3BlcnRpZXMuXG4gICAgICAgIG5vdGlmaWNhdGlvbi50eXBlID0gdGhpcy5nZXRQcm9wZXJ0eShub3RpZmljYXRpb24udHlwZSwgTm90aWZpY2F0aW9uVHlwZS5DdXN0b20pO1xuICAgICAgICBub3RpZmljYXRpb24uY29udGVudCA9IHRoaXMuZ2V0UHJvcGVydHkobm90aWZpY2F0aW9uLmNvbnRlbnQsIG51bGwpO1xuICAgICAgICBub3RpZmljYXRpb24uZGF0YSA9IHRoaXMuZ2V0UHJvcGVydHkobm90aWZpY2F0aW9uLmRhdGEsIHt9KTtcbiAgICAgICAgbm90aWZpY2F0aW9uLnRpbWVvdXQgPSB0aGlzLmdldFByb3BlcnR5KG5vdGlmaWNhdGlvbi50aW1lb3V0LCB0aGlzLl9kZWZhdWx0VGltZW91dCk7XG4gICAgICAgIG5vdGlmaWNhdGlvbi5sb2NhbGl6ZSA9IHRoaXMuZ2V0UHJvcGVydHkobm90aWZpY2F0aW9uLmxvY2FsaXplLCB0aGlzLl9kZWZhdWx0TG9jYWxpemUpO1xuICAgICAgICBub3RpZmljYXRpb24uZGlzbWlzcyA9IHRoaXMuZ2V0UHJvcGVydHkobm90aWZpY2F0aW9uLmRpc21pc3MsIHRoaXMuX2RlZmF1bHREaXNtaXNzKTtcblxuICAgICAgICAvLyBEaXNtaXNzIHRleHQgbG9jYWxpemF0aW9uLlxuICAgICAgICBjb25zdCBkaXNtaXNzVGV4dCA9IHRoaXMuZ2V0UHJvcGVydHkobm90aWZpY2F0aW9uLmRpc21pc3NUZXh0LCB0aGlzLl9kZWZhdWx0RGlzbWlzc1RleHQpO1xuICAgICAgICBub3RpZmljYXRpb24uZGlzbWlzc1RleHQgPSB0aGlzLl9kZWZhdWx0TG9jYWxpemUgJiYgdGhpcy5fbG9jYWxpemVcbiAgICAgICAgICAgID8gdGhpcy5fbG9jYWxpemUudHJhbnNsYXRlKGRpc21pc3NUZXh0KVxuICAgICAgICAgICAgOiBkaXNtaXNzVGV4dDtcblxuICAgICAgICAvLyBSZXR1cm4gdGhlIGNvbXBvc2VkIG5vdGlmaWNhdGlvbi5cbiAgICAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUVsZW1lbnQoKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIG1hcCB3aXRoIHRoZSBjb25maWcuXG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICAgIG1hcC5zZXQoTm90aWZpY2F0aW9uc0RhdGEsIHtcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuX25vdGlmaWNhdGlvbnMkLnBpcGUoc2hhcmUoKSksXG4gICAgICAgICAgICBkaXNtaXNzVGV4dDogdGhpcy5fZGVmYXVsdERpc21pc3NUZXh0LFxuICAgICAgICAgICAgcG9zaXRpb246IHRoaXMuX2RlZmF1bHRQb3NpdGlvblxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBDcmVhdGUgYSBjdXN0b20gaW5qZWN0b3IuXG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbnNJbmplY3RvciA9IG5ldyBOb3RpZmljYXRpb25zSW5qZWN0b3IodGhpcy5faW5qZWN0b3IsIG1hcCk7XG5cbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBub3RpZmljYXRpb24gbGlzdCBhbmRcbiAgICAgICAgLy8gZ2V0IGEgcmVmZXJlbmNlIHRvIHRoZSBjb21wb25lbnQuXG4gICAgICAgIHRoaXMuX3JlZiA9IHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICAgICAgICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KEJiTm90aWZpY2F0aW9uc0xpc3QpXG4gICAgICAgICAgICAuY3JlYXRlKG5vdGlmaWNhdGlvbnNJbmplY3Rvcik7XG5cbiAgICAgICAgLy8gRGV0ZWN0IHRoZSBjaGFuZ2VzLlxuICAgICAgICB0aGlzLl9yZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIC8vIEF0dGFjaCB0aGUgY29tcG9uZW50J3MgdmlldyB0byB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgLy8gc28gdGhhdCB0aGUgY2hhbmdlIGRldGVjdGlvbiB3aWxsIHJ1biBwcm9wZXJseS5cbiAgICAgICAgdGhpcy5fYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyh0aGlzLl9yZWYuaG9zdFZpZXcpO1xuXG4gICAgICAgIC8vIElmIHRoZSBwbGF0Zm9ybSBpcyBub3QgYSBicm93c2VyIHJldHVybi5cbiAgICAgICAgaWYgKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBBcHBlbmQgdGhlIGVsZW1lbnQgdG8gdGhlIERPTS5cbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5fcmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIERvbid0IGRvIGFueXRoaW5nLCBiZWNhdXNlIGl0IG11c3QndmUgZmFpbGVkLlxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQcm9wZXJ0eSA9IChwcm9wZXJ0eTogYW55LCBkZWZhdWx0VmFsdWU6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHByb3BlcnR5ID09PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgPyBkZWZhdWx0VmFsdWVcbiAgICAgICAgICAgIDogcHJvcGVydHk7XG4gICAgfTtcblxufVxuIl19