@bravobit/bb-foundation 0.54.3 → 0.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. package/auth/index.d.ts +267 -5
  2. package/collections/index.d.ts +350 -5
  3. package/combobox/index.d.ts +58 -5
  4. package/dashboard/index.d.ts +104 -5
  5. package/dialog/index.d.ts +168 -5
  6. package/elements/index.d.ts +838 -5
  7. package/fesm2022/bravobit-bb-foundation-auth.mjs +22 -22
  8. package/fesm2022/bravobit-bb-foundation-collections.mjs +44 -44
  9. package/fesm2022/bravobit-bb-foundation-collections.mjs.map +1 -1
  10. package/fesm2022/bravobit-bb-foundation-combobox.mjs +15 -15
  11. package/fesm2022/bravobit-bb-foundation-dashboard.mjs +25 -25
  12. package/fesm2022/bravobit-bb-foundation-dialog.mjs +33 -33
  13. package/fesm2022/bravobit-bb-foundation-dialog.mjs.map +1 -1
  14. package/fesm2022/bravobit-bb-foundation-elements.mjs +102 -102
  15. package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -1
  16. package/fesm2022/bravobit-bb-foundation-http.mjs +10 -10
  17. package/fesm2022/bravobit-bb-foundation-localize.mjs +18 -18
  18. package/fesm2022/bravobit-bb-foundation-localize.mjs.map +1 -1
  19. package/fesm2022/bravobit-bb-foundation-masking.mjs +16 -16
  20. package/fesm2022/bravobit-bb-foundation-notifications.mjs +15 -15
  21. package/fesm2022/bravobit-bb-foundation-notifications.mjs.map +1 -1
  22. package/fesm2022/bravobit-bb-foundation-permissions.mjs +10 -10
  23. package/fesm2022/bravobit-bb-foundation-recaptcha.mjs +11 -12
  24. package/fesm2022/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  25. package/fesm2022/bravobit-bb-foundation-select.mjs +21 -21
  26. package/fesm2022/bravobit-bb-foundation-select.mjs.map +1 -1
  27. package/fesm2022/bravobit-bb-foundation-storage.mjs +3 -3
  28. package/fesm2022/bravobit-bb-foundation-table.mjs +22 -22
  29. package/fesm2022/bravobit-bb-foundation-tooltip.mjs +10 -10
  30. package/fesm2022/bravobit-bb-foundation-utils.mjs +16 -16
  31. package/fesm2022/bravobit-bb-foundation.mjs +25 -25
  32. package/fesm2022/bravobit-bb-foundation.mjs.map +1 -1
  33. package/http/index.d.ts +78 -5
  34. package/index.d.ts +215 -5
  35. package/localize/index.d.ts +546 -5
  36. package/masking/index.d.ts +104 -5
  37. package/notifications/index.d.ts +78 -5
  38. package/package.json +21 -21
  39. package/permissions/index.d.ts +89 -5
  40. package/recaptcha/index.d.ts +92 -5
  41. package/rxjs/index.d.ts +19 -5
  42. package/select/index.d.ts +129 -5
  43. package/storage/index.d.ts +109 -5
  44. package/table/index.d.ts +197 -5
  45. package/tooltip/index.d.ts +45 -5
  46. package/utils/index.d.ts +66 -5
  47. package/auth/lib/acting.interceptor.d.ts +0 -9
  48. package/auth/lib/acting.service.d.ts +0 -17
  49. package/auth/lib/auth.config.d.ts +0 -3
  50. package/auth/lib/auth.interceptor.d.ts +0 -20
  51. package/auth/lib/auth.module.d.ts +0 -10
  52. package/auth/lib/auth.service.d.ts +0 -51
  53. package/auth/lib/auth.session.d.ts +0 -50
  54. package/auth/lib/directives/anonymous.directive.d.ts +0 -20
  55. package/auth/lib/directives/authenticated.directive.d.ts +0 -20
  56. package/auth/lib/guards/anonymous.guard.d.ts +0 -2
  57. package/auth/lib/guards/authenticated.guard.d.ts +0 -2
  58. package/auth/lib/helpers/jwt.helper.d.ts +0 -8
  59. package/auth/lib/interfaces/config.interface.d.ts +0 -27
  60. package/auth/lib/interfaces/provider.interface.d.ts +0 -23
  61. package/auth/lib/interfaces/token.interface.d.ts +0 -11
  62. package/auth/lib/providers/email.provider.d.ts +0 -9
  63. package/auth/lib/providers/verify.provider.d.ts +0 -9
  64. package/auth/lib/tokens/use-authorization.token.d.ts +0 -2
  65. package/auth/public_api.d.ts +0 -17
  66. package/collections/lib/classes/array.collection.d.ts +0 -17
  67. package/collections/lib/collection.d.ts +0 -40
  68. package/collections/lib/collections.config.d.ts +0 -3
  69. package/collections/lib/collections.interfaces.d.ts +0 -10
  70. package/collections/lib/collections.module.d.ts +0 -19
  71. package/collections/lib/components/collections-actions/collections-actions.component.d.ts +0 -13
  72. package/collections/lib/components/collections-grid/collections-grid.component.d.ts +0 -18
  73. package/collections/lib/components/collections-pager/collections-pager.component.d.ts +0 -38
  74. package/collections/lib/components/collections-table/collections-table.component.d.ts +0 -26
  75. package/collections/lib/components/collections-table-label/collections-table-label.component.d.ts +0 -11
  76. package/collections/lib/components/collections-table-sorting/collections-table-sorting.component.d.ts +0 -18
  77. package/collections/lib/components/collections-viewer/collections-viewer.component.d.ts +0 -16
  78. package/collections/lib/directives/collections-data-row.directive.d.ts +0 -14
  79. package/collections/lib/directives/collections-data.directive.d.ts +0 -14
  80. package/collections/lib/directives/collections-empty.directive.d.ts +0 -14
  81. package/collections/lib/directives/collections-error.directive.d.ts +0 -14
  82. package/collections/lib/directives/collections-initial.directive.d.ts +0 -11
  83. package/collections/lib/directives/collections-item.directive.d.ts +0 -14
  84. package/collections/lib/interfaces/array-collection.interface.d.ts +0 -6
  85. package/collections/lib/interfaces/collection.interface.d.ts +0 -32
  86. package/collections/lib/providers/api-collection.provider.d.ts +0 -19
  87. package/collections/lib/providers/collection.provider.d.ts +0 -9
  88. package/collections/lib/providers/local-collection.provider.d.ts +0 -16
  89. package/collections/public_api.d.ts +0 -23
  90. package/combobox/combobox/combobox-container.directive.d.ts +0 -28
  91. package/combobox/combobox/combobox.component.d.ts +0 -37
  92. package/combobox/combobox-label.directive.d.ts +0 -5
  93. package/combobox/combobox-option.directive.d.ts +0 -7
  94. package/combobox/combobox-panel/combobox-panel.animation.d.ts +0 -1
  95. package/combobox/combobox-panel/combobox-panel.component.d.ts +0 -18
  96. package/combobox/combobox.interface.d.ts +0 -8
  97. package/combobox/public_api.d.ts +0 -3
  98. package/dashboard/lib/dashboard/dashboard.component.d.ts +0 -17
  99. package/dashboard/lib/dashboard-header/dashboard-header.component.d.ts +0 -9
  100. package/dashboard/lib/dashboard-menu/dashboard-menu.component.d.ts +0 -9
  101. package/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.d.ts +0 -8
  102. package/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.d.ts +0 -19
  103. package/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.d.ts +0 -22
  104. package/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.d.ts +0 -16
  105. package/dashboard/lib/dashboard.module.d.ts +0 -13
  106. package/dashboard/public_api.d.ts +0 -8
  107. package/dialog/lib/dialog-actions/dialog-actions.component.d.ts +0 -5
  108. package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +0 -22
  109. package/dialog/lib/dialog-container/dialog-container.component.d.ts +0 -23
  110. package/dialog/lib/dialog-header/dialog-header.component.d.ts +0 -13
  111. package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +0 -16
  112. package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +0 -19
  113. package/dialog/lib/dialog.config.d.ts +0 -3
  114. package/dialog/lib/dialog.insertion.d.ts +0 -7
  115. package/dialog/lib/dialog.interfaces.d.ts +0 -21
  116. package/dialog/lib/dialog.module.d.ts +0 -17
  117. package/dialog/lib/dialog.ref.d.ts +0 -8
  118. package/dialog/lib/dialog.service.d.ts +0 -15
  119. package/dialog/lib/directives/confirm.directive.d.ts +0 -14
  120. package/dialog/public_api.d.ts +0 -10
  121. package/elements/lib/avatar/avatar.component.d.ts +0 -31
  122. package/elements/lib/button/button.component.d.ts +0 -21
  123. package/elements/lib/checkbox/checkbox.component.d.ts +0 -36
  124. package/elements/lib/checkbox-group/checkbox-group.component.d.ts +0 -13
  125. package/elements/lib/color-picker/color-picker.component.d.ts +0 -18
  126. package/elements/lib/color-slider/color-slider.component.d.ts +0 -24
  127. package/elements/lib/date-picker/date-picker.component.d.ts +0 -77
  128. package/elements/lib/directives/color-picker.directive.d.ts +0 -27
  129. package/elements/lib/directives/extra-error-controls.directive.d.ts +0 -13
  130. package/elements/lib/directives/file-drop.directive.d.ts +0 -13
  131. package/elements/lib/directives/form-submit.directive.d.ts +0 -17
  132. package/elements/lib/directives/form-submitter.directive.d.ts +0 -9
  133. package/elements/lib/directives/image-upload.directive.d.ts +0 -25
  134. package/elements/lib/directives/input.directive.d.ts +0 -16
  135. package/elements/lib/elements.config.d.ts +0 -3
  136. package/elements/lib/elements.inject.d.ts +0 -3
  137. package/elements/lib/elements.interfaces.d.ts +0 -41
  138. package/elements/lib/elements.module.d.ts +0 -39
  139. package/elements/lib/file-picker/file-picker.component.d.ts +0 -57
  140. package/elements/lib/form-control/form-control.component.d.ts +0 -20
  141. package/elements/lib/form-error/form-error.component.d.ts +0 -36
  142. package/elements/lib/form-group/form-group.component.d.ts +0 -7
  143. package/elements/lib/icon/icon.component.d.ts +0 -26
  144. package/elements/lib/image-control/image-control.component.d.ts +0 -44
  145. package/elements/lib/image-picker/image-picker.component.d.ts +0 -39
  146. package/elements/lib/multi-file-control/multi-file-control.component.d.ts +0 -72
  147. package/elements/lib/pincode-control/pincode-control.component.d.ts +0 -65
  148. package/elements/lib/pipes/date.pipe.d.ts +0 -9
  149. package/elements/lib/pipes/file-data-url.pipe.d.ts +0 -12
  150. package/elements/lib/pipes/file-image.pipe.d.ts +0 -14
  151. package/elements/lib/pipes/file-size.pipe.d.ts +0 -7
  152. package/elements/lib/pipes/relative-time.pipe.d.ts +0 -19
  153. package/elements/lib/radio-button/radio-button.component.d.ts +0 -16
  154. package/elements/lib/radio-group/radio-group.component.d.ts +0 -38
  155. package/elements/lib/spinner/spinner.component.d.ts +0 -9
  156. package/elements/public_api.d.ts +0 -35
  157. package/http/lib/classes/http.config.d.ts +0 -9
  158. package/http/lib/classes/http.error.d.ts +0 -7
  159. package/http/lib/http.config.d.ts +0 -5
  160. package/http/lib/http.interfaces.d.ts +0 -21
  161. package/http/lib/http.module.d.ts +0 -11
  162. package/http/lib/interceptors/base-url.interceptor.d.ts +0 -15
  163. package/http/lib/interceptors/error.interceptor.d.ts +0 -9
  164. package/http/public_api.d.ts +0 -7
  165. package/lib/core/colors/hex.d.ts +0 -18
  166. package/lib/core/colors/hsl.d.ts +0 -7
  167. package/lib/core/colors/hsv.d.ts +0 -13
  168. package/lib/core/colors/rgb.d.ts +0 -7
  169. package/lib/core/functions/array.utils.d.ts +0 -1
  170. package/lib/core/functions/date.utils.d.ts +0 -4
  171. package/lib/core/functions/file.utils.d.ts +0 -3
  172. package/lib/core/functions/format.utils.d.ts +0 -1
  173. package/lib/core/functions/password.utils.d.ts +0 -1
  174. package/lib/core/functions/route-cache.utils.d.ts +0 -10
  175. package/lib/core/functions/utils.d.ts +0 -1
  176. package/lib/core/miscellaneous/coercion.d.ts +0 -2
  177. package/lib/core/miscellaneous/regex.d.ts +0 -5
  178. package/lib/core/miscellaneous/validator.d.ts +0 -13
  179. package/lib/core/services/exif.service.d.ts +0 -12
  180. package/lib/core/services/file-loader.service.d.ts +0 -13
  181. package/lib/core/services/files.service.d.ts +0 -15
  182. package/lib/core/services/image-converter.service.d.ts +0 -17
  183. package/lib/core/services/languages.service.d.ts +0 -15
  184. package/lib/core/services/network.service.d.ts +0 -13
  185. package/lib/core/services/patch.service.d.ts +0 -14
  186. package/lib/core/tokens/accept-language.token.d.ts +0 -2
  187. package/lib/core/tokens/cookie.token.d.ts +0 -2
  188. package/lib/core/tokens/global-focus-mode.token.d.ts +0 -4
  189. package/lib/core/tokens/location.token.d.ts +0 -2
  190. package/lib/core/tokens/navigator.token.d.ts +0 -2
  191. package/lib/core/tokens/window.token.d.ts +0 -2
  192. package/localize/lib/dictionary/dictionary.class.d.ts +0 -28
  193. package/localize/lib/dictionary/dictionary.context.d.ts +0 -7
  194. package/localize/lib/dictionary/dictionary.data.d.ts +0 -7
  195. package/localize/lib/functions/date.function.d.ts +0 -5
  196. package/localize/lib/functions/lowercase.function.d.ts +0 -5
  197. package/localize/lib/functions/uppercase.function.d.ts +0 -5
  198. package/localize/lib/handlers/missing.handler.d.ts +0 -6
  199. package/localize/lib/interfaces/config.interfaces.d.ts +0 -18
  200. package/localize/lib/interfaces/functions.interfaces.d.ts +0 -7
  201. package/localize/lib/interfaces/handlers.interfaces.d.ts +0 -6
  202. package/localize/lib/interfaces/options.interfaces.d.ts +0 -11
  203. package/localize/lib/localizations/dutch.localization.d.ts +0 -74
  204. package/localize/lib/localizations/english.localization.d.ts +0 -74
  205. package/localize/lib/localizations/papiamento.localization.d.ts +0 -74
  206. package/localize/lib/localizations/spanish.localization.d.ts +0 -74
  207. package/localize/lib/localize.config.d.ts +0 -5
  208. package/localize/lib/localize.module.d.ts +0 -12
  209. package/localize/lib/localize.pipe.d.ts +0 -12
  210. package/localize/lib/localize.service.d.ts +0 -43
  211. package/localize/lib/localize.tokens.d.ts +0 -11
  212. package/localize/lib/transforms/abstract.transform.d.ts +0 -13
  213. package/localize/lib/transforms/interpolate.transform.d.ts +0 -13
  214. package/localize/lib/transforms/plural.transform.d.ts +0 -16
  215. package/localize/lib/transforms/reference.transform.d.ts +0 -9
  216. package/localize/lib/views/localize-string/localize-string.component.d.ts +0 -23
  217. package/localize/lib/views/localize-template.directive.d.ts +0 -9
  218. package/localize/public_api.d.ts +0 -26
  219. package/masking/lib/directives/currency-mask.directive.d.ts +0 -17
  220. package/masking/lib/directives/date-mask.directive.d.ts +0 -17
  221. package/masking/lib/directives/input-mask.directive.d.ts +0 -38
  222. package/masking/lib/input-mask.interface.d.ts +0 -19
  223. package/masking/lib/masking.module.d.ts +0 -9
  224. package/masking/lib/masking.service.d.ts +0 -12
  225. package/masking/public_api.d.ts +0 -6
  226. package/notifications/lib/notifications-item/notifications-item.component.d.ts +0 -33
  227. package/notifications/lib/notifications-list/notifications-list.component.d.ts +0 -18
  228. package/notifications/lib/notifications.animations.d.ts +0 -1
  229. package/notifications/lib/notifications.config.d.ts +0 -3
  230. package/notifications/lib/notifications.interfaces.d.ts +0 -36
  231. package/notifications/lib/notifications.module.d.ts +0 -9
  232. package/notifications/lib/notifications.service.d.ts +0 -30
  233. package/notifications/public_api.d.ts +0 -4
  234. package/permissions/lib/directives/permission.directive.d.ts +0 -27
  235. package/permissions/lib/guards/permission.guard.d.ts +0 -3
  236. package/permissions/lib/handlers/abstract.handler.d.ts +0 -4
  237. package/permissions/lib/handlers/local.handler.d.ts +0 -10
  238. package/permissions/lib/permissions.config.d.ts +0 -3
  239. package/permissions/lib/permissions.interface.d.ts +0 -13
  240. package/permissions/lib/permissions.module.d.ts +0 -10
  241. package/permissions/lib/permissions.service.d.ts +0 -23
  242. package/permissions/public_api.d.ts +0 -8
  243. package/public_api.d.ts +0 -27
  244. package/recaptcha/lib/recaptcha/recaptcha.component.d.ts +0 -47
  245. package/recaptcha/lib/recaptcha-loader.service.d.ts +0 -19
  246. package/recaptcha/lib/recaptcha.config.d.ts +0 -3
  247. package/recaptcha/lib/recaptcha.interface.d.ts +0 -13
  248. package/recaptcha/lib/recaptcha.module.d.ts +0 -10
  249. package/recaptcha/public_api.d.ts +0 -5
  250. package/rxjs/lib/observables/get-control-value.observable.d.ts +0 -3
  251. package/rxjs/lib/observables/get-route-param.observable.d.ts +0 -3
  252. package/rxjs/lib/operators/combine-latest-map.operator.d.ts +0 -8
  253. package/rxjs/lib/operators/filter-nil.operator.d.ts +0 -1
  254. package/rxjs/public_api.d.ts +0 -4
  255. package/select/lib/select/select.component.d.ts +0 -94
  256. package/select/lib/select-label.directive.d.ts +0 -7
  257. package/select/lib/select-multi-label.directive.d.ts +0 -7
  258. package/select/lib/select-option-group.directive.d.ts +0 -7
  259. package/select/lib/select-option.directive.d.ts +0 -7
  260. package/select/lib/select.config.d.ts +0 -2
  261. package/select/lib/select.module.d.ts +0 -11
  262. package/select/public_api.d.ts +0 -7
  263. package/storage/lib/interfaces/attributes.interface.d.ts +0 -13
  264. package/storage/lib/interfaces/memory.interface.d.ts +0 -7
  265. package/storage/lib/interfaces/strategy.interface.d.ts +0 -17
  266. package/storage/lib/storage.service.d.ts +0 -25
  267. package/storage/lib/strategies/cookie-storage.strategy.d.ts +0 -20
  268. package/storage/lib/strategies/memory-storage.strategy.d.ts +0 -11
  269. package/storage/lib/strategies/polyfill-storage.strategy.d.ts +0 -15
  270. package/storage/public_api.d.ts +0 -7
  271. package/table/lib/components/table/table.component.d.ts +0 -57
  272. package/table/lib/components/table-cell/table-cell.component.d.ts +0 -5
  273. package/table/lib/components/table-header-cell/table-header-cell.component.d.ts +0 -26
  274. package/table/lib/components/table-pager/table-pager.component.d.ts +0 -40
  275. package/table/lib/data/datasource.data.d.ts +0 -14
  276. package/table/lib/data/generic.data.d.ts +0 -25
  277. package/table/lib/interfaces/datasource.interface.d.ts +0 -17
  278. package/table/lib/interfaces/table.interfaces.d.ts +0 -11
  279. package/table/lib/table.config.d.ts +0 -3
  280. package/table/lib/table.module.d.ts +0 -10
  281. package/table/public_api.d.ts +0 -10
  282. package/tooltip/lib/tooltip-container/tooltip-container.component.d.ts +0 -9
  283. package/tooltip/lib/tooltip.directive.d.ts +0 -23
  284. package/tooltip/lib/tooltip.interfaces.d.ts +0 -4
  285. package/tooltip/lib/tooltip.module.d.ts +0 -7
  286. package/tooltip/public_api.d.ts +0 -4
  287. package/utils/lib/directives/autosize.directive.d.ts +0 -19
  288. package/utils/lib/directives/focus-trap.directive.d.ts +0 -14
  289. package/utils/lib/directives/focus.directive.d.ts +0 -16
  290. package/utils/lib/directives/template.directive.d.ts +0 -10
  291. package/utils/lib/utils.module.d.ts +0 -10
  292. package/utils/public_api.d.ts +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"bravobit-bb-foundation-dialog.mjs","sources":["../../../projects/bb-foundation/dialog/src/lib/dialog.ref.ts","../../../projects/bb-foundation/dialog/src/lib/dialog.interfaces.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-overlay/dialog-overlay.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-overlay/dialog-overlay.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-modal/dialog-modal.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-modal/dialog-modal.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-header/dialog-header.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-header/dialog-header.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-actions/dialog-actions.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-actions/dialog-actions.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog.insertion.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-container/dialog-container.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-container/dialog-container.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-confirm/dialog-confirm.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-confirm/dialog-confirm.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog.service.ts","../../../projects/bb-foundation/dialog/src/lib/directives/confirm.directive.ts","../../../projects/bb-foundation/dialog/src/lib/dialog.config.ts","../../../projects/bb-foundation/dialog/src/lib/dialog.module.ts","../../../projects/bb-foundation/dialog/src/bravobit-bb-foundation-dialog.ts"],"sourcesContent":["import {take} from 'rxjs/operators';\nimport {Subject} from 'rxjs';\n\nexport class BbDialogRef<T = any> {\n\n // Data.\n private readonly _afterClosed$ = new Subject<T>();\n private readonly _overlayClicked$ = new Subject<void>();\n\n readonly afterClosed = this._afterClosed$.pipe(take(1));\n readonly overlayClicked = this._overlayClicked$.pipe(take(1));\n\n onOverlayClicked() {\n this._overlayClicked$.next();\n }\n\n close(result?: T) {\n this._afterClosed$.next(result);\n }\n\n}\n","import {InjectionToken} from '@angular/core';\n\nexport class BbDialogConfig<T = any> {\n data?: T;\n}\n\nexport interface DialogConfirmOptions {\n cancelButtonClass: string;\n cancelButtonText: string;\n confirmButtonText: string;\n confirmButtonClass: string;\n confirmIconName: string;\n width: string;\n onConfirmed: () => Promise<any>;\n}\n\nexport class DialogConfig {\n animationMs?: number;\n icons?: {\n closeIcon?: string;\n confirmIcon?: string;\n };\n}\n\nexport const DIALOG_CONFIG: InjectionToken<DialogConfig> = new InjectionToken('dialog config');\n","import {booleanAttribute, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, OnDestroy, OnInit, Output, Renderer2, ViewEncapsulation} from '@angular/core';\nimport {firstValueFrom, fromEvent, Subscription, takeUntil, timer} from 'rxjs';\nimport {DIALOG_CONFIG, DialogConfig} from '../dialog.interfaces';\nimport {filter, switchMap} from 'rxjs/operators';\nimport {DOCUMENT} from '@angular/common';\n\n@Component({\n selector: 'bb-dialog-overlay',\n templateUrl: './dialog-overlay.component.html',\n styleUrls: ['./dialog-overlay.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dialog-overlay'}\n})\nexport class BbDialogOverlay implements OnInit, OnDestroy {\n\n // Dependencies.\n private readonly _config?: DialogConfig = inject(DIALOG_CONFIG, {optional: true});\n private readonly _renderer: Renderer2 = inject(Renderer2);\n private readonly _elementRef: ElementRef = inject(ElementRef);\n private readonly _document: Document = inject(DOCUMENT);\n\n // Inputs.\n @Input({transform: booleanAttribute}) closeRequestedDisabled: boolean = false;\n\n // Outputs.\n @Output() closeRequested = new EventEmitter<void>();\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n ngOnInit() {\n this.handleOverlayClicks();\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n async close() {\n this._renderer.addClass(this._elementRef.nativeElement, 'leaving');\n const timer$ = timer(this._config?.animationMs ?? 240);\n return firstValueFrom(timer$);\n }\n\n private handleOverlayClicks() {\n const element = this._elementRef.nativeElement ?? null;\n const elementMovePx = 20;\n const subscription = fromEvent<PointerEvent>(this._document, 'pointerdown').pipe(\n filter(event => event?.target === element),\n switchMap(pointerDownEvent => {\n const startX = pointerDownEvent.clientX;\n const startY = pointerDownEvent.clientY;\n\n return fromEvent<PointerEvent>(this._document, 'pointerup').pipe(\n filter(pointerUpEvent => pointerUpEvent?.target === element && this.getMoveDistance(pointerUpEvent, startX, startY) <= elementMovePx),\n takeUntil(\n fromEvent<PointerEvent>(this._document, 'pointermove').pipe(\n filter(pointerMoveEvent => this.getMoveDistance(pointerMoveEvent, startX, startY) > elementMovePx)\n )\n )\n );\n })\n ).subscribe(() => {\n if (this.closeRequestedDisabled) {\n return;\n }\n this.closeRequested.emit();\n });\n this._subscription.add(subscription);\n }\n\n private getMoveDistance(event: PointerEvent, initialX: number, initialY: number) {\n return Math.sqrt(\n Math.pow(event.clientX - initialX, 2) +\n Math.pow(event.clientY - initialY, 2)\n );\n }\n\n}\n","<ng-content select=\"[bb-dialog-modal]\"></ng-content>\n","import {booleanAttribute, ChangeDetectionStrategy, Component, HostBinding, inject, Input, OnInit, Renderer2, ViewEncapsulation} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\n\n@Component({\n selector: '[bb-dialog-modal]',\n templateUrl: './dialog-modal.component.html',\n styleUrls: ['./dialog-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-dialog-modal',\n '[class.without-body-padding]': 'withoutBodyPadding',\n '[class.fullscreen]': 'fullscreen',\n 'role': 'dialog'\n }\n})\nexport class BbDialogModal implements OnInit {\n\n // Dependencies.\n private readonly _renderer: Renderer2 = inject(Renderer2);\n private readonly _document: Document = inject(DOCUMENT, {optional: true});\n\n // Styling.\n @HostBinding('style.max-width') @Input() maxWidth: string | null = '30rem';\n\n // Inputs.\n @Input({transform: booleanAttribute}) fullscreen: boolean = false;\n @Input({transform: booleanAttribute}) withoutBodyPadding: boolean = false;\n\n ngOnInit() {\n this.allowGlobalOverflow(false);\n }\n\n ngOnDestroy() {\n this.allowGlobalOverflow(true);\n }\n\n private allowGlobalOverflow(allow: boolean) {\n const element = this._document?.body ?? null;\n if (!element) {\n return;\n }\n\n allow\n ? this._renderer.removeStyle(element, 'overflow')\n : this._renderer.setStyle(element, 'overflow', 'hidden');\n }\n\n}\n","<ng-content select=\"[bb-dialog-header]\"></ng-content>\n\n<div class=\"bb-dialog-modal-body\">\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"[bb-dialog-actions]\"></ng-content>\n","import {booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, HostListener, inject, Input, Output, ViewEncapsulation} from '@angular/core';\nimport {DIALOG_CONFIG, DialogConfig} from '../dialog.interfaces';\nimport {BbIcon} from '@bravobit/bb-foundation/elements';\n\n@Component({\n selector: '[bb-dialog-header]',\n templateUrl: './dialog-header.component.html',\n styleUrls: ['./dialog-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dialog-header'},\n imports: [BbIcon]\n})\nexport class BbDialogHeader {\n\n // Dependencies.\n private readonly _config: DialogConfig = inject(DIALOG_CONFIG);\n\n // Readonly data.\n readonly closeIconName: string = this._config?.icons?.closeIcon ?? 'material:close';\n\n // Inputs.\n @Input() icon: string | null = null;\n @Input({transform: booleanAttribute}) closeRequestedDisabled: boolean = false;\n\n // Outputs.\n @Output() closeRequested = new EventEmitter<void>();\n\n @HostListener('window:keyup', ['$event'])\n onKeyEvent(event: KeyboardEvent) {\n if (event?.key !== 'Escape' || this.closeRequestedDisabled) {\n return;\n }\n this.closeRequested.emit();\n }\n\n}\n","@if (icon; as iconSrc) {\n <bb-icon [src]=\"iconSrc\"></bb-icon>\n}\n\n<ng-content></ng-content>\n\n@if (closeRequested?.observed && !closeRequestedDisabled) {\n <button (click)=\"closeRequested?.emit()\"\n type=\"button\"\n class=\"bb-dialog-header-close\">\n <bb-icon [src]=\"closeIconName\"></bb-icon>\n </button>\n}\n","import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {BbFormGroup} from '@bravobit/bb-foundation/elements';\n\n@Component({\n selector: '[bb-dialog-actions]',\n templateUrl: './dialog-actions.component.html',\n styleUrls: ['./dialog-actions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dialog-actions'},\n imports: [BbFormGroup]\n})\nexport class BbDialogActions {\n}\n","<bb-form-group class=\"end\">\n <ng-content></ng-content>\n</bb-form-group>\n","import {Directive, inject, ViewContainerRef} from '@angular/core';\n\n@Directive({\n selector: '[bbDialogInsertion]'\n})\nexport class BbDialogInsertion {\n\n public readonly viewContainerRef: ViewContainerRef = inject(ViewContainerRef);\n\n}\n","import {ChangeDetectionStrategy, Component, ComponentRef, ElementRef, inject, OnDestroy, OnInit, Renderer2, Type, ViewChild, ViewEncapsulation} from '@angular/core';\nimport {firstValueFrom, fromEvent, Subject, Subscription, takeUntil, timer} from 'rxjs';\nimport {DIALOG_CONFIG, DialogConfig} from '../dialog.interfaces';\nimport {filter, switchMap, take} from 'rxjs/operators';\nimport {BbDialogInsertion} from '../dialog.insertion';\nimport {DOCUMENT} from '@angular/common';\n\n@Component({\n selector: 'bb-dialog-container',\n templateUrl: './dialog-container.component.html',\n styleUrls: ['./dialog-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dialog-container'},\n imports: [BbDialogInsertion]\n})\nexport class BbDialogContainer implements OnInit, OnDestroy {\n\n // Dependencies.\n private readonly _config?: DialogConfig = inject(DIALOG_CONFIG, {optional: true});\n private readonly _renderer: Renderer2 = inject(Renderer2);\n private readonly _elementRef: ElementRef = inject(ElementRef);\n private readonly _document: Document = inject(DOCUMENT);\n\n // Views.\n @ViewChild(BbDialogInsertion, {static: true}) insertion: BbDialogInsertion;\n\n // Data.\n componentRef: ComponentRef<any> | null = null;\n childComponentType: Type<any> | null = null;\n\n // State.\n private _overlayClicked$ = new Subject<void>();\n onOverlayClicked = this._overlayClicked$.pipe(take(1));\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n ngOnInit() {\n this.handleOverlayClicks();\n this.loadChildComponent(this.childComponentType);\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n async close() {\n this._renderer.addClass(this._elementRef.nativeElement, 'leaving');\n const timer$ = timer(this._config?.animationMs ?? 240);\n return firstValueFrom(timer$);\n }\n\n private loadChildComponent(componentType: Type<any>) {\n const viewContainerRef = this.insertion.viewContainerRef;\n viewContainerRef.clear();\n this.componentRef = viewContainerRef.createComponent(componentType);\n }\n\n private handleOverlayClicks() {\n const element = this._elementRef.nativeElement ?? null;\n const elementMovePx = 20;\n const subscription = fromEvent<PointerEvent>(this._document, 'pointerdown').pipe(\n filter(event => event?.target === element),\n switchMap(pointerDownEvent => {\n const startX = pointerDownEvent.clientX;\n const startY = pointerDownEvent.clientY;\n\n return fromEvent<PointerEvent>(this._document, 'pointerup').pipe(\n filter(pointerUpEvent => pointerUpEvent?.target === element && this.getMoveDistance(pointerUpEvent, startX, startY) <= elementMovePx),\n takeUntil(\n fromEvent<PointerEvent>(this._document, 'pointermove').pipe(\n filter(pointerMoveEvent => this.getMoveDistance(pointerMoveEvent, startX, startY) > elementMovePx)\n )\n )\n );\n })\n ).subscribe(() => {\n this._overlayClicked$.next();\n });\n this._subscription.add(subscription);\n }\n\n private getMoveDistance(event: PointerEvent, initialX: number, initialY: number) {\n return Math.sqrt(\n Math.pow(event.clientX - initialX, 2) +\n Math.pow(event.clientY - initialY, 2)\n );\n }\n\n}\n","<div class=\"bb-dialog-container-component\">\n <ng-container bbDialogInsertion></ng-container>\n</div>\n","import {ChangeDetectionStrategy, Component, inject, TemplateRef, ViewEncapsulation} from '@angular/core';\nimport {BbFocusTrap, BbTemplate, BbFocus} from '@bravobit/bb-foundation/utils';\nimport {BbDialogHeader} from '../dialog-header/dialog-header.component';\nimport {BbDialogModal} from '../dialog-modal/dialog-modal.component';\nimport {BbLocalize} from '@bravobit/bb-foundation/localize';\nimport {BbButton} from '@bravobit/bb-foundation/elements';\nimport {BbDialogConfig} from '../dialog.interfaces';\nimport {AsyncPipe, NgClass} from '@angular/common';\nimport {BbDialogRef} from '../dialog.ref';\nimport {BehaviorSubject} from 'rxjs';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'bb-dialog-confirm',\n templateUrl: './dialog-confirm.component.html',\n styleUrls: ['./dialog-confirm.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dialog-confirm'},\n imports: [BbDialogModal, BbDialogHeader, BbFocusTrap, BbLocalize, BbTemplate, NgClass, BbButton, BbFocus, AsyncPipe]\n})\nexport class BbDialogConfirm {\n\n // Dependencies.\n private readonly _config: BbDialogConfig = inject(BbDialogConfig);\n private readonly _dialogRef: BbDialogRef<boolean> = inject(BbDialogRef);\n\n // Readonly data.\n readonly dialogId: string = `bb-dialog-confirm-${nextUniqueId++}`;\n readonly title: string | TemplateRef<any> = this._config?.data?.title ?? null;\n readonly description: string | TemplateRef<any> = this._config?.data?.description ?? null;\n readonly confirmButtonText: string = this._config?.data?.confirmButtonText ?? 'dialog.default_confirm_button';\n readonly cancelButtonText: string = this._config?.data?.cancelButtonText ?? 'dialog.default_cancel_button';\n readonly confirmButtonClass: string = this._config?.data?.confirmButtonClass ?? null;\n readonly cancelButtonClass: string = this._config?.data?.cancelButtonClass ?? null;\n readonly onConfirmed: () => Promise<any> = this._config?.data?.onConfirmed ?? null;\n readonly icon: string = this._config?.data?.icon ?? 'material:notifications_active';\n readonly width: string = this._config?.data?.width ?? '30rem';\n\n // State.\n loading$ = new BehaviorSubject(false);\n\n async onClose(result: boolean) {\n if (!result || (this.onConfirmed === null || this.onConfirmed === undefined)) {\n return this._dialogRef.close(result);\n }\n\n return this.onConfirmedClose();\n }\n\n async onConfirmedClose() {\n try {\n this.loading$.next(true);\n await this.onConfirmed();\n } catch {\n // Do nothing.\n } finally {\n this.loading$.next(false);\n this._dialogRef.close(true);\n }\n }\n}\n","<div [attr.aria-labelledby]=\"dialogId\"\n [maxWidth]=\"width\"\n bb-dialog-modal\n bbFocusTrap>\n <header [icon]=\"icon\"\n bb-dialog-header>\n @if (title; as titleContent) {\n <strong [id]=\"dialogId\">\n <ng-template [bbTemplate]=\"titleContent\">\n {{ $any(titleContent) | bbLocalize:{optional: true} }}\n </ng-template>\n </strong>\n }\n </header>\n\n @if (description; as descriptionContent) {\n <p class=\"bb-dialog-confirm-description\">\n <ng-template [bbTemplate]=\"descriptionContent\">\n {{ $any(descriptionContent) | bbLocalize:{optional: true} }}\n </ng-template>\n </p>\n }\n\n <footer class=\"bb-dialog-confirm-footer\">\n @if (cancelButtonText; as cancelButtonTextLabel) {\n <button [ngClass]=\"cancelButtonClass ? cancelButtonClass : 'secondary full'\"\n [disabled]=\"loading$ | async\"\n (click)=\"onClose(false)\"\n bb-button\n type=\"button\">\n {{ cancelButtonTextLabel | bbLocalize:{optional: true} }}\n </button>\n }\n @if (confirmButtonText; as confirmButtonTextLabel) {\n <button [ngClass]=\"confirmButtonClass ? confirmButtonClass : 'destructive full'\"\n [loading]=\"loading$ | async\"\n (click)=\"onClose(true)\"\n bb-button\n bbFocus\n type=\"button\">\n {{ confirmButtonTextLabel | bbLocalize:{optional: true} }}\n </button>\n }\n </footer>\n</div>\n","import {ApplicationRef, ComponentRef, createComponent, createEnvironmentInjector, EnvironmentInjector, inject, Injectable, TemplateRef, Type} from '@angular/core';\nimport {BbDialogConfig, DIALOG_CONFIG, DialogConfig, DialogConfirmOptions} from './dialog.interfaces';\nimport {BbDialogContainer} from './dialog-container/dialog-container.component';\nimport {BbDialogConfirm} from './dialog-confirm/dialog-confirm.component';\nimport {BbDialogRef} from './dialog.ref';\nimport {firstValueFrom} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Dialog {\n\n // Dependencies.\n private readonly _config?: DialogConfig = inject(DIALOG_CONFIG, {optional: true});\n private readonly _applicationRef: ApplicationRef = inject(ApplicationRef);\n private readonly _environmentInjector: EnvironmentInjector = inject(EnvironmentInjector);\n\n open<T = any>(componentType: Type<any>, config?: BbDialogConfig) {\n return this.createDialog<T>(componentType, config);\n }\n\n async confirm(title: string | TemplateRef<any>, description: string | TemplateRef<any>, options?: Partial<DialogConfirmOptions>) {\n const icon = options?.confirmIconName ?? this._config?.icons?.confirmIcon ?? null;\n const dialogRef = this.open<boolean>(BbDialogConfirm, {\n data: {title, description, ...(options ?? {}), icon}\n });\n return await firstValueFrom(dialogRef.afterClosed);\n }\n\n private createDialog<T = any>(componentType: Type<any>, config?: BbDialogConfig) {\n // Create a reference.\n const dialogRef = new BbDialogRef<T>();\n const environmentInjector = createEnvironmentInjector([\n {provide: BbDialogConfig, useValue: config ?? {}},\n {provide: BbDialogRef, useValue: dialogRef}\n ], this._environmentInjector);\n const dialogComponentRef = createComponent(BbDialogContainer, {environmentInjector});\n\n // Attach the host view to the application.\n this._applicationRef.attachView(dialogComponentRef.hostView);\n\n try {\n // Remove the current focus.\n const activeElement = document.activeElement as HTMLElement;\n activeElement.blur();\n\n // Append the element to the DOM.\n document.body.appendChild(dialogComponentRef.location.nativeElement);\n } catch {\n // Don't do anything, because it must've failed.\n }\n\n // Set the child component type on the component.\n dialogComponentRef.instance.childComponentType = componentType;\n dialogComponentRef.instance.onOverlayClicked.subscribe(() => dialogRef.onOverlayClicked());\n\n // Listen for close events.\n dialogRef.afterClosed.subscribe(async () => {\n await dialogComponentRef?.instance?.close();\n return this.deleteDialog(dialogComponentRef);\n });\n\n // Return the reference.\n return dialogRef;\n }\n\n private deleteDialog(dialogComponentRef: ComponentRef<BbDialogContainer>) {\n // Only continue if the dialog component ref exists.\n if (!dialogComponentRef) {\n return;\n }\n\n // Detach the dialog.\n this._applicationRef.detachView(dialogComponentRef.hostView);\n\n // Destroy the dialog.\n dialogComponentRef.destroy();\n dialogComponentRef = null;\n }\n\n}\n","import {Directive, EventEmitter, HostListener, inject, Input, Output} from '@angular/core';\nimport {Dialog} from '../dialog.service';\n\n@Directive({\n selector: '[bbConfirm]'\n})\nexport class BbConfirm {\n\n // Dependencies.\n private _dialog = inject(Dialog);\n\n // Inputs.\n @Input() bbConfirmTitle: string = 'dialog.default_title';\n @Input() bbConfirmDescription: string = 'dialog.default_description';\n @Input() bbConfirmIconName: string | null = null;\n @Input() bbConfirmButtonText: string | null = null;\n @Input() bbCancelButtonText: string | null = null;\n\n // Outputs.\n @Output('bbConfirm') confirm = new EventEmitter<MouseEvent>();\n\n @HostListener('click', ['$event'])\n async onClick(event: MouseEvent) {\n const confirmed = await this._dialog.confirm(this.bbConfirmTitle, this.bbConfirmDescription, {\n confirmButtonText: this.bbConfirmButtonText,\n cancelButtonText: this.bbCancelButtonText,\n confirmIconName: this.bbConfirmIconName\n });\n if (!confirmed) {\n return;\n }\n\n this.confirm.emit(event);\n }\n\n}\n","import {EnvironmentProviders, makeEnvironmentProviders} from '@angular/core';\nimport {DIALOG_CONFIG, DialogConfig} from './dialog.interfaces';\n\nexport function provideDialogConfig(config?: DialogConfig): EnvironmentProviders {\n return makeEnvironmentProviders([\n {provide: DIALOG_CONFIG, useValue: config ?? {}}\n ]);\n}\n","import {BbDialogContainer} from './dialog-container/dialog-container.component';\nimport {BbDialogConfirm} from './dialog-confirm/dialog-confirm.component';\nimport {BbDialogActions} from './dialog-actions/dialog-actions.component';\nimport {BbDialogOverlay} from './dialog-overlay/dialog-overlay.component';\nimport {BbDialogHeader} from './dialog-header/dialog-header.component';\nimport {BbDialogModal} from './dialog-modal/dialog-modal.component';\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {BbConfirm} from './directives/confirm.directive';\nimport {BbDialogInsertion} from './dialog.insertion';\nimport {provideDialogConfig} from './dialog.config';\nimport {DialogConfig} from './dialog.interfaces';\n\n@NgModule({\n imports: [\n BbDialogContainer,\n BbDialogOverlay,\n BbDialogModal,\n BbDialogHeader,\n BbDialogActions,\n BbDialogConfirm,\n BbDialogInsertion,\n BbConfirm\n ],\n exports: [\n BbDialogOverlay,\n BbDialogModal,\n BbDialogHeader,\n BbDialogActions,\n BbConfirm\n ]\n})\nexport class DialogModule {\n\n static forRoot(config?: DialogConfig): ModuleWithProviders<DialogModule> {\n return {\n ngModule: DialogModule,\n providers: [\n provideDialogConfig(config)\n ]\n };\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bravobit-bb-foundation-dialog.mjs","sources":["../../../projects/bb-foundation/dialog/src/lib/dialog.ref.ts","../../../projects/bb-foundation/dialog/src/lib/dialog.interfaces.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-overlay/dialog-overlay.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-overlay/dialog-overlay.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-modal/dialog-modal.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-modal/dialog-modal.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-header/dialog-header.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-header/dialog-header.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-actions/dialog-actions.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-actions/dialog-actions.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog.insertion.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-container/dialog-container.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-container/dialog-container.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog-confirm/dialog-confirm.component.ts","../../../projects/bb-foundation/dialog/src/lib/dialog-confirm/dialog-confirm.component.html","../../../projects/bb-foundation/dialog/src/lib/dialog.service.ts","../../../projects/bb-foundation/dialog/src/lib/directives/confirm.directive.ts","../../../projects/bb-foundation/dialog/src/lib/dialog.config.ts","../../../projects/bb-foundation/dialog/src/lib/dialog.module.ts","../../../projects/bb-foundation/dialog/src/bravobit-bb-foundation-dialog.ts"],"sourcesContent":["import {take} from 'rxjs/operators';\nimport {Subject} from 'rxjs';\n\nexport class BbDialogRef<T = any> {\n\n // Data.\n private readonly _afterClosed$ = new Subject<T>();\n private readonly _overlayClicked$ = new Subject<void>();\n\n readonly afterClosed = this._afterClosed$.pipe(take(1));\n readonly overlayClicked = this._overlayClicked$.pipe(take(1));\n\n onOverlayClicked() {\n this._overlayClicked$.next();\n }\n\n close(result?: T) {\n this._afterClosed$.next(result);\n }\n\n}\n","import {InjectionToken} from '@angular/core';\n\nexport class BbDialogConfig<T = any> {\n data?: T;\n}\n\nexport interface DialogConfirmOptions {\n cancelButtonClass: string;\n cancelButtonText: string;\n confirmButtonText: string;\n confirmButtonClass: string;\n confirmIconName: string;\n width: string;\n onConfirmed: () => Promise<any>;\n}\n\nexport class DialogConfig {\n animationMs?: number;\n icons?: {\n closeIcon?: string;\n confirmIcon?: string;\n };\n}\n\nexport const DIALOG_CONFIG: InjectionToken<DialogConfig> = new InjectionToken('dialog config');\n","import {booleanAttribute, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, inject, Input, OnDestroy, OnInit, Output, Renderer2, ViewEncapsulation, DOCUMENT} from '@angular/core';\nimport {firstValueFrom, fromEvent, Subscription, takeUntil, timer} from 'rxjs';\nimport {DIALOG_CONFIG, DialogConfig} from '../dialog.interfaces';\nimport {filter, switchMap} from 'rxjs/operators';\n\n@Component({\n selector: 'bb-dialog-overlay',\n templateUrl: './dialog-overlay.component.html',\n styleUrls: ['./dialog-overlay.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dialog-overlay'}\n})\nexport class BbDialogOverlay implements OnInit, OnDestroy {\n\n // Dependencies.\n private readonly _config?: DialogConfig = inject(DIALOG_CONFIG, {optional: true});\n private readonly _renderer: Renderer2 = inject(Renderer2);\n private readonly _elementRef: ElementRef = inject(ElementRef);\n private readonly _document: Document = inject(DOCUMENT);\n\n // Inputs.\n @Input({transform: booleanAttribute}) closeRequestedDisabled: boolean = false;\n\n // Outputs.\n @Output() closeRequested = new EventEmitter<void>();\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n ngOnInit() {\n this.handleOverlayClicks();\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n async close() {\n this._renderer.addClass(this._elementRef.nativeElement, 'leaving');\n const timer$ = timer(this._config?.animationMs ?? 240);\n return firstValueFrom(timer$);\n }\n\n private handleOverlayClicks() {\n const element = this._elementRef.nativeElement ?? null;\n const elementMovePx = 20;\n const subscription = fromEvent<PointerEvent>(this._document, 'pointerdown').pipe(\n filter(event => event?.target === element),\n switchMap(pointerDownEvent => {\n const startX = pointerDownEvent.clientX;\n const startY = pointerDownEvent.clientY;\n\n return fromEvent<PointerEvent>(this._document, 'pointerup').pipe(\n filter(pointerUpEvent => pointerUpEvent?.target === element && this.getMoveDistance(pointerUpEvent, startX, startY) <= elementMovePx),\n takeUntil(\n fromEvent<PointerEvent>(this._document, 'pointermove').pipe(\n filter(pointerMoveEvent => this.getMoveDistance(pointerMoveEvent, startX, startY) > elementMovePx)\n )\n )\n );\n })\n ).subscribe(() => {\n if (this.closeRequestedDisabled) {\n return;\n }\n this.closeRequested.emit();\n });\n this._subscription.add(subscription);\n }\n\n private getMoveDistance(event: PointerEvent, initialX: number, initialY: number) {\n return Math.sqrt(\n Math.pow(event.clientX - initialX, 2) +\n Math.pow(event.clientY - initialY, 2)\n );\n }\n\n}\n","<ng-content select=\"[bb-dialog-modal]\"></ng-content>\n","import {booleanAttribute, ChangeDetectionStrategy, Component, HostBinding, inject, Input, OnInit, Renderer2, ViewEncapsulation, DOCUMENT} from '@angular/core';\n\n@Component({\n selector: '[bb-dialog-modal]',\n templateUrl: './dialog-modal.component.html',\n styleUrls: ['./dialog-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'bb-dialog-modal',\n '[class.without-body-padding]': 'withoutBodyPadding',\n '[class.fullscreen]': 'fullscreen',\n 'role': 'dialog'\n }\n})\nexport class BbDialogModal implements OnInit {\n\n // Dependencies.\n private readonly _renderer: Renderer2 = inject(Renderer2);\n private readonly _document: Document = inject(DOCUMENT, {optional: true});\n\n // Styling.\n @HostBinding('style.max-width') @Input() maxWidth: string | null = '30rem';\n\n // Inputs.\n @Input({transform: booleanAttribute}) fullscreen: boolean = false;\n @Input({transform: booleanAttribute}) withoutBodyPadding: boolean = false;\n\n ngOnInit() {\n this.allowGlobalOverflow(false);\n }\n\n ngOnDestroy() {\n this.allowGlobalOverflow(true);\n }\n\n private allowGlobalOverflow(allow: boolean) {\n const element = this._document?.body ?? null;\n if (!element) {\n return;\n }\n\n allow\n ? this._renderer.removeStyle(element, 'overflow')\n : this._renderer.setStyle(element, 'overflow', 'hidden');\n }\n\n}\n","<ng-content select=\"[bb-dialog-header]\"></ng-content>\n\n<div class=\"bb-dialog-modal-body\">\n <ng-content></ng-content>\n</div>\n\n<ng-content select=\"[bb-dialog-actions]\"></ng-content>\n","import {booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, HostListener, inject, Input, Output, ViewEncapsulation} from '@angular/core';\nimport {DIALOG_CONFIG, DialogConfig} from '../dialog.interfaces';\nimport {BbIcon} from '@bravobit/bb-foundation/elements';\n\n@Component({\n selector: '[bb-dialog-header]',\n templateUrl: './dialog-header.component.html',\n styleUrls: ['./dialog-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dialog-header'},\n imports: [BbIcon]\n})\nexport class BbDialogHeader {\n\n // Dependencies.\n private readonly _config: DialogConfig = inject(DIALOG_CONFIG);\n\n // Readonly data.\n readonly closeIconName: string = this._config?.icons?.closeIcon ?? 'material:close';\n\n // Inputs.\n @Input() icon: string | null = null;\n @Input({transform: booleanAttribute}) closeRequestedDisabled: boolean = false;\n\n // Outputs.\n @Output() closeRequested = new EventEmitter<void>();\n\n @HostListener('window:keyup', ['$event'])\n onKeyEvent(event: KeyboardEvent) {\n if (event?.key !== 'Escape' || this.closeRequestedDisabled) {\n return;\n }\n this.closeRequested.emit();\n }\n\n}\n","@if (icon; as iconSrc) {\n <bb-icon [src]=\"iconSrc\"></bb-icon>\n}\n\n<ng-content></ng-content>\n\n@if (closeRequested?.observed && !closeRequestedDisabled) {\n <button (click)=\"closeRequested?.emit()\"\n type=\"button\"\n class=\"bb-dialog-header-close\">\n <bb-icon [src]=\"closeIconName\"></bb-icon>\n </button>\n}\n","import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {BbFormGroup} from '@bravobit/bb-foundation/elements';\n\n@Component({\n selector: '[bb-dialog-actions]',\n templateUrl: './dialog-actions.component.html',\n styleUrls: ['./dialog-actions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dialog-actions'},\n imports: [BbFormGroup]\n})\nexport class BbDialogActions {\n}\n","<bb-form-group class=\"end\">\n <ng-content></ng-content>\n</bb-form-group>\n","import {Directive, inject, ViewContainerRef} from '@angular/core';\n\n@Directive({\n selector: '[bbDialogInsertion]'\n})\nexport class BbDialogInsertion {\n\n public readonly viewContainerRef: ViewContainerRef = inject(ViewContainerRef);\n\n}\n","import {ChangeDetectionStrategy, Component, ComponentRef, ElementRef, inject, OnDestroy, OnInit, Renderer2, Type, ViewChild, ViewEncapsulation, DOCUMENT} from '@angular/core';\nimport {firstValueFrom, fromEvent, Subject, Subscription, takeUntil, timer} from 'rxjs';\nimport {DIALOG_CONFIG, DialogConfig} from '../dialog.interfaces';\nimport {filter, switchMap, take} from 'rxjs/operators';\nimport {BbDialogInsertion} from '../dialog.insertion';\n\n@Component({\n selector: 'bb-dialog-container',\n templateUrl: './dialog-container.component.html',\n styleUrls: ['./dialog-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dialog-container'},\n imports: [BbDialogInsertion]\n})\nexport class BbDialogContainer implements OnInit, OnDestroy {\n\n // Dependencies.\n private readonly _config?: DialogConfig = inject(DIALOG_CONFIG, {optional: true});\n private readonly _renderer: Renderer2 = inject(Renderer2);\n private readonly _elementRef: ElementRef = inject(ElementRef);\n private readonly _document: Document = inject(DOCUMENT);\n\n // Views.\n @ViewChild(BbDialogInsertion, {static: true}) insertion: BbDialogInsertion;\n\n // Data.\n componentRef: ComponentRef<any> | null = null;\n childComponentType: Type<any> | null = null;\n\n // State.\n private _overlayClicked$ = new Subject<void>();\n onOverlayClicked = this._overlayClicked$.pipe(take(1));\n\n // Subscriptions.\n private _subscription = new Subscription();\n\n ngOnInit() {\n this.handleOverlayClicks();\n this.loadChildComponent(this.childComponentType);\n }\n\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n\n async close() {\n this._renderer.addClass(this._elementRef.nativeElement, 'leaving');\n const timer$ = timer(this._config?.animationMs ?? 240);\n return firstValueFrom(timer$);\n }\n\n private loadChildComponent(componentType: Type<any>) {\n const viewContainerRef = this.insertion.viewContainerRef;\n viewContainerRef.clear();\n this.componentRef = viewContainerRef.createComponent(componentType);\n }\n\n private handleOverlayClicks() {\n const element = this._elementRef.nativeElement ?? null;\n const elementMovePx = 20;\n const subscription = fromEvent<PointerEvent>(this._document, 'pointerdown').pipe(\n filter(event => event?.target === element),\n switchMap(pointerDownEvent => {\n const startX = pointerDownEvent.clientX;\n const startY = pointerDownEvent.clientY;\n\n return fromEvent<PointerEvent>(this._document, 'pointerup').pipe(\n filter(pointerUpEvent => pointerUpEvent?.target === element && this.getMoveDistance(pointerUpEvent, startX, startY) <= elementMovePx),\n takeUntil(\n fromEvent<PointerEvent>(this._document, 'pointermove').pipe(\n filter(pointerMoveEvent => this.getMoveDistance(pointerMoveEvent, startX, startY) > elementMovePx)\n )\n )\n );\n })\n ).subscribe(() => {\n this._overlayClicked$.next();\n });\n this._subscription.add(subscription);\n }\n\n private getMoveDistance(event: PointerEvent, initialX: number, initialY: number) {\n return Math.sqrt(\n Math.pow(event.clientX - initialX, 2) +\n Math.pow(event.clientY - initialY, 2)\n );\n }\n\n}\n","<div class=\"bb-dialog-container-component\">\n <ng-container bbDialogInsertion></ng-container>\n</div>\n","import {ChangeDetectionStrategy, Component, inject, TemplateRef, ViewEncapsulation} from '@angular/core';\nimport {BbFocusTrap, BbTemplate, BbFocus} from '@bravobit/bb-foundation/utils';\nimport {BbDialogHeader} from '../dialog-header/dialog-header.component';\nimport {BbDialogModal} from '../dialog-modal/dialog-modal.component';\nimport {BbLocalize} from '@bravobit/bb-foundation/localize';\nimport {BbButton} from '@bravobit/bb-foundation/elements';\nimport {BbDialogConfig} from '../dialog.interfaces';\nimport {AsyncPipe, NgClass} from '@angular/common';\nimport {BbDialogRef} from '../dialog.ref';\nimport {BehaviorSubject} from 'rxjs';\n\nlet nextUniqueId = 0;\n\n@Component({\n selector: 'bb-dialog-confirm',\n templateUrl: './dialog-confirm.component.html',\n styleUrls: ['./dialog-confirm.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {'class': 'bb-dialog-confirm'},\n imports: [BbDialogModal, BbDialogHeader, BbFocusTrap, BbLocalize, BbTemplate, NgClass, BbButton, BbFocus, AsyncPipe]\n})\nexport class BbDialogConfirm {\n\n // Dependencies.\n private readonly _config: BbDialogConfig = inject(BbDialogConfig);\n private readonly _dialogRef: BbDialogRef<boolean> = inject(BbDialogRef);\n\n // Readonly data.\n readonly dialogId: string = `bb-dialog-confirm-${nextUniqueId++}`;\n readonly title: string | TemplateRef<any> = this._config?.data?.title ?? null;\n readonly description: string | TemplateRef<any> = this._config?.data?.description ?? null;\n readonly confirmButtonText: string = this._config?.data?.confirmButtonText ?? 'dialog.default_confirm_button';\n readonly cancelButtonText: string = this._config?.data?.cancelButtonText ?? 'dialog.default_cancel_button';\n readonly confirmButtonClass: string = this._config?.data?.confirmButtonClass ?? null;\n readonly cancelButtonClass: string = this._config?.data?.cancelButtonClass ?? null;\n readonly onConfirmed: () => Promise<any> = this._config?.data?.onConfirmed ?? null;\n readonly icon: string = this._config?.data?.icon ?? 'material:notifications_active';\n readonly width: string = this._config?.data?.width ?? '30rem';\n\n // State.\n loading$ = new BehaviorSubject(false);\n\n async onClose(result: boolean) {\n if (!result || (this.onConfirmed === null || this.onConfirmed === undefined)) {\n return this._dialogRef.close(result);\n }\n\n return this.onConfirmedClose();\n }\n\n async onConfirmedClose() {\n try {\n this.loading$.next(true);\n await this.onConfirmed();\n } catch {\n // Do nothing.\n } finally {\n this.loading$.next(false);\n this._dialogRef.close(true);\n }\n }\n}\n","<div [attr.aria-labelledby]=\"dialogId\"\n [maxWidth]=\"width\"\n bb-dialog-modal\n bbFocusTrap>\n <header [icon]=\"icon\"\n bb-dialog-header>\n @if (title; as titleContent) {\n <strong [id]=\"dialogId\">\n <ng-template [bbTemplate]=\"titleContent\">\n {{ $any(titleContent) | bbLocalize:{optional: true} }}\n </ng-template>\n </strong>\n }\n </header>\n\n @if (description; as descriptionContent) {\n <p class=\"bb-dialog-confirm-description\">\n <ng-template [bbTemplate]=\"descriptionContent\">\n {{ $any(descriptionContent) | bbLocalize:{optional: true} }}\n </ng-template>\n </p>\n }\n\n <footer class=\"bb-dialog-confirm-footer\">\n @if (cancelButtonText; as cancelButtonTextLabel) {\n <button [ngClass]=\"cancelButtonClass ? cancelButtonClass : 'secondary full'\"\n [disabled]=\"loading$ | async\"\n (click)=\"onClose(false)\"\n bb-button\n type=\"button\">\n {{ cancelButtonTextLabel | bbLocalize:{optional: true} }}\n </button>\n }\n @if (confirmButtonText; as confirmButtonTextLabel) {\n <button [ngClass]=\"confirmButtonClass ? confirmButtonClass : 'destructive full'\"\n [loading]=\"loading$ | async\"\n (click)=\"onClose(true)\"\n bb-button\n bbFocus\n type=\"button\">\n {{ confirmButtonTextLabel | bbLocalize:{optional: true} }}\n </button>\n }\n </footer>\n</div>\n","import {ApplicationRef, ComponentRef, createComponent, createEnvironmentInjector, EnvironmentInjector, inject, Injectable, TemplateRef, Type} from '@angular/core';\nimport {BbDialogConfig, DIALOG_CONFIG, DialogConfig, DialogConfirmOptions} from './dialog.interfaces';\nimport {BbDialogContainer} from './dialog-container/dialog-container.component';\nimport {BbDialogConfirm} from './dialog-confirm/dialog-confirm.component';\nimport {BbDialogRef} from './dialog.ref';\nimport {firstValueFrom} from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Dialog {\n\n // Dependencies.\n private readonly _config?: DialogConfig = inject(DIALOG_CONFIG, {optional: true});\n private readonly _applicationRef: ApplicationRef = inject(ApplicationRef);\n private readonly _environmentInjector: EnvironmentInjector = inject(EnvironmentInjector);\n\n open<T = any>(componentType: Type<any>, config?: BbDialogConfig) {\n return this.createDialog<T>(componentType, config);\n }\n\n async confirm(title: string | TemplateRef<any>, description: string | TemplateRef<any>, options?: Partial<DialogConfirmOptions>) {\n const icon = options?.confirmIconName ?? this._config?.icons?.confirmIcon ?? null;\n const dialogRef = this.open<boolean>(BbDialogConfirm, {\n data: {title, description, ...(options ?? {}), icon}\n });\n return await firstValueFrom(dialogRef.afterClosed);\n }\n\n private createDialog<T = any>(componentType: Type<any>, config?: BbDialogConfig) {\n // Create a reference.\n const dialogRef = new BbDialogRef<T>();\n const environmentInjector = createEnvironmentInjector([\n {provide: BbDialogConfig, useValue: config ?? {}},\n {provide: BbDialogRef, useValue: dialogRef}\n ], this._environmentInjector);\n const dialogComponentRef = createComponent(BbDialogContainer, {environmentInjector});\n\n // Attach the host view to the application.\n this._applicationRef.attachView(dialogComponentRef.hostView);\n\n try {\n // Remove the current focus.\n const activeElement = document.activeElement as HTMLElement;\n activeElement.blur();\n\n // Append the element to the DOM.\n document.body.appendChild(dialogComponentRef.location.nativeElement);\n } catch {\n // Don't do anything, because it must've failed.\n }\n\n // Set the child component type on the component.\n dialogComponentRef.instance.childComponentType = componentType;\n dialogComponentRef.instance.onOverlayClicked.subscribe(() => dialogRef.onOverlayClicked());\n\n // Listen for close events.\n dialogRef.afterClosed.subscribe(async () => {\n await dialogComponentRef?.instance?.close();\n return this.deleteDialog(dialogComponentRef);\n });\n\n // Return the reference.\n return dialogRef;\n }\n\n private deleteDialog(dialogComponentRef: ComponentRef<BbDialogContainer>) {\n // Only continue if the dialog component ref exists.\n if (!dialogComponentRef) {\n return;\n }\n\n // Detach the dialog.\n this._applicationRef.detachView(dialogComponentRef.hostView);\n\n // Destroy the dialog.\n dialogComponentRef.destroy();\n dialogComponentRef = null;\n }\n\n}\n","import {Directive, EventEmitter, HostListener, inject, Input, Output} from '@angular/core';\nimport {Dialog} from '../dialog.service';\n\n@Directive({\n selector: '[bbConfirm]'\n})\nexport class BbConfirm {\n\n // Dependencies.\n private _dialog = inject(Dialog);\n\n // Inputs.\n @Input() bbConfirmTitle: string = 'dialog.default_title';\n @Input() bbConfirmDescription: string = 'dialog.default_description';\n @Input() bbConfirmIconName: string | null = null;\n @Input() bbConfirmButtonText: string | null = null;\n @Input() bbCancelButtonText: string | null = null;\n\n // Outputs.\n @Output('bbConfirm') confirm = new EventEmitter<MouseEvent>();\n\n @HostListener('click', ['$event'])\n async onClick(event: MouseEvent) {\n const confirmed = await this._dialog.confirm(this.bbConfirmTitle, this.bbConfirmDescription, {\n confirmButtonText: this.bbConfirmButtonText,\n cancelButtonText: this.bbCancelButtonText,\n confirmIconName: this.bbConfirmIconName\n });\n if (!confirmed) {\n return;\n }\n\n this.confirm.emit(event);\n }\n\n}\n","import {EnvironmentProviders, makeEnvironmentProviders} from '@angular/core';\nimport {DIALOG_CONFIG, DialogConfig} from './dialog.interfaces';\n\nexport function provideDialogConfig(config?: DialogConfig): EnvironmentProviders {\n return makeEnvironmentProviders([\n {provide: DIALOG_CONFIG, useValue: config ?? {}}\n ]);\n}\n","import {BbDialogContainer} from './dialog-container/dialog-container.component';\nimport {BbDialogConfirm} from './dialog-confirm/dialog-confirm.component';\nimport {BbDialogActions} from './dialog-actions/dialog-actions.component';\nimport {BbDialogOverlay} from './dialog-overlay/dialog-overlay.component';\nimport {BbDialogHeader} from './dialog-header/dialog-header.component';\nimport {BbDialogModal} from './dialog-modal/dialog-modal.component';\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {BbConfirm} from './directives/confirm.directive';\nimport {BbDialogInsertion} from './dialog.insertion';\nimport {provideDialogConfig} from './dialog.config';\nimport {DialogConfig} from './dialog.interfaces';\n\n@NgModule({\n imports: [\n BbDialogContainer,\n BbDialogOverlay,\n BbDialogModal,\n BbDialogHeader,\n BbDialogActions,\n BbDialogConfirm,\n BbDialogInsertion,\n BbConfirm\n ],\n exports: [\n BbDialogOverlay,\n BbDialogModal,\n BbDialogHeader,\n BbDialogActions,\n BbConfirm\n ]\n})\nexport class DialogModule {\n\n static forRoot(config?: DialogConfig): ModuleWithProviders<DialogModule> {\n return {\n ngModule: DialogModule,\n providers: [\n provideDialogConfig(config)\n ]\n };\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}